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