Let x0 of type ι → (ι → ι → ι) → ο be given.
Assume H0: ∀ x1 . ∀ x2 : ι → ι → ι . (∀ x3 . x3 ∈ x1 ⟶ ∀ x4 . x4 ∈ x1 ⟶ x2 x3 x4 ∈ x1) ⟶ ∀ x3 : ι → ι → ι . (∀ x4 . x4 ∈ x1 ⟶ ∀ x5 . x5 ∈ x1 ⟶ x2 x4 x5 = x3 x4 x5) ⟶ x0 x1 x3 = x0 x1 x2.
Assume H1:
∀ x1 . ∀ x2 : ι → ι → ι . (∀ x3 . x3 ∈ x1 ⟶ ∀ x4 . x4 ∈ x1 ⟶ x2 x3 x4 ∈ x1) ⟶ x0 x1 x2 ⟶ ∀ x3 . ∀ x4 : ι → ι → ι . (∀ x5 . x5 ∈ x3 ⟶ ∀ x6 . x6 ∈ x3 ⟶ x4 x5 x6 ∈ x3) ⟶ x0 x3 x4 ⟶ ∀ x5 x6 . MagmaHom (pack_b x1 x2) (pack_b x3 x4) x5 ⟶ MagmaHom (pack_b x1 x2) (pack_b x3 x4) x6 ⟶ ∀ x7 : ι → ι → ι . (∀ x8 . x8 ∈ {x9 ∈ x1|ap x5 x9 = ap x6 x9} ⟶ ∀ x9 . x9 ∈ {x10 ∈ x1|ap x5 x10 = ap x6 x10} ⟶ x2 x8 x9 = x7 x8 x9) ⟶ x0 {x8 ∈ x1|ap x5 x8 = ap x6 x8} x7.
Apply L2 with
∃ x1 x2 : ι → ι → ι → ι → ι . ∃ x3 : ι → ι → ι → ι → ι → ι → ι . MetaCat_equalizer_struct_p (λ x4 . and (struct_b x4) (unpack_b_o x4 x0)) MagmaHom struct_id struct_comp x1 x2 x3.
Let x1 of type ι → ι → ι → ι → ι be given.
Assume H4:
(λ x2 : ι → ι → ι → ι → ι . ∀ x3 . ∀ x4 : ι → ι → ι . ∀ x5 x6 x7 . x2 (pack_b x3 x4) x5 x6 x7 = pack_b {x8 ∈ x3|ap x6 x8 = ap x7 x8} x4) x1.
Apply L3 with
∃ x2 x3 : ι → ι → ι → ι → ι . ∃ x4 : ι → ι → ι → ι → ι → ι → ι . MetaCat_equalizer_struct_p (λ x5 . and (struct_b x5) (unpack_b_o x5 x0)) MagmaHom struct_id struct_comp x2 x3 x4.
Let x2 of type ι → ι → ι → ι → ι be given.
Assume H5:
(λ x3 : ι → ι → ι → ι → ι . ∀ x4 . ∀ x5 : ι → ι → ι . ∀ x6 x7 x8 . x3 (pack_b x4 x5) x6 x7 x8 = lam {x9 ∈ x4|ap x7 x9 = ap x8 x9} (λ x9 . x9)) x2.
Let x3 of type ο be given.
Apply H6 with
x1.
Let x4 of type ο be given.
Apply H7 with
x2.
Let x5 of type ο be given.