Open david-christiansen opened 1 week ago
for what it's worth, here is a proof that indeed Fix
is inconsistent:
set_option autoImplicit false
universe u v
axiom Fix : (f:Type u → Type u) → Type u
axiom Fix.mk : {f:Type u → Type u} → f (Fix f) → Fix f
axiom Fix.rec : {f:Type u → Type u} → {motive : Fix f → Sort v} →
(mk: (a:f (Fix f)) → motive (Fix.mk a)) → (a:Fix f) → motive a
noncomputable def Bad.toEmpty : Fix (· → Empty) → Empty := fun b =>
Fix.rec (motive := fun _ => Empty) (fun v => v b) b
noncomputable instance : Inhabited (Fix (· → Empty)) := ⟨Fix.mk (Bad.toEmpty)⟩
example : False := (Bad.toEmpty.{u} default).elim
Describe the bug This came up on Zulip:
And later in the thread:
And the the answer:
This should be investigated and fixed.