Mercurial > hg > Members > kono > Proof > prob1
changeset 22:c5ed490494bc
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 29 Mar 2020 08:29:21 +0900 |
parents | 65f0efcc6dc7 |
children | f2db03a8af2c |
files | prob1.agda |
diffstat | 1 files changed, 39 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/prob1.agda Sat Mar 28 18:38:15 2020 +0900 +++ b/prob1.agda Sun Mar 29 08:29:21 2020 +0900 @@ -169,8 +169,12 @@ cck n n<k k<A i<M = c0 where c1 : Cond1 A M (suc k) c1 = kk.cck k A m A<kM n n<k k<A i<M + lemma2 : {i j n m1 : ℕ} → j < i → i + suc k * M ≡ M * suc n + A → j + suc k * M ≡ M * suc m1 + A → j + suc k * M + M < suc (i + suc k * M ) + lemma2 = {!!} + lemma3 : {i j : ℕ} → j + suc k * M + M < suc (i + suc k * M ) → j + M < suc i + lemma3 = {!!} lemma-u1 : {j : ℕ} {m1 : ℕ} → j < (A - ((k - n) * M)) → m1 < suc k → ¬ j + suc k * M ≡ M * suc m1 + A - lemma-u1 = {!!} + lemma-u1 {j} {m1} j<akM m1<k eq = {!!} c0 = record { c1 = record { n = n ; i = A - (((k - n)) * M ) ; range-n = n<k ; range-i = i<M; rule1 = Cond1.rule1 c1 } ; u1 = lemma-u1 } cc : (n : ℕ) → n < suc k → suc A > (k - n) * M → UCond1 A M (suc k) cc zero n<k k<A = cck 0 n<k k<A lemma where @@ -181,10 +185,41 @@ cc (suc n) n<k k<A with <-cmp (A - ((k - (suc n)) * M)) M cc (suc n) n<k k<A | tri< a ¬b ¬c = cck (suc n) n<k k<A a cc (suc n) n<k k<A | tri≈ ¬a b ¬c = - record { c1 = UCond1.c1 (cc n {!!} {!!}) ; u1 = {!!} } + cc n (less-1 n<k) (lemma1 b) where + a=mk0 : (A - ((k - (suc n)) * M)) ≡ M → A ≡ (k - n) * M + a=mk0 a=mk = sym ( begin + (k - n) * M + ≡⟨ sym ( minus+n {(k - n) * M} {M} (kk.nextc k A m A<kM n n<k )) ⟩ + ((k - n) * M ) - M + M + ≡⟨ +-comm _ M ⟩ + M + (((k - n) * M ) - M) + ≡⟨ cong (λ x → M + x ) (sym (minus-* {M} {k} (<-minus-0 n<k ))) ⟩ + M + (k - (suc n) * M) + ≡⟨ cong (λ x → x + (k - (suc n)) * M) (sym a=mk) ⟩ + A - ((k - (suc n)) * M) + ((k - (suc n)) * M) + ≡⟨ minus+n {A} {(k - (suc n)) * M} k<A ⟩ + A + ∎ ) where open ≡-Reasoning + lemma1 : (A - ((k - (suc n)) * M)) ≡ M → suc A > (k - n) * M + lemma1 a=mk = subst (λ x → (k - n) * M < suc x ) (sym (a=mk0 a=mk )) a<sa cc (suc n) n<k k<A | tri> ¬a ¬b c = - record { c1 = UCond1.c1 (cc n {!!} {!!}) ; u1 = {!!} } - + cc n (less-1 n<k) (lemma3 c) where + lemma3 : (A - ((k - (suc n)) * M)) > M → suc A > (k - n) * M + lemma3 mk<a = <-trans lemma5 a<sa where + lemma6 : M + (k - (suc n)) * M ≡ (k - n) * M + lemma6 = begin + M + (k - (suc n)) * M + ≡⟨ cong (λ x → M + x) (minus-* {M} {k} (<-minus-0 n<k)) ⟩ + M + (((k - n) * M ) - M ) + ≡⟨ +-comm M _ ⟩ + ((k - n) * M ) - M + M + ≡⟨ minus+n {_} {M} (kk.nextc k A m A<kM n n<k ) ⟩ + (k - n) * M + ∎ where open ≡-Reasoning + lemma4 : (M + (k - (suc n)) * M) < A + lemma4 = subst (λ x → (M + (k - (suc n)) * M) < x ) (minus+n {A}{(k - (suc n)) * M} k<A ) ( <-plus mk<a ) + lemma5 : (k - n) * M < A + lemma5 = subst (λ x → x < A ) lemma6 lemma4 start-range : (k : ℕ ) → suc A > (k - k) * M start-range zero = s≤s z≤n start-range (suc k) = start-range k