Step
*
2
2
1
1
2
of Lemma
monad-from_wf
.....subterm..... T:t
2:n
1. Mnd : Monad
2. λx,z. (M-bind(Mnd) z (λx.x)) ∈ A:Type ⟶ (M-map(Mnd) (M-map(Mnd) A)) ⟶ (M-map(Mnd) A)
3. X : Type
4. Y : Type
5. z : Type
6. f : X ⟶ Y
7. g : Y ⟶ z
8. x : M-map(Mnd) X
9. M-bind(Mnd) ∈ (M-map(Mnd) X) ⟶ (X ⟶ (M-map(Mnd) z)) ⟶ (M-map(Mnd) z)
⊢ (λx@0.(M-return(Mnd) (g (f x@0))))
= (λx.(M-bind(Mnd) ((λx.(M-return(Mnd) (f x))) x) (λx.(M-return(Mnd) (g x)))))
∈ (X ⟶ (M-map(Mnd) z))
BY
{ ((FunExt THENA Auto) THEN Reduce 0 THEN RWO "M-leftunit" 0 THEN Auto) }
Latex:
Latex:
.....subterm..... T:t
2:n
1. Mnd : Monad
2. \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)
3. X : Type
4. Y : Type
5. z : Type
6. f : X {}\mrightarrow{} Y
7. g : Y {}\mrightarrow{} z
8. x : M-map(Mnd) X
9. M-bind(Mnd) \mmember{} (M-map(Mnd) X) {}\mrightarrow{} (X {}\mrightarrow{} (M-map(Mnd) z)) {}\mrightarrow{} (M-map(Mnd) z)
\mvdash{} (\mlambda{}x@0.(M-return(Mnd) (g (f x@0))))
= (\mlambda{}x.(M-bind(Mnd) ((\mlambda{}x.(M-return(Mnd) (f x))) x) (\mlambda{}x.(M-return(Mnd) (g x)))))
By
Latex:
((FunExt THENA Auto) THEN Reduce 0 THEN RWO "M-leftunit" 0 THEN Auto)
Home
Index