Skip to content
Jul 1, 2020
ARCH 2020 hybrid systems theorem proving competition

@smitsch smitsch released this May 4, 2020 · 1197 commits to master since this release

Version 4.8.0 provides a restructured and reviewed microkernel and extended kernel. Extended differential equation invariant generation, and more flexible user definitions, significant performance improvements.

  • [Core] Restructured and reviewed microkernel and extended kernel
  • [Core] Design-separation between trusted external QE tools and additional non-soundness-critical external tools
  • [Core] Semantic uniform renaming of rules
  • [Core] Derived several axioms as lemmas
  • [UI] Expand function, predicate, and program definitions on demand, introduce new definitions in the proof (e.g., abstract loop invariant predicate J(x,y,z) instead of concrete x+y>=z formula) and expand on demand later
  • [UI] Auto-login for single-user environments
  • [Tactic] New useSolver tactic to switch backend solver mid-proof, e.g., useSolver("Mathematica") or useSolver("Z3")
  • [Backend] Extended invariant generator Pegasus for differential equations (linear and non-linear systems, improved generation strategy)
  • [Backend] New native Java BigDecimal tool for variable-free exact arithmetic evaluation
  • [Parser] Unicode game symbols for demonic choice '∩' and demonic repetition '×'
  • [Performance] QE result caching
  • [Performance] Faster parsing and printing of provables and lemmas
  • [Performance] Faster lemma storage/retrieval from database
  • [Performance] Runtime contracts disabled by default, can be enabled with java -ea and disabled with java -da
  • [Platform] Updated support for latest Java Virtual Machine and JDK versions
Assets 3
Feb 17, 2020
Code Review: KeYmaera X Core: 2020-02-14
  * Verdict: stable
  * DI: system generalization can only have bound variables of the ODE free in postcondition (and no resulting '' by data structure invariant), just like DI itself has p(x). Vectorial DI systems.
  * RI, DX skip: no ' in postcondition (no bound differential symbols). Vectors suffice to say [X'=f(X)&q(X)]p(X) -> (q(X)->p(X))
  * VDG: vectorial DG with vectorial quantifier for liveness.
  * DG: singularities from division by zero disallowed, also via interpreted functions.

Signed-off-by: Andre Platzer <aplatzer@cs.cmu.edu>
Signed-off-by: Stefan Mitsch <smitsch@cs.cmu.edu>
Signed-off-by: Brandon Bohrer <bbohrer@cs.cmu.edu>
Signed-off-by: Yong Kiam Tan <yongkiat@cs.cmu.edu>
Signed-off-by: Katherine Cordwell <kcordwel@cs.cmu.edu>
Signed-off-by: Fabian Immler <fimmler@cs.cmu.edu>

Extended Code Review: KeYmaera X Core: 2016-06-01
  TODO Clean handling of assumptions about interpreted functions. For example unproved premises that are substituted in with *formula* definitions in the end.
  TODO FileLemmaDB needs to check all evidence not just the first.
  TODO SMTSolvers cannot return False on satisfiable negations, because formulas other than false have satisfiable negations.
  TODO Mathematica name clashes
  TODO Confirm converse contract checking for translations
  TODO Mathematica and SMT: clarify nary operators like - and *
  TODO Synchronize query index updating (concurrent tool uses)
  TODO Enforce memory management for Mathematica input expressions
  TODO SMT conversion: power handling has inconsistencies
  TODO SMT conversion: ^1 handling needs to be checked since translated as (* x)
  TODO Safeguard return values from SMT solvers
  TODO Polya should improve like Z3 does

Signed-off-by: Andre Platzer <aplatzer@cs.cmu.edu>
Signed-off-by: Nathan Fulton <nathanfu@cs.cmu.edu>
Signed-off-by: Stefan Mitsch <smitsch@cs.cmu.edu>
Signed-off-by: Brandon Bohrer <bbohrer@cs.cmu.edu>
Signed-off-by: Ran Ji <ran.ji@cs.cmu.edu>

Code Review: KeYmaera X Core Delta: 2016-06-01
  NOTE Could turn DifferentialProgram into non-Program.
  TODO Turn "[:=] assign exists" into DerivedAxiom
  TODO Add checksum test and core version to string representation of Lemma. And Lemma name sanity.

Signed-off-by: Andre Platzer <aplatzer@cs.cmu.edu>
Signed-off-by: Nathan Fulton <nathanfu@cs.cmu.edu>
Signed-off-by: Stefan Mitsch <smitsch@cs.cmu.edu>
Signed-off-by: Brandon Bohrer <bbohrer@cs.cmu.edu>
Signed-off-by: Ran Ji <ran.ji@cs.cmu.edu>
Signed-off-by: Andre Platzer <aplatzer@cs.cmu.edu>

@smitsch smitsch released this Nov 4, 2019 · 1968 commits to master since this release

Version 4.7.4 provides differential equation completeness improvements

  • [Tactics] Improved equality rewriting: support for rewriting in bound occurrences of the form y=x ==> \\forall x x<y and y=x ==> [a(x)]x<y
  • [Tactics] Improved Barrier and ODE invariant completeness: automated constification of unchanged (non-primed) variables x to nullary function symbols x() now proves more ODEs automatically
  • [Tactics] Differential weakening: fast dW preserves only constants, complete dWplus preserves all initial state
  • [Tactics] Differential ghost: extended unification for division with variations of the shape y' = y/a + b
  • [Backend] (Fix) Initialize a single Mathematica/Wolfram Engine instance to avoid startup hickups with restricted licenses
  • [Backend] (Fix) Wait for backend to stay alive
  • [Printer] (Fix) Archive printer: export hybrid program definition names without ()
  • [Server] (Fix) Avoid infinite startup when running command line tools (parse, prove etc.)
Assets 3

@smitsch smitsch released this Oct 4, 2019 · 2028 commits to master since this release

Version 4.7.3 provides a new Wolfram Engine backend and proof inspection features.

  • [Backend] Wolfram Engine backend supporting real arithmetic and ODE invariant generation
  • [UI] Expand tactic step details (≡ button)
  • [UI] Reuse finished proofs as lemmas (Browse → Lemmas menu)
  • [Tactics] Explore a model using loop and ODE invariant annotations and show all failing branches (Explore button)
  • [Tactics] Proof state labeling: edit branch tab names to set labels in the proof
Assets 3

@smitsch smitsch released this Sep 11, 2019 · 2250 commits to master since this release

Version 4.7.2 provides UI and backend stability updates.

  • [Backend] Stability fixes
  • [Parser] Support for model illustration links
  • [Web UI] Model illustration images
Assets 3

@smitsch smitsch released this Sep 1, 2019 · 2306 commits to master since this release

Version 4.7.1 provides UI improvements and tactic syntax updates.

  • [Web UI] New tool: Pegasus invariant generator
  • [Web UI] Additional help and examples, undo functionality, improved formula pretty printing/layout
  • [Tactics] Syntax update double quotation marks for tactic arguments
  • [Tactics] Partial QE with simplification using assumptions
  • [Tactics] ODE automation improvement (counterexamples, condition search)
Assets 3

@smitsch smitsch released this Jun 16, 2019 · 2509 commits to master since this release

Version 4.7 major core update, automation improvement, performance, and stability updates

  • [Core] Fast one-pass uniform substitution
  • [Backend] Invariant generator Pegasus for differential equations (Qualitative Analysis, First Integrals, Darboux Polynomials, Barrier Certificates)
  • [Backend] Z3 update
  • [Parser] Significant performance improvement
  • [Tactics] Improved ODE automation
  • [Tactics] Interval arithmetic: proves quantifier-free real arithmetic when the antecedent has numerical bounds for all free variables of the succedent
  • [UI] Command line: -prove -verbose for tactic progress printing
  • [Code Synthesis] Monitor C code generator: IDs now identify failed monitor sub-condition
Assets 3

@smitsch smitsch released this Jan 11, 2019 · 2966 commits to master since this release

Version 4.6.3 provides UI and tactic improvements

  • [UI] Model editing during a proof
  • [UI] Tactic help on menu and context menu entries
  • [Tactics] Execute until error without discarding non-applicable tactics
  • [Tactics] ODE solve support for nilpotent linear systems
  • [Parser] Support for exercises
Assets 3

@smitsch smitsch released this Nov 26, 2018 · 3175 commits to master since this release

Version 4.6.2 provides performance and robustness improvements

  • [Tactics] ODE solver performance improvements
  • [Tactics] Tactic positioning and input robustness: abbreviation and special function handling in context, quantifier instantiation with variables and terms, input unificiation for differential ghosts, monotonicity at any succedent position
  • [Parser] Improved error messages
  • [UI] Robustness improvements, backend tool status polling, polling performance improvement
Assets 3
You can’t perform that action at this time.