Nuprl Lemma : mk-monad_wf
∀[C:SmallCategory]. ∀[T:Functor(C;C)]. ∀[u:nat-trans(C;C;1;T)]. ∀[m:nat-trans(C;C;functor-comp(T;T);T)].
  (mk-monad(T;u;m) ∈ Monad(C)) supposing 
     ((∀X:cat-ob(C)
         ((cat-comp(C) (ob(T) X) (ob(T) (ob(T) X)) (ob(T) X) (u (ob(T) X)) (m X))
         = (cat-id(C) (ob(T) X))
         ∈ (cat-arrow(C) (ob(T) X) (ob(T) X)))) and 
     (∀X:cat-ob(C)
        ((cat-comp(C) (ob(T) X) (ob(T) (ob(T) X)) (ob(T) X) (arrow(T) X (ob(T) X) (u X)) (m X))
        = (cat-id(C) (ob(T) X))
        ∈ (cat-arrow(C) (ob(T) X) (ob(T) X)))) and 
     (∀X:cat-ob(C)
        ((cat-comp(C) (ob(T) (ob(T) (ob(T) X))) (ob(T) (ob(T) X)) (ob(T) X) (m (ob(T) X)) (m X))
        = (cat-comp(C) (ob(T) (ob(T) (ob(T) X))) (ob(T) (ob(T) X)) (ob(T) X) 
           (arrow(T) (ob(T) (ob(T) X)) (ob(T) X) (m X)) 
           (m X))
        ∈ (cat-arrow(C) (ob(T) (ob(T) (ob(T) X))) (ob(T) X)))))
Proof
Definitions occuring in Statement : 
mk-monad: mk-monad(T;u;m)
, 
cat-monad: Monad(C)
, 
id_functor: 1
, 
functor-comp: functor-comp(F;G)
, 
nat-trans: nat-trans(C;D;F;G)
, 
functor-arrow: arrow(F)
, 
functor-ob: ob(F)
, 
cat-functor: Functor(C1;C2)
, 
cat-comp: cat-comp(C)
, 
cat-id: cat-id(C)
, 
cat-arrow: cat-arrow(C)
, 
cat-ob: cat-ob(C)
, 
small-category: SmallCategory
, 
uimplies: b supposing a
, 
uall: ∀[x:A]. B[x]
, 
all: ∀x:A. B[x]
, 
member: t ∈ T
, 
apply: f a
, 
equal: s = t ∈ T
Definitions unfolded in proof : 
cand: A c∧ B
, 
and: P ∧ Q
, 
spreadn: spread3, 
prop: ℙ
, 
mk-monad: mk-monad(T;u;m)
, 
cat-monad: Monad(C)
, 
uimplies: b supposing a
, 
id_functor: 1
, 
so_apply: x[s]
, 
so_lambda: λ2x.t[x]
, 
so_apply: x[s1;s2;s3]
, 
so_lambda: so_lambda(x,y,z.t[x; y; z])
, 
top: Top
, 
member: t ∈ T
, 
all: ∀x:A. B[x]
, 
nat-trans: nat-trans(C;D;F;G)
, 
functor-comp: functor-comp(F;G)
, 
uall: ∀[x:A]. B[x]
Lemmas referenced : 
small-category_wf, 
cat-functor_wf, 
id_functor_wf, 
functor-comp_wf, 
nat-trans_wf, 
cat-id_wf, 
functor-ob_wf, 
cat-arrow_wf, 
cat-ob_wf, 
functor-arrow_wf, 
cat-comp_wf, 
equal_wf, 
all_wf, 
arrow_mk_functor_lemma, 
ob_mk_functor_lemma
Rules used in proof : 
productElimination, 
independent_pairFormation, 
functionEquality, 
setEquality, 
productEquality, 
functionExtensionality, 
applyEquality, 
lambdaEquality, 
isectElimination, 
because_Cache, 
rename, 
setElimination, 
independent_pairEquality, 
hypothesisEquality, 
dependent_pairEquality, 
dependent_set_memberEquality, 
hypothesis, 
voidEquality, 
voidElimination, 
isect_memberEquality, 
thin, 
dependent_functionElimination, 
extract_by_obid, 
introduction, 
cut, 
sqequalRule, 
sqequalHypSubstitution, 
isect_memberFormation, 
sqequalReflexivity, 
computationStep, 
sqequalTransitivity, 
sqequalSubstitution
Latex:
\mforall{}[C:SmallCategory].  \mforall{}[T:Functor(C;C)].  \mforall{}[u:nat-trans(C;C;1;T)].
\mforall{}[m:nat-trans(C;C;functor-comp(T;T);T)].
    (mk-monad(T;u;m)  \mmember{}  Monad(C))  supposing 
          ((\mforall{}X:cat-ob(C)
                  ((cat-comp(C)  (ob(T)  X)  (ob(T)  (ob(T)  X))  (ob(T)  X)  (u  (ob(T)  X))  (m  X))
                  =  (cat-id(C)  (ob(T)  X))))  and 
          (\mforall{}X:cat-ob(C)
                ((cat-comp(C)  (ob(T)  X)  (ob(T)  (ob(T)  X))  (ob(T)  X)  (arrow(T)  X  (ob(T)  X)  (u  X))  (m  X))
                =  (cat-id(C)  (ob(T)  X))))  and 
          (\mforall{}X:cat-ob(C)
                ((cat-comp(C)  (ob(T)  (ob(T)  (ob(T)  X)))  (ob(T)  (ob(T)  X))  (ob(T)  X)  (m  (ob(T)  X))  (m  X))
                =  (cat-comp(C)  (ob(T)  (ob(T)  (ob(T)  X)))  (ob(T)  (ob(T)  X))  (ob(T)  X) 
                      (arrow(T)  (ob(T)  (ob(T)  X))  (ob(T)  X)  (m  X)) 
                      (m  X)))))
Date html generated:
2017_01_19-PM-02_57_51
Last ObjectModification:
2017_01_16-PM-08_02_54
Theory : small!categories
Home
Index