{-# OPTIONS --cubical --safe #-} module Cardinality.Finite.ManifestEnumerable.Isomorphism where open import Prelude import Cardinality.Finite.ManifestEnumerable.Container as β import Cardinality.Finite.ManifestEnumerable.Inductive as π open import Container.List.Isomorphism open import Data.Fin open import HITs.PropositionalTruncation.Sugar open import Data.List using (_β·_; []) open import HITs.PropositionalTruncation open import Cardinality.Finite.SplitEnumerable.Isomorphism open import Data.Sigma.Properties πβββ¨β°β© : π.β° A β β.β° A πβββ¨β°β© .fun (sup , cov) = πββ sup , cov πβββ¨β°β© .inv (sup , cov) = ββπ sup , Ξ» x β ββββπ x sup β₯$β₯ cov x πβββ¨β°β© .rightInv (sup , cov) = Ξ£Propβ‘ (Ξ» xs x y i t β squash (x t) (y t) i) (πββ .rightInv sup) πβββ¨β°β© .leftInv (sup , cov) = Ξ£Propβ‘ (Ξ» xs x y i t β squash (x t) (y t) i) (πββ .leftInv sup)