Chuangjie Xu 2015 (ported to TypeTopology in 2025)

\begin{code}

{-# OPTIONS --safe --without-K #-}

module C-Spaces.Preliminaries.Booleans.Functions where

open import MLTT.Spartan

if : {A : Set}  𝟚  A  A  A
if b a₀ a₁ = 𝟚-cases a₀ a₁ b

eq : 𝟚  𝟚  𝟚
eq b₀ b₁ = if b₀ (if b₁  ) b₁

Lemma[eq] : (b₀ b₁ : 𝟚)  eq b₀ b₁    b₀  b₁
Lemma[eq]   refl = refl
Lemma[eq]   ()
Lemma[eq]   ()
Lemma[eq]   refl = refl

min : 𝟚  𝟚  𝟚
min b₀ b₁ = if b₀  b₁

Lemma[min] : (b₀ b₁ : 𝟚)  min b₀ b₁    (b₀  ) × (b₁  )
Lemma[min]   ()
Lemma[min]   ()
Lemma[min]   ()
Lemma[min]   refl = refl , refl

\end{code}