Skip to content

Instantly share code, notes, and snippets.

@fpvandoorn
Created November 15, 2023 12:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fpvandoorn/84f4d9df802a114e3fe39508ff6414b7 to your computer and use it in GitHub Desktop.
Save fpvandoorn/84f4d9df802a114e3fe39508ff6414b7 to your computer and use it in GitHub Desktop.
minimal declarations to get noConfusion
prelude
set_option autoImplicit true
universe u v w
set_option bootstrap.inductiveCheckResultingUniverse false in
inductive PUnit : Sort u where
| unit : PUnit
inductive True : Prop where
| intro : True
inductive Eq : α → α → Prop where
| refl (a : α) : Eq a a
abbrev Eq.ndrec.{u1, u2} {α : Sort u2} {a : α} {motive : α → Sort u1} (m : motive a) {b : α} (h : Eq a b) : motive b :=
h.rec m
inductive HEq : {α : Sort u} → α → {β : Sort u} → β → Prop where
| refl (a : α) : HEq a a
structure Prod (α : Type u) (β : Type v) where
fst : α
snd : β
structure PProd (α : Sort u) (β : Sort v) where
fst : α
snd : β
structure And (a b : Prop) : Prop where
intro ::
left : a
right : b
inductive Nat where
| zero : Nat
| succ (n : Nat) : Nat
#check Nat.noConfusion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment