2436
|
1 |
theory LetRec
|
2454
|
2 |
imports "../Nominal2"
|
1596
|
3 |
begin
|
|
4 |
|
2311
|
5 |
atom_decl name
|
2056
|
6 |
|
2436
|
7 |
nominal_datatype let_rec:
|
2438
abafea9b39bb
corrected bug with fv-function generation (that was the problem with recursive binders)
Christian Urban <urbanc@in.tum.de>
diff
changeset
|
8 |
trm =
|
2056
|
9 |
Var "name"
|
2438
abafea9b39bb
corrected bug with fv-function generation (that was the problem with recursive binders)
Christian Urban <urbanc@in.tum.de>
diff
changeset
|
10 |
| App "trm" "trm"
|
abafea9b39bb
corrected bug with fv-function generation (that was the problem with recursive binders)
Christian Urban <urbanc@in.tum.de>
diff
changeset
|
11 |
| Lam x::"name" t::"trm" bind (set) x in t
|
abafea9b39bb
corrected bug with fv-function generation (that was the problem with recursive binders)
Christian Urban <urbanc@in.tum.de>
diff
changeset
|
12 |
| Let_Rec bp::"bp" t::"trm" bind (set) "bn bp" in bp t
|
1946
|
13 |
and bp =
|
2438
abafea9b39bb
corrected bug with fv-function generation (that was the problem with recursive binders)
Christian Urban <urbanc@in.tum.de>
diff
changeset
|
14 |
Bp "name" "trm"
|
1596
|
15 |
binder
|
2438
abafea9b39bb
corrected bug with fv-function generation (that was the problem with recursive binders)
Christian Urban <urbanc@in.tum.de>
diff
changeset
|
16 |
bn::"bp \<Rightarrow> atom set"
|
1596
|
17 |
where
|
2438
abafea9b39bb
corrected bug with fv-function generation (that was the problem with recursive binders)
Christian Urban <urbanc@in.tum.de>
diff
changeset
|
18 |
"bn (Bp x t) = {atom x}"
|
1596
|
19 |
|
2436
|
20 |
thm let_rec.distinct
|
|
21 |
thm let_rec.induct
|
|
22 |
thm let_rec.exhaust
|
|
23 |
thm let_rec.fv_defs
|
|
24 |
thm let_rec.bn_defs
|
|
25 |
thm let_rec.perm_simps
|
|
26 |
thm let_rec.eq_iff
|
|
27 |
thm let_rec.fv_bn_eqvt
|
|
28 |
thm let_rec.size_eqvt
|
2082
0854af516f14
cleaned up a bit the examples; added equivariance to all examples
Christian Urban <urbanc@in.tum.de>
diff
changeset
|
29 |
|
2067
|
30 |
|
1596
|
31 |
end
|
|
32 |
|
|
33 |
|
|
34 |
|