Skip to content

Commit 924f599

Browse files
committed
initial set-up with Lambda as a sub-directory.
1 parent 3c786ae commit 924f599

File tree

162 files changed

+56596
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

162 files changed

+56596
-0
lines changed

#script#

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
(* This program is free software; you can redistribute it and/or *)
2+
(* modify it under the terms of the GNU Lesser General Public License *)
3+
(* as published by the Free Software Foundation; either version 2.1 *)
4+
(* of the License, or (at your option) any later version. *)
5+
(* *)
6+
(* This program is distributed in the hope that it will be useful, *)
7+
(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)
8+
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)
9+
(* GNU General Public License for more details. *)
10+
(* *)
11+
(* You should have received a copy of the GNU Lesser General Public *)
12+
(* License along with this program; if not, write to the Free *)
13+
(* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *)
14+
(* 02110-1301 USA *)
15+
16+
17+
(**********************************************************************)
18+
(* Intensional Lambda Calculus *)
19+
(* *)
20+
(* is implemented in Coq by adapting the implementation of *)
21+
(* Lambda Calculus from Project Coq *)
22+
(* 2015 *)
23+
(**********************************************************************)
24+
25+
(**********************************************************************)
26+
(* script *)
27+
(* *)
28+
(* Barry Jay *)
29+
(* *)
30+
(**********************************************************************)
31+
32+
(*
33+
The files for building the Lambda-Factor Calculus, and proving some useful properties.
34+
Many files are adapted from Lambda Calculus in Project Coq. The new files are
35+
36+
coqc General.v; (* various things *)
37+
coqc Lambda_tactics.v (* some tactics *)
38+
coqc Substitution_term.v; (* a variation on Substitution.v *)
39+
coqc SF_reduction.v; (* operator reductions *)
40+
coqc LamSF_reduction.v; (* all reductions *)
41+
coqc Normal.v; (* normal forms *)
42+
coqc Closed.v; (* closed terms *)
43+
coqc Eval.v; (* evaluation tactics *)
44+
coqc Equal.v; (* decidable equality of closed normal forms *)
45+
coqc Combinators (* decide if a program is a combinator *)
46+
coqc Analysis.v; (* conversion of closed normal forms to combinators and back *)
47+
48+
49+
The main theorems are:
50+
51+
1. lambda-factor calculus is a conservative extension of pure lambda calculus
52+
2. lambda-factor calculus is a conservative extension of SF-calculus.
53+
3. lambda-factor calculus is confluent.
54+
4. The irreducible terms are easily characterised (as the normal forms).
55+
5. equality of closed normal forms is definable.
56+
6. closed normal forms can be converted to combinators having the same extensional behaviour
57+
by application of a term, concrete.
58+
7. concrete also preserves intensional behaviour (i.e. no infomration loss)
59+
since it can be reversed by application of another term, abstract.
60+
61+
*)
62+
63+
64+
coqc General.v;
65+
coqc Test.v;
66+
coqc LamSF_Terms.v;
67+
coqc LamSF_Tactics.v
68+
coqc LamSF_Substitution_term.v;
69+
70+
coqc Beta_Reduction.v;
71+
coqc LamSF_Redexes.v;
72+
coqc LamSF_Substitution.v;
73+
coqc LamSF_Residuals.v;
74+
coqc LamSF_Marks.v;
75+
coqc LamSF_Simulation.v;
76+
coqc LamSF_Cube.v;
77+
coqc LamSF_Confluence.v;
78+
79+
coqc SF_reduction.v;
80+
coqc LamSF_reduction.v;
81+
82+
coqc LamSF_Normal.v;
83+
coqc LamSF_Closed.v;
84+
coqc LamSF_Eval.v;
85+
coqc Equal.v;
86+
coqc Eta;
87+
88+
coqc Homomorphism;
89+
90+
coqc Combinators.v;
91+
coqc Extensional_to_combinator.v
92+
coqc Binding.v;
93+
coqc Unstar
94+
coqc Intensional_to_combinator.v
95+
96+
97+
98+
99+

0 commit comments

Comments
 (0)