changeset 1339:23bba94a980f

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 16 Jun 2023 18:33:50 +0900
parents b969f1710434
children 4c32cd3b84c2
files src/bijection.agda
diffstat 1 files changed, 29 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/src/bijection.agda	Fri Jun 16 11:38:05 2023 +0900
+++ b/src/bijection.agda	Fri Jun 16 18:33:50 2023 +0900
@@ -669,31 +669,39 @@
     ... | tri> ¬a ¬b c₁ | tri≈ ¬a₁ b ¬c | case2 le = case2 (≤-trans le refl-≤s ) 
     ... | tri> ¬a ¬b c₁ | tri> ¬a₁ ¬b₁ c₂ | u = u
 
-    --
+    record An (n i : ℕ) : Set where
+        field
+          ai : ℕ
+          ai≤n : ai ≤ n
+          cn=ai : fun→ cn (g (f (fun← an ai))) ≡ suc i
+        cn=a0 : n ≡ 0 → fun→ cn (g (f (fun← an 0))) ≡ suc i
+        cn=a0 refl with <-cmp ai 0
+        ... | tri≈ ¬a b ¬c = subst (λ k → fun→ cn (g (f (fun← an k))) ≡ suc i) b cn=ai
+        ... | tri> ¬a ¬b c₁ = ⊥-elim ( nat-≤> ai≤n c₁ )
+
     c1-at-i : (n i : ℕ) → 
-           (suc (c1 n i) ≡ c1 n (suc i) →  fun→ cn (g (f (fun← an n))) ≡ suc i)
-         ∧ ( (fun→ cn (g (f (fun← an n))) ≡ suc i)  → suc (c1 n i) ≡ c1 n (suc i) )
+           (suc (c1 n i) ≡ c1 n (suc i) →  An n i)                             
+         ∧ ( An n i → suc (c1 n i) ≡ c1 n (suc i) )
     c1-at-i 0 i with <-cmp (fun→ cn (g (f (fun← an zero)))) i | <-cmp (fun→ cn (g (f (fun← an zero)))) (suc i)
-    ... | tri< a ¬b ¬c | tri< a₁ ¬b₁ ¬c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim (nat-≡< eq (<-trans a a<sa)))  ⟫ 
-    ... | tri< a ¬b ¬c | tri≈ ¬a b ¬c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim (nat-≡< eq (<-trans a a<sa)))  ⟫ 
-    ... | tri< a ¬b ¬c | tri> ¬a ¬b₁ c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim (nat-≡< eq (<-trans a a<sa)))  ⟫ 
-    ... | tri≈ ¬a b ¬c | tri< a ¬b ¬c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim ( ¬b eq ))  ⟫ 
+    ... | tri< a ¬b ¬c | tri< a₁ ¬b₁ ¬c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim (nat-≡< (An.cn=a0 eq refl ) (<-trans a a<sa)))  ⟫ 
+    ... | tri< a ¬b ¬c | tri≈ ¬a b ¬c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim (nat-≡< (An.cn=a0 eq refl ) (<-trans a a<sa)))  ⟫ 
+    ... | tri< a ¬b ¬c | tri> ¬a ¬b₁ c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim (nat-≡< (An.cn=a0 eq refl ) (<-trans a a<sa)))  ⟫ 
+    ... | tri≈ ¬a b ¬c | tri< a ¬b ¬c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim ( ¬b (An.cn=a0 eq refl ) ))  ⟫ 
     ... | tri≈ ¬a b ¬c | tri≈ ¬a₁ b₁ ¬c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim (nat-≡< (sym b) (subst (λ k → i < k) (sym b₁) a<sa) ))  ⟫ 
-    ... | tri≈ ¬a b ¬c | tri> ¬a₁ ¬b c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim ( ¬b eq ))  ⟫ 
+    ... | tri≈ ¬a b ¬c | tri> ¬a₁ ¬b c₁ = ⟪ ( λ () ) , (λ eq → ⊥-elim ( ¬b (An.cn=a0 eq refl ) ))  ⟫ 
     ... | tri> ¬a ¬b c₁ | tri< (s≤s a) ¬b₁ ¬c = ⊥-elim (nat-≡< refl (≤-trans c₁ a))
-    ... | tri> ¬a ¬b c₁ | tri≈ ¬a₁ b ¬c = ⟪ ( λ _ → b ) , ( λ _ → refl ) ⟫
-    ... | tri> ¬a ¬b c₁ | tri> ¬a₁ ¬b₁ c₂ = ⟪ ( λ () ) , ( λ eq → ⊥-elim (¬b₁ eq )) ⟫
-    c1-at-i (suc n) zero with <-cmp (fun→ cn (g (f (fun← an (suc n))))) zero | <-cmp (fun→ cn (g (f (fun← an (suc n))))) (suc zero)
-    ... | s | t = ?
-    c1-at-i (suc n) (suc i) with  <-cmp (fun→ cn (g (f (fun← an (suc n))))) (suc i) | <-cmp (fun→ cn (g (f (fun← an (suc n))))) (suc (suc i)) 
-    ... | tri< a ¬b ¬c | tri< a₁ ¬b₁ ¬c₁ = ⟪ ?  , (λ eq → ⊥-elim ( ¬b₁ eq)) ⟫ where   
-        -- a (suc n) is less than (suc i) → c1 (suc n) (suc (suc i)) ≡ c1 (suc n) (suc i)
-        lemc00 : ¬ ( suc (suc (c1 n (suc i))) ≡ suc (c1 n (suc (suc i))) )
-        lemc00 = ?
-    ... | tri< a ¬b ¬c | tri≈ ¬a b ¬c₁ = ?
-    ... | tri< a ¬b ¬c | tri> ¬a ¬b₁ c₁ = ?
-    ... | tri≈ ¬a b ¬c | t = ?
-    ... | tri> ¬a ¬b c₁ | t = ?
+    ... | tri> ¬a ¬b c₁ | tri≈ ¬a₁ b ¬c = ⟪ ( λ eq → record { ai = 0 ; ai≤n = ≤-refl ; cn=ai = b } ) , ( λ _ → refl ) ⟫
+    ... | tri> ¬a ¬b c₁ | tri> ¬a₁ ¬b₁ c₂ = ⟪ ( λ () ) , ( λ eq → ⊥-elim (¬b₁ (An.cn=a0 eq refl ) )) ⟫
+    c1-at-i (suc n) i = ⟪ ( λ eq → ca00 n _ ≤-refl eq) , ( λ an0 → ca01 an0) ⟫  where
+         --  if (suc (c1 (suc n) i)) ≡ c1 (suc n) (suc i)  then fun← cn (suc i) have to be g (f (fun← an ai)) where ai <= suc n
+         ca00 : (n ai : ℕ ) → ai ≤ suc n → suc (c1 (suc n) i) ≡ c1 (suc n) (suc i)  → An (suc n) i
+         ca00 0 ai a<n eq = ?
+         ca00 (suc n) ai a<n eq with <-cmp (fun→ cn (g (f (fun← an (suc (suc n)))))) i | <-cmp (fun→ cn (g (f (fun← an (suc (suc n)))))) (suc i)
+         ... | t | s = ?
+         ca01 : An (suc n) i → suc (c1 (suc n) i) ≡ c1 (suc n) (suc i) 
+         ca01 an0 with <-cmp (fun→ cn (g (f (fun← an (suc n))))) i | <-cmp (fun→ cn (g (f (fun← an (suc n))))) (suc i)
+         ... | s | t = ?
+
 
     -- 
     -- c n < i means j < suc n → fun← an j < c n, we cannot have more else