{-# OPTIONS #-} module finiteFunc where open import Data.Nat hiding ( _≟_ ) open import Data.Fin renaming ( _<_ to _<<_ ; _>_ to _f>_ ; _≟_ to _f≟_ ) hiding (_≤_ ; pred ) open import Data.Fin.Properties hiding ( <-trans ; ≤-trans ; ≤-refl ; <-irrelevant ) renaming ( <-cmp to <-fcmp ) open import Data.Empty open import Relation.Nullary open import Relation.Binary.Definitions open import Relation.Binary.PropositionalEquality open import logic open import nat open import finiteSet open import finiteSetUtil open import fin open import Data.Nat.Properties as NP hiding ( _≟_ ) open import Axiom.Extensionality.Propositional open import Level hiding (suc ; zero) open import Level renaming ( suc to Suc ; zero to Zero) postulate f-extensionality : { n : Level} → Axiom.Extensionality.Propositional.Extensionality n n -- (Level.suc n) open import Data.Vec hiding ( map ; length ) import Data.Product -- we cannot simply use f ≡ g for f : Q → A in Bijection of List Bool and (finite → Bool ) -- what we can say is theres a fuction which elementwise equal F2L-iso : { Q : Set } → (fin : FiniteSet Q ) → (x : Vec Bool (FiniteSet.finite fin) ) → F2L fin a