This page presents the formal theory given in my thesis. This presentation is only scarcely documented; for explanation I refer to my thesis. The theory is given in the format of Yarrow script files, i.e. files which can serve as input to Yarrow. In fact, the Yarrow distribution comes with all these script files.
A Yarrow script file consists of a sequence of commands. The main commands are:
Var x:Tx of type T
to the context. These variable declarations are printed in
red.
Def x:=t:Tx as t of type T to the context (the :T part is optional).
These definitions are printed in
blue.
Prove x:TT which will be given name x.
This command is printed in blue.
After such a command, Yarrow files contain several commands to construct this
inhabitant. These commands are printed in black.
LoadInfix, Implicit and Binder -- The Yarrow syntax of terms is as follows:
\x:T.e @x:T.e let x:=e:T.f f e (e)
Precedence goes from lowest to highest, so \x:T.x x means
\x:T.(x x) and not (\x:T.x) x.
The lambda, pi and let terms do extend to right as far as possible.
We use the following shorthands:
\x1,x2,..xn:T.e @x1,x2,..xn:T.e T->U @x:T.U if U (the -> is right-assoc
iative)
Now for the theory itself. It is structured here according to my thesis. For a better overview, many script files come also in a version without the commands that form the proofs.
lambdaL
logic full or
without proofs.
bool full or
without proofs.
nat full or
without proofs.
list full or
without proofs.
sort full or
without proofs.
logic2 full or
without proofs.
bool2 full or
without proofs.
nat2 full or
without proofs.
list2 full or
without proofs.
lambdaLplus full
or without proofs.
LOLP_Axioms full
or without proofs.
stack full or
without proofs.
prelims full or
without proofs.
bag1 full or
without proofs.
bag2 full or
without proofs.
bag3 full or
without proofs.
parametricity full or
without proofs.
library full or
without proofs.
axiomatizing full or
without proofs.
lambdaLsubplus
subLibrary full or
without proofs.
sortId full or
without proofs.
pointDevelop1
pointDevelop2
pointDevelop3