Step * of Lemma bag-map-union2

[A,B:Type]. ∀[g:A ⟶ B]. ∀[x:bag(bag(A))].  (bag-map(g;bag-union(x)) bag-union(bag-map(λz.bag-map(g;z);x)) ∈ bag(B))
BY
xxx(Auto THEN (InstLemma `bag-map-union` [⌜A⌝;⌜B⌝;⌜λa.{g a}⌝;⌜x⌝]⋅ THENA Auto))xxx }

1
1. Type
2. Type
3. A ⟶ B
4. bag(bag(A))
5. bag-map(λa.{g a};bag-union(x)) bag-union(bag-map(λb.bag-map(λa.{g a};b);x)) ∈ bag(bag(B))
⊢ bag-map(g;bag-union(x)) bag-union(bag-map(λz.bag-map(g;z);x)) ∈ bag(B)


Latex:


Latex:
\mforall{}[A,B:Type].  \mforall{}[g:A  {}\mrightarrow{}  B].  \mforall{}[x:bag(bag(A))].
    (bag-map(g;bag-union(x))  =  bag-union(bag-map(\mlambda{}z.bag-map(g;z);x)))


By


Latex:
xxx(Auto  THEN  (InstLemma  `bag-map-union`  [\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}B\mkleeneclose{};\mkleeneopen{}\mlambda{}a.\{g  a\}\mkleeneclose{};\mkleeneopen{}x\mkleeneclose{}]\mcdot{}  THENA  Auto))xxx




Home Index