  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  ============================
   ((λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
            hProp_to_hSet
              (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
     CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
       (pr1 h) (pr2 h)) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path))


Going to execute:
simple refine (p _ _)

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  ============================
   ((λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
            hProp_to_hSet
              (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
     CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
       (pr1 h) (pr2 h)) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path))


Going to execute:
<coq-core.plugins.ltac::simple_refine@0> $1

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  ============================
   ((λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
            hProp_to_hSet
              (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
     CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
       (pr1 h) (pr2 h)) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path))


Going to execute:
simple refine (p _ _ _) ||
  simple refine (p _ _ _ _) ||
    simple refine (p _ _ _ _ _) ||
      simple refine (p _ _ _ _ _ _) ||
        simple refine (p _ _ _ _ _ _ _) ||
          simple refine (p _ _ _ _ _ _ _ _) ||
            simple refine (p _ _ _ _ _ _ _ _ _) ||
              simple refine (p _ _ _ _ _ _ _ _ _ _) ||
                simple refine (p _ _ _ _ _ _ _ _ _ _ _) ||
                  simple refine (p _ _ _ _ _ _ _ _ _ _ _ _) ||
                    simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                      simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _) || simple
                       refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
Level 0: In environment
P : hset_cartesian_closed_struct
C : category
E : struct_enrichment P C
E' := make_enrichment_over_struct P C E
 : enrichment C (sym_mon_closed_cat_of_hset_struct P)
HP : hset_equalizer_struct P
EEC : enrichment_coequalizers E'
w, x, y : C
f, g : C ⟦ x, y ⟧
Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
        (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
 : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
Eq_path := EqualizerEqAr Eq
 : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
The term "funextsec ?P ?f" has type
 "∏ g0 : ∏ t : ?T, ?P t, ?f ~ g0 → ?f = g0" while it is expected to have type
 "(λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
          hProp_to_hSet
            (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
   CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
     (pr1 h) (pr2 h)) =
  pr1
    (EqualizerIn
       (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w) Eq
       Eq_pr Eq_path)".
Level 0: In environment
P : hset_cartesian_closed_struct
C : category
E : struct_enrichment P C
E' := make_enrichment_over_struct P C E
 : enrichment C (sym_mon_closed_cat_of_hset_struct P)
HP : hset_equalizer_struct P
EEC : enrichment_coequalizers E'
w, x, y : C
f, g : C ⟦ x, y ⟧
Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
        (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
 : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
Eq_path := EqualizerEqAr Eq
 : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
The term "funextsec ?P ?f" has type
 "∏ g0 : ∏ t : ?T, ?P t, ?f ~ g0 → ?f = g0" while it is expected to have type
 "(λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
          hProp_to_hSet
            (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
   CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
     (pr1 h) (pr2 h)) =
  pr1
    (EqualizerIn
       (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w) Eq
       Eq_pr Eq_path)".

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  ============================
   ((λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
            hProp_to_hSet
              (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
     CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
       (pr1 h) (pr2 h)) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path))


Going to execute:
simple refine (p _ _ _)

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  ============================
   ((λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
            hProp_to_hSet
              (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
     CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
       (pr1 h) (pr2 h)) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path))


Going to execute:
<coq-core.plugins.ltac::simple_refine@0> $1

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  ============================
   ((λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
            hProp_to_hSet
              (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
     CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
       (pr1 h) (pr2 h)) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path))


Going to execute:
simple refine (p _ _ _ _) ||
  simple refine (p _ _ _ _ _) ||
    simple refine (p _ _ _ _ _ _) ||
      simple refine (p _ _ _ _ _ _ _) ||
        simple refine (p _ _ _ _ _ _ _ _) ||
          simple refine (p _ _ _ _ _ _ _ _ _) ||
            simple refine (p _ _ _ _ _ _ _ _ _ _) ||
              simple refine (p _ _ _ _ _ _ _ _ _ _ _) ||
                simple refine (p _ _ _ _ _ _ _ _ _ _ _ _) ||
                  simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                    simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _) || simple
                     refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
Level 0: In environment
P : hset_cartesian_closed_struct
C : category
E : struct_enrichment P C
E' := make_enrichment_over_struct P C E
 : enrichment C (sym_mon_closed_cat_of_hset_struct P)
HP : hset_equalizer_struct P
EEC : enrichment_coequalizers E'
w, x, y : C
f, g : C ⟦ x, y ⟧
Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
        (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
 : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
Eq_path := EqualizerEqAr Eq
 : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
The term "funextsec ?P ?f ?g" has type "?f ~ ?g → ?f = ?g"
while it is expected to have type
 "(λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
          hProp_to_hSet
            (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
   CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
     (pr1 h) (pr2 h)) =
  pr1
    (EqualizerIn
       (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w) Eq
       Eq_pr Eq_path)".
Level 0: In environment
P : hset_cartesian_closed_struct
C : category
E : struct_enrichment P C
E' := make_enrichment_over_struct P C E
 : enrichment C (sym_mon_closed_cat_of_hset_struct P)
HP : hset_equalizer_struct P
EEC : enrichment_coequalizers E'
w, x, y : C
f, g : C ⟦ x, y ⟧
Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
        (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
 : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
Eq_path := EqualizerEqAr Eq
 : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
The term "funextsec ?P ?f ?g" has type "?f ~ ?g → ?f = ?g"
while it is expected to have type
 "(λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
          hProp_to_hSet
            (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
   CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
     (pr1 h) (pr2 h)) =
  pr1
    (EqualizerIn
       (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w) Eq
       Eq_pr Eq_path)".

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  ============================
   ((λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
            hProp_to_hSet
              (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
     CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
       (pr1 h) (pr2 h)) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path))


Going to execute:
simple refine (p _ _ _ _)

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  ============================
   ((λ h : (∑ x0 : pr1 (E' ⦃ y, w ⦄),
            hProp_to_hSet
              (pr1 (precomp_arr E' w f) x0 = pr1 (precomp_arr E' w g) x0)%logic)%set,
     CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
       (pr1 h) (pr2 h)) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path))


Going to execute:
<coq-core.plugins.ltac::simple_refine@0> $1

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
simple_rapply p

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
fun p =>
  simple refine p ||
    simple refine (p _) ||
      simple refine (p _ _) ||
...                              simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _)
                               || simple refine
                               (p _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)

TcDebug (1) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
simple refine p ||
  simple refine (p _) ||
    simple refine (p _ _) ||
      simple refine (p _ _ _) ||
        simple refine (p _ _ _ _) ||
          simple refine (p _ _ _ _ _) ||
            simple refine (p _ _ _ _ _ _) ||
              simple refine (p _ _ _ _ _ _ _) ||
                simple refine (p _ _ _ _ _ _ _ _) ||
                  simple refine (p _ _ _ _ _ _ _ _ _) ||
                    simple refine (p _ _ _ _ _ _ _ _ _ _) ||
                      simple refine (p _ _ _ _ _ _ _ _ _ _ _) ||
                        simple refine (p _ _ _ _ _ _ _ _ _ _ _ _) ||
                          simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                            simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                              simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)

TcDebug (1) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
simple refine p
Level 1: evaluation returns
simple refine p ||
  simple refine (p _) ||
    simple refine (p _ _) ||
      simple refine (p _ _ _) ||
        simple refine (p _ _ _ _) ||
          simple refine (p _ _ _ _ _) ||
            simple refine (p _ _ _ _ _ _) ||
              simple refine (p _ _ _ _ _ _ _) ||
                simple refine (p _ _ _ _ _ _ _ _) ||
                  simple refine (p _ _ _ _ _ _ _ _ _) ||
                    simple refine (p _ _ _ _ _ _ _ _ _ _) ||
                      simple refine (p _ _ _ _ _ _ _ _ _ _ _) ||
                        simple refine (p _ _ _ _ _ _ _ _ _ _ _ _) ||
                          simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                            simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                              simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
where
p := underlying_Coequalizer_arr_eq
of type
uconstr of type tacvalue


TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
<coq-core.plugins.ltac::simple_refine@0> $1

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
simple refine (p _) ||
  simple refine (p _ _) ||
    simple refine (p _ _ _) ||
      simple refine (p _ _ _ _) ||
        simple refine (p _ _ _ _ _) ||
          simple refine (p _ _ _ _ _ _) ||
            simple refine (p _ _ _ _ _ _ _) ||
              simple refine (p _ _ _ _ _ _ _ _) ||
                simple refine (p _ _ _ _ _ _ _ _ _) ||
                  simple refine (p _ _ _ _ _ _ _ _ _ _) ||
                    simple refine (p _ _ _ _ _ _ _ _ _ _ _) ||
                      simple refine (p _ _ _ _ _ _ _ _ _ _ _ _) ||
                        simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                          simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                            simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
Level 0: In environment
P : hset_cartesian_closed_struct
C : category
E : struct_enrichment P C
E' := make_enrichment_over_struct P C E
 : enrichment C (sym_mon_closed_cat_of_hset_struct P)
HP : hset_equalizer_struct P
EEC : enrichment_coequalizers E'
w, x, y : C
f, g : C ⟦ x, y ⟧
Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
        (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
 : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
Eq_path := EqualizerEqAr Eq
 : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
fg : pr1 Eq
The term "underlying_Coequalizer_arr_eq" has type
 "∏ (E0 : enrichment ?C ?V) (x0 y0 : ?C) (f0 g0 : ?C ⟦ x0, y0 ⟧)
  (a : enriched_coequalizer_cocone E0 f0 g0),
  is_coequalizer_enriched E0 f0 g0 a
  → ∏ (w0 : ?C) (h₁ h₂ : ?C ⟦ a, w0 ⟧),
    enriched_coequalizer_cocone_in E0 f0 g0 a · h₁ =
    enriched_coequalizer_cocone_in E0 f0 g0 a · h₂ → 
    h₁ = h₂" while it is expected to have type
 "CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
    (pr1 fg) (pr2 fg) =
  pr1
    (EqualizerIn
       (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w) Eq
       Eq_pr Eq_path) fg".
Level 0: In environment
P : hset_cartesian_closed_struct
C : category
E : struct_enrichment P C
E' := make_enrichment_over_struct P C E
 : enrichment C (sym_mon_closed_cat_of_hset_struct P)
HP : hset_equalizer_struct P
EEC : enrichment_coequalizers E'
w, x, y : C
f, g : C ⟦ x, y ⟧
Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
        (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
 : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
Eq_path := EqualizerEqAr Eq
 : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
fg : pr1 Eq
The term "underlying_Coequalizer_arr_eq" has type
 "∏ (E0 : enrichment ?C ?V) (x0 y0 : ?C) (f0 g0 : ?C ⟦ x0, y0 ⟧)
  (a : enriched_coequalizer_cocone E0 f0 g0),
  is_coequalizer_enriched E0 f0 g0 a
  → ∏ (w0 : ?C) (h₁ h₂ : ?C ⟦ a, w0 ⟧),
    enriched_coequalizer_cocone_in E0 f0 g0 a · h₁ =
    enriched_coequalizer_cocone_in E0 f0 g0 a · h₂ → 
    h₁ = h₂" while it is expected to have type
 "CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
    (pr1 fg) (pr2 fg) =
  pr1
    (EqualizerIn
       (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w) Eq
       Eq_pr Eq_path) fg".

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
simple refine (p _)

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
<coq-core.plugins.ltac::simple_refine@0> $1

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
simple refine (p _ _) ||
  simple refine (p _ _ _) ||
    simple refine (p _ _ _ _) ||
      simple refine (p _ _ _ _ _) ||
        simple refine (p _ _ _ _ _ _) ||
          simple refine (p _ _ _ _ _ _ _) ||
            simple refine (p _ _ _ _ _ _ _ _) ||
              simple refine (p _ _ _ _ _ _ _ _ _) ||
                simple refine (p _ _ _ _ _ _ _ _ _ _) ||
                  simple refine (p _ _ _ _ _ _ _ _ _ _ _) ||
                    simple refine (p _ _ _ _ _ _ _ _ _ _ _ _) ||
                      simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                        simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _) ||
                          simple refine (p _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
Level 0: In environment
P : hset_cartesian_closed_struct
C : category
E : struct_enrichment P C
E' := make_enrichment_over_struct P C E
 : enrichment C (sym_mon_closed_cat_of_hset_struct P)
HP : hset_equalizer_struct P
EEC : enrichment_coequalizers E'
w, x, y : C
f, g : C ⟦ x, y ⟧
Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
        (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
 : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
Eq_path := EqualizerEqAr Eq
 : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
fg : pr1 Eq
The term "@underlying_Coequalizer_arr_eq ?V ?C ?E" has type
 "∏ (x0 y0 : ?C) (f0 g0 : ?C ⟦ x0, y0 ⟧)
  (a : enriched_coequalizer_cocone ?E f0 g0),
  is_coequalizer_enriched ?E f0 g0 a
  → ∏ (w0 : ?C) (h₁ h₂ : ?C ⟦ a, w0 ⟧),
    enriched_coequalizer_cocone_in ?E f0 g0 a · h₁ =
    enriched_coequalizer_cocone_in ?E f0 g0 a · h₂ → 
    h₁ = h₂" while it is expected to have type
 "CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
    (pr1 fg) (pr2 fg) =
  pr1
    (EqualizerIn
       (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w) Eq
       Eq_pr Eq_path) fg".
Level 0: In environment
P : hset_cartesian_closed_struct
C : category
E : struct_enrichment P C
E' := make_enrichment_over_struct P C E
 : enrichment C (sym_mon_closed_cat_of_hset_struct P)
HP : hset_equalizer_struct P
EEC : enrichment_coequalizers E'
w, x, y : C
f, g : C ⟦ x, y ⟧
Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
        (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
 : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
Eq_path := EqualizerEqAr Eq
 : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
fg : pr1 Eq
The term "@underlying_Coequalizer_arr_eq ?V ?C ?E" has type
 "∏ (x0 y0 : ?C) (f0 g0 : ?C ⟦ x0, y0 ⟧)
  (a : enriched_coequalizer_cocone ?E f0 g0),
  is_coequalizer_enriched ?E f0 g0 a
  → ∏ (w0 : ?C) (h₁ h₂ : ?C ⟦ a, w0 ⟧),
    enriched_coequalizer_cocone_in ?E f0 g0 a · h₁ =
    enriched_coequalizer_cocone_in ?E f0 g0 a · h₂ → 
    h₁ = h₂" while it is expected to have type
 "CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
    (pr1 fg) (pr2 fg) =
  pr1
    (EqualizerIn
       (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w) Eq
       Eq_pr Eq_path) fg".

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
simple refine (p _ _)

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
     : Equalizer (precomp_arr E' w f) (precomp_arr E' w g)
  Eq_pr := EqualizerArrow Eq : category_of_hset_struct P ⟦ Eq, E' ⦃ y, w ⦄ ⟧
  Eq_path := EqualizerEqAr Eq
          : Eq_pr · precomp_arr E' w f = Eq_pr · precomp_arr E' w g
  fg : pr1hSet (pr1 Eq)
  ============================
   (CoequalizerOut (underlying_Coequalizer E' f g (pr2 (EEC x y f g))) w
      (pr1 fg) (pr2 fg) =
    pr1
      (EqualizerIn
         (is_coequalizer_enriched_to_Equalizer E' f g (pr2 (EEC x y f g)) w)
         Eq Eq_pr Eq_path) fg)


Going to execute:
<coq-core.plugins.ltac::simple_refine@0> $1

TcDebug (0) > 
Goal:
  
  P : hset_cartesian_closed_struct
  C : category
  E : struct_enrichment P C
  E' := make_enrichment_over_struct P C E
     : enrichment C (sym_mon_closed_cat_of_hset_struct P)
  HP : hset_equalizer_struct P
  EEC : enrichment_coequalizers E'
  w : ob C
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  Eq := Equalizers_category_of_hset_struct HP (E' ⦃ y, w ⦄) 
          (E' ⦃ x, w ⦄) (precomp_arr E' w f) (precomp_arr E' w g)
