Skip to content

Releases: LS-Lab/KeYmaeraX-release

Version 5.0.1

23 Nov 20:46
Choose a tag to compare

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.

Version 5.0

11 Aug 08:30
Choose a tag to compare

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

Version 4.9.9

18 Feb 14:29
Choose a tag to compare

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

Version 4.9.8

13 Dec 20:08
Choose a tag to compare

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

Version 4.9.7

24 Nov 18:52
Choose a tag to compare

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

Version 4.9.6

06 Oct 20:31
Choose a tag to compare

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

Version 4.9.5

02 Sep 17:38
Choose a tag to compare

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

Version 4.9.4

17 Jun 10:13
Choose a tag to compare

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)

Version 4.9.3

25 Jan 20:31
Choose a tag to compare

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

Version 4.9.2

03 Dec 01:34
Choose a tag to compare

Version 4.9.2 provides ODE liveness tactics, constructive game logic, a preview of a new proof language Kaisar, and UI improvements.

  • [UI] ODE liveness tactics accessible from ODE menu
  • [UI] Extended tactic menus: simplify, expand special function symbols, abbreviate terms, alpha-rename, extended tactics for hybrid programs and differential equations
  • [UI] Tactic application from menu: position selection dialog, alt/option click in menu to apply tactics at the first applicable position without selection
  • [UI] Live syntax checking in model upload dialog
  • [Tactic] ODE liveness tactics: differential variant to prove ODE progress, ODE unification to combine evolution domain constraints, diamond ODE postcondition refinement, and diamond ODE evolution domain constraint refinement
  • [Tactic] Improved use of semantic renaming allows applying axioms and tactics despite the presence of program/game constants, e.g. [x:=*;][a;]x>=0 turns into \forall x [a;]x>=0
  • [Tactic] Alpha-rename bound occurrences of variables, e.g., knowing x=y, rename [{x'=x}]x>=0 to [{y'=y}]y>=0
  • [Logic] Constructive differential game logic
  • [Preview] New proof language Kaisar
  • [Backend] Real-arithmetic witnesses with sum-of-squares solver, accessible from the tools menu