set_option pp.beta true structure foo := mk :: (A : Type) (B : A → Type) (a : A) (b : B a) namespace foo definition foo.inj₁ {A₁ : Type} {B₁ : A₁ → Type} {a₁ : A₁} {b₁ : B₁ a₁} {A₂ : Type} {B₂ : A₂ → Type} {a₂ : A₂} {b₂ : B₂ a₂} (H : foo.mk A₁ B₁ a₁ b₁ = foo.mk A₂ B₂ a₂ b₂) : A₁ = A₂ := lift.down (foo.no_confusion H (λ e₁ e₂ e₃ e₄, e₁)) end foo