changeset 235:d204b7f9b89a

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 09 Dec 2020 10:45:41 +0900
parents 3c3619b196dc
children f8bfda8d0669
files FLComm.agda FLutil.agda
diffstat 2 files changed, 20 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/FLComm.agda	Wed Dec 09 07:12:01 2020 +0900
+++ b/FLComm.agda	Wed Dec 09 10:45:41 2020 +0900
@@ -58,26 +58,33 @@
 -- all FL
 record AnyFL (n : ℕ) {i : ℕ} (i<n : i < suc n) (y : FL n) : Set where
    field
-     anyList : FList (suc n)
-     anyP : (x : FL (suc n)) → Any (x ≡_ ) anyList 
+     allFL : FList (suc n)
+     anyP : (x : FL (suc n)) → Any (x ≡_ ) allFL 
 
 open import fin
 open AnyFL
 
 -- {-# TERMINATING #-}
 anyFL :  (n : ℕ) → AnyFL n a<sa fmax
-anyFL zero = record { anyList = (zero :: f0) ∷# [] ; anyP = anyFL0 } where 
+anyFL zero = record { allFL = (zero :: f0) ∷# [] ; anyP = anyFL0 } where 
     anyFL0 : (x : FL 1) → Any (_≡_ x) (cons (zero :: f0) [] (Level.lift tt))
     anyFL0 (zero :: f0) = here refl
-anyFL (suc n)  = record { anyList = allListF a<sa []; anyP = {!!} } where 
+anyFL (suc n)  = record { allFL = allListF a<sa []; anyP = λ x → anyFL0 a<sa x (fin≤n (FLpos x)) [] } where 
     allListFL : (x : Fin (suc (suc n))) → FList (suc n) → FList (suc (suc n)) → FList (suc (suc n))
     allListFL _ [] y = y
     allListFL x (cons y L yr) z = FLinsert (x :: y) (allListFL x L z) 
     allListF : {i : ℕ} → (i<n : i < suc (suc n)) → FList (suc (suc n)) → FList (suc (suc n))
-    allListF (s≤s z≤n) z = z
-    allListF (s≤s (s≤s i<n)) z = allListFL (fin+1 (fromℕ< (s≤s i<n ))) (anyList (anyFL n)) (allListF (<-trans (s≤s i<n) a<sa) z)
-    anyFL0 :  (x : FL (suc (suc n))) → Any (_≡_ x) (allListF a<sa [])
-    anyFL0 = ?
+    allListF (s≤s z≤n) z = allListFL (fromℕ< a<sa) (allFL (anyFL n)) z
+    allListF (s≤s (s≤s i<n)) z = allListFL (fin+1 (fromℕ< (s≤s i<n ))) (allFL (anyFL n)) (allListF (<-trans (s≤s i<n) a<sa) z)
+    anyFL0 :  {i : ℕ} → (i<n : i < suc (suc n)) (x : FL (suc (suc n))) → (toℕ (FLpos x ) ≤ i) → (z : FList (suc (suc n))) → Any (_≡_ x) (allListF i<n z)
+    anyFL0 {i} (s≤s i<n) (x :: y) x<i z with <-cmp (toℕ x) i
+    ... | tri< a ¬b ¬c = {!!}
+    ... | tri≈ ¬a b ¬c = {!!}
+    ... | tri> ¬a ¬b c = ⊥-elim (nat-≤> x<i c)
+
+at1 = allFL (anyFL 1)
+at2 = allFL (anyFL 2)
+at3 = allFL (anyFL 3)
 
 tl3 : (FL n) → ( z : FList n) → FList n → FList n
 tl3 h [] w = w
--- a/FLutil.agda	Wed Dec 09 07:12:01 2020 +0900
+++ b/FLutil.agda	Wed Dec 09 10:45:41 2020 +0900
@@ -93,14 +93,11 @@
 ... | tri≈ ¬a b ¬c = ⊥-elim ( ne b)
 ... | tri> ¬a ¬b c = ⊥-elim (fmax< c)
 
-FL0≤ : {n : ℕ } → FL0 {n} f≤ fmax
-FL0≤ {zero} = case1 refl
-FL0≤ {suc zero} = case1 refl
-FL0≤ {suc n} with <-fcmp zero (fromℕ< {n} a<sa)
-... | tri< a ¬b ¬c = case2 (f<n a)
-... | tri≈ ¬a b ¬c with FL0≤ {n}
-... | case1 x = case1 (subst₂ (λ j k → (zero :: FL0) ≡ (j :: k ) ) b x refl )
-... | case2 x = case2 (subst (λ k →  (zero :: FL0) f< (k :: fmax)) b (f<t x)  )
+x≤fmax : {n : ℕ } → {x : FL n} → x f≤ fmax
+x≤fmax {n} {x} with FLcmp x fmax
+... | tri< a ¬b ¬c = case2 a
+... | tri≈ ¬a b ¬c = case1 b
+... | tri> ¬a ¬b c = ⊥-elim ( fmax< c )
 
 open import Data.Nat.Properties using ( ≤-trans ; <-trans )
 fsuc : { n : ℕ } → (x : FL n ) → x f< fmax → FL n