Skip to content

Releases: LS-Lab/KeYmaeraX-release

Version 4.6.2

26 Nov 22:03
4.6.2
Compare
Choose a tag to compare

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

Version 4.6.1

16 Oct 00:31
4.6.1
Compare
Choose a tag to compare
  • [Parser] Improved stability and error reporting
  • [Tactics] Preview: modular component-based proofs

Version 4.6.0

22 Sep 13:34
4.6.0
Compare
Choose a tag to compare

Version 4.6.0 provides a major update to the archive syntax and archive parsing.

  • [Parser] Major update to archive syntax and parser error reporting
           ArchiveEntry "Example"
           Description "Illustrates the main archive syntax changes".
           
           Definitions
             Real A = 5;
             Real B;
             Bool inv(Real v) <-> v>=0;
           End.
           
           ProgramVariables
             Real x, v;   /* real-valued position and velocity */
             Real a;      /* current acceleration chosen by controller */
           End.
           
           Problem
             A>0 & B>0 & v>=0
             ->
             [
               {
                 { ?v<=5; a:=A; ++ a:=0; ++ a:=-B }
                 { x'=v, v'=a & v>=0 }
               }* @invariant(inv(v))
             ]v>=0
           End.
           
           End.
  • [Tools] Automated proof backup in plaintext archive files

  • [Tools] Improved tool stability, tool busy indicator, and tool restart and connection testing

  • [Tactics] Improved automation on typical model shapes, ODE tactic improvements

Version 4.5.0

09 Jul 20:13
4.5.0
Compare
Choose a tag to compare

Version 4.5.0 provides a major update to the invariant generation and proving techniques for differential equations in its automated ODE tactic.

  • [New] Pegasus invariant generator for differential equations

  • [New] ODE automation tactics for axiomatic proofs from differential ghost and differential refinement axioms, proofs of barrier certificates, and proofs of invariance properties that involve Darboux polynomials

  • [Preview] Invariant generation for loops based on fixpoint-search over invariants for differential equations

  • [Tactics] Liveness: loop convergence with user-definable convergence variable, improved <:=> assignment tactics

  • [Tactics] Extended proof search automation in the context of universal/existential quantifiers

  • [Tools] C code generator for structured monitors with sub-routines and error message printing

Version 4.4.3

18 Apr 18:39
4.4.3
Compare
Choose a tag to compare
  • [New] Tactic barrier proves barrier certificates of ODEs (automatically used in ODE tactic)
    For example, prove x>=0 |- [{x'=100*x^4+y*x^3-x^2+x+c, c'=x+y+z & c>x}]x>=0
    with tactic barrier(1) or tactic ODE(1)

  • [New] Tactic dbx proves ODEs using Darboux polynomials (automatically used in ODE tactic)
    For example, prove x+z<0 |- [{x'=x^2, z'=z*x+y & y=-x^2}]x+z<0
    with tactic dbx({x},1) or tactic ODE(1)

  • [New] Model documentation and proof hints with @invariant annotations for ODEs
    For example, provide a list of two differential invariants:
    [{x'=2,y'=-1} @invariant(x>=old(x), /* x increases */ y<=old(y)) /* y descreases */ ]p()

  • [New] Conditional differential invariant annotations
    For example, provide a list of two differential invariants, one for each branch:
    [{a:=2; ++ a:=-1;} ; {x'=a} @invariant( (x'=2 -> x>=old(x)), /* x increases */ (x'=-1 -> x<=old(x))) /* x decreases */ ]p()

  • [UI] Performance improvements

  • [Tactics] Tactic dW now keeps all initial conditions

  • [Tactics] Configurable timeouts for tactics QE and ODE (configuration file keymaerax.conf)

  • [Tactics] Combinator s > t runs tactic s first and then tactic t regardless of the result of s

Version 4.4.2

28 Feb 15:37
4.4.2
Compare
Choose a tag to compare
  • [UI] New web UI axiom and proof step browser
  • [UI] Hint display and tactic popover fixes
  • [Performance] Significant performance improvements by disabling logging by default
  • [Tactics] New loop induction with abstraction
    • throughout(inv,pos) for loops init -> [{a;b}*]safe
      proves loop from subgoals
      base case: init -> inv
      use case: inv -> safe
      induction steps: inv -> [a]inv and inv -> [b]inv

Version 4.4.1

18 Jan 18:55
4.4.1
Compare
Choose a tag to compare
  • Backend tool and tactic stability improvements
  • [New] Store and use lemma entries in .kyx archives:
    Store: Lemma "My lemma". ... End. to store the given lemma under the identified name "My lemma".
    Use:
    useLemma({`My lemma`},{`prop`}) to close goal by lemma, use propositional reasoning to adapt shape
    useLemmaAt({`My lemma`},{`1`},2) to match lemma expression at sub-position 1 with formula at sequent position 2
  • [New] Convert proof terms to Isabelle dL proof checker
  • [New] Configuration is now stored in a text file: ~/.keymaerax/keymaerax.conf
  • [New] Transform hybrid programs to C control code

Version 4.4

18 Sep 12:15
4.4
Compare
Choose a tag to compare

KeYmaera X version 4.4

  • [Core] New: N-ary formula and function definitions.
    For example,
    define a binary function 'sum' as: sum(R,R) = ( ._0 + ._1).
    define predicate 'sumgt' as: sumgt(R,R,R) <-> ( sum(._0,._1) > ._2 ).
  • [Parser] New: Program definitions.
    For example, HP increment ::= { x:=x+1; }.
  • [Tactics] New: use finished proofs as lemmas, for example useLemma({Name of proved model}) when the open goal matches the lemma literally, useLemma({Name of proved model}, {prop}) to apply the lemma with propositional reasoning.
  • [Tools] New: proof statistics after checking archives with -check
  • [Tools] New: C control code synthesis (feature preview)
  • [Tools] Improved: C monitor code synthesis (feature preview)
  • Stability improvements: archive checking, ODE solution ordering

Version 4.3.16

26 Aug 16:55
4.3.16
Compare
Choose a tag to compare

Version 4.3.16 of the KeYmaera X Theorem Prover

  • [Tactics] Three new tactics for automatic approximation of {e'=e} and {s'=c, c'=-s}
    out to n terms in the series expansion.
    • circularApproximate(s,c,n,pos): For circular dynamics {s'=c, c'=-s}.
    • expApproximate(e,n,pos): for {e'=e}.
    • autoApproximate(n,pos): Tries to find {e'=c} then tries to find.
      {s'=c,c'=-s} and applies the relevant approximation tactic.
  • [UI] The startup sequence is improved.
    • The status indicator now actually indicates status.
    • We no longer automatically open a browser window on Linux, since this
      caused hanging on some machines.
  • [UI] Formula editing
    • Expand functions min/max/abs, e.g., expand(abs(0)) >= 0
    • Abbreviate terms, e.g., x+abbrv(2+3,five) >= 0
  • [UI] Search and apply lemmas
    • Auto-completion search box in the formula dialog
    • Click lemma subformulas to adjust the direction in which lemmas are applied
  • [Parser] Bug fix in how numbers are pretty-printed.
  • [Tactics] Various improvements to the tactics framework and standard library.

Version 4.3.15

09 Aug 00:25
4.3.15
Compare
Choose a tag to compare

Version 4.3.15 of the KeYmaera X theorem prover

  • UI: Improvements to presentation and /show mode
  • UI: Render nullary function symbols without parentheses
  • Updates Z3 to 4.5.0, improved QE support for machines without Mathematica.
  • Improved update code for Windows.