Skip to content

Releases: LS-Lab/KeYmaeraX-release

Version 4.9.4

17 Jun 10:13
4.9.4
Compare
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
4.9.3
Compare
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
4.9.2
Compare
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

Version 4.9.1

03 Nov 02:44
4.9.1
Compare
Choose a tag to compare

Version 4.9.1 provides better access to liveness tactics from the menu, improved differential ghosts, extended configuration options, and better support for n-ary predicates and function symbols in tactic arguments.

  • [UI] Liveness tactics accessible from HP menu
  • [UI] Expand predicate symbols with left-click
  • [UI] Advanced configuration in preferences
  • [Tactic] Differential ghosts: support for additional input shapes, improved post-condition transformation considers evolution domain constraints, improved error messages
  • [Backend] Z3 configurable local installation directory
  • [Parser] Annotations bind strongest
  • [Parser] Improved support for n-ary predicate and function symbols in tactic arguments
  • [Tools] Code generator: flat conjunctions in quantitative monitors

Version 4.9.0

10 Oct 15:40
4.9.0
Compare
Choose a tag to compare

Version 4.9.0 provides a restructured tactic framework and module separation. Model organization, shortcut notation in user definitions, more transparent proof rule display, and improved support for starting and checking lemmas.

  • [UI] More transparent display of proof rules with and without context
  • [UI] Differential invariant (dI) proofs can be constructed interactively in the UI with dIrule. Automatic completion is available as dIclose
  • [UI] Organize models into folders with hierarchical archive entry names
  • [UI] Prove lemmas used in a theorem when opening the theorem, start new lemmas from open proof subgoals
  • [Tactic] Framework restructuring, Scala annotation macros @Axiom for derived axiom registration, @Tactic for tactic registration, tactic presentation, and tactic documentation
  • [Tactic] Step-by-step replay: expand definitions, use lemmas
  • [Tactic] Framework extensions and robustness: polynomial arithmetic, differential equation proving, Taylor models, sum-of-squares solving
  • [Backend] Basic heuristic for time-triggered systems in Pegasus invariant generator
  • [Backend] Update Z3 4.8.9
  • [Parser] Shortcut notation for unary function symbols, system constants, unary predicates and predicationals; uniform across definitions, models, annotations, and tactics
  • [Parser] ASCII game symbol for demonic choice -- synonymous with
  • [Core] Compilable standalone to keymaerax-core.jar

Version 4.8.0

04 May 13:59
4.8.0
Compare
Choose a tag to compare

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

Version 4.7.4

04 Nov 20:04
4.7.4
Compare
Choose a tag to compare

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.)

Version 4.7.3

04 Oct 14:13
4.7.3
Compare
Choose a tag to compare

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

Version 4.7.2

11 Sep 03:39
4.7.2
Compare
Choose a tag to compare

Version 4.7.2 provides UI and backend stability updates.

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

Version 4.7.1

01 Sep 21:40
4.7.1
Compare
Choose a tag to compare

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)