annotate src/agda-hoare-rule.agda.replaced @ 1:73127e0ab57c

(none)
author soto@cr.ie.u-ryukyu.ac.jp
date Tue, 08 Sep 2020 18:38:08 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
1 data HTProof : Cond @$\rightarrow$@ Comm @$\rightarrow$@ Cond @$\rightarrow$@ Set where
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
2 PrimRule : {bPre : Cond} @$\rightarrow$@ {pcm : PrimComm} @$\rightarrow$@ {bPost : Cond} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
3 (pr : Axiom bPre pcm bPost) @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
4 HTProof bPre (PComm pcm) bPost
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
5 SkipRule : (b : Cond) @$\rightarrow$@ HTProof b Skip b
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
6 AbortRule : (bPre : Cond) @$\rightarrow$@ (bPost : Cond) @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
7 HTProof bPre Abort bPost
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
8 WeakeningRule : {bPre : Cond} @$\rightarrow$@ {bPre' : Cond} @$\rightarrow$@ {cm : Comm} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
9 {bPost' : Cond} @$\rightarrow$@ {bPost : Cond} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
10 Tautology bPre bPre' @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
11 HTProof bPre' cm bPost' @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
12 Tautology bPost' bPost @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
13 HTProof bPre cm bPost
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
14 SeqRule : {bPre : Cond} @$\rightarrow$@ {cm1 : Comm} @$\rightarrow$@ {bMid : Cond} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
15 {cm2 : Comm} @$\rightarrow$@ {bPost : Cond} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
16 HTProof bPre cm1 bMid @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
17 HTProof bMid cm2 bPost @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
18 HTProof bPre (Seq cm1 cm2) bPost
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
19 IfRule : {cmThen : Comm} @$\rightarrow$@ {cmElse : Comm} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
20 {bPre : Cond} @$\rightarrow$@ {bPost : Cond} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
21 {b : Cond} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
22 HTProof (bPre @$\wedge$@ b) cmThen bPost @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
23 HTProof (bPre @$\wedge$@ neg b) cmElse bPost @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
24 HTProof bPre (If b cmThen cmElse) bPost
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
25 WhileRule : {cm : Comm} @$\rightarrow$@ {bInv : Cond} @$\rightarrow$@ {b : Cond} @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
26 HTProof (bInv @$\wedge$@ b) cm bInv @$\rightarrow$@
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
27 HTProof bInv (While b cm) (bInv @$\wedge$@ neg b)