changeset 173:715093a948be

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 24 Nov 2020 11:08:07 +0900
parents 32e2097f5702
children 8e8238b26ee7
files FLutil.agda
diffstat 1 files changed, 21 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/FLutil.agda	Tue Nov 24 08:43:48 2020 +0900
+++ b/FLutil.agda	Tue Nov 24 11:08:07 2020 +0900
@@ -6,7 +6,7 @@
 open import Data.Fin.Properties hiding ( <-trans ; ≤-refl ; ≤-trans ; ≤-irrelevant ; _≟_ ) renaming ( <-cmp to <-fcmp )
 open import Data.Fin.Permutation  -- hiding ([_,_])
 open import Data.Nat -- using (ℕ; suc; zero; s≤s ; z≤n )
-open import Data.Nat.Properties
+open import Data.Nat.Properties as DNP
 open import Relation.Binary.PropositionalEquality hiding ( [_] )
 open import Data.List using (List; []; _∷_ ; length ; _++_ ; tail ) renaming (reverse to rev )
 open import Data.Product
@@ -226,6 +226,10 @@
 x∈FLins {suc n} x (cons a [] x₁)              | tri> ¬a ¬b a<x = there ( here refl )
 x∈FLins {suc n} x (cons a (cons a₁ xs x₂) x₁) | tri> ¬a ¬b a<x = there ( x∈FLins x (cons a₁ xs x₂) )
 
+nextAny : {n : ℕ} → {x h : FL n } → {L : FList n}  → {hr : fresh (FL n) ⌊ _f<?_ ⌋ h L } → Any (x ≡_ ) L → Any (x ≡_ ) (cons h L hr )
+nextAny (here x₁) = there (here x₁)
+nextAny (there any) = there (there any)
+
 open import fin
 
 record ∀FListP (n : ℕ ) : Set (Level.suc Level.zero) where
@@ -235,17 +239,26 @@
 
 open ∀FListP
 
+-- open import Data.Fin.Properties as FinP
+
 AnyFList : (n : ℕ )  → (x : FL n ) →  Any (x ≡_ ) (∀Flist fmax)
 AnyFList n x = AnyFlist0 fmax x where
-   AnyFlist1 :  {n : ℕ } (i : ℕ) → (i<n : i < suc n ) → (x : Fin (suc n)) → toℕ x < suc i → (y : FL n) → (L L1 : FList n )
-       → Any (y ≡_ ) L  →  Any ((x :: y ) ≡_ ) (Flist1 i i<n L L1 )
-   AnyFlist1 zero i<n zero x<i y (cons y L ar) L1 (here refl) = x∈FLins (zero :: y) (Flist1 zero i<n L L1 )
-   AnyFlist1 zero i<n (suc x) (s≤s ()) y (cons y L ar) L1 (here refl)
-   AnyFlist1 (suc i) i<n x x<i y (cons y L ar) L1 (here refl) = ?
-   AnyFlist1 i i<n x x<i y (cons a L ar) L1 (there any) = {!!}
+   AnyFlist1 :  {n : ℕ } (i : ℕ) → (i<n : i < suc n ) → (x : Fin (suc n)) → (y : FL n) → toℕ x < suc i → (L L1 : FList n )
+       → Any (y ≡_ ) L1 → Any (y ≡_ ) L →  Any ((x :: y ) ≡_ ) (Flist1 i i<n L L1 )
+   AnyFlist1 zero i<n zero y (s≤s x<i) (cons _ L _) L1 any (here refl) = x∈FLins (zero :: y) (Flist1 zero i<n L L1 )
+   AnyFlist1 zero i<n zero y (s≤s x<i) (cons a L ar) L1 any (there any0) = anf0 (AnyFlist1 zero i<n zero y (s≤s x<i) L L1 any any0) where
+        anf0 :  Any ((zero :: y ) ≡_ ) (Flist1 zero i<n L L1) → Any (_≡_ (zero :: y)) (Flist1 zero i<n (cons a L ar) L1)
+        anf0 = {!!}
+   AnyFlist1 (suc i) i<n x y x<i (cons y L ar) L1 any (here refl) with <-fcmp x (fromℕ< i<n)
+   ... | tri≈ ¬a refl ¬c = subst {!!} {!!} (x∈FLins (x :: y) (Flist1 (suc i) i<n L L1 ))
+   ... | tri> ¬a ¬b c = {!!}
+   ... | tri< a ¬b ¬c with AnyFlist1 i {!!} x y {!!} L1 L1 any any 
+   ... | t = {!!}
+   AnyFlist1 (suc i) i<n x y x<i (cons a L ar) L1 any (there any0) with AnyFlist1 (suc i) i<n x y x<i L L1 any any0
+   ... | t = {!!}
    AnyFlist0 : {n : ℕ } → (y x : FL n ) →  Any (x ≡_ ) (∀Flist y)
    AnyFlist0 {zero} f0 f0 = here refl
-   AnyFlist0 {suc n} (_ :: z) (x :: y) = AnyFlist1 n a<sa x fin<n y (∀Flist z) (∀Flist z) (AnyFlist0 z y) where
+   AnyFlist0 {suc n} (_ :: z) (x :: y) = AnyFlist1 n a<sa x y fin<n (∀Flist z) (∀Flist z) (AnyFlist0 z y) (AnyFlist0 z y)
 
 -- tt1 : FList 3
 -- tt1 = ∀FListP.∀list (∀FList 3)