KeYmaeraX Release Versions Save

KeYmaera X: An aXiomatic Tactical Theorem Prover for Hybrid Systems (release)

5.0.2

11 months ago

Version 5.0.2 provides command line improvements and improved support for interpreted functions in monitoring.

  • Command line options: Z3 path, KeYmaera X home directory
  • Monitoring: support for interpreted symbols, improved Python exporter
  • Definitions: predefined interpreted symbol tan
  • UI: animate finished proof (auto-replay)

5.0.1

1 year ago

Version 5.0.1 provides bug fixes and a tactic to prepare quantifier elimination queries.

  • [Tactics] tactic prepareQE with heuristics for equality rewriting, introducing abbreviations, and forming the universal closure of a sequent
  • [Tactics] tactic rcf to complete a query with an external tool
  • [Tactics] tactic qe combines prepareQE and rcf.

5.0

1 year ago

Version 5.0 provides a definition package for user-defined functions, major parser rewrite, keyboard shortcuts during proofs, tactic performance improvements, and tool improvements.

  • Definitions: adds support for user-defined functions whose graphs can be implicitly characterized by dL formulas, such as the exponential and trigonometric functions, as solutions of differential equations. Properties of those user-defined functions can be proved using dL's differential equation reasoning principles. A high-level interface for defining functions and non-soundness-critical tactics automate low-level reasoning over implicit characterizations in hybrid system proofs. Builtin definitions that can be used out of the box in models include exp, sin, cos, Pi, and E.

  • UI: keyboard shortcuts for common proof tasks (customizable through .keymaerax/hotkeys.js file in home directory)

  • Parser: complete parser re-implementation with support for user-defined functions, full tactic support in web UI parsing

  • Tactics: performance improvement with builtin forward tactics replacing (some) interpreted tactics

  • Tools: command line conversion tools from KeYmaera X format to SMT-Lib format (-convert kyx2smt) and Wolfram format (-convert kyx2mat)

  • Tools: improved Z3-based simplifier

4.9.9

2 years ago

Version 4.9.9 provides UI bug fixes and some tactic performance improvements

  • UI: get invariant generator (Pegasus) suggestions in dC dialog
  • Docker container: Matlab support
  • Tactics: bug fixes for definition expansion
  • Tactics: faster forward implementation of several frequently used tactics
  • Security update: log4j 2.17.1

4.9.8

2 years ago

Version 4.9.8 provides a security patch and tactic implementation updates:

  • Security patch: Log4j 2.15.0 (addresses CVE-2021-44228)
  • Tactics: forward-style implementation of unification calculus tactics

4.9.7

2 years ago

Version 4.9.7 provides support for switched systems, a fixpoint tactic for hybrid games, as well as UI and robustness improvements:

  • Switched systems: hybrid automaton modeler
  • Tactics: new stability and attractivity tactics for switched systems
  • Tactics: new fixpoint tactic for hybrid games
  • UI: tactic and model editor bug fixes
  • UI: browse all tactics
  • Code generator: export definitions

4.9.6

2 years ago

Version 4.9.6 provides UI and robustness improvements.

  • UI: tactic editor improvements, run tactics from editor gutter
  • UI: save models while editing
  • Code export: ModelPlex to Python
  • Tactic: support for uninterpreted function symbols of arity>0 in QE
  • Parser: improved error messages for program constants

4.9.5

2 years ago

Version 4.9.5 provides improved interaction between tactics editing and sequent view.

  • UI: selected tab gets highlighted in tactic editor, cursor position switches tabs
  • UI: proof state displayed below tactic editor according to cursor position
  • UI: formula icons ("eye") to configure positive-mention "using" by mouse
  • UI: fast manual QE/CEX exploration with temporary formula hiding ("eye")
  • Tactics: differential cut for constant quantities, e.g., dC("x^2+y^2=const()", 1)
  • Docker container with KeYmaera X server

4.9.4

2 years ago

Version 4.9.4 provides an improved definitions UI to supply proof parameters and modeling assumptions, more robust tactic recording with formula search locators everywhere, tactic branch labels, as well as backend tool and parser updates.

  • UI: tactic syntax highlighting, executing custom tactics from tactic editor with alt-click (atomic) or shift-click (step-by-step)
  • Tactics: positive-mention "using", e.g. QE using "x>0 :: x>=0 :: nil"
  • Tactics: formula search locators when recording tactics
  • Tactics: search locator notation #...# to identify sub-positions, e.g., dI('R=="x>=0 -> #[{x'=1}]x>=0#")
  • Tactics: branch labels and case matching, e.g., loop("J", 'R=="[{a;}*]S") <( "Init": r, "Use": s, "Step": t ) to execute tactic r on branch "Init" etc. e.g., andR('R=="x>=0 & y<=2") <( "x>=0": s, "y<=2": t ) to execute tactic s on branch "x>=0" etc.
  • Tactics: better support for differential symbols in quantifiers
  • Tactics: improved ODE support for stability proofs
  • Backend: support for Mathematica 12.2 and 12.3 (MacOS)

4.9.3

3 years ago

Version 4.9.3 provides a substantially updated ModelPlex UI and core/parser updates.

  • [ModelPlex] Web UI for ModelPlex process, artifacts, code export, and proofs
  • [Core] Barcan axiom to commute quantifiers with program postconditions
  • [Parser] vectorial taboos in systems/programs/functionals/predicationals
  • [UI] Lemma UI bug fixes