{-# OPTIONS --without-K #-}
open import Base
open import Equality
module topology.Circle where
private
data !S¹ : Type0 where
!base : !S¹
S¹ : Type0
S¹ = !S¹
base : S¹
base = !base
postulate loop : base == base
S¹-rec : ∀{ℓ} (P : S¹ → Type ℓ) (x : P base) (p : transport P loop x == x) → ((t : S¹) → P t)
S¹-rec P x p !base = x
postulate S¹-βrec : ∀{ℓ} (P : S¹ → Type ℓ) (x : P base) (p : transport P loop x == x)
→ apd (S¹-rec P x p) loop == p
S¹-ind : ∀{ℓ} (A : Type ℓ) (a : A) (p : a == a) → (S¹ → A)
S¹-ind A a p !base = a
postulate S¹-βind : ∀{ℓ} (A : Type ℓ) (a : A) (p : a == a)
→ ap (S¹-ind A a p) loop == p