Step * 6 of Lemma monad-from_wf


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)
BY
((InstLemma `M-associative` [⌜Mnd⌝;⌜X⌝;⌜M-map(Mnd) X⌝;⌜X⌝;⌜x⌝]⋅ THENA Auto) THEN RWO "-1" THEN Auto THEN Reduce 0) }

1
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
5. ∀[f:X ⟶ (M-map(Mnd) (M-map(Mnd) X))]. ∀[g:(M-map(Mnd) X) ⟶ (M-map(Mnd) X)].
     ((M-bind(Mnd) (M-bind(Mnd) f) g) (M-bind(Mnd) x.(M-bind(Mnd) (f x) g))) ∈ (M-map(Mnd) X))
⊢ (M-bind(Mnd) x.(M-bind(Mnd) (M-return(Mnd) (M-return(Mnd) x)) x.x)))) x ∈ (M-map(Mnd) X)


Latex:


Latex:

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.  x  :  M-map(Mnd)  X
\mvdash{}  (M-bind(Mnd)  (M-bind(Mnd)  x  (\mlambda{}x.(M-return(Mnd)  (M-return(Mnd)  x))))  (\mlambda{}x.x))  =  x


By


Latex:
((InstLemma  `M-associative`  [\mkleeneopen{}Mnd\mkleeneclose{};\mkleeneopen{}X\mkleeneclose{};\mkleeneopen{}M-map(Mnd)  X\mkleeneclose{};\mkleeneopen{}X\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  RWO  "-1"  0
  THEN  Auto
  THEN  Reduce  0)




Home Index