Theory: safe_live

Parents


Type constants


Term constants


Axioms


Definitions

Prefix_OK
|- !n P w. Prefix_OK n P w = (?v. (!t. t < n ==> (v t = w t)) /\ P v)
Safe
|- !P w. Safe P w = (!n. Prefix_OK n P w)
Live
|- !P w. Live P w = Safe P w ==> P w
Safety
|- !P. Safety P = (!w. Live P w)
Liveness
|- !P. Liveness P = (!w. Safe P w)

Theorems

Safe_Contains
|- !P w. P w ==> Safe P w
Safe_Idem
|- !P. Safe (Safe P) = Safe P
Safe_Mono
|- !P Q. (!w. P w ==> Q w) ==> (!w. Safe P w ==> Safe Q w)
Live_Contains
|- !P w. P w ==> Live P w
Safe_and_Live
|- !P w. Safe P w /\ Live P w = P w
Safe_Live
|- !P w. Safe (Live P) w
Live_Idem
|- !P. Live (Live P) = Live P
Live_Safe
|- !P w. Live (Safe P) w
Safety_Safe
|- !P. Safety (Safe P)
Liveness_Live
|- !P. Liveness (Live P)
Liveness_AND_Safety
|- !P. Liveness P /\ Safety P ==> (!w. P w)
Strongest_safety
|- !P Q. Safety Q /\ (!w. P w ==> Q w) ==> (!w. Safe P w ==> Q w)
Safety_Liveness_Decompose
|- !P. ?Q R. Safety Q /\ Liveness R /\ (!w. P w = Q w /\ R w)
Exists_not_Safety
|- ?P. ~(Safety P)