Theory: hoare_thms

Parents


Type constants


Term constants


Axioms


Definitions


Theorems

SKIP_THM
|- !p. MK_SPEC (p,MK_SKIP,p)
ASSIGN_THM
|- !p x e. MK_SPEC ((\s. p (BND x (e s) s)),MK_ASSIGN (x,e),p)
SEQ_THM
|- !p q r c c'.
     MK_SPEC (p,c,q) /\ MK_SPEC (q,c',r) ==> MK_SPEC (p,MK_SEQ (c,c'),r)
IF1_THM
|- !p q c b.
     MK_SPEC ((\s. p s /\ b s),c,q) /\ (!s. p s /\ ~(b s) ==> q s) ==>
     MK_SPEC (p,MK_IF1 (b,c),q)
IF2_THM
|- !p q c c' b.
     MK_SPEC ((\s. p s /\ b s),c,q) /\ MK_SPEC ((\s. p s /\ ~(b s)),c',q) ==>
     MK_SPEC (p,MK_IF2 (b,c,c'),q)
PRE_STRENGTH_THM
|- !p p' q c. (!s. p' s ==> p s) /\ MK_SPEC (p,c,q) ==> MK_SPEC (p',c,q)
POST_WEAK_THM
|- !p q q' c. MK_SPEC (p,c,q) /\ (!s. q s ==> q' s) ==> MK_SPEC (p,c,q')
WHILE_THM
|- !p c b.
     MK_SPEC ((\s. p s /\ b s),c,p) ==>
     MK_SPEC (p,MK_WHILE (b,c),(\s. p s /\ ~(b s)))