author | haftmann |
Wed, 02 Jun 2010 16:24:14 +0200 | |
changeset 37292 | 12a514e0319a |
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:
17272
diff
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 |