(only non hidden objects are presented)
| DISP | cond_df | cond{ < i:level > }( < f:f:* > ; < s:s:* > )== Cond Cond== Cond |
| ABS | cond | Cond == Env |
| ML | cond_soft | add_soft_abs ``cond``;; |
| DISP | hoare_df | ({ < e:env-var > . < P:pre-cond:* > } < st:stmt:* > { < e:env-var > . < Q:post-cond:* > } wrt < f:f:* > ; < s:s:* > ) == { < P > } < st > { < Q > } { < P:pre-cond:* > } < st:stmt:* > { < Q:post-cond:* > }== { < P > } < st > { < Q > } |
| ABS | hoare | {P[e]} st {Q[e]} ==
|
| THM | hoare_wf | |
| THM | hoare_skip | |
| THM | env_seq | |
| THM | induce_seq | |
| THM | is_norm_seq | |
| THM | hoare_seq | |
| ML | hoare_seq_tac | let HoareSeq t = BLemma `hoare_seq` THENM (With t (D 0) THENL [Id; Reduce 0 THEN D 0; MemCD THEN BLemma `hoare_wf`]) ;; |
| THM | hoare_var_assig_int | |
| THM | hoare_var_assig_var | |
| ML | hoare_tac | let Hoare = (BLemma `hoare_var_assig_int` THENM Unfold `env_update` 0 THENM Reduce 0 THENM RWH eq_atom_evalC 0 THENM Reduce 0) ORELSE (BLemma `hoare_var _assig_var` THENM Unfold `env_update` 0 THENM Reduce 0 THENM RWH eq_at om_evalC 0 THENM Reduce 0) ORELSE Id ;; |
| THM | and_hoare |