Skip to content

Latest commit

 

History

History
45 lines (32 loc) · 1.01 KB

Bool-functions.lagda.md

File metadata and controls

45 lines (32 loc) · 1.01 KB

Martin Escardo. Notes originally written for the module Advanced Functional Programming of the University of Birmingham, UK.

The booleans

The booleans are isomorphic to a Basic MLTT type:

open import isomorphisms

Bool-isomorphism : Bool ≅ 𝟙 ∔ 𝟙
Bool-isomorphism = record { bijection = f ; bijectivity = f-is-bijection }
 where
  f : Bool  𝟙 ∔ 𝟙
  f false = inl ⋆
  f true  = inr ⋆

  g : 𝟙 ∔ 𝟙  Bool
  g (inl ⋆) = false
  g (inr ⋆) = true

  gf : g ∘ f ∼ id
  gf true  = refl true
  gf false = refl false

  fg : f ∘ g ∼ id
  fg (inl ⋆) = refl (inl ⋆)
  fg (inr ⋆) = refl (inr ⋆)

  f-is-bijection : is-bijection f
  f-is-bijection = record { inverse = g ; η = gf ; ε = fg }

Go back to the table of contents