(def-language fts-language
(embedded-language det-state-machines-with-start)
(constants
(secure%state (state prop))))
(def-theory fts-theory
(language fts-language)
(component-theories det-state-machines-with-start))
(def-theorem fun-sec
"secure%state(s_init)
and
forall(s:state,a:action,
secure%state(s) and #(next(s,a))
implies secure%state(next(s,a)))
implies forall(s:state, accessible(s) implies secure%state(s)) "
(theory fts-theory)
(proof "$theories/state-machines/proofs/fun-sec.t"))
(def-theory fts+invariant
(component-theories fts-theory)
(axioms
(fts+init-secure "secure%state(s_init)" rewrite)
(fts+next-secure
"forall(s:state,a:action,
secure%state(s) and #(next(s,a))
implies secure%state(next(s,a)))")))
(def-theorem fts+secure
"forall(s:state, accessible(s) implies secure%state(s))"
(theory fts+invariant)
(usages transportable-macete)
(proof "$theories/state-machines/proofs/fts+secure.t.z"))
(pop-current-theory)
(pop-current-syntax)