equal
deleted
inserted
replaced
3 Author: Tobias Nipkow & Konrad Slind |
3 Author: Tobias Nipkow & Konrad Slind |
4 Copyright 1994 TU Muenchen |
4 Copyright 1994 TU Muenchen |
5 |
5 |
6 The I/O automata of Lynch and Tuttle. |
6 The I/O automata of Lynch and Tuttle. |
7 *) |
7 *) |
|
8 |
|
9 Addsimps [Let_def]; |
8 |
10 |
9 open IOA Asig; |
11 open IOA Asig; |
10 |
12 |
11 val ioa_projections = [asig_of_def, starts_of_def, trans_of_def]; |
13 val ioa_projections = [asig_of_def, starts_of_def, trans_of_def]; |
12 |
14 |
79 by (safe_tac (!claset)); |
81 by (safe_tac (!claset)); |
80 by (res_inst_tac [("Q","reachable A (snd ex n)")] conjunct1 1); |
82 by (res_inst_tac [("Q","reachable A (snd ex n)")] conjunct1 1); |
81 by (nat_ind_tac "n" 1); |
83 by (nat_ind_tac "n" 1); |
82 by (fast_tac (!claset addIs [p1,reachable_0]) 1); |
84 by (fast_tac (!claset addIs [p1,reachable_0]) 1); |
83 by (eres_inst_tac[("x","n1")]allE 1); |
85 by (eres_inst_tac[("x","n1")]allE 1); |
84 by (eres_inst_tac[("P","%x.!a.?Q x a"), ("opt","fst ex n1")] optE 1); |
86 by (eres_inst_tac[("P","%x.!a.?Q x a"), ("opt","fst ex n1")] optionE 1); |
85 by (Asm_simp_tac 1); |
87 by (Asm_simp_tac 1); |
86 by (safe_tac (!claset)); |
88 by (safe_tac (!claset)); |
87 by (etac (p2 RS mp) 1); |
89 by (etac (p2 RS mp) 1); |
88 by (ALLGOALS(fast_tac(!claset addDs [hd Option.option.inject RS iffD1, |
90 by (ALLGOALS(fast_tac(!claset addDs [hd Option.option.inject RS iffD1, |
89 reachable_n]))); |
91 reachable_n]))); |