Mercurial > hg > Members > kono > Proof > automaton
changeset 348:8cd5bea05150
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 17 Jul 2023 22:34:17 +0900 |
parents | 5b985fea126e |
children | 9f3647718a9f |
files | automaton-in-agda/src/finiteSetUtil.agda |
diffstat | 1 files changed, 16 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/automaton-in-agda/src/finiteSetUtil.agda Mon Jul 17 21:02:46 2023 +0900 +++ b/automaton-in-agda/src/finiteSetUtil.agda Mon Jul 17 22:34:17 2023 +0900 @@ -619,45 +619,23 @@ cb<mb = ? cb00 : (n : ℕ) → n < count-B (finite fa) → CountB n - cb00 n n<cb = ? where - - lem07 : (n i : ℕ) → count-B i ≡ suc n → CountB n - lem07 n 0 eq with is-B (Q←F fa (fromℕ< ? )) | inspect count-B 0 - ... | yes isb | record { eq = eq1 } = record { b = Is.a isb ; cb = 0 ; b=cn = sym ? ; cb=n = trans eq1 eq - ; cb-inject = λ cb1 iscb1 cb1eq → ? } - ... | no nisb | record { eq = eq1 } = ⊥-elim ( nat-≡< eq ? ) - lem07 n (suc i) eq with <-cmp (finite fa) i - ... | tri< a ¬b ¬c = ? - ... | tri≈ ¬a b ¬c = ? - ... | tri> ¬a ¬b c with is-B (Q←F fa (fromℕ< c))| inspect count-B (suc i) - ... | yes isb | record { eq = eq1 } = record { b = Is.a isb ; cb = suc i ; b=cn = sym ? ; cb=n = trans eq1 ? - ; cb-inject = λ cb1 iscb1 cb1eq → ? } - ... | no nisb | record { eq = eq1 } = lem07 n i ? + cb00 n n<cb = lem09 (finite fa) (count-B (finite fa)) (<-transˡ a<sa n<cb) refl where lem09 : (i j : ℕ) → suc n ≤ j → j ≡ count-B i → CountB n - lem09 0 (suc j) (s≤s le) eq with ≤-∨ (s≤s le) - ... | case1 eq1 = lem07 n 0 (sym (trans eq1 eq )) - ... | case2 (s≤s lt) with is-B (Q←F fa (fromℕ< ? )) | inspect count-B 0 - ... | yes isb | record { eq = eq1 } = ⊥-elim ? - ... | no nisb | record { eq = eq1 } = ⊥-elim (nat-≡< (sym eq) ?) - lem09 (suc i) (suc j) (s≤s le) eq with ≤-∨ (s≤s le) - ... | case1 eq1 = lem07 n (suc i) (sym (trans eq1 eq )) - ... | case2 (s≤s lt) with <-cmp (finite fa) i - ... | tri< a ¬b ¬c = ? - ... | tri≈ ¬a b ¬c = ? - ... | tri> ¬a ¬b c with is-B (Q←F fa (fromℕ< c))| inspect count-B (suc i) - ... | yes isb | record { eq = eq1 } = ? -- lem09 i j lt ? - ... | no nisb | record { eq = eq1 } = ? -- lem09 i (suc j) (≤-trans lt a≤sa) ? - - -- cb01 : (i j : ℕ) → suc n ≤ j → j ≡ count-B j → CountB n - -- cb01 0 (suc j) (s≤s le) eq with - -- cb01 (suc i) (suc j) (s≤s le) eq = ? - -- cb01 (suc i) (suc j) j<fa i<cb with is-B (Q←F fa (fromℕ< j<fa )) - -- ... | yes y = record { b = Is.a y ; cb = suc (CountB.cb pcb) ; b=cn = ? ; cb=n = ? ; cb-inject = ? } where - -- pcb : CountB j - -- pcb = cb00 (suc - -- ... | no nb = record { b = CountB.b pcb ; cb = CountB.cb pcb ; b=cn = CountB.b=cn pcb ; cb=n = ? ; cb-inject = ? } where - -- pcb : CountB j - -- pcb = cb00 i j (<-trans a<sa j<fa) + lem09 0 (suc j) (s≤s le) eq with is-B (Q←F fa (fromℕ< {0} 0<fa )) | inspect count-B 0 + ... | no nisb | record { eq = eq1 } = ⊥-elim ( nat-≡< (sym eq) (s≤s z≤n) ) + ... | yes isb | record { eq = eq1 } with ≤-∨ (s≤s le) + ... | case1 eq2 = record { b = Is.a isb ; cb = 0 ; b=cn = ? ; cb=n = trans eq1 (sym (trans eq2 eq)) + ; cb-inject = λ cb1 iscb1 cb1eq → ?} + ... | case2 (s≤s lt) = ? + lem09 (suc i) (suc j) (s≤s le) eq with <-cmp (finite fa) i | inspect count-B (suc i) + ... | tri< a ¬b ¬c | _ = lem09 i (suc j) (s≤s le) eq + ... | tri≈ ¬a b ¬c | _ = lem09 i (suc j) (s≤s le) eq + ... | tri> ¬a ¬b c | record { eq = eq1 } with is-B (Q←F fa (fromℕ< c)) + ... | no nisb = lem09 i (suc j) (s≤s le) eq + ... | yes isb with ≤-∨ (s≤s le) + ... | case1 eq2 = record { b = Is.a isb ; cb = suc i ; b=cn = ? ; cb=n = trans eq1 (sym (trans eq2 eq)) + ; cb-inject = λ cb1 iscb1 cb1eq → ?} + ... | case2 (s≤s lt) = lem09 i j lt (cong pred eq) -- end