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 ⟵ 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: 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