Theory: safety_automata

Parents


Type constants


Term constants


Axioms


Definitions

Klarlund
|- !P.
     Klarlund P =
     ((\(e,s,n). (!w. s w) /\ (n = 0)),
      (\(e,s,n) (e',s',n').
        (n' = SUC n) /\ (!w. s' w = s w /\ (w n = e)) /\ (?w. s w /\ P w)))

Theorems

Safety_Limit
|- !Q N. Safety (Limit_Trace (Q,N))
Safety_Deterministic
|- !Q N. Deterministic (Q,N) ==> Safety (Trace (Q,N))
Deterministic_Klarlund
|- !P. Deterministic (Klarlund P)
Safe_Trace_Klarlund
|- !P. Safe P = Trace (Klarlund P)
Safety_Klarlund
|- !P. Safety P ==> (Trace (Klarlund P) = P)
Safety_eq_Deterministic
|- !P. Safety P = (?Q N. Deterministic (Q,N) /\ (P = Trace (Q,N)))
Stutter_not_Safety
|- ?Q N. Stuttering (Q,N) /\ ~(Safety (Trace (Q,N)))
No_Dead_Limit_Safe
|- !Q N. No_Dead (Q,N) ==> (!e. Limit_Trace (Q,N) e ==> Safe (Trace (Q,N)) e)
No_Dead_Safety_Powerset
|- !Q N.
     Safety (Trace (Q,N)) ==>
     No_Dead (Q,N) ==>
     (!e. Trace (Powerset (Q,N)) e ==> Trace (Q,N) e)