equal
deleted
inserted
replaced
19 transient :: "i=>i" where |
19 transient :: "i=>i" where |
20 "transient(A) =={F \<in> program. (\<exists>act\<in>Acts(F). A<=domain(act) & |
20 "transient(A) =={F \<in> program. (\<exists>act\<in>Acts(F). A<=domain(act) & |
21 act``A \<subseteq> state-A) & st_set(A)}" |
21 act``A \<subseteq> state-A) & st_set(A)}" |
22 |
22 |
23 definition |
23 definition |
24 ensures :: "[i,i] => i" (infixl "ensures" 60) where |
24 ensures :: "[i,i] => i" (infixl \<open>ensures\<close> 60) where |
25 "A ensures B == ((A-B) co (A \<union> B)) \<inter> transient(A-B)" |
25 "A ensures B == ((A-B) co (A \<union> B)) \<inter> transient(A-B)" |
26 |
26 |
27 consts |
27 consts |
28 |
28 |
29 (*LEADS-TO constant for the inductive definition*) |
29 (*LEADS-TO constant for the inductive definition*) |
41 monos Pow_mono |
41 monos Pow_mono |
42 type_intros Union_Pow_iff [THEN iffD2] UnionI PowI |
42 type_intros Union_Pow_iff [THEN iffD2] UnionI PowI |
43 |
43 |
44 definition |
44 definition |
45 (* The Visible version of the LEADS-TO relation*) |
45 (* The Visible version of the LEADS-TO relation*) |
46 leadsTo :: "[i, i] => i" (infixl "\<longmapsto>" 60) where |
46 leadsTo :: "[i, i] => i" (infixl \<open>\<longmapsto>\<close> 60) where |
47 "A \<longmapsto> B == {F \<in> program. <A,B>:leads(state, F)}" |
47 "A \<longmapsto> B == {F \<in> program. <A,B>:leads(state, F)}" |
48 |
48 |
49 definition |
49 definition |
50 (* wlt(F, B) is the largest set that leads to B*) |
50 (* wlt(F, B) is the largest set that leads to B*) |
51 wlt :: "[i, i] => i" where |
51 wlt :: "[i, i] => i" where |