Nuprl Lemma : map-simple-reduce

[f,d,c,as:Top].
  (map(f;reduce(λx,a. case d[x] of inl(u) => inr(v) => [c[x] a];[];as)) reduce(λx,a. case d[x]
                                                                                         of inl(u) =>
                                                                                         a
                                                                                         inr(v) =>
                                                                                         [f c[x] a];[];as))


Proof




Definitions occuring in Statement :  map: map(f;as) reduce: reduce(f;k;as) cons: [a b] nil: [] uall: [x:A]. B[x] top: Top so_apply: x[s] apply: a lambda: λx.A[x] decide: case of inl(x) => s[x] inr(y) => t[y] sqequal: t
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T reduce: reduce(f;k;as) so_lambda: λ2x.t[x] so_apply: x[s] uimplies: supposing a strict1: strict1(F) and: P ∧ Q all: x:A. B[x] implies:  Q map: map(f;as) list_ind: list_ind has-value: (a)↓ prop: or: P ∨ Q squash: T guard: {T} so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] ifthenelse: if then else fi  top: Top
Lemmas referenced :  top_wf map_nil_lemma sqle_wf_base map_cons_lemma map-ifthenelse is-exception_wf base_wf has-value_wf_base sqequal-list_ind
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut sqequalRule thin lemma_by_obid sqequalHypSubstitution isectElimination baseApply closedConclusion baseClosed hypothesisEquality independent_isectElimination independent_pairFormation lambdaFormation callbyvalueCallbyvalue hypothesis callbyvalueReduce callbyvalueExceptionCases inlFormation imageMemberEquality imageElimination exceptionSqequal inrFormation isect_memberEquality voidElimination voidEquality dependent_functionElimination divergentSqle sqleRule sqleReflexivity because_Cache sqequalAxiom

Latex:
\mforall{}[f,d,c,as:Top].
    (map(f;reduce(\mlambda{}x,a.  case  d[x]  of  inl(u)  =>  a  |  inr(v)  =>  [c[x]  /  a];[];as)) 
    \msim{}  reduce(\mlambda{}x,a.  case  d[x]  of  inl(u)  =>  a  |  inr(v)  =>  [f  c[x]  /  a];[];as))



Date html generated: 2016_05_15-PM-02_07_37
Last ObjectModification: 2016_01_15-PM-10_24_08

Theory : untyped!computation


Home Index