C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
The term "make_is_copower_enriched ?E ?v ?x ?a" has type
 "∏ p_map : ∏ w : ?C, ?V ⟦ ?v ⊸ (?E ⦃ ?x, w ⦄), ?E ⦃ ?a, w ⦄ ⟧,
  (∏ w : ?C,
   is_copower_enriched_map ?E ?v ?x ?a w · p_map w = identity (?E ⦃ ?a, w ⦄))
  → (∏ w : ?C,
     p_map w · is_copower_enriched_map ?E ?v ?x ?a w =
     identity (?v ⊸ (?E ⦃ ?x, w ⦄))) → is_copower_enriched ?E ?v ?x ?a"
while it is expected to have type
 "is_copower_enriched E' P x poset_copower_cocone".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (is_copower_enriched E' P x poset_copower_cocone)


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (is_copower_enriched E' P x poset_copower_cocone)


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (is_copower_enriched E' P x poset_copower_cocone)


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 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
The term "make_is_copower_enriched ?E ?v ?x ?a ?p_map" has type
 "(∏ w : ?C,
   is_copower_enriched_map ?E ?v ?x ?a w · ?p_map w = identity (?E ⦃ ?a, w ⦄))
  → (∏ w : ?C,
     ?p_map w · is_copower_enriched_map ?E ?v ?x ?a w =
     identity (?v ⊸ (?E ⦃ ?x, w ⦄))) → is_copower_enriched ?E ?v ?x ?a"
while it is expected to have type
 "is_copower_enriched E' P x poset_copower_cocone".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
The term "make_is_copower_enriched ?E ?v ?x ?a ?p_map" has type
 "(∏ w : ?C,
   is_copower_enriched_map ?E ?v ?x ?a w · ?p_map w = identity (?E ⦃ ?a, w ⦄))
  → (∏ w : ?C,
     ?p_map w · is_copower_enriched_map ?E ?v ?x ?a w =
     identity (?v ⊸ (?E ⦃ ?x, w ⦄))) → is_copower_enriched ?E ?v ?x ?a"
while it is expected to have type
 "is_copower_enriched E' P x poset_copower_cocone".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (is_copower_enriched E' P x poset_copower_cocone)


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (is_copower_enriched E' P x poset_copower_cocone)


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (is_copower_enriched E' P x poset_copower_cocone)


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 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
The term "make_is_copower_enriched ?E ?v ?x ?a ?p_map ?H₁" has type
 "(∏ w : ?C,
   ?p_map w · is_copower_enriched_map ?E ?v ?x ?a w =
   identity (?v ⊸ (?E ⦃ ?x, w ⦄))) → is_copower_enriched ?E ?v ?x ?a"
while it is expected to have type
 "is_copower_enriched E' P x poset_copower_cocone".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
The term "make_is_copower_enriched ?E ?v ?x ?a ?p_map ?H₁" has type
 "(∏ w : ?C,
   ?p_map w · is_copower_enriched_map ?E ?v ?x ?a w =
   identity (?v ⊸ (?E ⦃ ?x, w ⦄))) → is_copower_enriched ?E ?v ?x ?a"
while it is expected to have type
 "is_copower_enriched E' P x poset_copower_cocone".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (is_copower_enriched E' P x poset_copower_cocone)


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (is_copower_enriched E' P x poset_copower_cocone)


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    poset_sym_mon_closed_cat ⟦ P ⊸ (E' ⦃ x, w ⦄),
    E' ⦃ poset_copower_cocone, w ⦄ ⟧)


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    is_copower_enriched_map E' P x poset_copower_cocone w
    · poset_copower_map w = identity (E' ⦃ poset_copower_cocone, w ⦄))


Going to execute:
intro y; use eq_monotone_function; intro f; cbn in f; use CoproductArrow_eq;
 intro i; apply (CoproductInCommutes _ _ _ copow)

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    is_copower_enriched_map E' P x poset_copower_cocone w
    · poset_copower_map w = identity (E' ⦃ poset_copower_cocone, w ⦄))


Going to execute:
intro y; use eq_monotone_function; intro f; cbn in f; use CoproductArrow_eq;
 intro i

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    is_copower_enriched_map E' P x poset_copower_cocone w
    · poset_copower_map w = identity (E' ⦃ poset_copower_cocone, w ⦄))


Going to execute:
intro y; use eq_monotone_function; intro f; cbn in f; use CoproductArrow_eq

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    is_copower_enriched_map E' P x poset_copower_cocone w
    · poset_copower_map w = identity (E' ⦃ poset_copower_cocone, w ⦄))


Going to execute:
intro y; use eq_monotone_function; intro f; cbn in f

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    is_copower_enriched_map E' P x poset_copower_cocone w
    · poset_copower_map w = identity (E' ⦃ poset_copower_cocone, w ⦄))


Going to execute:
intro y; use eq_monotone_function; intro f

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    is_copower_enriched_map E' P x poset_copower_cocone w
    · poset_copower_map w = identity (E' ⦃ poset_copower_cocone, w ⦄))


Going to execute:
intro y; use eq_monotone_function

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    is_copower_enriched_map E' P x poset_copower_cocone w
    · poset_copower_map w = identity (E' ⦃ poset_copower_cocone, w ⦄))


Going to execute:
intro y

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  ============================
   (∏ w : C,
    is_copower_enriched_map E' P x poset_copower_cocone w
    · poset_copower_map w = identity (E' ⦃ poset_copower_cocone, w ⦄))


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

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


Going to execute:
use eq_monotone_function

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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 := eq_monotone_function
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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
y : C
The term "eq_monotone_function" has type
 "∏ f g : monotone_function ?R₁ ?R₂, (∏ x0 : ?X₁, f x0 = g x0) → f = g"
while it is expected to have type
 "is_copower_enriched_map E' P x poset_copower_cocone y · poset_copower_map y =
  identity (E' ⦃ poset_copower_cocone, y ⦄)".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
y : C
The term "eq_monotone_function" has type
 "∏ f g : monotone_function ?R₁ ?R₂, (∏ x0 : ?X₁, f x0 = g x0) → f = g"
while it is expected to have type
 "is_copower_enriched_map E' P x poset_copower_cocone y · poset_copower_map y =
  identity (E' ⦃ poset_copower_cocone, y ⦄)".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
y : C
The term "eq_monotone_function ?f" has type
 "∏ g : monotone_function ?R₁ ?R₂, (∏ x0 : ?X₁, ?f x0 = g x0) → ?f = g"
while it is expected to have type
 "is_copower_enriched_map E' P x poset_copower_cocone y · poset_copower_map y =
  identity (E' ⦃ poset_copower_cocone, y ⦄)".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
y : C
The term "eq_monotone_function ?f" has type
 "∏ g : monotone_function ?R₁ ?R₂, (∏ x0 : ?X₁, ?f x0 = g x0) → ?f = g"
while it is expected to have type
 "is_copower_enriched_map E' P x poset_copower_cocone y · poset_copower_map y =
  identity (E' ⦃ poset_copower_cocone, y ⦄)".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
y : C
The term "eq_monotone_function ?f ?g" has type
 "(∏ x0 : ?X₁, ?f x0 = ?g x0) → ?f = ?g" while it is expected to have type
 "is_copower_enriched_map E' P x poset_copower_cocone y · poset_copower_map y =
  identity (E' ⦃ poset_copower_cocone, y ⦄)".
Level 0: In environment
C : category
E : poset_enrichment C
E' := make_enrichment_over_poset C E : enrichment C poset_sym_mon_closed_cat
HE : poset_enrichment_copows
P : poset_sym_mon_closed_cat
x : C
copow := poset_copows_coprod HE P x : Coproduct (pr11 P) C (λ _ : pr11 P, x)
copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
y : C
The term "eq_monotone_function ?f ?g" has type
 "(∏ x0 : ?X₁, ?f x0 = ?g x0) → ?f = ?g" while it is expected to have type
 "is_copower_enriched_map E' P x poset_copower_cocone y · poset_copower_map y =
  identity (E' ⦃ poset_copower_cocone, y ⦄)".

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (is_copower_enriched_map E' P x poset_copower_cocone y
    · poset_copower_map y = identity (E' ⦃ poset_copower_cocone, y ⦄))


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
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (∏ x0 : pr1 (E' ⦃ poset_copower_cocone, y ⦄),
    (is_copower_enriched_map E' P x poset_copower_cocone y
     · poset_copower_map y) x0 = identity (E' ⦃ poset_copower_cocone, y ⦄) x0)


Going to execute:
intro f

TcDebug (0) > 
Goal:
  
  C : category
  E : poset_enrichment C
  E' := make_enrichment_over_poset C E
     : enrichment C poset_sym_mon_closed_cat
  HE : poset_enrichment_copows
  P : ob poset_sym_mon_closed_cat
  x : ob C
  copow := poset_copows_coprod HE P x
        : Coproduct (pr11 P) C (λ _ : pr11 P, x)
  copow_in := λ i : pr11 P, poset_copows_in HE i : pr11 P → C ⟦ x, copow ⟧
  y : ob C
  ============================
   (∏ x0 : pr1 (E' ⦃ poset_copower_cocone, y ⦄),
    (is_copower_enriched_map E' P x poset_copower_cocone y
     · poset_copower_map y) x0 = identity (E' ⦃ poset_copower_cocone, y ⦄) x0)
