author | paulson |
Thu, 13 Aug 1998 18:06:40 +0200 | |
changeset 5313 | 1861a564d7e2 |
parent 5277 | e4297d03e5d2 |
child 5423 | c57c87628bb4 |
permissions | -rw-r--r-- |
5111 | 1 |
(* Title: HOL/UNITY/Traces |
2 |
ID: $Id$ |
|
3 |
Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
|
4 |
Copyright 1998 University of Cambridge |
|
5 |
||
6 |
Definitions of |
|
7 |
* traces: the possible execution traces |
|
8 |
* reachable: the set of reachable states |
|
9 |
||
10 |
*) |
|
11 |
||
5253 | 12 |
Goal "reachable prg = {s. EX evs. (s,evs): traces (Init prg) (Acts prg)}"; |
13 |
by Safe_tac; |
|
14 |
by (etac traces.induct 2); |
|
15 |
be reachable.induct 1; |
|
16 |
by (ALLGOALS (blast_tac (claset() addIs (reachable.intrs @ traces.intrs)))); |
|
17 |
qed "reachable_equiv_traces"; |
|
4776 | 18 |
|
5313
1861a564d7e2
Constrains, Stable, Invariant...more of the substitution axiom, but Union
paulson
parents:
5277
diff
changeset
|
19 |
Goal "acts <= Acts prg ==> stable acts (reachable prg)"; |
5240
bbcd79ef7cf2
Constant "invariant" and new constrains_tac, ensures_tac
paulson
parents:
5232
diff
changeset
|
20 |
by (blast_tac (claset() addIs ([stableI, constrainsI] @ reachable.intrs)) 1); |
bbcd79ef7cf2
Constant "invariant" and new constrains_tac, ensures_tac
paulson
parents:
5232
diff
changeset
|
21 |
qed "stable_reachable"; |
bbcd79ef7cf2
Constant "invariant" and new constrains_tac, ensures_tac
paulson
parents:
5232
diff
changeset
|
22 |