annotate src/agda-hoare-whileprog.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 whileTestP : {l : Level} {t : Set l} @$\rightarrow$@ (c10 : @$\mathbb{N}$@) @$\rightarrow$@ (Code : Envc @$\rightarrow$@ t) @$\rightarrow$@ t
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
2 whileTestP c10 next = next (record {c10 = c10 ; varn = c10 ; vari = 0 })
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
3
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
4 whileLoopP' : {l : Level} {t : Set l} @$\rightarrow$@ Envc @$\rightarrow$@ (next : Envc @$\rightarrow$@ t) @$\rightarrow$@ (exit : Envc @$\rightarrow$@ t) @$\rightarrow$@ t
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
5 whileLoopP' record { c10 = c10 ; varn = zero ; vari = vari } _ exit = exit record { c10 = c10 ; varn = zero ; vari = vari }
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
6 whileLoopP' record { c10 = c10 ; varn = suc varn1 ; vari = vari } next _ = next (record {c10 = c10 ; varn = varn1 ; vari = suc vari })
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
7
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
8 {-@$\#$@ TERMINATING @$\#$@-}
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
9 loopP : {l : Level} {t : Set l} @$\rightarrow$@ Envc @$\rightarrow$@ (exit : Envc @$\rightarrow$@ t) @$\rightarrow$@ t
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
10 loopP env exit = whileLoopP' env (@$\lambda$@ env @$\rightarrow$@ loopP env exit ) exit
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
11
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
12 whileTestPCall : (c10 : @$\mathbb{N}$@ ) @$\rightarrow$@ Envc
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
13 whileTestPCall c10 = whileTestP {_} {_} c10 (@$\lambda$@ env @$\rightarrow$@ loopP env (@$\lambda$@ env @$\rightarrow$@ env))
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
14
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
15 -- whileTestPCall 10
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
16 -- record { c10 = 10 ; varn = 0 ; vari = 10 }