Step * 1 2 2 of Lemma bag-mapfilter-fast-eq


1. Type
2. Type
3. A ⟶ 𝔹
4. {x:A| ↑P[x]}  ⟶ B
5. A
6. List
7. bag-accum(b,x.if P[x] then f[x].b else fi ;{};v)
bag-accum(b,x.f[x].b;{};bag-accum(b,x.if P[x] then x.b else fi ;{};v))
∈ bag(B)
8. ({u} v) (v {u}) ∈ bag(A)
⊢ bag-accum(b,x.if P[x] then {f[x]} else fi ;{};v {u})
bag-accum(b,x.{f[x]} b;{};bag-accum(b,x.if P[x] then {x} else fi ;{};v {u}))
∈ bag(B)
BY
(RepUR ``bag-accum bag-append`` 0
   THEN (RWO "list_accum_append" THENA Auto)
   THEN Try (Folds ``bag-accum bag-append`` 0)
   THEN (RWO "bag-accum-single" THENA Auto)
   THEN AutoSplit) }

1
1. Type
2. Type
3. A ⟶ 𝔹
4. {x:A| ↑P[x]}  ⟶ B
5. A
6. List
7. bag-accum(b,x.if P[x] then f[x].b else fi ;{};v)
bag-accum(b,x.f[x].b;{};bag-accum(b,x.if P[x] then x.b else fi ;{};v))
∈ bag(B)
8. ({u} v) (v {u}) ∈ bag(A)
9. ↑P[u]
⊢ ({f[u]} bag-accum(b,x.if P[x] then {f[x]} else fi ;{};v))
bag-accum(b,x.{f[x]} b;{};{u} bag-accum(b,x.if P[x] then {x} else fi ;{};v))
∈ bag(B)

2
1. Type
2. Type
3. A ⟶ 𝔹
4. {x:A| ↑P[x]}  ⟶ B
5. A
6. ¬↑P[u]
7. List
8. bag-accum(b,x.if P[x] then f[x].b else fi ;{};v)
bag-accum(b,x.f[x].b;{};bag-accum(b,x.if P[x] then x.b else fi ;{};v))
∈ bag(B)
9. ({u} v) (v {u}) ∈ bag(A)
⊢ bag-accum(b,x.if P[x] then {f[x]} else fi ;{};v)
bag-accum(b,x.{f[x]} b;{};bag-accum(b,x.if P[x] then {x} else fi ;{};v))
∈ bag(B)


Latex:


Latex:

1.  A  :  Type
2.  B  :  Type
3.  P  :  A  {}\mrightarrow{}  \mBbbB{}
4.  f  :  \{x:A|  \muparrow{}P[x]\}    {}\mrightarrow{}  B
5.  u  :  A
6.  v  :  A  List
7.  bag-accum(b,x.if  P[x]  then  f[x].b  else  b  fi  ;\{\};v)
=  bag-accum(b,x.f[x].b;\{\};bag-accum(b,x.if  P[x]  then  x.b  else  b  fi  ;\{\};v))
8.  (\{u\}  +  v)  =  (v  +  \{u\})
\mvdash{}  bag-accum(b,x.if  P[x]  then  \{f[x]\}  +  b  else  b  fi  ;\{\};v  +  \{u\})
=  bag-accum(b,x.\{f[x]\}  +  b;\{\};bag-accum(b,x.if  P[x]  then  \{x\}  +  b  else  b  fi  ;\{\};v  +  \{u\}))


By


Latex:
(RepUR  ``bag-accum  bag-append``  0
  THEN  (RWO  "list\_accum\_append"  0  THENA  Auto)
  THEN  Try  (Folds  ``bag-accum  bag-append``  0)
  THEN  (RWO  "bag-accum-single"  0  THENA  Auto)
  THEN  AutoSplit)




Home Index