- Next_def
-
|- !R s s'. Next R s s' = R (s,s')
- Prev_def
-
|- !R s s'. Prev R s s' = R (s',s)
- ReachFromRec_def
-
|- (!R s. ReachFromRec R s 0 = {s}) /\
!R s n.
ReachFromRec R s (SUC n) =
{s' |
s' IN ReachFromRec R s n \/
?s''. Next R s'' s' /\ s'' IN ReachFromRec R s n}
- ReachFrom_def
-
|- !R s. ReachFrom R s = BIGUNION {P | ?n. P = ReachFromRec R s n}
- ReachToRec_def
-
|- (!R s. ReachToRec R s 0 = {s}) /\
!R s n.
ReachToRec R s (SUC n) =
{s' |
s' IN ReachToRec R s n \/
?s''. Prev R s'' s' /\ s'' IN ReachToRec R s n}
- ReachTo_def
-
|- !R s. ReachTo R s = BIGUNION {P | ?n. P = ReachToRec R s n}
- R_REFL_def
-
|- !R. R_REFL R = !x. R (x,x)
- R_SYM_def
-
|- !R. R_SYM R = !x y. R (x,y) = R (y,x)
- R_TRANS_def
-
|- !R. R_TRANS R = !x y z. R (x,y) /\ R (y,z) ==> R (x,z)
- R_EQR_def
-
|- !R. R_EQR R = R_REFL R /\ R_SYM R /\ R_TRANS R
- QP2_def
-
|- !h q q'. QP2 h q q' = h (q,q')
- QP3_def
-
|- !h q q'. QP3 (h,q) q' = QP2 h q q'
- IS_ABS_FUN_def
-
|- !ks e h.
IS_ABS_FUN ks e h =
(!s. ?sh. h (s,sh)) /\
!s1 s2 sh.
h (s1,sh) /\ h (s2,sh) ==>
!p.
p IN ks.ap ==> (s1 IN STATES (AP p) ks e = s2 IN STATES (AP p) ks e)
- ReachFromFP
-
|- !R s n'.
(ReachFromRec R s n' = ReachFromRec R s (SUC n')) ==>
(ReachFrom R s = ReachFromRec R s n')
- ReachToFP
-
|- !R s n'.
(ReachToRec R s n' = ReachToRec R s (SUC n')) ==>
(ReachTo R s = ReachToRec R s n')
- ReachToClosed
-
|- !si R s. R_EQR R ==> (s IN ReachTo R si = R (s,si))
- ReachFromClosed
-
|- !si R s. R_EQR R ==> (s IN ReachFrom R si = R (si,s))
- SCC_def
-
|- !R s. SCC R s = ReachFrom R s UNION ReachTo R s
- ABS_KS_def
-
|- !M h.
ABS_KS M h =
<|S := UNIV; S0 := {sh | ?s'. s' IN M.S0 /\ h (s',sh)};
T :=
(\a (sh,sh'). ?s' s''. M.T a (s',s'') /\ h (s',sh) /\ h (s'',sh'));
L := (\sh. BIGUNION {X | ?s. (X = M.L s) /\ h (s,sh)})|>
- wf_absKS
-
|- !ks h. wfKS ks ==> wfKS (ABS_KS ks h)
- ABS_CONS_LEM
-
|- !f h ks s sh e eh.
wfKS ks ==>
(!Q. ~(~RV Q SUBF NNF f)) ==>
(!s. ?sh. h (s,sh)) ==>
(!a g. ~(<> g SUBF NNF f)) ==>
(!p. AP p SUBF f ==> p IN ks.ap) ==>
(!s1 s2 sh.
h (s1,sh) /\ h (s2,sh) ==>
!p.
p IN ks.ap ==>
(s1 IN STATES (AP p) ks e = s2 IN STATES (AP p) ks e)) ==>
(!Q s sh. h (s,sh) ==> sh IN eh Q ==> s IN e Q) ==>
h (s,sh) ==>
sh IN STATES (NNF f) (ABS_KS ks h) eh ==>
s IN STATES (NNF f) ks e
- ABS_CONS_STATES
-
|- !f h ks s sh e eh.
wfKS ks ==>
(!Q. ~(~RV Q SUBF NNF f)) ==>
(!s. ?sh. h (s,sh)) ==>
(!a g. ~(<> g SUBF NNF f)) ==>
(!p. AP p SUBF f ==> p IN ks.ap) ==>
(!s1 s2 sh.
h (s1,sh) /\ h (s2,sh) ==>
!p.
p IN ks.ap ==>
(s1 IN STATES (AP p) ks e = s2 IN STATES (AP p) ks e)) ==>
(!Q s sh. h (s,sh) ==> sh IN eh Q ==> s IN e Q) ==>
h (s,sh) ==>
sh IN STATES f (ABS_KS ks h) eh ==>
s IN STATES f ks e
- ABS_INIT
-
|- !ks h s sh. h (s,sh) ==> s IN ks.S0 ==> sh IN (ABS_KS ks h).S0
- ABS_REACH
-
|- !ks h a s sh.
(!s. ?sh. h (s,sh)) ==>
h (s,sh) ==>
s IN Reachable (ks.T a) ks.S0 ==>
sh IN Reachable ((ABS_KS ks h).T a) (ABS_KS ks h).S0
- ABS_CONS_MODEL
-
|- !f h ks e eh.
wfKS ks ==>
(!Q. ~(~RV Q SUBF NNF f)) ==>
(!a g. ~(<> g SUBF NNF f)) ==>
(!p. AP p SUBF f ==> p IN ks.ap) ==>
IS_ABS_FUN ks e h ==>
(!Q s sh. h (s,sh) ==> sh IN eh Q ==> s IN e Q) ==>
MU_MODEL_SAT f (ABS_KS ks h) eh ==>
MU_MODEL_SAT f ks e
- SCC_FOLD_BASE
-
|- !f g pf R s sh k.
(s IN {s | !i. i <= k ==> SCC (R i) (f i 0) (pf i s)} = g 0 sh) /\
(s IN {s | !i. i <= k ==> SCC (R i) (f i 1) (pf i s)} = g 1 sh) =
s IN
{s |
!j.
j <= 1 ==>
(s IN {s | !i. i <= k ==> pf i s IN SCC (R i) (f i j)} = g j sh)}
- SCC_FOLD_STEP
-
|- !f g pf R s sh k n.
s IN
{s |
!j.
j <= n ==>
(s IN {s | !i. i <= k ==> SCC (R i) (f i j) (pf i s)} = g j sh)} /\
(s IN {s | !i. i <= k ==> SCC (R i) (f i (SUC n)) (pf i s)} =
g (SUC n) sh) =
s IN
{s |
!j.
j <= SUC n ==>
(s IN {s | !i. i <= k ==> SCC (R i) (f i j) (pf i s)} = g j sh)}
- SCC_INNER_FOLD_BASE1
-
|- !R j f pf s.
SCC (R 0) (f 0 j) (pf 0 s) =
s IN {s | !i. i <= 0 ==> SCC (R i) (f i j) (pf i s)}
- SCC_INNER_FOLD_BASE
-
|- !f pf R s sh j.
SCC (R 0) (f 0 j) (pf 0 s) /\ SCC (R 1) (f 1 j) (pf 1 s) =
s IN {s | !i. i <= 1 ==> pf i s IN SCC (R i) (f i j)}
- SCC_INNER_FOLD_STEP
-
|- !f pf R s sh j n.
s IN {s | !i. i <= n ==> pf i s IN SCC (R i) (f i j)} /\
SCC (R (SUC n)) (f (SUC n) j) (pf (SUC n) s) =
s IN {s | !i. i <= SUC n ==> pf i s IN SCC (R i) (f i j)}
- SCC_REL
-
|- !R s si. R_EQR R ==> (s IN SCC R si = R (s,si))
- SCC_REL_IMP
-
|- !R s1 s2 si. R_EQR R ==> s1 IN SCC R si /\ s2 IN SCC R si ==> R (s1,s2)
- BIGOR_OVER_AND
-
|- !P Q k.
(?i. i <= k /\ P i) /\ (?i. i <= k /\ Q i) =
?i j. i <= k /\ j <= k /\ P i /\ Q j
- abst_lem1
-
|- !f sh k i j.
(!i. i <= k /\ f i sh ==> !j. j <= k /\ f j sh ==> (i = j)) ==>
i <= k /\ j <= k /\ f i sh /\ f j sh ==>
(i = j)