Mercurial > hg > Members > ryokka > HoareLogic
changeset 59:5c2cdcee9971
restore bad proof
author | ryokka |
---|---|
date | Sat, 21 Dec 2019 17:49:15 +0900 |
parents | 7523d5cd670b |
children | ad83c2d5e869 |
files | whileTestGears.agda |
diffstat | 1 files changed, 50 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/whileTestGears.agda Sat Dec 21 16:49:07 2019 +0900 +++ b/whileTestGears.agda Sat Dec 21 17:49:15 2019 +0900 @@ -183,6 +183,55 @@ conv : (env : Envc ) → (vari env ≡ 0) /\ (varn env ≡ c10 env) → varn env + vari env ≡ c10 env conv e record { pi1 = refl ; pi2 = refl } = +zero + +conv1 : (env : Envc ) → (vari env ≡ 0) /\ (varn env ≡ c10 env) → varn env + vari env ≡ c10 env +conv1 e record { pi1 = refl ; pi2 = refl } = +zero + +-- = whileTestPwP (suc c) (λ env s → loopPwP env (conv1 env s) (λ env₁ s₁ → {!!})) + {-# TERMINATING #-} Proof : (c : ℕ ) → whileTestPCallwP c -Proof c = Proof c +Proof zero = whileTestPwP {_} {_} zero ( λ env s → loopPwP env (conv env s) ( λ env s → refl) ) + where + conv : (env : Envc ) → (vari env ≡ 0) /\ (varn env ≡ c10 env) → varn env + vari env ≡ c10 env + conv e record { pi1 = refl ; pi2 = refl } = +zero +Proof (suc c) = whileTestPwP {_} {_} c ( λ env s → loopPwP env (conv env s) ( λ env s → lem )) + where + lem : whileLoopPwP (record { c10 = suc c ; varn = c ; vari = 0 + 1 }) ({!!}) + (λ env s → loopPwP env s (λ env₁ s₁ → vari env₁ ≡ suc c)) (λ env s3 → {!!}) + lem = {!!} + conv : (env : Envc ) → (vari env ≡ 0) /\ (varn env ≡ c10 env) → varn env + vari env ≡ c10 env + conv e record { pi1 = refl ; pi2 = refl } = +zero + + +{-- +-- whileLoopPwP : {l : Level} {t : Set l} → (env : Envc ) → whileTestStateP s2 env +-- → (next : (env : Envc ) → whileTestStateP s2 env → t) +-- → (exit : (env : Envc ) → whileTestStateP sf env → t) → t + +next : (whileTestGears.proof5 + (record { c10 = suc c ; varn = suc c ; vari = 0 }) + (<ᵇ⇒< 0 (suc c) Agda.Builtin.Unit.⊤.tt) + (λ x → + Relation.Nullary.Reflects.invert (ofⁿ (λ ())) (≡⇒≡ᵇ 0 (suc c) x)) + (<⇒≯ (<ᵇ⇒< 0 (suc c) Agda.Builtin.Unit.⊤.tt)) + (whileTestGears.conv (suc c) (whileTestP (suc c) (λ env₁ → env₁)) + (record { pi1 = refl ; pi2 = refl })) + (λ env₁ s₁ → loopPwP env₁ s₁ (λ env₂ s₂ → vari env₂ ≡ suc c)) + (λ env₁ s₁ → vari env₁ ≡ suc c) + (<ᵇ⇒< 0 (suc c) Agda.Builtin.Unit.⊤.tt)) + +exit : (whileTestGears.conv (suc c) (whileTestP (suc c) (λ env₁ → env₁)) + (record { pi1 = refl ; pi2 = refl })) + (λ env₁ s₁ → loopPwP env₁ s₁ (λ env₂ s₂ → vari env₂ ≡ suc c)) + (λ env₁ s₁ → vari env₁ ≡ suc c) + (<ᵇ⇒< 0 (suc c) Agda.Builtin.Unit.⊤.tt)) + (λ env₁ s₁ → loopPwP env₁ s₁ (λ env₂ s₂ → vari env₂ ≡ suc c)) + (λ env₁ s₁ → vari env₁ ≡ suc c) + + | (<-cmp 0 c + | Relation.Nullary.Decidable.Core.map′ (≡ᵇ⇒≡ 0 c) (≡⇒≡ᵇ 0 c) + (Data.Bool.Properties.T? (0 ≡ᵇ c)) + | Data.Bool.Properties.T? (0 <ᵇ c)) + +--}