Nuprl Lemma : callbyvalueall-single-bag-combine2

∀[F,G,a:Top].  (let x ⟵ [a] in let y ⟵ ⋃z∈x.G[z] in F[y] ~ let x ⟵ a in let y ⟵ G[x] @ [] in F[y])


Proof




Definitions occuring in Statement :  bag-combine: ⋃x∈bs.f[x],  append: as @ bs,  cons: [a / b],  nil: [],  callbyvalueall: callbyvalueall,  uall: ∀[x:A]. B[x],  top: Top,  so_apply: x[s],  sqequal: s ~ t
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  nil: [],  it: ⋅,  cons: [a / b],  so_apply: x[s],  bag-combine: ⋃x∈bs.f[x],  bag-union: bag-union(bbs),  concat: concat(ll),  bag-map: bag-map(f;bs),  so_lambda: λ2x.t[x],  callbyvalueall: callbyvalueall,  evalall: evalall(t),  all: ∀x:A. B[x]
Lemmas referenced :  lifting-callbyvalueall-pair,  map_cons_lemma,  evalall_nil_lemma,  reduce_cons_lemma,  map_nil_lemma,  reduce_nil_lemma,  istype-top
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation_alt,  introduction,  cut,  sqequalRule,  extract_by_obid,  sqequalHypSubstitution,  isectElimination,  thin,  hypothesisEquality,  Error :memTop,  hypothesis,  callbyvalueReduce,  sqleReflexivity,  dependent_functionElimination,  axiomSqEquality,  inhabitedIsType,  isect_memberEquality_alt,  isectIsTypeImplies

Latex:
\mforall{}[F,G,a:Top].
    (let  x  \mleftarrow{}{}  [a]
      in  let  y  \mleftarrow{}{}  \mcup{}z\mmember{}x.G[z]
            in  F[y]  \msim{}  let  x  \mleftarrow{}{}  a
                                in  let  y  \mleftarrow{}{}  G[x]  @  []
                                      in  F[y])



Date html generated: 2020_05_20-AM-08_03_39
Last ObjectModification: 2020_02_04-PM-05_27_22

Theory : bags


Home Index