* marks an incompatible change o WhyML with mutable record fields and type models o why3replayer * "logic" is not a keyword anymore, use "function" and "predicate" * new syntax for conjunction (/\) and disjunction (\/) * functions to create an environment are now exported from Env o fixed Alt-ergo output: no triggers for "exists" quantifier o [IDE] tool "Replay" works o [IDE] does not use Threads anymore, thanks to Call_provers.query_call o VC gen produces explanations in a suitable form for IDE o [IDE] displays explanations using labels of the form "expl:..." o fixed Coq output for polymorphic inductive predicates o [IDE] dropped dependence on Sqlite * calls to prover can now be asynchronous Driver.prove_task now returns some intermediate value (of type prover_call), which can be queried in two ways: - blocking way with Call_provers.wait_on_call - non-blocking way with Call_provers.query_call So old code performing "prove_task t () ()" should be translated to "wait_on_call (prove_task t ()) ()". o record types - introduced with syntax "type t = {| a:int; b:bool |}" actually syntactic sugar for "type t = `mk t' (a:int) (b:bool)" i.e. an algebraic with one constructor and projection functions - a record expression is written {| a = 1; b = True |} version 0.64, Feb 16, 2011 ========================== o configure: if possible, use ocamlfind to find lablgtk2 and sqlite3 o algebraic types: must be well-founded, non-positive constructors are forbidden, recursive functions and predicates must structurally terminate * syntax: /\ renamed into && and \/ into || o accept lowercase names for axioms, lemmas, goals, and cases in inductive predicates o labels in terms and formulas are not printed by default. o transformation split-goal does not split under disjunction anymore o fixed --enable-local o why.conf is no more looked for in the current directory; use -C or WHY3CONFIG instead o why.conf: when changed, a backup up copy is made in why.conf.bak o why.conf now contains a magic number; configuration must be rebuilt with why3config if the magic number has changed o why3config: --autodetect-provers renamed to --detect-provers --autodetect-plugins renamed to --detect-plugins new option --detect to perform both detections o why3config: --conf_file is replaced by -C and --config o TPTP: encoding by explicit polymorphism is not anymore the default encoding for TPTP provers. It is now forbidden to use this encoding in presence of finite types. o IDE: source file names are stored in database with paths relative to the database, so that databases are now easier to move from a machine to another (e.g when they are stored in source control repositories) o better Gappa output: support for sqrt, for negative constants version 0.63, Dec 21, 2010 ========================== o first public release. See release notes in manual