comparison agda/finiteSet.agda @ 135:2d70f90565c6

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 24 Nov 2019 15:40:37 +0900
parents 14cf0e1c8d91
children 7c8460329f27
comparison
equal deleted inserted replaced
134:14cf0e1c8d91 135:2d70f90565c6
380 lemma = FiniteSet.f-extensionality fin ( λ q → L2F-iso fin x q ) 380 lemma = FiniteSet.f-extensionality fin ( λ q → L2F-iso fin x q )
381 381
382 382
383 open import Data.Product 383 open import Data.Product
384 384
385 Fin2Finite : ( n : ℕ ) → FiniteSet (Fin n) {n}
386 Fin2Finite n = record { F←Q = λ x → x ; Q←F = λ x → x ; finiso← = λ q → refl ; finiso→ = λ q → refl }
387
388 data f-1 { n m : ℕ } { A : Set } (n<m : n < m ) (fa : FiniteSet A {m}) : Set where
389 elm1 : (elm : A ) → toℕ (FiniteSet.F←Q fa elm ) < n → f-1 n<m fa
390
391 -- f-1-cong : { n m : ℕ } (n<m : n < m ) { A : Set } (fa : FiniteSet A {m})
392 -- → ( elm s ≡ elm t) → ( elm<n s ≅ elm<n t ) → elm1 e0 e0<n ≡ elm1 e1 e1<n
393 -- f-1-<-cong n<m fa _ _ refl HE.refl = refl
394
395 fin-<' : {A : Set} → { n m : ℕ } → (n<m : n < m ) → (fa : FiniteSet A {m}) → FiniteSet (f-1 n<m fa) {n}
396 fin-<' {A} {n} {m} n<m fa = iso-fin (Fin2Finite n) iso where
397 iso : ISO (Fin n) (f-1 n<m fa)
398 ISO.A←B iso (elm1 elm x) = fromℕ≤ x
399 ISO.B←A iso x = elm1 (FiniteSet.Q←F fa (fromℕ≤ (Data.Nat.Properties.<-trans x<n n<m ))) to<n where
400 x<n : toℕ x < n
401 x<n = toℕ<n x
402 to<n : toℕ (FiniteSet.F←Q fa (FiniteSet.Q←F fa (fromℕ≤ (Data.Nat.Properties.<-trans x<n n<m)))) < n
403 to<n = subst (λ k → toℕ k < n ) (sym (FiniteSet.finiso← fa _ )) (subst (λ k → k < n ) (sym ( toℕ-fromℕ≤ (Data.Nat.Properties.<-trans x<n n<m) )) x<n )
404 ISO.iso← iso x = lemma2 where
405 lemma2 : fromℕ≤ (subst (λ k → toℕ k < n) (sym
406 (FiniteSet.finiso← fa (fromℕ≤ (Data.Nat.Properties.<-trans (toℕ<n x) n<m)))) (subst (λ k → k < n)
407 (sym (toℕ-fromℕ≤ (Data.Nat.Properties.<-trans (toℕ<n x) n<m))) (toℕ<n x))) ≡ x
408 lemma2 = {!!}
409 ISO.iso→ iso (elm1 elm x) = lemma1 where
410 lemma : FiniteSet.Q←F fa (fromℕ≤ (Data.Nat.Properties.<-trans (toℕ<n (ISO.A←B iso (elm1 elm x))) n<m)) ≡ elm
411 lemma = {!!}
412 lemma1 : ISO.B←A iso (ISO.A←B iso (elm1 elm x)) ≡ elm1 elm x
413 lemma1 with lemma
414 ... | eq = {!!}
415
416
385 record Fin-< { n m : ℕ } (n<m : n < m ) { A : Set } (fa : FiniteSet A {m}) : Set where 417 record Fin-< { n m : ℕ } (n<m : n < m ) { A : Set } (fa : FiniteSet A {m}) : Set where
386 field 418 field
387 elm : A 419 elm : A
388 elm<n : toℕ (FiniteSet.F←Q fa elm ) < n 420 elm<n : toℕ (FiniteSet.F←Q fa elm ) < n
389 421