Nuprl Lemma : A-associative

∀[Val:Type]. ∀[n:ℕ]. ∀[AType:array{i:l}(Val;n)]. ∀[T,S,U:Type]. ∀[m:A-map T]. ∀[f:T ⟶ (A-map S)]. ∀[g:S ⟶ (A-map U)].
  ((A-bind(array-model(AType)) (A-bind(array-model(AType)) m f) g)
  = (A-bind(array-model(AType)) m (λx.(A-bind(array-model(AType)) (f x) g)))
  ∈ (A-map U))


Proof




Definitions occuring in Statement :  A-bind: A-bind(AModel),  A-map: A-map,  array-model: array-model(AType),  array: array{i:l}(Val;n),  nat: ℕ,  uall: ∀[x:A]. B[x],  apply: f a,  lambda: λx.A[x],  function: x:A ⟶ B[x],  universe: Type,  equal: s = t ∈ T
Definitions unfolded in proof :  array-model: array-model(AType),  A-bind: A-bind(AModel),  A-map: A-map,  pi2: snd(t),  pi1: fst(t),  uall: ∀[x:A]. B[x],  member: t ∈ T
Lemmas referenced :  M-associative,  M-map_wf,  array-monad_wf,  array_wf,  nat_wf
Rules used in proof :  sqequalSubstitution,  sqequalRule,  sqequalReflexivity,  sqequalTransitivity,  computationStep,  isect_memberFormation,  introduction,  cut,  lemma_by_obid,  sqequalHypSubstitution,  isectElimination,  thin,  because_Cache,  hypothesis,  functionEquality,  hypothesisEquality,  applyEquality,  isect_memberEquality,  axiomEquality,  universeEquality

Latex:
\mforall{}[Val:Type].  \mforall{}[n:\mBbbN{}].  \mforall{}[AType:array\{i:l\}(Val;n)].  \mforall{}[T,S,U:Type].  \mforall{}[m:A-map  T].  \mforall{}[f:T  {}\mrightarrow{}  (A-map  S)].
\mforall{}[g:S  {}\mrightarrow{}  (A-map  U)].
    ((A-bind(array-model(AType))  (A-bind(array-model(AType))  m  f)  g)
    =  (A-bind(array-model(AType))  m  (\mlambda{}x.(A-bind(array-model(AType))  (f  x)  g))))



Date html generated: 2016_05_15-PM-02_19_05
Last ObjectModification: 2015_12_27-AM-08_59_35

Theory : monads


Home Index