Built with Alectryon, running Coq+SerAPI v8.19.0+0.19.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Require Import WildCat.Core WildCat.Equiv WildCat.Monoidal WildCat.Bifunctor
WildCat.NatTrans WildCat.Opposite WildCat.Products.Require Import abstract_algebra.(** * Monoids and Comonoids *)(** Here we define a monoid internal to a monoidal category. Note that we don't actually need the full monoidal structure so we assume only the parts we need. This allows us to keep the definitions general between various flavours of monoidal category.Many algebraic theories such as groups and rings may also be internalized, however these specifically require a cartesian monoidal structure. The theory of monoids however has no such requirement and can therefore be developed in much greater generality. This can be used to define a range of objects such as R-algebras, H-spaces, Hopf algebras and more. *)(** * Monoid objects *)SectionMonoidObject.Context {A : Type} (tensor : A -> A -> A) {unit : A}
`{HasEquivs A, !Is0Bifunctor tensor, !Is1Bifunctor tensor}
`{!Associator tensor, !LeftUnitor tensor unit, !RightUnitor tensor unit}.(** An object [x] of [A] is a monoid object if it comes with the following data: *)ClassIsMonoidObject (x : A) := {
(** A multiplication map from the tensor product of [x] with itself to [x]. *)
mo_mult : tensor x x $-> x;
(** A unit of the multiplication. *)
mo_unit : unit $-> x;
(** The multiplication map is associative. *)
mo_assoc : mo_mult $o fmap10 tensor mo_mult x $o associator x x x
$== mo_mult $o fmap01 tensor x mo_mult;
(** The multiplication map is left unital. *)
mo_left_unit : mo_mult $o fmap10 tensor mo_unit x $== left_unitor x;
(** The multiplication map is right unital. *)
mo_right_unit : mo_mult $o fmap01 tensor x mo_unit $== right_unitor x;
}.Context `{!Braiding tensor}.(** An object [x] of [A] is a commutative monoid object if: *)ClassIsCommutativeMonoidObject (x : A) := {
(** It is a monoid object. *)
cmo_mo :: IsMonoidObject x;
(** The multiplication map is commutative. *)
cmo_comm : mo_mult $o braid x x $== mo_mult;
}.EndMonoidObject.Arguments IsMonoidObject {A} tensor unit {_ _ _ _ _ _ _ _ _ _} x.Arguments IsCommutativeMonoidObject {A} tensor unit {_ _ _ _ _ _ _ _ _ _ _} x.SectionComonoidObject.Context {A : Type} (tensor : A -> A -> A) (unit : A)
`{HasEquivs A, !Is0Bifunctor tensor, !Is1Bifunctor tensor}
`{!Associator tensor, !LeftUnitor tensor unit, !RightUnitor tensor unit}.(** A comonoid object is a monoid object in the opposite category. *)ClassIsComonoidObject (x : A)
:= ismonoid_comonoid_op :: IsMonoidObject (A:=A^op) tensor unit x.(** We can build comonoid objects from the following data: *)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
IsComonoidObject x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
IsComonoidObject x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
tensor x x $-> x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
unit $-> x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
?mo_mult $o fmap10 tensor ?mo_mult x $o
associator_op x x x $==
?mo_mult $o fmap01 tensor x ?mo_mult
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
?mo_mult $o fmap10 tensor ?mo_unit x $==
left_unitor_op unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
?mo_mult $o fmap01 tensor x ?mo_unit $==
right_unitor_op unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
tensor x x $-> x
exact co_comult.
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
unit $-> x
exact co_counit.
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
co_comult $o fmap10 tensor co_comult x $o
associator_op x x x $==
co_comult $o fmap01 tensor x co_comult
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
co_comult $o fmap10 tensor co_comult x $==
co_comult $o fmap01 tensor x co_comult $o
Associator0 (x, x, x)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
co_comult $o fmap01 tensor x co_comult $o
Associator0 (x, x, x) $==
co_comult $o fmap10 tensor co_comult x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
co_comult $o
(fmap01 tensor x co_comult $o Associator0 (x, x, x)) $==
co_comult $o fmap10 tensor co_comult x
rapply co_coassoc.
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
co_comult $o fmap10 tensor co_counit x $==
left_unitor_op unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
fmap10 tensor co_counit x $o co_comult $==
cate_fun' x (tensor unit x)
(cate_buildequiv' x (tensor unit x)
(cate_inv' (tensor unit x) x (LeftUnitor0 x))
(catie_adjointify
(cate_inv' (tensor unit x) x (LeftUnitor0 x))
(cate_fun' (tensor unit x) x (LeftUnitor0 x))
(cate_issect' (tensor unit x) x
(LeftUnitor0 x))
(cate_isretr' (tensor unit x) x
(LeftUnitor0 x)))) $o Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
LeftUnitor0 x $o
(fmap10 tensor co_counit x $o co_comult) $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
LeftUnitor0 x $o fmap10 tensor co_counit x $o
co_comult $== Id x
exact co_left_counit.
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
co_comult $o fmap01 tensor x co_counit $==
right_unitor_op unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
fmap01 tensor x co_counit $o co_comult $==
cate_fun' x (tensor x unit)
(cate_buildequiv' x (tensor x unit)
(cate_inv' (tensor x unit) x (RightUnitor0 x))
(catie_adjointify
(cate_inv' (tensor x unit) x (RightUnitor0 x))
(cate_fun' (tensor x unit) x (RightUnitor0 x))
(cate_issect' (tensor x unit) x
(RightUnitor0 x))
(cate_isretr' (tensor x unit) x
(RightUnitor0 x)))) $o Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
RightUnitor0 x $o
(fmap01 tensor x co_counit $o co_comult) $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A co_comult: x $-> tensor x x co_counit: x $-> unit co_coassoc: Associator0 x x x $o
fmap01 tensor x co_comult $o co_comult $==
fmap10 tensor co_comult x $o co_comult co_left_counit: LeftUnitor0 x $o
fmap10 tensor co_counit x $o
co_comult $== Id x co_right_counit: RightUnitor0 x $o
fmap01 tensor x co_counit $o
co_comult $== Id x
RightUnitor0 x $o fmap01 tensor x co_counit $o
co_comult $== Id x
exact co_right_counit.Defined.(** Comultiplication *)Definitionco_comult {x : A} `{!IsComonoidObject x} : x $-> tensor x x
:= mo_mult (A:=A^op) tensor (unit:=unit) (x:=x).(** Counit *)Definitionco_counit {x : A} `{!IsComonoidObject x} : x $-> unit
:= mo_unit (A:=A^op) tensor (unit:=unit) (x:=x).(** Coassociativity *)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
Associator0 x x x $o fmap01 tensor x co_comult $o
co_comult $== fmap10 tensor co_comult x $o co_comult
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
Associator0 x x x $o fmap01 tensor x co_comult $o
co_comult $== fmap10 tensor co_comult x $o co_comult
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
Associator0 x x x $o
(fmap01 tensor x co_comult $o co_comult) $==
fmap10 tensor co_comult x $o co_comult
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
fmap01 tensor x co_comult $o co_comult $==
(Associator0 x x x)^-1$ $o
(fmap10 tensor co_comult x $o co_comult)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
(Associator0 x x x)^-1$ $o
(fmap10 tensor co_comult x $o co_comult) $==
fmap01 tensor x co_comult $o co_comult
exact (mo_assoc (A:=A^op) tensor (unit:=unit) (x:=x)).Defined.(** Left counitality *)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
LeftUnitor0 x $o fmap10 tensor co_counit x $o
co_comult $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
LeftUnitor0 x $o fmap10 tensor co_counit x $o
co_comult $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
LeftUnitor0 x $o
(fmap10 tensor co_counit x $o co_comult) $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
fmap10 tensor co_counit x $o co_comult $==
(LeftUnitor0 x)^-1$ $o Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
fmap10 tensor co_counit x $o co_comult $==
(LeftUnitor0 x)^-1$
exact (mo_left_unit (A:=A^op) tensor (unit:=unit) (x:=x)).Defined.(** Right counitality *)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
RightUnitor0 x $o fmap01 tensor x co_counit $o
co_comult $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
RightUnitor0 x $o fmap01 tensor x co_counit $o
co_comult $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
RightUnitor0 x $o
(fmap01 tensor x co_counit $o co_comult) $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
fmap01 tensor x co_counit $o co_comult $==
(RightUnitor0 x)^-1$ $o Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A IsComonoidObject0: IsComonoidObject x
fmap01 tensor x co_counit $o co_comult $==
(RightUnitor0 x)^-1$
exact (mo_right_unit (A:=A^op) tensor (unit:=unit) (x:=x)).Defined.Context `{!Braiding tensor}.(** A cocommutative comonoid objects is a commutative monoid object in the opposite category. *)ClassIsCocommutativeComonoidObject (x : A)
:= iscommuatativemonoid_cocomutativemonoid_op
:: IsCommutativeMonoidObject (A:=A^op) tensor unit x.(** We can build cocommutative comonoid objects from the following data: *)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsComonoidObject0: IsComonoidObject x cco_cocomm: Braiding0 x x $o co_comult $== co_comult
IsCocommutativeComonoidObject x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsComonoidObject0: IsComonoidObject x cco_cocomm: Braiding0 x x $o co_comult $== co_comult
IsCocommutativeComonoidObject x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsComonoidObject0: IsComonoidObject x cco_cocomm: Braiding0 x x $o co_comult $== co_comult
IsMonoidObject tensor unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsComonoidObject0: IsComonoidObject x cco_cocomm: Braiding0 x x $o co_comult $== co_comult
mo_mult tensor $o braiding_op x x $== mo_mult tensor
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsComonoidObject0: IsComonoidObject x cco_cocomm: Braiding0 x x $o co_comult $== co_comult
IsMonoidObject tensor unit x
exact _.
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsComonoidObject0: IsComonoidObject x cco_cocomm: Braiding0 x x $o co_comult $== co_comult
mo_mult tensor $o braiding_op x x $== mo_mult tensor
exact cco_cocomm.Defined.
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsCocommutativeComonoidObject0: IsCocommutativeComonoidObject
x
IsComonoidObject x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsCocommutativeComonoidObject0: IsCocommutativeComonoidObject
x
IsComonoidObject x
srapply cmo_mo.Defined.(** Cocommutativity *)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsCocommutativeComonoidObject0: IsCocommutativeComonoidObject
x
Braiding0 x x $o co_comult $== co_comult
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A IsCocommutativeComonoidObject0: IsCocommutativeComonoidObject
x
Braiding0 x x $o co_comult $== co_comult
exact (cmo_comm (A:=A^op) tensor (unit:=unit) (x:=x)).Defined.EndComonoidObject.(** A comonoid object in [A^op] is a monoid object in [A]. *)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
IsMonoidObject tensor unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
IsMonoidObject tensor unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
tensor x x $-> x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
unit $-> x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
?mo_mult $o fmap10 tensor ?mo_mult x $o
Associator0 x x x $==
?mo_mult $o fmap01 tensor x ?mo_mult
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
?mo_mult $o fmap10 tensor ?mo_unit x $== LeftUnitor0 x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
?mo_mult $o fmap01 tensor x ?mo_unit $==
RightUnitor0 x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
tensor x x $-> x
exact (co_comult (A:=A^op) tensor unit).
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
unit $-> x
exact (co_counit (A:=A^op) tensor unit).
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap10 tensor (co_comult tensor unit) x $o
Associator0 x x x $==
co_comult tensor unit $o
fmap01 tensor x (co_comult tensor unit)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap10 tensor (co_comult tensor unit) x $==
co_comult tensor unit $o
fmap01 tensor x (co_comult tensor unit) $o
(Associator0 x x x)^-1$
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap01 tensor x (co_comult tensor unit) $o
(Associator0 x x x)^-1$ $==
co_comult tensor unit $o
fmap10 tensor (co_comult tensor unit) x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap10 tensor (co_counit tensor unit) x $==
LeftUnitor0 x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap10 tensor (co_counit tensor unit) x $==
Id x $o LeftUnitor0 x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap10 tensor (co_counit tensor unit) x $o
(LeftUnitor0 x)^-1$ $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
(fmap10 tensor (co_counit tensor unit) x $o
(LeftUnitor0 x)^-1$) $== Id x
exact (co_left_counit (A:=A^op) tensor unit (x:=x)).
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap01 tensor x (co_counit tensor unit) $==
RightUnitor0 x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap01 tensor x (co_counit tensor unit) $==
Id x $o RightUnitor0 x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
fmap01 tensor x (co_counit tensor unit) $o
(RightUnitor0 x)^-1$ $== Id x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit x: A C: IsComonoidObject tensor unit x
co_comult tensor unit $o
(fmap01 tensor x (co_counit tensor unit) $o
(RightUnitor0 x)^-1$) $== Id x
exact (co_right_counit (A:=A^op) tensor unit (x:=x)).Defined.(** A cocommutative comonoid object in [A^op] is a commutative monoid object in [A]. *)
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A C: IsCocommutativeComonoidObject tensor unit x
IsCommutativeMonoidObject tensor unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A C: IsCocommutativeComonoidObject tensor unit x
IsCommutativeMonoidObject tensor unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A C: IsCocommutativeComonoidObject tensor unit x
IsMonoidObject tensor unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A C: IsCocommutativeComonoidObject tensor unit x
mo_mult tensor $o Braiding0 x x $== mo_mult tensor
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A C: IsCocommutativeComonoidObject tensor unit x
IsMonoidObject tensor unit x
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A C: IsCocommutativeComonoidObject tensor unit x
IsComonoidObject tensor unit x
rapply co_cco.
A: Type tensor: A -> A -> A unit: A IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A Is0Bifunctor0: Is0Bifunctor tensor Is1Bifunctor0: Is1Bifunctor tensor Associator0: Associator tensor LeftUnitor0: LeftUnitor tensor unit RightUnitor0: RightUnitor tensor unit Braiding0: Braiding tensor x: A C: IsCocommutativeComonoidObject tensor unit x
mo_mult tensor $o Braiding0 x x $== mo_mult tensor
exact (cco_cocomm (A:=A^op) tensor unit).Defined.(** ** Monoid enrichment *)(** A hom [x $-> y] in a cartesian category where [y] is a monoid object has the structure of a monoid. Equivalently, a hom [x $-> y] in a cartesian category where [x] is a comonoid object has the structure of a monoid. *)SectionMonoidEnriched.Context {A : Type} `{HasEquivs A} `{!HasBinaryProducts A}
(I : A) `{!IsTerminal I} {x y : A}
`{!HasMorExt A} `{forallxy : A, IsHSet (x $-> y)}.SectionMonoid.Context `{!IsMonoidObject cat_binprod I y}.Local Instancesgop_hom : SgOp (x $-> y)
:= funfg => mo_mult cat_binprod $o cat_binprod_corec f g.Local Instancemonunit_hom : MonUnit (x $-> y) := mo_unit cat_binprod $o mor_terminal _ _.
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y
Associative sgop_hom
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y
Associative sgop_hom
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f, g, h: x $-> y
sgop_hom f (sgop_hom g h) = sgop_hom (sgop_hom f g) h
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f, g, h: x $-> y
mo_mult cat_binprod $o
cat_binprod_corec f
(mo_mult cat_binprod $o cat_binprod_corec g h) =
mo_mult cat_binprod $o
cat_binprod_corec
(mo_mult cat_binprod $o cat_binprod_corec f g) h
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f, g, h: x $-> y
mo_mult cat_binprod $o
cat_binprod_corec f
(mo_mult cat_binprod $o cat_binprod_corec g h) $==
mo_mult cat_binprod $o
cat_binprod_corec
(mo_mult cat_binprod $o cat_binprod_corec f g) h
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f, g, h: x $-> y
mo_mult cat_binprod $o
(fmap01 (funxy : A => cat_binprod x y) y
(mo_mult cat_binprod) $o
cat_binprod_corec f (cat_binprod_corec g h)) $==
mo_mult cat_binprod $o
cat_binprod_corec
(mo_mult cat_binprod $o cat_binprod_corec f g) h
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f, g, h: x $-> y
mo_mult cat_binprod $o
fmap01 (funxy : A => cat_binprod x y) y
(mo_mult cat_binprod) $o
cat_binprod_corec f (cat_binprod_corec g h) $==
mo_mult cat_binprod $o
cat_binprod_corec
(mo_mult cat_binprod $o cat_binprod_corec f g) h
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f, g, h: x $-> y
mo_mult cat_binprod $o
fmap10 cat_binprod (mo_mult cat_binprod) y $o
cat_tensor_associator y y y $o
cat_binprod_corec f (cat_binprod_corec g h) $==
mo_mult cat_binprod $o
cat_binprod_corec
(mo_mult cat_binprod $o cat_binprod_corec f g) h
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f, g, h: x $-> y
mo_mult cat_binprod $o
fmap10 cat_binprod (mo_mult cat_binprod) y $o
cat_tensor_associator y y y $o
cat_binprod_corec f (cat_binprod_corec g h) $==
mo_mult cat_binprod $o
(fmap10 (funxy : A => cat_binprod x y)
(mo_mult cat_binprod) y $o
cat_binprod_corec (cat_binprod_corec f g) h)
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f, g, h: x $-> y
cat_tensor_associator y y y $o
cat_binprod_corec f (cat_binprod_corec g h) $==
cat_binprod_corec (cat_binprod_corec f g) h
napply cat_binprod_associator_corec.Defined.
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y
LeftIdentity sgop_hom mon_unit
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y
LeftIdentity sgop_hom mon_unit
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
sgop_hom mon_unit f = f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
mo_mult cat_binprod $o cat_binprod_corec monunit_hom f =
f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
mo_mult cat_binprod $o cat_binprod_corec monunit_hom f $==
f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
mo_mult cat_binprod $o
fmap10 (funxy : A => cat_binprod x y)
(mo_unit cat_binprod) y $o
cat_binprod_corec (mor_terminal x I) f $== f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
cat_tensor_left_unitor y $== ?Goal
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
?Goal $o cat_binprod_corec (mor_terminal x I) f $== f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
{|
trans_nattrans :=
funa : A =>
right_unitor_binprod I a $o
symmetricbraiding_binprod I a;
is1natural_nattrans :=
Build_Is1Natural
(funa : A =>
right_unitor_binprod I a $o
symmetricbraiding_binprod I a)
(fun (ab : A) (f : a $-> b) =>
Square.vconcat (braid_nat_r f)
(is1natural_natequiv (right_unitor_binprod I)
a b f))
|} y $o cat_binprod_corec (mor_terminal x I) f $== f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
right_unitor_binprod I y $o
symmetricbraiding_binprod I y $o
cat_binprod_corec (mor_terminal x I) f $== f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
right_unitor_binprod I y $== ?Goal0
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
?Goal0 $o symmetricbraiding_binprod I y $== ?Goal
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
?Goal $o cat_binprod_corec (mor_terminal x I) f $== f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
cat_pr1 $o symmetricbraiding_binprod I y $== ?Goal
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
?Goal $o cat_binprod_corec (mor_terminal x I) f $== f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
cat_pr2 $o cat_binprod_corec (mor_terminal x I) f $==
f
napply cat_binprod_beta_pr2.Defined.
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y
RightIdentity sgop_hom mon_unit
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y
RightIdentity sgop_hom mon_unit
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
sgop_hom f mon_unit = f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
mo_mult cat_binprod $o cat_binprod_corec f monunit_hom =
f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
mo_mult cat_binprod $o cat_binprod_corec f monunit_hom $==
f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
mo_mult cat_binprod $o
fmap01 (funxy : A => cat_binprod x y) y
(mo_unit cat_binprod) $o
cat_binprod_corec f (mor_terminal x I) $== f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
cat_tensor_right_unitor y $== ?Goal
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
?Goal $o cat_binprod_corec f (mor_terminal x I) $== f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsMonoidObject0: IsMonoidObject cat_binprod I y f: x $-> y
cat_pr1 $o cat_binprod_corec f (mor_terminal x I) $==
f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsCommutativeMonoidObject0: IsCommutativeMonoidObject
cat_binprod I y
Commutative sgop_hom
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsCommutativeMonoidObject0: IsCommutativeMonoidObject
cat_binprod I y
Commutative sgop_hom
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsCommutativeMonoidObject0: IsCommutativeMonoidObject
cat_binprod I y f, g: x $-> y
sgop_hom f g = sgop_hom g f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsCommutativeMonoidObject0: IsCommutativeMonoidObject
cat_binprod I y f, g: x $-> y
mo_mult cat_binprod $o cat_binprod_corec f g =
mo_mult cat_binprod $o cat_binprod_corec g f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsCommutativeMonoidObject0: IsCommutativeMonoidObject
cat_binprod I y f, g: x $-> y
mo_mult cat_binprod $o cat_binprod_corec f g $==
mo_mult cat_binprod $o cat_binprod_corec g f
A: Type IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A HasBinaryProducts0: HasBinaryProducts A I: A IsTerminal0: IsTerminal I x, y: A HasMorExt0: HasMorExt A H1: forallxy : A, IsHSet (x $-> y) IsCommutativeMonoidObject0: IsCommutativeMonoidObject
cat_binprod I y f, g: x $-> y
cat_symm_tensor_braiding y y $o cat_binprod_corec g f $->
cat_binprod_corec f g
napply cat_binprod_swap_corec.Defined.Local Instanceiscommutativemonoid_hom : IsCommutativeMonoid (x $-> y) := {}.EndMonoidEnriched.(** ** Preservation of monoid objects by lax monoidal functors *)
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A
IsMonoidObject tensorA IA x ->
IsMonoidObject tensorB IB (F x)
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A
IsMonoidObject tensorA IA x ->
IsMonoidObject tensorB IB (F x)
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
IsMonoidObject tensorB IB (F x)
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
tensorB (F x) (F x) $-> F x
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
IB $-> F x
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
tensorB (F x) (F x) $-> F x
exact (fmap F (mo_mult tensorA) $o fmap_tensor F (x, x)).
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
IB $-> F x
exact (fmap F (mo_unit tensorA) $o fmap_unit).
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
fmap10 tensorB
(fmap F (mo_mult tensorA) $o fmap_tensor F (x, x))
(F x) $o cat_tensor_associator (F x) (F x) (F x) $==
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
fmap01 tensorB (F x)
(fmap F (mo_mult tensorA) $o fmap_tensor F (x, x))
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
(fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x)) $o
cat_tensor_associator (F x) (F x) (F x) $==
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
(fmap01 tensorB (F x) (fmap F (mo_mult tensorA)) $o
fmap01 tensorB (F x) (fmap_tensor F (x, x)))
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
(fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x)) $o
cat_tensor_associator (F x) (F x) (F x) $==
fmap F (mo_mult tensorA) $o ?Goal0 $o
fmap01 tensorB (F x) (fmap_tensor F (x, x))
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap_tensor F (x, x) $o
fmap01 tensorB (F x) (fmap F (mo_mult tensorA)) $->
?Goal0
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
(fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x)) $o
cat_tensor_associator (F x) (F x) (F x) $==
fmap F (mo_mult tensorA) $o
(fmap F (fmap01 tensorA x (mo_mult tensorA)) $o
fmap_tensor F (x, tensorA x x)) $o
fmap01 tensorB (F x) (fmap_tensor F (x, x))
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
(fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x)) $o
cat_tensor_associator (F x) (F x) (F x) $==
fmap F
(mo_mult tensorA $o
fmap10 tensorA (mo_mult tensorA) x $o
cat_tensor_associator x x x) $o
(fmap_tensor F (x, tensorA x x) $o
fmap01 tensorB (F x) (fmap_tensor F (x, x)))
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
(fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x)) $o
cat_tensor_associator (F x) (F x) (F x) $==
fmap F (mo_mult tensorA) $o
fmap F (fmap10 tensorA (mo_mult tensorA) x) $o
fmap F (cat_tensor_associator x x x) $o
(fmap_tensor F (x, tensorA x x) $o
fmap01 tensorB (F x) (fmap_tensor F (x, x)))
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap_tensor F (x, x) $o
(fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x) $o
cat_tensor_associator (F x) (F x) (F x)) $==
fmap F (fmap10 tensorA (mo_mult tensorA) x) $o
(fmap F (cat_tensor_associator x x x) $o
(fmap_tensor F (x, tensorA x x) $o
fmap01 tensorB (F x) (fmap_tensor F (x, x))))
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap_tensor F (x, x) $o
(fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x) $o
cat_tensor_associator (F x) (F x) (F x)) $==
fmap F (fmap10 tensorA (mo_mult tensorA) x) $o ?Goal0
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (cat_tensor_associator x x x) $o
fmap_tensor F (x, tensorA x x) $o
fmap01 tensorB (F x) (fmap_tensor F (x, x)) $->
?Goal0
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap_tensor F (x, x) $o
(fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x) $o
cat_tensor_associator (F x) (F x) (F x)) $==
fmap F (fmap10 tensorA (mo_mult tensorA) x) $o
(fmap_tensor F (tensorA x x, x) $o
fmap10 tensorB (fmap_tensor F (x, x)) (F x) $o
cat_tensor_associator (F x) (F x) (F x))
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap_tensor F (x, x) $o
fmap10 tensorB (fmap F (mo_mult tensorA)) (F x) $==
fmap F (fmap10 tensorA (mo_mult tensorA) x) $o
fmap_tensor F (tensorA x x, x)
snapply fmap_tensor_nat_l.
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
fmap10 tensorB (fmap F (mo_unit tensorA) $o fmap_unit)
(F x) $== cat_tensor_left_unitor (F x)
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap_tensor F (x, x) $o
fmap10 tensorB (fmap F (mo_unit tensorA)) (F x) $==
?Goal
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o
(fmap F (fmap10 tensorA (mo_unit tensorA) x) $o
fmap_tensor F (IA, x) $o
fmap10 tensorB fmap_unit (F x)) $==
cat_tensor_left_unitor (F x)
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
cat_tensor_left_unitor (F x) $->
fmap F (cat_tensor_left_unitor x) $o
fmap_tensor F (IA, x) $o
fmap10 tensorB fmap_unit (F x)
snapply fmap_tensor_left_unitor.
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o fmap_tensor F (x, x) $o
fmap01 tensorB (F x)
(fmap F (mo_unit tensorA) $o fmap_unit) $==
cat_tensor_right_unitor (F x)
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap_tensor F (x, x) $o
fmap01 tensorB (F (fst (x, x)))
(fmap F (mo_unit tensorA)) $==
?Goal
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x
fmap F (mo_mult tensorA) $o
(fmap F (fmap01 tensorA x (mo_unit tensorA)) $o
fmap_tensor F (x, IA) $o
fmap01 tensorB (F (fst (x, x))) fmap_unit) $==
cat_tensor_right_unitor (F x)
A, B: Type tensorA: A -> A -> A tensorB: B -> B -> B IA: A IB: B F: A -> B IsGraph0: IsGraph A Is2Graph0: Is2Graph A Is01Cat0: Is01Cat A H: Is1Cat A H0: HasEquivs A H1: IsMonoidal A tensorA IA IsGraph1: IsGraph B Is2Graph1: Is2Graph B Is01Cat1: Is01Cat B H2: Is1Cat B H3: HasEquivs B H4: IsMonoidal B tensorB IB Is0Functor0: Is0Functor F Is1Functor0: Is1Functor F H5: IsMonoidalFunctor F x: A mo_x: IsMonoidObject tensorA IA x