author | Christian Urban <urbanc@in.tum.de> |
Mon, 07 Jun 2010 16:17:35 +0200 | |
changeset 2216 | 1a9dbfe04f7d |
parent 2120 | 2786ff1df475 |
permissions | -rw-r--r-- |
1744
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
1 |
theory ExLetMult |
2057 | 2 |
imports "../NewParser" |
1744
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
3 |
begin |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
4 |
|
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
5 |
atom_decl name |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
6 |
|
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
7 |
nominal_datatype trm = |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
8 |
Vr "name" |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
9 |
| Ap "trm" "trm" |
2057 | 10 |
| Lm x::"name" t::"trm" bind_set x in t |
11 |
| Lt l::"lts" t::"trm" s::"trm" bind "bn l" in t s |
|
1744
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
12 |
and lts = |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
13 |
Lnil |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
14 |
| Lcons "name" "trm" "lts" |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
15 |
binder |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
16 |
bn |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
17 |
where |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
18 |
"bn Lnil = []" |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
19 |
| "bn (Lcons x t l) = (atom x) # (bn l)" |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
20 |
|
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
21 |
thm trm_lts.eq_iff |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
22 |
thm trm_lts.induct |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
23 |
thm trm_lts.fv[simplified trm_lts.supp] |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
24 |
|
2082
0854af516f14
cleaned up a bit the examples; added equivariance to all examples
Christian Urban <urbanc@in.tum.de>
parents:
2057
diff
changeset
|
25 |
|
0854af516f14
cleaned up a bit the examples; added equivariance to all examples
Christian Urban <urbanc@in.tum.de>
parents:
2057
diff
changeset
|
26 |
|
1744
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
27 |
end |
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
28 |
|
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
29 |
|
00680cea0dde
Let with multiple bindings.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
diff
changeset
|
30 |