slackbuilds/academic/abella
Heinz Wiesinger 63daf9f79a All: Support $PRINT_PACKAGE_NAME env var
Signed-off-by: Heinz Wiesinger <pprkut@slackbuilds.org>
2021-07-17 21:55:09 +02:00
..
README academic/abella: Fix README. 2020-10-17 09:36:38 +07:00
abella.SlackBuild All: Support $PRINT_PACKAGE_NAME env var 2021-07-17 21:55:09 +02:00
abella.info academic/abella: Added (interactive theorem prover). 2019-08-10 01:23:33 +07:00
slack-desc academic/abella: Added (interactive theorem prover). 2019-08-10 01:23:33 +07:00

README

Abella is an interactive theorem prover based on lambda-tree syntax.

This means that Abella is well-suited for reasoning about the
meta-theory of programming languages and other logical systems
which manipulate objects with binding. For example, the following
applications are included in the distribution of Abella.

* Various results on the lambda calculus involving big-step
  evaluation, small-step evaluation, and typing judgments
* Cut-admissibility for a sequent calculus
* Part 1a and Part 2a of the POPLmark challenge
* Takahashi's proof of the Church-Rosser theorem
* Tait's logical relations argument for weak normalization of the
  simply-typed lambda calculus
* Girard's proof of strong normalization of the simply-typed lambda
  calculus
* Some ?-calculus meta-theory
* Relation between ?-reduction and paths in A-calculus

For Full List:
http://abella-prover.org/examples/index.html

Abella uses a two-level logic approach to reasoning. Specifications
are made in the logic of second-order hereditary Harrop formulas using
lambda-tree syntax. This logic is executable and is a subset of the
AProlog language (see the Teyjus system for an implementation of this
language).

The reasoning logic of Abella is the culmination of a series
of extensions to proof theory for the treatment of definitions,
lambda-tree syntax, and generic judgments. The reasoning logic of
Abella is able to encode the semantics of our specification logic as a
definition and thereby reason over specifications in that logic.