{-# OPTIONS --without-K #-}
module Base where
open import base.Universes public
open import base.Empty public
open import base.Unit public
module Basic where
record Σ {ℓᵢ ℓⱼ} (S : Type ℓᵢ)(T : S → Type ℓⱼ) : Type (ℓᵢ ⊔ ℓⱼ) where
constructor _,_
field
fst : S
snd : T fst
open Σ public
_×_ : ∀{ℓᵢ ℓⱼ} (S : Type ℓᵢ) (T : Type ℓⱼ) → Type (ℓᵢ ⊔ ℓⱼ)
A × B = Σ A (λ _ → B)
data _+_ {ℓᵢ ℓⱼ} (S : Type ℓᵢ) (T : Type ℓⱼ) : Type (ℓᵢ ⊔ ℓⱼ) where
inl : S → S + T
inr : T → S + T
data Bool : Type0 where
true : Bool
false : Bool
data ℕ : Type0 where
zero : ℕ
succ : ℕ → ℕ
{-# BUILTIN NATURAL ℕ #-}
open Basic public
id : ∀{ℓ} {A : Type ℓ} → A → A
id a = a
_∘_ : ∀{ℓᵢ ℓⱼ ℓₖ} {A : Type ℓᵢ} {B : Type ℓⱼ} {C : Type ℓₖ}
→ (B → C) → (A → B) → (A → C)
(g ∘ f) z = g (f z)
data _==_ {ℓ} {A : Type ℓ} : A → A → Type ℓ where
refl : (a : A) → a == a
infixl 50 _·_
_·_ : ∀{ℓ} {A : Type ℓ} {a b c : A} → a == b → b == c → a == c
refl a · q = q