- 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)))