Nuprl Lemma : spread-decide

[x,d,F,G:Top].
  (let a,b 
   in case d[a;b] of inl(u) => F[a;b;u] inr(u) => G[a;b;u] case let a,b 
                                                                    in d[a;b]
   of inl(u) =>
   let a,b 
   in F[a;b;u]
   inr(u) =>
   let a,b 
   in G[a;b;u])


Proof




Definitions occuring in Statement :  uall: [x:A]. B[x] top: Top so_apply: x[s1;s2;s3] so_apply: x[s1;s2] spread: spread def decide: case of inl(x) => s[x] inr(y) => t[y] sqequal: t
Definitions unfolded in proof :  uall: [x:A]. B[x] so_lambda: so_lambda(x,y,z,w.t[x; y; z; w]) member: t ∈ T so_apply: x[s1;s2;s3;s4] so_lambda: λ2x.t[x] top: Top so_apply: x[s] uimplies: supposing a strict4: strict4(F) and: P ∧ Q all: x:A. B[x] implies:  Q has-value: (a)↓ prop: guard: {T} or: P ∨ Q squash: T so_lambda: λ2y.t[x; y] so_apply: x[s1;s2]
Lemmas referenced :  lifting-strict-spread top_wf equal_wf has-value_wf_base base_wf is-exception_wf pair-eta
Rules used in proof :  sqequalSubstitution sqequalRule sqequalReflexivity cut introduction extract_by_obid sqequalHypSubstitution sqequalTransitivity computationStep isectElimination thin baseClosed isect_memberEquality voidElimination voidEquality independent_isectElimination independent_pairFormation lambdaFormation callbyvalueDecide hypothesis hypothesisEquality equalityTransitivity equalitySymmetry unionEquality unionElimination sqleReflexivity dependent_functionElimination independent_functionElimination baseApply closedConclusion decideExceptionCases inrFormation because_Cache imageMemberEquality imageElimination exceptionSqequal inlFormation sqequalSqle sqleRule divergentSqle callbyvalueSpread spreadExceptionCases axiomSqleEquality isect_memberFormation sqequalAxiom

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



Date html generated: 2017_10_01-AM-08_39_24
Last ObjectModification: 2017_07_26-PM-04_27_28

Theory : untyped!computation


Home Index