      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
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y, z : C
f, g : C ⟦ x, y ⟧
h₁, h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
q : poset_enrichment_obj_coeq_in f g · h₁ =
    poset_enrichment_obj_coeq_in f g · h₂
The term "CoequalizerOutsEq ?E" has type
 "∏ φ1 φ2 : ?C ⟦ ?E, ?w ⟧,
  CoequalizerArrow ?E · φ1 = CoequalizerArrow ?E · φ2 → φ1 = φ2"
while it is expected to have type "h₁ = h₂".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y, z : C
f, g : C ⟦ x, y ⟧
h₁, h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
q : poset_enrichment_obj_coeq_in f g · h₁ =
    poset_enrichment_obj_coeq_in f g · h₂
The term "CoequalizerOutsEq ?E" has type
 "∏ φ1 φ2 : ?C ⟦ ?E, ?w ⟧,
  CoequalizerArrow ?E · φ1 = CoequalizerArrow ?E · φ2 → φ1 = φ2"
while it is expected to have type "h₁ = h₂".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (h₁ = h₂)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (h₁ = h₂)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (h₁ = h₂)


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
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y, z : C
f, g : C ⟦ x, y ⟧
h₁, h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
q : poset_enrichment_obj_coeq_in f g · h₁ =
    poset_enrichment_obj_coeq_in f g · h₂
The term "CoequalizerOutsEq ?E ?φ1" has type
 "∏ φ2 : ?C ⟦ ?E, ?w ⟧,
  CoequalizerArrow ?E · ?φ1 = CoequalizerArrow ?E · φ2 → ?φ1 = φ2"
while it is expected to have type "h₁ = h₂".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y, z : C
f, g : C ⟦ x, y ⟧
h₁, h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
q : poset_enrichment_obj_coeq_in f g · h₁ =
    poset_enrichment_obj_coeq_in f g · h₂
The term "CoequalizerOutsEq ?E ?φ1" has type
 "∏ φ2 : ?C ⟦ ?E, ?w ⟧,
  CoequalizerArrow ?E · ?φ1 = CoequalizerArrow ?E · φ2 → ?φ1 = φ2"
while it is expected to have type "h₁ = h₂".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (h₁ = h₂)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (h₁ = h₂)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (h₁ = h₂)


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 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y, z : C
f, g : C ⟦ x, y ⟧
h₁, h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
q : poset_enrichment_obj_coeq_in f g · h₁ =
    poset_enrichment_obj_coeq_in f g · h₂
The term "CoequalizerOutsEq ?E ?φ1 ?φ2" has type
 "CoequalizerArrow ?E · ?φ1 = CoequalizerArrow ?E · ?φ2 → ?φ1 = ?φ2"
while it is expected to have type "h₁ = h₂".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y, z : C
f, g : C ⟦ x, y ⟧
h₁, h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
q : poset_enrichment_obj_coeq_in f g · h₁ =
    poset_enrichment_obj_coeq_in f g · h₂
The term "CoequalizerOutsEq ?E ?φ1 ?φ2" has type
 "CoequalizerArrow ?E · ?φ1 = CoequalizerArrow ?E · ?φ2 → ?φ1 = ?φ2"
while it is expected to have type "h₁ = h₂".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (h₁ = h₂)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (h₁ = h₂)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  h₂ : C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧
  q : poset_enrichment_obj_coeq_in f g · h₁ =
      poset_enrichment_obj_coeq_in f g · h₂
  ============================
   (CoequalizerArrow (pr1 EEC x y f g) · h₁ =
    CoequalizerArrow (pr1 EEC x y f g) · h₂)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (category_of_posets
    ⟦ Equalizers_category_of_posets (E' ⦃ y, z ⦄) 
        (E' ⦃ x, z ⦄) (precomp_arr E' z f) (precomp_arr E' z g),
    E' ⦃ poset_enrichment_obj_coequalizer f g, z ⦄ ⟧)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   ((∑ x0 : C ⟦ y, z ⟧, f · x0 = g · x0)
    → C ⟦ poset_enrichment_obj_coequalizer f g, z ⟧)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  z : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  h₁ : pr1hSet
         (pr1
            (Equalizers_category_of_posets (E' ⦃ y, z ⦄) 
               (E' ⦃ x, z ⦄) (precomp_arr E' z f) 
               (precomp_arr E' z g)))
  h₂ : pr1hSet
         (pr1
            (Equalizers_category_of_posets (E' ⦃ y, z ⦄) 
               (E' ⦃ x, z ⦄) (precomp_arr E' z f) 
               (precomp_arr E' z g)))
  q : hProptoType
        (pr2
           (Equalizers_category_of_posets (E' ⦃ y, z ⦄) 
              (E' ⦃ x, z ⦄) (precomp_arr E' z f) (precomp_arr E' z g)) h₁ h₂)
  ============================
   (hProptoType
      (pr2 (E' ⦃ poset_enrichment_obj_coequalizer f g, z ⦄)
         (poset_enrichment_obj_from_coequalizer (pr1 h₁) (pr2 h₁))
         (poset_enrichment_obj_from_coequalizer (pr1 h₂) (pr2 h₂))))


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


Going to execute:
simple_rapply p

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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

TcDebug (1) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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 := make_enriched_coequalizer_cocone
of type
uconstr of type tacvalue


TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "make_enriched_coequalizer_cocone" has type
 "∏ (E0 : enrichment ?C ?V) (x0 y0 : ?C) (f0 g0 : ?C ⟦ x0, y0 ⟧) 
  (a : ?C) (p : ?V ⟦ I_{ ?V}, E0 ⦃ y0, a ⦄ ⟧),
  f0 · enriched_to_arr E0 p = g0 · enriched_to_arr E0 p
  → enriched_coequalizer_cocone E0 f0 g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "make_enriched_coequalizer_cocone" has type
 "∏ (E0 : enrichment ?C ?V) (x0 y0 : ?C) (f0 g0 : ?C ⟦ x0, y0 ⟧) 
  (a : ?C) (p : ?V ⟦ I_{ ?V}, E0 ⦃ y0, a ⦄ ⟧),
  f0 · enriched_to_arr E0 p = g0 · enriched_to_arr E0 p
  → enriched_coequalizer_cocone E0 f0 g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


Going to execute:
simple refine (p _)

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "@make_enriched_coequalizer_cocone ?V ?C ?E" has type
 "∏ (x0 y0 : ?C) (f0 g0 : ?C ⟦ x0, y0 ⟧) (a : ?C)
  (p : ?V ⟦ I_{ ?V}, ?E ⦃ y0, a ⦄ ⟧),
  f0 · enriched_to_arr ?E p = g0 · enriched_to_arr ?E p
  → enriched_coequalizer_cocone ?E f0 g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "@make_enriched_coequalizer_cocone ?V ?C ?E" has type
 "∏ (x0 y0 : ?C) (f0 g0 : ?C ⟦ x0, y0 ⟧) (a : ?C)
  (p : ?V ⟦ I_{ ?V}, ?E ⦃ y0, a ⦄ ⟧),
  f0 · enriched_to_arr ?E p = g0 · enriched_to_arr ?E p
  → enriched_coequalizer_cocone ?E f0 g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


Going to execute:
simple refine (p _ _)

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "@make_enriched_coequalizer_cocone ?V ?C ?E ?x" has type
 "∏ (y0 : ?C) (f0 g0 : ?C ⟦ ?x, y0 ⟧) (a : ?C)
  (p : ?V ⟦ I_{ ?V}, ?E ⦃ y0, a ⦄ ⟧),
  f0 · enriched_to_arr ?E p = g0 · enriched_to_arr ?E p
  → enriched_coequalizer_cocone ?E f0 g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "@make_enriched_coequalizer_cocone ?V ?C ?E ?x" has type
 "∏ (y0 : ?C) (f0 g0 : ?C ⟦ ?x, y0 ⟧) (a : ?C)
  (p : ?V ⟦ I_{ ?V}, ?E ⦃ y0, a ⦄ ⟧),
  f0 · enriched_to_arr ?E p = g0 · enriched_to_arr ?E p
  → enriched_coequalizer_cocone ?E f0 g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "make_enriched_coequalizer_cocone ?E" has type
 "∏ (f0 g0 : ?C ⟦ ?x, ?y ⟧) (a : ?C) (p : ?V ⟦ I_{ ?V}, ?E ⦃ ?y, a ⦄ ⟧),
  f0 · enriched_to_arr ?E p = g0 · enriched_to_arr ?E p
  → enriched_coequalizer_cocone ?E f0 g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "make_enriched_coequalizer_cocone ?E" has type
 "∏ (f0 g0 : ?C ⟦ ?x, ?y ⟧) (a : ?C) (p : ?V ⟦ I_{ ?V}, ?E ⦃ ?y, a ⦄ ⟧),
  f0 · enriched_to_arr ?E p = g0 · enriched_to_arr ?E p
  → enriched_coequalizer_cocone ?E f0 g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


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 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "make_enriched_coequalizer_cocone ?E ?f" has type
 "∏ (g0 : ?C ⟦ ?x, ?y ⟧) (a : ?C) (p : ?V ⟦ I_{ ?V}, ?E ⦃ ?y, a ⦄ ⟧),
  ?f · enriched_to_arr ?E p = g0 · enriched_to_arr ?E p
  → enriched_coequalizer_cocone ?E ?f g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
EEC : poset_enrichment_coequalizers
x, y : C
f, g : C ⟦ x, y ⟧
The term "make_enriched_coequalizer_cocone ?E ?f" has type
 "∏ (g0 : ?C ⟦ ?x, ?y ⟧) (a : ?C) (p : ?V ⟦ I_{ ?V}, ?E ⦃ ?y, a ⦄ ⟧),
  ?f · enriched_to_arr ?E p = g0 · enriched_to_arr ?E p
  → enriched_coequalizer_cocone ?E ?f g0" while it is expected to have type
 "enriched_coequalizer_cocone E' f g".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  EEC : poset_enrichment_coequalizers
  x : ob C
  y : ob C
  f : C ⟦ x, y ⟧
  g : C ⟦ x, y ⟧
  ============================
   (enriched_coequalizer_cocone E' f g)


Going to execute:
