Nuprl Lemma : callbyvalueall-reduce-repeat-right-branch

∀[a,d,F,G:Top].
  (let x ⟵ a
   in case d[x] of inl(u) => F[x;u] | inr(v) => let y ⟵ x in G[y;v] ~ let x ⟵ a
                                                                       in case d[x]
                                                                        of inl(u) =>
                                                                        F[x;u]
                                                                        | inr(v) =>
                                                                        G[x;v])


Proof




Definitions occuring in Statement :  callbyvalueall: callbyvalueall,  uall: ∀[x:A]. B[x],  top: Top,  so_apply: x[s1;s2],  so_apply: x[s],  decide: case b of inl(x) => s[x] | inr(y) => t[y],  sqequal: s ~ t
Definitions unfolded in proof :  callbyvalueall: callbyvalueall,  uall: ∀[x:A]. B[x],  member: t ∈ T,  so_lambda: λ2x.t[x],  so_apply: x[s],  uimplies: b supposing a,  has-valueall: has-valueall(a),  implies: P ⇒ Q,  prop: ℙ,  has-value: (a)↓
Lemmas referenced :  top_wf,  evalall-sqequal,  has-valueall_wf_base,  cbv_sqequal
Rules used in proof :  cut,  sqequalRule,  thin,  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  lemma_by_obid,  sqequalHypSubstitution,  isectElimination,  baseApply,  closedConclusion,  baseClosed,  hypothesisEquality,  independent_isectElimination,  lambdaFormation,  hypothesis,  because_Cache,  callbyvalueReduce,  isect_memberFormation,  introduction,  sqequalAxiom,  isect_memberEquality

Latex:
\mforall{}[a,d,F,G:Top].
    (let  x  \mleftarrow{}{}  a
      in  case  d[x]  of  inl(u)  =>  F[x;u]  |  inr(v)  =>  let  y  \mleftarrow{}{}  x  in  G[y;v]  \msim{}  let  x  \mleftarrow{}{}  a
                                                                                                                                              in  case  d[x]
                                                                                                                                                of  inl(u)  =>
                                                                                                                                                F[x;u]
                                                                                                                                                |  inr(v)  =>
                                                                                                                                                G[x;v])



Date html generated: 2016_05_15-PM-02_08_41
Last ObjectModification: 2016_01_15-PM-10_21_48

Theory : untyped!computation


Home Index