# HG changeset patch # User Shinji KONO # Date 1585585136 -32400 # Node ID 1e313089683469b2788512c9a14ba4d630a63d51 # Parent 908409975a5ef87d749c18e02a45009636416568 maxA done (all 0,1,2 done) diff -r 908409975a5e -r 1e3130896834 nat.agda --- a/nat.agda Mon Mar 30 20:22:04 2020 +0900 +++ b/nat.agda Tue Mar 31 01:18:56 2020 +0900 @@ -204,6 +204,69 @@ minus>0 {zero} {suc _} (s≤s z≤n) = s≤s z≤n minus>0 {suc x} {suc y} (s≤s lt) = minus>0 {x} {y} lt +minus-assoc : {x y z : ℕ} → (x - y) - z ≡ x - (y + z) +minus-assoc {x} {zero} = refl +minus-assoc {zero} {suc y} {z} = begin + (zero - suc y) - z + ≡⟨ cong (λ k → k - z ) (minus<=0 {zero} {suc y} z≤n ) ⟩ + zero - z + ≡⟨ minus<=0 {zero} {z} z≤n ⟩ + zero + ≡⟨ sym ( minus<=0 {zero} {suc y + z} z≤n ) ⟩ + zero - (suc y + z) + ∎ where open ≡-Reasoning +minus-assoc {suc x} {suc y} = minus-assoc {x} {y} + +minus+assoc : {x y z : ℕ } → z < suc y → x + (y - z) ≡ (x + y) - z +minus+assoc {x} {y} {zero} z z + y → minus (minus x y) z ≡ minus x (y + z) -minus- {x} {y} {z} gt = +m= {_} {_} {z} ( begin - minus (minus x y) z + z - ≡⟨ minus+n {_} {z} lemma ⟩ - minus x y - ≡⟨ +m= {_} {_} {y} ( begin - minus x y + y - ≡⟨ minus+n {_} {y} lemma1 ⟩ - x - ≡⟨ sym ( minus+n {_} {z + y} gt ) ⟩ - minus x (z + y) + (z + y) - ≡⟨ sym ( +-assoc (minus x (z + y)) _ _ ) ⟩ - minus x (z + y) + z + y - ∎ ) ⟩ - minus x (z + y) + z - ≡⟨ cong (λ k → minus x k + z ) (+-comm _ y ) ⟩ - minus x (y + z) + z - ∎ ) where - open ≡-Reasoning - lemma1 : suc x > y - lemma1 = x+y z - lemma = <-minus {_} {_} {y} ( subst ( λ x → z + y < suc x ) (sym (minus+n {x} {y} lemma1 )) gt ) +minus- {x} {y} {z} gt = minus-assoc {x} {y} {z} minus-* : {M k n : ℕ } → n < k → minus k (suc n) * M ≡ minus (minus k n * M ) M minus-* {zero} {k} {n} lt = begin diff -r 908409975a5e -r 1e3130896834 prob1.agda --- a/prob1.agda Mon Mar 30 20:22:04 2020 +0900 +++ b/prob1.agda Tue Mar 31 01:18:56 2020 +0900 @@ -135,17 +135,31 @@ unique-m {i} {_} {n} {m1} refl eqn eqm | tri> ¬a ¬b c = ⊥-elim ( nat-≡< (trans (sym eqm) eqn ) (lemma7 {m1} {n} {m} {A} c )) unique-n : {j m1 : ℕ} → j < M → m1 < suc k → j + suc k * M ≡ M * suc m1 + A → n ≡ m1 unique-n {j} {m1} j y → (suc x - y) + y ≡ suc ( (x - y) + y ) + lemmaa {x} {y} lt = begin + (suc x - y) + y + ≡⟨ minus+n (<-trans lt a ¬a ¬b c = begin suc A - ≡⟨ sym ( minus+n {suc A} {(k - n) * M} c ) ⟩ - (suc A - ((k - n) * M)) + (k - n) * M - ≡⟨ {!!} ⟩ + ≡⟨ sym ( minus+n {suc A} {(k - n) * M} (<-trans c a ¬a ¬b c = ⊥-elim ( nat-≤> n