equal
deleted
inserted
replaced
18 interpretation test [simp]: L + M a b c [x y z] . |
18 interpretation test [simp]: L + M a b c [x y z] . |
19 |
19 |
20 print_interps L |
20 print_interps L |
21 print_interps M |
21 print_interps M |
22 |
22 |
23 interpretation test [simp]: L . |
23 interpretation test [simp]: L print_interps M . |
24 |
24 |
25 interpretation L . |
25 interpretation L . |
26 |
26 |
27 (* processing of locale expression *) |
27 (* processing of locale expression *) |
28 |
28 |
50 (* both X and Y get type 'b since 'b is the internal type of parameter b, |
50 (* both X and Y get type 'b since 'b is the internal type of parameter b, |
51 not wanted, but put up with for now. *) |
51 not wanted, but put up with for now. *) |
52 |
52 |
53 print_interps A |
53 print_interps A |
54 |
54 |
55 (* |
55 (* possible accesses |
56 thm asm_A a.asm_A p1.a.asm_A |
56 thm p1.a.asm_A thm LocaleTest.p1.a.asm_A |
|
57 thm LocaleTest.asm_A thm p1.asm_A |
|
58 *) |
|
59 |
|
60 (* without prefix *) |
|
61 |
|
62 interpretation C ["W::'b" "Z::'b"] by (auto intro: A.intro C_axioms.intro) |
|
63 |
|
64 print_interps A |
|
65 |
|
66 (* possible accesses |
|
67 thm a.asm_A thm asm_A thm LocaleTest.a.asm_A thm LocaleTest.asm_A |
57 *) |
68 *) |
58 |
69 |
59 interpretation p2: D [X Y "Y = X"] by (auto intro: A.intro simp: eq_commute) |
70 interpretation p2: D [X Y "Y = X"] by (auto intro: A.intro simp: eq_commute) |
60 |
71 |
61 print_interps D |
72 print_interps D |
62 |
73 |
63 (* |
74 (* |
64 thm p2.a.asm_A |
75 thm p2.a.asm_A |
65 *) |
76 *) |
66 |
77 |
67 interpretation p3: D [X Y] by (auto intro: A.intro) |
78 interpretation p3: D [X Y] . |
68 |
79 |
69 (* duplicate: not registered *) |
80 (* duplicate: not registered *) |
70 (* |
81 (* |
71 thm p3.a.asm_A |
82 thm p3.a.asm_A |
72 *) |
83 *) |
85 (* without a prefix *) |
96 (* without a prefix *) |
86 (* TODO!!! |
97 (* TODO!!! |
87 interpretation A [Z] apply - apply (auto intro: A.intro) done |
98 interpretation A [Z] apply - apply (auto intro: A.intro) done |
88 *) |
99 *) |
89 |
100 |
|
101 theorem True |
|
102 proof - |
|
103 fix alpha::i and beta::i and gamma::i |
|
104 assume "A(alpha)" |
|
105 then interpret p5: A [alpha] . |
|
106 print_interps A |
|
107 interpret p6: C [alpha beta] by (auto intro: C_axioms.intro) |
|
108 print_interps A (* p6 not added! *) |
|
109 print_interps C |
|
110 qed rule |
|
111 |
|
112 (* lemma "bla.bla": True by rule *) |
|
113 |
|
114 |
90 end |
115 end |