@@ -27,26 +27,6 @@ private
2727 ℓ : Level
2828 m n : ℕ
2929
30- Fin→SumFin : Fin n → SumFin.Fin n
31- Fin→SumFin = elim (λ {n} _ → SumFin n) fzero fsuc
32-
33- SumFin→Fin : SumFin.Fin n → Fin n
34- SumFin→Fin = SumFin.elim (λ {n} _ → Fin n) zero suc
35-
36- FinSumFinIso : Iso (Fin n) (SumFin n)
37- FinSumFinIso = iso Fin→SumFin SumFin→Fin
38- (SumFin.elim (λ fn → Fin→SumFin (SumFin→Fin fn) ≡ fn) refl (cong fsuc))
39- (elim (λ fn → SumFin→Fin (Fin→SumFin fn) ≡ fn) refl (cong suc))
40-
41- Fin≃SumFin : Fin n ≃ SumFin n
42- Fin≃SumFin = isoToEquiv FinSumFinIso
43-
44- ≡→Fin≃SumFin : m ≡ n → Fin m ≃ SumFin n
45- ≡→Fin≃SumFin {m} = J (λ n p → Fin m ≃ SumFin n) Fin≃SumFin
46-
47- Fin≡SumFin : Fin n ≡ SumFin n
48- Fin≡SumFin = ua Fin≃SumFin
49-
5030FinFinℕIso : Iso (Fin n) (Finℕ n)
5131FinFinℕIso = iso
5232 (λ k → toℕ k , toℕ<n k)
@@ -59,20 +39,20 @@ Fin≃Finℕ = isoToEquiv FinFinℕIso
5939
6040FinΣ≃ : (n : ℕ) (m : FinVec ℕ n) → Σ (Fin n) (Fin ∘ m) ≃ Fin (foldrFin _+_ 0 m)
6141FinΣ≃ n m =
62- Σ-cong-equiv Fin ≃SumFin (λ fn → ≡→Fin ≃SumFin
63- (congS m (sym (retIsEq (Fin ≃SumFin .snd) fn))))
64- ∙ₑ SumFin.SumFinΣ≃ n (m ∘ SumFin→Fin )
65- ∙ₑ invEquiv (≡→Fin ≃SumFin (sum≡ n m))
42+ Σ-cong-equiv SumFin.FinData ≃SumFin (λ fn → SumFin.≡→FinData ≃SumFin
43+ (congS m (sym (retIsEq (SumFin.FinData ≃SumFin .snd) fn))))
44+ ∙ₑ SumFin.SumFinΣ≃ n (m ∘ SumFin.SumFin→FinData )
45+ ∙ₑ invEquiv (SumFin.≡→FinData ≃SumFin (sum≡ n m))
6646 where
6747 sum≡ : (n : ℕ) (m : FinVec ℕ n) →
68- foldrFin _+_ 0 m ≡ SumFin.totalSum (m ∘ SumFin→Fin )
48+ foldrFin _+_ 0 m ≡ SumFin.totalSum (m ∘ SumFin.SumFin→FinData )
6949 sum≡ = Nat.elim (λ _ → refl) λ n x m → congS (m zero +_) (x (m ∘ suc))
7050
7151DecΣ : (n : ℕ) →
7252 (P : FinVec (Type ℓ) n) → (∀ k → Dec (P k)) → Dec (Σ (Fin n) P)
7353DecΣ n P decP = EquivPresDec
74- (Σ-cong-equiv-fst (invEquiv Fin ≃SumFin))
75- (SumFin.DecΣ n (P ∘ SumFin→Fin ) (decP ∘ SumFin→Fin ))
54+ (Σ-cong-equiv-fst (invEquiv SumFin.FinData ≃SumFin))
55+ (SumFin.DecΣ n (P ∘ SumFin.SumFin→FinData ) (decP ∘ SumFin.SumFin→FinData ))
7656
7757isFinSetFinData : ∀ {n} → isFinSet (Fin n)
78- isFinSetFinData = subst isFinSet (sym Fin ≡SumFin) isFinSetFin
58+ isFinSetFinData = subst isFinSet (sym SumFin.FinData ≡SumFin) isFinSetFin
0 commit comments