| inductive E : Type where | |
| | mk : E → E | |
| inductive F : E → Prop | |
| | mk : F e → F (E.mk e) | |
| theorem dec (x : F (E.mk e)) : F e ∧ True := | |
| match x with | |
| | F.mk h => ⟨h, trivial⟩ | |
| def mkNat (e : E) (x : F e) : Nat := | |
| match e with | |
| | E.mk e' => | |
| match dec x with | |
| | ⟨h, _⟩ => mkNat e' h | |
| theorem fail (e : E) (x₁ : F e) (x₂ : F (E.mk e)) : mkNat e x₁ = mkNat (E.mk e) x₂ := | |
| /- The following rfl was succeeding in the elaborator but failing in the kernel because | |
| of a discrepancy in the implementation for Eta-for-structures. -/ | |
| rfl -- should fail |