equal
deleted
inserted
replaced
162 by (auto elim!: Stable squareE simp: Psi_defs) |
162 by (auto elim!: Stable squareE simp: Psi_defs) |
163 |
163 |
164 lemma N1_enabled_at_g: "|- pc1 = #g --> Enabled (<N1>_(x,y,sem,pc1,pc2))" |
164 lemma N1_enabled_at_g: "|- pc1 = #g --> Enabled (<N1>_(x,y,sem,pc1,pc2))" |
165 apply clarsimp |
165 apply clarsimp |
166 apply (rule_tac F = gamma1 in enabled_mono) |
166 apply (rule_tac F = gamma1 in enabled_mono) |
167 apply (tactic {* enabled_tac (thm "Inc_base") 1 *}) |
167 apply (tactic {* enabled_tac @{clasimpset} @{thm Inc_base} 1 *}) |
168 apply (force simp: gamma1_def) |
168 apply (force simp: gamma1_def) |
169 apply (force simp: angle_def gamma1_def N1_def) |
169 apply (force simp: angle_def gamma1_def N1_def) |
170 done |
170 done |
171 |
171 |
172 lemma g1_leadsto_a1: |
172 lemma g1_leadsto_a1: |
184 |
184 |
185 (* symmetrical for N2, and similar for beta2 *) |
185 (* symmetrical for N2, and similar for beta2 *) |
186 lemma N2_enabled_at_g: "|- pc2 = #g --> Enabled (<N2>_(x,y,sem,pc1,pc2))" |
186 lemma N2_enabled_at_g: "|- pc2 = #g --> Enabled (<N2>_(x,y,sem,pc1,pc2))" |
187 apply clarsimp |
187 apply clarsimp |
188 apply (rule_tac F = gamma2 in enabled_mono) |
188 apply (rule_tac F = gamma2 in enabled_mono) |
189 apply (tactic {* enabled_tac (thm "Inc_base") 1 *}) |
189 apply (tactic {* enabled_tac @{clasimpset} @{thm Inc_base} 1 *}) |
190 apply (force simp: gamma2_def) |
190 apply (force simp: gamma2_def) |
191 apply (force simp: angle_def gamma2_def N2_def) |
191 apply (force simp: angle_def gamma2_def N2_def) |
192 done |
192 done |
193 |
193 |
194 lemma g2_leadsto_a2: |
194 lemma g2_leadsto_a2: |
203 done |
203 done |
204 |
204 |
205 lemma N2_enabled_at_b: "|- pc2 = #b --> Enabled (<N2>_(x,y,sem,pc1,pc2))" |
205 lemma N2_enabled_at_b: "|- pc2 = #b --> Enabled (<N2>_(x,y,sem,pc1,pc2))" |
206 apply clarsimp |
206 apply clarsimp |
207 apply (rule_tac F = beta2 in enabled_mono) |
207 apply (rule_tac F = beta2 in enabled_mono) |
208 apply (tactic {* enabled_tac (thm "Inc_base") 1 *}) |
208 apply (tactic {* enabled_tac @{clasimpset} @{thm Inc_base} 1 *}) |
209 apply (force simp: beta2_def) |
209 apply (force simp: beta2_def) |
210 apply (force simp: angle_def beta2_def N2_def) |
210 apply (force simp: angle_def beta2_def N2_def) |
211 done |
211 done |
212 |
212 |
213 lemma b2_leadsto_g2: |
213 lemma b2_leadsto_g2: |
245 |
245 |
246 lemma N1_enabled_at_both_a: |
246 lemma N1_enabled_at_both_a: |
247 "|- pc2 = #a & (PsiInv & pc1 = #a) --> Enabled (<N1>_(x,y,sem,pc1,pc2))" |
247 "|- pc2 = #a & (PsiInv & pc1 = #a) --> Enabled (<N1>_(x,y,sem,pc1,pc2))" |
248 apply clarsimp |
248 apply clarsimp |
249 apply (rule_tac F = alpha1 in enabled_mono) |
249 apply (rule_tac F = alpha1 in enabled_mono) |
250 apply (tactic {* enabled_tac (thm "Inc_base") 1 *}) |
250 apply (tactic {* enabled_tac @{clasimpset} @{thm Inc_base} 1 *}) |
251 apply (force simp: alpha1_def PsiInv_defs) |
251 apply (force simp: alpha1_def PsiInv_defs) |
252 apply (force simp: angle_def alpha1_def N1_def) |
252 apply (force simp: angle_def alpha1_def N1_def) |
253 done |
253 done |
254 |
254 |
255 lemma a1_leadsto_b1: |
255 lemma a1_leadsto_b1: |
286 done |
286 done |
287 |
287 |
288 lemma N1_enabled_at_b: "|- pc1 = #b --> Enabled (<N1>_(x,y,sem,pc1,pc2))" |
288 lemma N1_enabled_at_b: "|- pc1 = #b --> Enabled (<N1>_(x,y,sem,pc1,pc2))" |
289 apply clarsimp |
289 apply clarsimp |
290 apply (rule_tac F = beta1 in enabled_mono) |
290 apply (rule_tac F = beta1 in enabled_mono) |
291 apply (tactic {* enabled_tac (thm "Inc_base") 1 *}) |
291 apply (tactic {* enabled_tac @{clasimpset} @{thm Inc_base} 1 *}) |
292 apply (force simp: beta1_def) |
292 apply (force simp: beta1_def) |
293 apply (force simp: angle_def beta1_def N1_def) |
293 apply (force simp: angle_def beta1_def N1_def) |
294 done |
294 done |
295 |
295 |
296 (* Now assemble the bits and pieces to prove that Psi is fair. *) |
296 (* Now assemble the bits and pieces to prove that Psi is fair. *) |