Step
*
2
of Lemma
bag-mapfilter-mapfilter
1. A : Type
2. B : Type
3. C : Type
4. b : bag(A)
5. P : A ⟶ 𝔹
6. f : {x:A| ↑P[x]}  ⟶ B
7. Q : B ⟶ 𝔹
8. g : {x:B| ↑Q[x]}  ⟶ C
9. bag-map(g o f;[x∈b|P[x] ∧b Q[f[x]]]) ∈ bag(C)
⊢ bag-map(g;[x∈bag-map(f;[x∈b|P x])|Q x]) = bag-map(g o f;[x∈b|P[x] ∧b Q[f[x]]]) ∈ bag(C)
BY
{ ((RWO "bag-filter-map2" 0 THENA Auto)
   THEN (RWO "bag-map-map" 0 THENA (Auto THEN DoSubsume THEN Auto))
   THEN MemCD
   THEN Try (Complete (Auto))) }
1
.....subterm..... T:t
1:n
1. A : Type
2. B : Type
3. C : Type
4. b : bag(A)
5. P : A ⟶ 𝔹
6. f : {x:A| ↑P[x]}  ⟶ B
7. Q : B ⟶ 𝔹
8. g : {x:B| ↑Q[x]}  ⟶ C
9. bag-map(g o f;[x∈b|P[x] ∧b Q[f[x]]]) ∈ bag(C)
⊢ (g o f) = (g o f) ∈ ({x:{x:A| ↑(P x)} | ↑(Q (f x))}  ⟶ C)
2
.....subterm..... T:t
2:n
1. A : Type
2. B : Type
3. C : Type
4. b : bag(A)
5. P : A ⟶ 𝔹
6. f : {x:A| ↑P[x]}  ⟶ B
7. Q : B ⟶ 𝔹
8. g : {x:B| ↑Q[x]}  ⟶ C
9. bag-map(g o f;[x∈b|P[x] ∧b Q[f[x]]]) ∈ bag(C)
⊢ [x∈[x∈b|P x]|Q (f x)] = [x∈b|P[x] ∧b Q[f[x]]] ∈ bag({x:{x:A| ↑(P x)} | ↑(Q (f x))} )
Latex:
Latex:
1.  A  :  Type
2.  B  :  Type
3.  C  :  Type
4.  b  :  bag(A)
5.  P  :  A  {}\mrightarrow{}  \mBbbB{}
6.  f  :  \{x:A|  \muparrow{}P[x]\}    {}\mrightarrow{}  B
7.  Q  :  B  {}\mrightarrow{}  \mBbbB{}
8.  g  :  \{x:B|  \muparrow{}Q[x]\}    {}\mrightarrow{}  C
9.  bag-map(g  o  f;[x\mmember{}b|P[x]  \mwedge{}\msubb{}  Q[f[x]]])  \mmember{}  bag(C)
\mvdash{}  bag-map(g;[x\mmember{}bag-map(f;[x\mmember{}b|P  x])|Q  x])  =  bag-map(g  o  f;[x\mmember{}b|P[x]  \mwedge{}\msubb{}  Q[f[x]]])
By
Latex:
((RWO  "bag-filter-map2"  0  THENA  Auto)
  THEN  (RWO  "bag-map-map"  0  THENA  (Auto  THEN  DoSubsume  THEN  Auto))
  THEN  MemCD
  THEN  Try  (Complete  (Auto)))
Home
Index