blob: a6f078794eaab7b8f45cdcc9b593c1812a21e530 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
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.
|