{-# OPTIONS --cubical --allow-unsolved-meta #-}
open import Cubical.Core.Everything
open import Cubical.Foundations.Everything
data ℕ : Set where
zero : ℕ
succ : ℕ → ℕ
data UnorderedPair (X : Set) : Set where
pair : (a b : X) → UnorderedPair X
swap : (a b : X) → pair a b ≡ pair b a
data ⊥ : Set where
cong' : {X Y : Set} {a b : X} → (f : X → Y) → a ≡ b → f a ≡ f b
cong' = {!!}
lemma-nontrivial : zero ≡ succ zero → ⊥
lemma-nontrivial p = {!!}
lemma-not-leaky : (f : UnorderedPair ℕ → ℕ) (p : (a b : ℕ) → f (pair a b) ≡ a) → ⊥
lemma-not-leaky = {!!}
isProp' : Set → Set
isProp' X = (a b : X) → a ≡ b
lemma-negations-are-props : (X : Set) → isProp' (X → ⊥)
lemma-negations-are-props = {!!}
data 𝟙 : Set where
* : 𝟙
data Interval : Set where
left : Interval
right : Interval
path : left ≡ right
toInterval : 𝟙 → Interval
toInterval * = left
fromInterval : Interval → 𝟙
fromInterval _ = *
is-iso₁ : (x : 𝟙) → fromInterval (toInterval x) ≡ x
is-iso₁ = {!!}
is-iso₂ : (x : Interval) → toInterval (fromInterval x) ≡ x
is-iso₂ = {!!}
isDiscrete : Set → Set
isDiscrete X = (a b : X) → isProp' (a ≡ b)
Code : ℕ → ℕ → Set
Code zero zero = 𝟙
Code zero (succ y) = ⊥
Code (succ x) zero = ⊥
Code (succ x) (succ y) = Code x y
fromCode : (a b : ℕ) → Code a b → a ≡ b
fromCode a b p = {!!}
ref : (a : ℕ) → Code a a
ref a = {!!}
toCode : (a b : ℕ) → a ≡ b → Code a b
toCode = {!!}
lemma-ℕ-discrete : isDiscrete ℕ
lemma-ℕ-discrete = {!!}