{-# OPTIONS --cubical #-}
module README where
import Snippets.Bool using
  ( Bool 
  ; Boolean
  ; a-boolean)
import Snippets.Bool using
  ( not
  ; module LambdaNot)
import Function using
  ( id
  )
import Snippets.Nat using
  ( ℕ 
  ; add
  ; _-_ 
  ; module NonCoveringSub
  ; _+_ 
  ; module NonTermAdd
  )
import Snippets.Expr using
  ( Op 
  ; Expr 
  ; module IncorrectEval 
  )
import Data.Maybe using
  ( Maybe 
  )
import Snippets.Maybe using
  ( maybe-two
  ; maybe-func
  )
import Snippets.Expr using
  ( _-_ 
  ; ⟦_⟧
  )
import Data.Maybe.Sugar using
  ( pure
  ; _<*>_
  ; _>>=_ 
  )
import Snippets.Expr using
  ( example-eval
  ; is-just
  )
import Data.Bool using
  ( T
  )
import Data.Empty using
  ( ⊥
  )
import Snippets.Introduction using
  ( ⊤
  )
import Data.Empty using
  ( ¬_
  )
import Snippets.Expr using
  ( Pair 
  ; Valid 
  ; ⟦_⟧!
  ; example-static-eval 
  )
import Snippets.Implicits using
  ( module Normal
  ; module ImplicitType 
  )
import Snippets.Equality using
  ( module MLTTEquality 
  ; sym
  )
import Snippets.Equality using
  ( refl 
  )
import Snippets.Expr using
  ( example-static-proof
  )
import Data.Nat.Properties using
  ( +-assoc
  )
import Cubical.HITs.S1 using
  ( S¹ 
  )
import Snippets.Formers using
  ( ℕ-or-String
  ; Pair
  ; fst
  ; snd
  ; pair
  )
import Data.Sigma using
  ( Σ
  ; _×_ 
  )
import Data.Sum using
  ( _⊎_ 
  )
import Snippets.Classical using
  ( Classical 
  ; lem
  ; pure
  ; _>>=_
  )
import Relation.Nullary.Stable using
  ( Stable
  )
import Cardinality.Finite.SplitEnumerable.Container using
  ( ℰ!
  )
import Container.List using
  ( List 
  )
import Data.Fin.Base using
  (module DisplayImpl)
import Data.List using
  (List)
import Container using
  ( ⟦_⟧ 
  )
import Container.Membership using
  ( _∈_ 
  )
import Function.Fiber using
  ( fiber 
  )
import Function.Surjective using
  ( SplitSurjective 
  ; _↠!_
  )
import Cardinality.Finite.SplitEnumerable using
  ( ℰ!⇔Fin↠!
  )
import Data.Sigma.Properties using
  ( reassoc
  )
import Cardinality.Finite.SplitEnumerable using
  ( split-enum-is-split-surj
  ; ℰ!⟨2⟩ 
  )
import Function.Surjective.Properties using
  ( ↠!-ident
  )
import Relation.Nullary.Discrete using
  ( Discrete
  )
import Snippets.Dec using
  ( Dec
  )
import Function.Injective using
  ( Injective
  ; _↣_
  )
import Function.Injective.Properties using
  (Discrete-pull-inj)
import Function.Surjective.Properties using
  ( surj-to-inj
  ; Discrete-distrib-surj
  )
import Cardinality.Finite.SplitEnumerable using
  (ℰ!⇒Discrete)
import Cardinality.Finite.SplitEnumerable using
  ( module BoolSlop 
  )
import HLevels using
  ( isContr 
  )
import Container.Membership using
  ( _∈!_ 
  )
import Cardinality.Finite.ManifestBishop.Container using
  ( ℬ
  )
import Snippets.Equivalence using
  ( isEquiv 
  ; _≃_
  )
import Cardinality.Finite.ManifestBishop using
  ( ℬ⇔Fin≃
  )
import Cardinality.Finite.SplitEnumerable using
  ( ℰ!⟨2⟩
  ; ℰ!⟨2⟩′
  )
import HLevels using
  ( isProp 
  )
import HITs.PropositionalTruncation using
  ( ∥_∥ 
  ; rec 
  )
import Cardinality.Finite.Cardinal using
  ( 𝒞
  ; 𝒞⇒Discrete
  )
import Relation.Nullary.Discrete.Properties using
  ( isPropDiscrete
  )
import HLevels using
  ( isSet 
  )
import Relation.Nullary.Discrete.Properties using
  ( Discrete→isSet
  )
import HITs.PropositionalTruncation using
  ( rec→set 
  )
import Cardinality.Finite.Cardinal using
  ( cardinality-is-unique
  )
import Data.List.Sort using
  ( insert
  ; sort
  ; sort-sorts
  ; sort-perm
  )
import Data.List.Relation.Binary.Permutation using
  ( _↭_
  )
import Data.List.Sort using
  ( sorted-perm-eq
  ; perm-invar
  )
import Cardinality.Finite.Cardinal using
  ( ¬⟨𝒞⋂ℬᶜ⟩
  )
import Snippets.Classical using
  ( classical-impl
  )
import Cubical.HITs.S1 using
  ( S¹ 
  )
import HLevels using
  ( isGroupoid 
  )
import Cardinality.Finite.ManifestEnumerable.Container using
  ( ℰ
  )
import Cardinality.Finite.ManifestEnumerable using
  ( ℰ⟨S¹⟩
  )
import Cubical.HITs.S1 using
  ( isConnectedS¹
  )
import Function.Surjective using
  ( Surjective 
  ; _↠_
  )
import Cardinality.Finite.ManifestEnumerable using
  (  ℰ⇔Fin↠
  )
import HITs.PropositionalTruncation.Properties using
  ( recompute 
  )
import Algebra.Construct.Free.Semilattice using
  ( 𝒦 
  )
import Algebra.Construct.Free.Semilattice.Direct using
  ( 𝒦
  )
import Algebra.Construct.Free.Semilattice.Relation.Unary.Membership using
  ( _∈_
  )
import Cardinality.Finite.Kuratowski using
  ( 𝒦ᶠ
  ; 𝒞⇔𝒦×Discrete 
  )
import Categories using
  ( PreCategory 
  )
import Categories.HSets using
  ( Ob
  )
import Cardinality.Finite.SplitEnumerable using
  ( _|Σ|_
  ; sup-Σ
  )
import Cardinality.Finite.ManifestBishop using
  ( _|Π|_
  )
import Data.Tuple.UniverseMonomorphic using
  ( Tuple
  )
import Cardinality.Finite.Cardinal using
  ( _∥×∥_
  ; 𝒞⇒Choice
  )
import Snippets.Topos using
  ( Prop-univ
  ; prop-resize
  )
import Snippets.Bool using
  ( _∧_
  ; ∧-assoc 
  ; some-assoc
  )
import Snippets.Bool using
  ( obvious
  ; True
  ; toWitness
  ; extremely-obvious
  )
import Relation.Nullary.Omniscience using
  ( Exhaustible
  ; Omniscient
  )
import Relation.Nullary.Decidable.Properties using
  ( Dec→DoubleNegElim
  )
import Relation.Nullary.Omniscience using
  ( Omniscient→Exhaustible
  )
import Cardinality.Finite.Kuratowski using
  ( 𝒦ᶠ⇒Exhaustible
  )
import Cardinality.Finite.ManifestEnumerable using
  ( ℰ⇒Omniscient
  )
import Relation.Nullary.Omniscience using
  ( Prop-Omniscient
  )
import Cardinality.Finite.Kuratowski using
  ( 𝒦ᶠ⇒Prop-Omniscient
  )
import Cardinality.Finite.SplitEnumerable.Search using
  ( ∀?
  ; ∃?
  ; module PreInst
  )
import Snippets.Bool using
  ( module PreInst′
  )
import Cardinality.Finite.SplitEnumerable.Search using
  ( module WithInst
  )
import Snippets.Bool using
  ( ∧-idem 
  ; module BadCurrying
  )
import Instance using
  ( it
  )
import Data.Product.NAry using
  ( Levels
  ; max-level
  ; Types
  ; ⦅_⦆⁺
  ; ⦅_⦆
  ; ArgForm
  ; _[_]→_
  ; [_$]
  ; Π[_$]
  ; ⦅_⦆[_]→_
  ; pi-arrs-plus
  ; Π[_^_$]
  )
import Cardinality.Finite.SplitEnumerable.Search using
  ( ∃?ⁿ
  ; ∃↯ⁿ
  )
import Snippets.Bool using
  ( ∧-comm
  )
import Countdown using
  ( ℰ!⟨Vec⟩
  ; ℰ!⟨Op⟩
  ; module WrongPerm
  ; module IsoPerm
  ; Perm
  ; ℰ!⟨Perm⟩
  )
import Dyck using
  ( Dyck
  ; module NonParamTree
  )
import Countdown using
  ( ExprTree
  ; Transformation
  ; ℰ!⟨ExprTree⟩
  ; ℰ!⟨Transformation⟩
  ; eval
  ; _!⟨_⟩!_
  ; Solution
  ; exampleSolutions
  )
import Cardinality.Infinite.Split using
  ( ℵ!
  )
import Codata.Stream using
  ( Stream
  )
import Cardinality.Infinite.Split using
  ( ℵ!⇔ℕ↠!
  )
import Data.List.Kleene using
  ( _⁺
  ; _⋆
  )
import Cardinality.Infinite.Split using
  ( _*⋆_[_]
  ; _*_
  ; _|Σ|_
  ; |star|
  ; cantor-diag
  )