All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

2.2.1 (2022-07-04)

Added

Removed

Changed

2.2.0 (2022-03-18)

Added

Changed

Removed

2.1.0 (2022-01-17)

Added

Changed

Removed

2.0.0 (2021-12-15)

Release of the VSCode extension on the Marketplace (2021-12-10)

Structured proof scripts (2021-12-07)

A tactic replacing the current goal by n new goals must be followed by n proof scripts enclosed in curly brackets. For instance, instead of writing induction; /* case 0 */ t1; ..; tm; /* case s */ q1; ..; qn, we must now write induction {t1; ..; tm} {q1; ..; qn}.

Exception for tactics not really changing the current goal like "have": /* proof of u */ have h: t; /* proof of t */ t1; ..; tm; /* proof of u continued */ q1; ..; qn must now be written have h: t {t1; ..; tm}; q1; ..; qn.

Other modifications in the grammar:

Improve and simplify LP lexer (2021-12-07)

Update dkParser to be in sync with dkcheck (2021-11-30)

Add option --record-time (2021-11-30)

Improve evaluation and convertibility test (2021-06-02)

Improve logs (2021-06-01)

Better handling of let's (2021-05-26)

Interface Improvements (2021-05-20)

Record metavariable creation and instantiation during scoping, type inference and unification (2021-05-20)

Bugfixes in rewriting engine (2021-05-06)

Factorize type rw_patt (2021-04-07)

The types Term.rw_patt and Syntax.p_rw_patt_aux are merged into a single polymorphic type Syntax.rw_patt.

API modification (2021-04-07)

Several functions are exposed,

Add commutative and associative-commutative symbols (2021-04-07)

Improvements in some tactics (2021-04-05)

Extend command inductive to strictly-positive inductive types (2021-04-02)

Renamings (2021-04-01)

Do not unescape identifiers anymore, and move scope.ml from Core to Parsing (2021-03-30)

Forbid bound variable names ending with a positive integer with leading zeros since there are not compatible with Bindlib (2021-03-29)

Fix #341: remove spurious warnings on bound variables (2021-03-29)

Introduce new_tvar = Bindlib.new_var mkfree (2021-03-26)

Add tactic generalize, and rename tactic simpl into simplify (2021-03-25)

Use Dune for opam integration (2021-03-25)

Add tactic have (2021-03-24)

Compatibility with Why3 1.4.0

Add tactic simpl <id> for unfolding a specific symbol only (2021-03-22)

and slightly improve Ctxt.def_of

Bug fixes (2021-03-22)

Fix and improve inverse image computation (2021-03-16)

Add tactic admit (2021-03-12)

Improvements in type inference, unification and printing (2021-03-11)

Remove set keyword (2021-03-04)

Various bug fixes (2021-03-02)

Fix notation declarations (2021-02-19)

Improve handling of ghost symbols and metavariable identifier (2021-02-18)

Improve navigation in Emacs/VSCode (2021-02-18)

Add tactic induction (2021-02-17)

File renamings and splitting and better handling of escaped identifier (2021-02-12)

File renamings and source code segmentation (2021-02-08)

Add parameters to inductive definitions (2021-02-02)

Parser (2021-01-30)

Replace Earley by Menhir, Pratter and Sedlex

Syntax modifications:

Code modifications:

Unification goals (2020-12-15)

changes in the syntax:

Mutually defined inductive types (2020-12-09)

Inductive types (2020-09-29)

Documentation in Sphinx (2020-07-31)

Goals display in Emacs (2020-07-06)

Sequential symbol (2020-07-06)

Change semantics of environments (2020-06-10)

Add tactic fail (2020-05-26)

Matching on products (2020-05-18)

Allow users to match on product Πx: t, u and on the domain of binders.

Quantifier parsing and pretty-printing (2020-05-08)

Unification rules (2020-04-29)

Introduction of unification rules, taken from http://www.cs.unibo.it/~asperti/PAPERS/tphol09.pdf. A unification rule can be set with

set unif_rule t ≡ u ↪ v ≡ w, x ≡ y

Pretty-printing (2020-04-25)

Syntax change (2020-04-16)

Let bindings (2020-03-31)

Adding let-bindings to the terms structure.

Prepare for modern versions of OCaml (2020-03-26)

File management and module mapping (2020-03-20)

Trees simplification (2019-12-05)

Simplification of the decision tree structure

Protected symbols (2019-11-14)

Introducing protected and private symbols.

Calling provers with Why3 (2019-10-29)

Introducing the why3 tactic to call external provers.

Eta equality as a flag (2019-10-21)

Rewriting using decision trees (2019-09-17)

1.0.0 (2018-11-28)

First major release of Lambdapi. It introduces:

0.1.0 (2018-09-19)

First release of Lambdapi.