equal
deleted
inserted
replaced
9 |
9 |
10 Goal "[] <> (.~ P) = (.~ <> [] P)"; |
10 Goal "[] <> (.~ P) = (.~ <> [] P)"; |
11 by (rtac ext 1); |
11 by (rtac ext 1); |
12 by (simp_tac (simpset() addsimps [Diamond_def,NOT_def,Box_def])1); |
12 by (simp_tac (simpset() addsimps [Diamond_def,NOT_def,Box_def])1); |
13 by Auto_tac; |
13 by Auto_tac; |
14 qed"simple_try"; |
14 qed"simple"; |
15 |
15 |
16 Goal "nil |= [] P"; |
16 Goal "nil |= [] P"; |
17 by (asm_full_simp_tac (simpset() addsimps [satisfies_def, |
17 by (asm_full_simp_tac (simpset() addsimps [satisfies_def, |
18 Box_def,tsuffix_def,suffix_def,nil_is_Conc])1); |
18 Box_def,tsuffix_def,suffix_def,nil_is_Conc])1); |
19 qed"Boxnil"; |
19 qed"Boxnil"; |
71 Goal "s |= [] (F .--> G) .--> [] F .--> [] G"; |
71 Goal "s |= [] (F .--> G) .--> [] F .--> [] G"; |
72 by (simp_tac (simpset() addsimps [satisfies_def,IMPLIES_def,Box_def])1); |
72 by (simp_tac (simpset() addsimps [satisfies_def,IMPLIES_def,Box_def])1); |
73 qed"normalT"; |
73 qed"normalT"; |
74 |
74 |
75 |
75 |
76 (* |
|
77 Goal "s |= <> F .& <> G .--> (<> (F .& <> G) .| <> (G .& <> F))"; |
|
78 by (simp_tac (simpset() addsimps [satisfies_def,IMPLIES_def,AND_def,OR_def,Diamond_def2])1); |
|
79 by (rtac impI 1); |
|
80 by (etac conjE 1); |
|
81 by (etac exE 1); |
|
82 by (etac exE 1); |
|
83 |
|
84 |
|
85 by (rtac disjI1 1); |
|
86 |
|
87 Goal "!!s. [| tsuffix s1 s ; tsuffix s2 s|] ==> tsuffix s2 s1 | tsuffix s1 s2"; |
|
88 by (asm_full_simp_tac (simpset() addsimps [tsuffix_def,suffix_def])1); |
|
89 by (REPEAT (etac conjE 1)); |
|
90 by (REPEAT (etac exE 1)); |
|
91 by (REPEAT (etac conjE 1)); |
|
92 by (hyp_subst_tac 1); |
|
93 |
|
94 *) |
|
95 |
|
96 |
|
97 section "TLA Rules by Lamport"; |
76 section "TLA Rules by Lamport"; |
98 |
77 |
99 (* ---------------------------------------------------------------- *) |
78 (* ---------------------------------------------------------------- *) |
100 (* TLA Rules by Lamport *) |
79 (* TLA Rules by Lamport *) |
101 (* ---------------------------------------------------------------- *) |
80 (* ---------------------------------------------------------------- *) |
110 |
89 |
111 Goal "!! P. valid P ==> validT ([] (Init P))"; |
90 Goal "!! P. valid P ==> validT ([] (Init P))"; |
112 by (rtac STL1a 1); |
91 by (rtac STL1a 1); |
113 by (etac STL1b 1); |
92 by (etac STL1b 1); |
114 qed"STL1"; |
93 qed"STL1"; |
115 |
|
116 |
|
117 |
94 |
118 (* Note that unlift and HD is not at all used !!! *) |
95 (* Note that unlift and HD is not at all used !!! *) |
119 Goal "!! P. valid (P .--> Q) ==> validT ([] (Init P) .--> [] (Init Q))"; |
96 Goal "!! P. valid (P .--> Q) ==> validT ([] (Init P) .--> [] (Init Q))"; |
120 by (asm_full_simp_tac (simpset() addsimps [valid_def,validT_def,satisfies_def,IMPLIES_def,Box_def,Init_def])1); |
97 by (asm_full_simp_tac (simpset() addsimps [valid_def,validT_def,satisfies_def,IMPLIES_def,Box_def,Init_def])1); |
121 qed"STL4"; |
98 qed"STL4"; |
173 Goalw [Next_def,satisfies_def,Box_def,NOT_def,IMPLIES_def] |
150 Goalw [Next_def,satisfies_def,Box_def,NOT_def,IMPLIES_def] |
174 "s |= [] (F .--> Next F) .--> F .--> []F"; |
151 "s |= [] (F .--> Next F) .--> F .--> []F"; |
175 by (Asm_full_simp_tac 1); |
152 by (Asm_full_simp_tac 1); |
176 by Auto_tac; |
153 by Auto_tac; |
177 |
154 |
178 |
|
179 by (asm_full_simp_tac (simpset() addsimps [tsuffix_def,suffix_def])1); |
155 by (asm_full_simp_tac (simpset() addsimps [tsuffix_def,suffix_def])1); |
180 by Auto_tac; |
156 by Auto_tac; |
181 |
157 |
182 |
158 |
183 |
159 |