Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 1.1.0 #29

Merged
merged 101 commits into from
Apr 26, 2019
Merged

Version 1.1.0 #29

merged 101 commits into from
Apr 26, 2019

Conversation

nmacedo
Copy link
Member

@nmacedo nmacedo commented Feb 21, 2019

Major changes:

  • proper past semantics through loop unrolling
  • proper temporal instance iteration
  • instances assumed to always be infinite
  • evaluator for instances from unbounded engined
  • skolems not considered part of temporal instances
  • properly terminates electrod processes

Full description:

  • two alternative encodings for the unrolling of formulas with past operators, one with explicit unrolls and another implicit (close Review past BMC semantics #24)
  • unified relation hierarchy with that of Alloy5, easier to identify relations as atoms, skolems and variable
  • atom relations are ignored during symmetry breaking
  • unified representation for temporal instances from bounded/unbounded engines
  • the previous enables the evaluator on instances from the unbounded engine (close Allow temporal evaluator over sequence traces #27)
  • formulas and int expressions can also be evaluated at particular instants
  • the evaluation of temporal instances relies on the original universe of the bounds (close Evaluating temporal instances returns with expanded universe #36)
  • assumed temporal instances always loop, simplified translation and bounds accordingly (close Simplify translation for looping traces #26)
  • two alternative encodings for temporal iteration, one reifies atoms the other uses the some-disj pattern (close#25)
  • in the reification process atom relations are ignored during symmetry breaking
  • in the formulation of instances, relations not mentioned in the formula are ignored (close Inconsistent iteration when relation non-referred #31)
  • an optimised iteration procedure for the bounded engine that acts directly on SAT
  • fixed the translation of symbolic bounds to invert bounds for "difference" expressions (close Symbolic bound resolution with difference #22)
  • termination of electrod processes properly terminates children smv processes
  • skolem variables are not translated back into temporal instances, nor considered during iteration (but are still used for performance purposes) (close Skolems on temporal expansion  #32 Skolemized rels not added to temporal instance #33)
  • fixed a bug when expanding constants where state atoms would become part of the universe (close Univ not correctly expanded in bounded #28)
  • fixed a bug when slicing formulas with extra relations (eg, created during trivial iteration)
  • fixed a bug when slicing single conjunct formulas
  • added support for skolems at electrod (protected symbol $)
  • added missing neq method to integer expressions
  • fixed bug on running non-decomposed with decomposed bounds
  • iteration for trivial solutions simplified
  • fetched no overflow fixes from Alloy5
  • solving engines now register whether unbounded
  • pmaxsat yices disabled due to unpredictable results
  • fixed a bug on symbolic bounds for static relations depending on variable ones (close Bug on resolution of static relations with variable symbolic bounds #35)
  • rename identifiers that are protected keywords in electrod (close Electrod protected keywords #30)

@nmacedo nmacedo merged commit 9060d3d into master Apr 26, 2019
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment