# HG changeset patch # User Shinji KONO # Date 1635686112 -32400 # Node ID c2bc4ee841af844b8b92d2488554b47cadc4083b # Parent accd3d99cc8662c03dc4fac1524303ceb2f32b5d ... diff -r accd3d99cc86 -r c2bc4ee841af utilities.agda --- a/utilities.agda Sun Oct 31 16:25:46 2021 +0900 +++ b/utilities.agda Sun Oct 31 22:15:12 2021 +0900 @@ -3,6 +3,7 @@ open import Function open import Data.Nat +open import Data.Nat.Properties open import Data.Product open import Data.Bool hiding ( _≟_ ; _≤?_) open import Level renaming ( suc to succ ; zero to Zero ) @@ -25,10 +26,10 @@ open _/\_ -_-_ : ℕ → ℕ → ℕ -x - zero = x -zero - _ = zero -(suc x) - (suc y) = x - y +-- _-_ : ℕ → ℕ → ℕ +-- x - zero = x +-- zero - _ = zero +-- (suc x) - (suc y) = x - y +zero : { y : ℕ } → y + zero ≡ y +zero {zero} = refl @@ -65,7 +66,7 @@ ∎ ) -minus-plus : { x y : ℕ } → (suc x - 1) + (y + 1) ≡ suc x + y +minus-plus : { x y : ℕ } → (suc x ∸ 1) + (y + 1) ≡ suc x + y minus-plus {zero} {y} = +-sym {y} {1} minus-plus {suc x} {y} = cong ( λ z → suc z ) (minus-plus {x} {y}) @@ -158,10 +159,14 @@ Equal→≡ {x} {y} refl | yes refl = refl Equal→≡ {x} {y} () | no ¬p +open import Data.Empty + Equal+1 : { x y : ℕ } → Equal x y ≡ Equal (suc x) (suc y) -Equal+1 {x} {y} with x ≟ y -Equal+1 {x} {.x} | yes refl = {!!} -Equal+1 {x} {y} | no ¬p = {!!} +Equal+1 {x} {y} with x ≟ y | suc x ≟ suc y +Equal+1 {x} {.x} | yes refl | yes refl = refl +Equal+1 {x} {.x} | yes refl | no ¬p = ⊥-elim (¬p refl) +Equal+1 {x} {y} | no ¬p | no _ = refl +Equal+1 {x} {y} | no ¬p | yes refl = ⊥-elim (¬p refl) open import Data.Empty diff -r accd3d99cc86 -r c2bc4ee841af whileTestGears1.agda --- a/whileTestGears1.agda Sun Oct 31 16:25:46 2021 +0900 +++ b/whileTestGears1.agda Sun Oct 31 22:15:12 2021 +0900 @@ -1,7 +1,7 @@ module whileTestGears1 where open import Function -open import Data.Nat +open import Data.Nat renaming ( _∸_ to _-_) open import Data.Bool hiding ( _≟_ ; _≤?_ ; _≤_ ; _<_ ) open import Level renaming ( suc to succ ; zero to Zero ) open import Relation.Nullary using (¬_; Dec; yes; no) @@ -111,12 +111,15 @@ 0 + vari env ≡⟨ cong (λ k → k + vari env) (sym (lemma1 p )) ⟩ varn env + vari env ≡⟨ proof ⟩ c10 ∎ ) where open ≡-Reasoning -whileLoopSeg {_} {_} {c10} env proof next exit | yes p = next env1 (proof3 p ) proof4 where +whileLoopSeg {_} {_} {c10} env proof next exit | yes p = next env1 (proof3 p ) (proof4 (varn env) p) where env1 = record {varn = (varn env) - 1 ; vari = (vari env) + 1} 1<0 : 1 ≤ zero → ⊥ 1<0 () - proof4 : varn env1 < varn env - proof4 = {!!} + proof4 : (i : ℕ) → 1 ≤ i → i - 1 < i + proof4 zero () + proof4 (suc i) lt = begin + suc (suc i - 1 ) ≤⟨ ≤-refl ⟩ + suc i ∎ where open ≤-Reasoning proof3 : (suc zero ≤ (varn env)) → varn env1 + vari env1 ≡ c10 proof3 (s≤s lt) with varn env proof3 (s≤s z≤n) | zero = ⊥-elim (1<0 p) @@ -133,22 +136,24 @@ nat-≤> : { x y : ℕ } → x ≤ y → y < x → ⊥ nat-≤> (s≤s x x ¬a ¬b c = ⊥-elim ( nat-≤> lt {!!} ) + lemma4 e2 eq lt1 = TerminatingLoop1 j e1 e2 {!!} eq lt1 -- varn e2 ≤ j + ... | tri> ¬a ¬b c = ⊥-elim ( nat-≤> n≤j c )