| author | wenzelm | 
| Tue, 30 Mar 2010 00:12:42 +0200 | |
| changeset 36014 | c51a077680e4 | 
| parent 35416 | d8d7d1b785af | 
| permissions | -rw-r--r-- | 
| 6466 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 1 | (* Title: HOL/Modelcheck/MuckeExample1.thy | 
| 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 2 | ID: $Id$ | 
| 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 3 | Author: Olaf Mueller, Jan Philipps, Robert Sandner | 
| 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 4 | Copyright 1997 TU Muenchen | 
| 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 5 | *) | 
| 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 6 | |
| 17272 | 7 | theory MuckeExample1 | 
| 8 | imports MuckeSyn | |
| 9 | begin | |
| 6466 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 10 | |
| 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 11 | types | 
| 17272 | 12 | state = "bool * bool * bool" | 
| 6466 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 13 | |
| 35416 
d8d7d1b785af
replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
 haftmann parents: 
17272diff
changeset | 14 | definition INIT :: "state pred" where | 
| 17272 | 15 | "INIT x == ~(fst x)&~(fst (snd x))&~(snd (snd x))" | 
| 16 | N :: "[state,state] => bool" | |
| 17 | "N x y == let x1 = fst(x); x2 = fst(snd(x)); x3 = snd(snd(x)); | |
| 18 | y1 = fst(y); y2 = fst(snd(y)); y3 = snd(snd(y)) | |
| 19 | in (~x1&~x2&~x3 & y1&~y2&~y3) | | |
| 20 | (x1&~x2&~x3 & ~y1&~y2&~y3) | | |
| 21 | (x1&~x2&~x3 & y1&y2&y3)" | |
| 22 | reach:: "state pred" | |
| 23 | "reach == mu (%Q x. INIT x | (? y. Q y & N y x))" | |
| 6466 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 24 | |
| 17272 | 25 | lemmas reach_rws = INIT_def N_def reach_def | 
| 26 | ||
| 27 | lemma reach_ex1: "reach (True,True,True)" | |
| 28 |   apply (tactic {* simp_tac (Mucke_ss addsimps (thms "reach_rws")) 1 *})
 | |
| 29 |   apply (tactic {* mc_mucke_tac [] 1 *})
 | |
| 30 | done | |
| 31 | ||
| 32 | (*alternative*) | |
| 33 | lemma reach_ex' "reach (True,True,True)" | |
| 34 |   by (tactic {* mc_mucke_tac (thms "reach_rws") 1 *})
 | |
| 6466 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 35 | |
| 
2eba94dc5951
added modelchecker mucke besides modelchecker eindhoven;
 mueller parents: diff
changeset | 36 | end |