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
