Nuprl Lemma : cbv-reduce-strict

∀[F,a,B:Base].
  F[eval x = a in
    B[x]] ≤ F[B[a]] 
  supposing (∀x:Base. ((F[x])↓ ⇒ (x)↓))
  ∧ (∀u,v,x:Base.  ((F[x] ~ exception(u; v)) ⇒ (↓(x ~ exception(u; v)) ∨ (x)↓)))
  ∧ (∀u,v:Base.  (B[exception(u; v)] ~ exception(u; v)))


Proof




Definitions occuring in Statement :  has-value: (a)↓,  callbyvalue: callbyvalue,  uimplies: b supposing a,  uall: ∀[x:A]. B[x],  so_apply: x[s],  all: ∀x:A. B[x],  squash: ↓T,  implies: P ⇒ Q,  or: P ∨ Q,  and: P ∧ Q,  base: Base,  sqle: s ≤ t,  sqequal: s ~ t
Definitions unfolded in proof :  uimplies: b supposing a,  or: P ∨ Q,  all: ∀x:A. B[x],  so_apply: x[s],  implies: P ⇒ Q,  so_lambda: λ2x.t[x],  prop: ℙ,  uall: ∀[x:A]. B[x],  member: t ∈ T,  cand: A c∧ B,  and: P ∧ Q,  has-value: (a)↓,  squash: ↓T,  top: Top,  is-exception: is-exception(t)
Lemmas referenced :  bottom-sqle,  has-value_wf_base,  is-exception_wf,  all_wf,  base_wf,  squash_wf,  or_wf,  sqequal-wf-base
Rules used in proof :  equalitySymmetry,  equalityTransitivity,  isect_memberEquality,  axiomSqleEquality,  introduction,  isect_memberFormation,  sqequalIntensionalEquality,  because_Cache,  functionEquality,  lambdaEquality,  productEquality,  hypothesis,  hypothesisEquality,  baseClosed,  closedConclusion,  baseApply,  sqequalRule,  isectElimination,  lemma_by_obid,  cut,  divergentSqle,  thin,  productElimination,  sqequalReflexivity,  computationStep,  sqequalTransitivity,  sqequalSubstitution,  sqequalHypSubstitution,  sqleReflexivity,  callbyvalueReduce,  callbyvalueCallbyvalue,  independent_functionElimination,  dependent_functionElimination,  exceptionSqequal,  imageElimination,  unionElimination,  callbyvalueExceptionCases,  voidEquality,  voidElimination,  sqleRule

Latex:
\mforall{}[F,a,B:Base].
    F[eval  x  =  a  in
        B[x]]  \mleq{}  F[B[a]] 
    supposing  (\mforall{}x:Base.  ((F[x])\mdownarrow{}  {}\mRightarrow{}  (x)\mdownarrow{}))
    \mwedge{}  (\mforall{}u,v,x:Base.    ((F[x]  \msim{}  exception(u;  v))  {}\mRightarrow{}  (\mdownarrow{}(x  \msim{}  exception(u;  v))  \mvee{}  (x)\mdownarrow{})))
    \mwedge{}  (\mforall{}u,v:Base.    (B[exception(u;  v)]  \msim{}  exception(u;  v)))



Date html generated: 2019_06_20-AM-11_20_42
Last ObjectModification: 2018_10_15-PM-03_28_17

Theory : call!by!value_1


Home Index