open nat unit equiv eq definition code : ℕ → ℕ → Type₀ | code 0 0 := unit | code (succ n) 0 := empty | code 0 (succ m) := empty | code (succ n) (succ m) := code n m definition refl : Πn, code n n | refl 0 := star | refl (succ n) := refl n definition encode (n m : ℕ) : (n = m) ≃ code n m := equiv.MK (λp, sorry) -- p ▸ refl n) (match n m with | 0 0 := sorry end) sorry sorry