Mercurial > hg > Members > ryokka > HoareLogic
changeset 39:2eb30c8e5a20
whileLoopStep
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Dec 2019 09:25:45 +0900 |
parents | 7049fbaf5e18 |
children | a9cac7960e81 |
files | whileTestGears.agda |
diffstat | 1 files changed, 3 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/whileTestGears.agda Fri Dec 13 20:33:52 2019 +0900 +++ b/whileTestGears.agda Sat Dec 14 09:25:45 2019 +0900 @@ -126,18 +126,11 @@ {-# TERMINATING #-} -whileLoopStep : {l : Level} {t : Set l} → Env → (Code : (e : Env ) → 1 ≤ varn e → t) (Code : (e : Env) → 0 ≡ varn e → t) → t +whileLoopStep : {l : Level} {t : Set l} → Env → (next : (e : Env ) → 1 ≤ varn e → t) (exit : (e : Env) → 0 ≡ varn e → t) → t whileLoopStep env next exit with <-cmp 0 (varn env) whileLoopStep env next exit | tri≈ _ eq _ = exit env eq -whileLoopStep env next exit | tri< gt ¬eq _ = {!!} - where - lem : (env : Env) → (1 ≤ varn env) → 1 ≤ (varn env - 1) - lem env (s≤s 1<varn) with 1 ≤? varn env - lem env (s≤s 1<varn) | no ¬p = {!!} - lem env (s≤s 1<varn) | yes p = ⊥-elim (¬eq ({!!})) - -- n が 0 の時 は正しい、 n が1の時正しくない - -whileLoopStep env next exit | tri> _ _ c = ⊥-elim (m<n⇒n≢0 {varn env} {0} c refl) -- can't happen +whileLoopStep env next exit | tri< gt ¬eq _ = next env gt +whileLoopStep env next exit | tri> _ _ c = ⊥-elim (m<n⇒n≢0 {varn env} {0} c refl) whileTestProof : {l : Level} {t : Set l} → Context → (Code : Context → t) → t whileTestProof cxt next = next record cxt { whileDG = out ; whileCond = init } where