|
| 1 | +appFOLDLScript.sml |
| 2 | + Defines iterated (left-associated) application in Λ so that |
| 3 | + |
| 4 | + M @* [M1; M2] = (M @@ M1) @@ M2 |
| 5 | + |
1 | 6 | basic_swapScript.sml
|
2 | 7 | Very basic theory of swaps over strings (the swapstr constant), and
|
3 | 8 | permutations (which take a list of pairs of strings to swap). Also
|
4 | 9 | defines the NEW constant, which is used everywhere (including in
|
5 |
| - the dB and nc developments above). |
| 10 | + the dB and nc developments in other-modesls). |
| 11 | + |
| 12 | +binderLib.{sig,sml} |
| 13 | + Tools for doing proofs with terms that include binders, including |
| 14 | + function definition and facilities from NEWLib. |
| 15 | + |
| 16 | +ctermScript.sml |
| 17 | + Defines a type like Λ(A) with A a set of additional constants, |
| 18 | + introduced, for example, in Barendregt §5.2. In HOL, the A is a |
| 19 | + type variable so that we get α cterms with constructors APP, LAM, |
| 20 | + CONST and VAR. |
| 21 | + |
| 22 | +generic_termsScript.sml |
| 23 | + Defines a large type of trees with α-equivalent binders over |
| 24 | + strings that can be used as the basis for the definition of a |
| 25 | + number of "nominal" types. The genind constant provides a way of |
| 26 | + encoding a variety of subsets of this type, as described in |
| 27 | + notes.txt. |
| 28 | + |
| 29 | +NEWLib.{sig,sml} |
| 30 | + simple tactics to use with the NEW constant. |
| 31 | + |
| 32 | +nomdatatype.{sig,sml} |
| 33 | + Some very rudimentary code to provide some automation in the |
| 34 | + definition of types built from generic_terms (as above). |
6 | 35 |
|
7 | 36 | nomsetScript.sml
|
8 | 37 | A more involved theory of permutations and their actions on
|
9 | 38 | arbitrary types (the "nominal sets"). Includes the notion of
|
10 | 39 | support.
|
11 | 40 |
|
12 |
| -NEWLib.{sig,sml} |
13 |
| - simple tactics to use with the NEW constant. |
14 |
| - |
15 |
| -binderLib.{sig,sml} |
16 |
| - Tools for doing proofs with terms that include binders, including |
17 |
| - function definition and facilities from NEWLib. |
| 41 | +notes.txt |
| 42 | + Tries to explain the genind + generic_terms technology for building |
| 43 | + new types with binders. |
18 | 44 |
|
19 |
| -pretermScript.sml termScript.sml |
20 |
| - Using a quotient over raw syntax from pretermTheory, establishes a |
21 |
| - type of lambda calculus terms, and defines substitution, the notion |
22 |
| - of free variable and permutations over that type. Proves some |
23 |
| - simple lemmas about substitution. For example, |
| 45 | +termScript.sml |
| 46 | + Constructs the classic type of lambda terms, with three |
| 47 | + constructors, called Λ in lots of places. Does this by constructing |
| 48 | + a subtype of the “generic” terms. Defines various flavours of |
| 49 | + substitution proves some simple lemmas about these. For example, |
24 | 50 |
|
25 | 51 | lemma14a: |- [VAR x/x] t = t
|
26 | 52 |
|
| 53 | +termSyntax.{sig,sml} |
| 54 | + Standard HOL-style syntactic support for programmatically |
| 55 | + manipulating terms of type “:term”. |
0 commit comments