Step * of Lemma monad-from_wf

No Annotations
[Mnd:Monad]. (monad-from(Mnd) ∈ Monad(TypeCat))
BY
((Intro
    THEN (Assert λx,z. (M-bind(Mnd) x.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A) BY
                (Auto
                 THEN (Assert M-bind(Mnd) ∈ (M-map(Mnd) (M-map(Mnd) x))
                              ⟶ ((M-map(Mnd) x) ⟶ (M-map(Mnd) x))
                              ⟶ (M-map(Mnd) x) BY
                             Auto)
                 THEN Auto))
    )
   THEN Unfold `monad-from` 0
   THEN MemCD
   THEN Try ((RepUR ``type-cat mk-cat nat-trans functor-comp compose`` 0
              THEN (D THENA Auto)
              THEN (FunExt THENA Auto)
              THEN Reduce 0))) }

1
.....implicit subterm..... 
1. Mnd Monad
2. λx,z. (M-bind(Mnd) x.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A)
⊢ TypeCat ∈ SmallCategory'

2
.....subterm..... T:t
1:n
1. Mnd Monad
2. λx,z. (M-bind(Mnd) x.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A)
⊢ functor(ob(T) M-map(Mnd) T;
          arrow(X,Y,f) = λz.(M-bind(Mnd) x.(M-return(Mnd) (f x))))) ∈ Functor(TypeCat;TypeCat)

3
.....subterm..... T:t
2:n
1. Mnd Monad
2. λx,z. (M-bind(Mnd) x.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A)
⊢ λx.M-return(Mnd) ∈ nat-trans(TypeCat;TypeCat;1;functor(ob(T) M-map(Mnd) T;
                                                         arrow(X,Y,f) = λz.(M-bind(Mnd) x.(M-return(Mnd) (f x))))))

4
.....subterm..... T:t
3:n
1. Mnd Monad
2. λx,z. (M-bind(Mnd) x.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A)
⊢ λx,z. (M-bind(Mnd) x.x))
  ∈ nat-trans(TypeCat;TypeCat;functor-comp(functor(ob(T) M-map(Mnd) T;
                                                   arrow(X,Y,f) = λz.(M-bind(Mnd) x.(M-return(Mnd) (f x)))));
                                           functor(ob(T) M-map(Mnd) T;
                                                   arrow(X,Y,f) = λz.(M-bind(Mnd) 
                                                                      x.(M-return(Mnd) 
                                                                           (f x))))));functor(ob(T) M-map(Mnd) T;
                                                                                              arrow(X,Y,f) =
                                                                                               λz.(M-bind(Mnd) 
                                                                                                   x.(M-return(Mnd) 
                                                                                                        (f x))))))

5
1. Mnd Monad
2. λx,z. (M-bind(Mnd) x.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A)
3. Type
4. M-map(Mnd) (M-map(Mnd) (M-map(Mnd) X))
⊢ (M-bind(Mnd) (M-bind(Mnd) x.x)) x.x))
(M-bind(Mnd) (M-bind(Mnd) x.(M-return(Mnd) (M-bind(Mnd) x.x))))) x.x))
∈ (M-map(Mnd) X)

6
1. Mnd Monad
2. λx,z. (M-bind(Mnd) x.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A)
3. Type
4. M-map(Mnd) X
⊢ (M-bind(Mnd) (M-bind(Mnd) x.(M-return(Mnd) (M-return(Mnd) x)))) x.x)) x ∈ (M-map(Mnd) X)

7
1. Mnd Monad
2. λx,z. (M-bind(Mnd) x.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A)
3. Type
4. M-map(Mnd) X
⊢ (M-bind(Mnd) (M-return(Mnd) x) x.x)) x ∈ (M-map(Mnd) X)


Latex:


Latex:
No  Annotations
\mforall{}[Mnd:Monad].  (monad-from(Mnd)  \mmember{}  Monad(TypeCat))


By


Latex:
((Intro
    THEN  (Assert  \mlambda{}x,z.  (M-bind(Mnd)  z  (\mlambda{}x.x))  \mmember{}  A:Type  {}\mrightarrow{}  (M-map(Mnd)  (M-map(Mnd)  A))  {}\mrightarrow{}  (M-map(Mnd)  A\000C)  BY
                            (Auto
                              THEN  (Assert  M-bind(Mnd)  \mmember{}  (M-map(Mnd)  (M-map(Mnd)  x))
                                                        {}\mrightarrow{}  ((M-map(Mnd)  x)  {}\mrightarrow{}  (M-map(Mnd)  x))
                                                        {}\mrightarrow{}  (M-map(Mnd)  x)  BY
                                                      Auto)
                              THEN  Auto))
    )
  THEN  Unfold  `monad-from`  0
  THEN  MemCD
  THEN  Try  ((RepUR  ``type-cat  mk-cat  nat-trans  functor-comp  compose``  0
                        THEN  (D  0  THENA  Auto)
                        THEN  (FunExt  THENA  Auto)
                        THEN  Reduce  0)))




Home Index