Step * 1 2 of Lemma mapfilter-bor-eq


1. Type@i'
2. Type@i'
3. T ─→ U@i
4. T ─→ 𝔹@i
5. T ─→ 𝔹@i
6. T@i
7. List@i
8. (mapfilter(f;P;v) mapfilter(f;Q;v))
(mapfilter(f;λx.((P x) ∨b(Q x));v) mapfilter(f;λx.((P x) ∧b (Q x));v))
∈ bag(U)@i
9. ¬↑(P u)
10. ↑(Q u)
11. (↑(P u)) ∨ (↑(Q u))
12. (¬↑(P u)) ∨ (¬↑(Q u))
⊢ (mapfilter(f;P;v) [f mapfilter(f;Q;v)])
[f (mapfilter(f;λx.((P x) ∨b(Q x));v) mapfilter(f;λx.((P x) ∧b (Q x));v))]
∈ bag(U)
BY
((Subst ⌈[f mapfilter(f;Q;v)] [f u] mapfilter(f;Q;v)⌉ 0⋅ THENA (Reduce THEN Auto))
   THEN Try (Fold `bag-append` 0)
   THEN (InstLemma `bag-append-assoc` [⌈mapfilter(f;P;v)⌉;⌈[f u]⌉;⌈mapfilter(f;Q;v)⌉]⋅ THENA Auto)
   THEN RevHypSubst' (-1) 0
   THEN Try (Fold `cons-bag` 0⋅)
   THEN (InstLemma `bag-append-comm` [⌈U⌉;⌈mapfilter(f;P;v)⌉;⌈u.[]⌉]⋅ THENA Auto)
   THEN (HypSubst' (-1) THENA Auto)
   THEN RepUR ``cons-bag bag-append`` 0
   THEN Try (Fold `cons-bag` 0⋅)
   THEN (HypSubst' (-7) THENA Auto)
   THEN RepUR ``cons-bag bag-append`` 0
   THEN Auto) }


Latex:



Latex:

1.  T  :  Type@i'
2.  U  :  Type@i'
3.  f  :  T  {}\mrightarrow{}  U@i
4.  P  :  T  {}\mrightarrow{}  \mBbbB{}@i
5.  Q  :  T  {}\mrightarrow{}  \mBbbB{}@i
6.  u  :  T@i
7.  v  :  T  List@i
8.  (mapfilter(f;P;v)  @  mapfilter(f;Q;v))
=  (mapfilter(f;\mlambda{}x.((P  x)  \mvee{}\msubb{}(Q  x));v)  @  mapfilter(f;\mlambda{}x.((P  x)  \mwedge{}\msubb{}  (Q  x));v))@i
9.  \mneg{}\muparrow{}(P  u)
10.  \muparrow{}(Q  u)
11.  (\muparrow{}(P  u))  \mvee{}  (\muparrow{}(Q  u))
12.  (\mneg{}\muparrow{}(P  u))  \mvee{}  (\mneg{}\muparrow{}(Q  u))
\mvdash{}  (mapfilter(f;P;v)  @  [f  u  /  mapfilter(f;Q;v)])
=  [f  u  /  (mapfilter(f;\mlambda{}x.((P  x)  \mvee{}\msubb{}(Q  x));v)  @  mapfilter(f;\mlambda{}x.((P  x)  \mwedge{}\msubb{}  (Q  x));v))]


By


Latex:
((Subst  \mkleeneopen{}[f  u  /  mapfilter(f;Q;v)]  \msim{}  [f  u]  @  mapfilter(f;Q;v)\mkleeneclose{}  0\mcdot{}  THENA  (Reduce  0  THEN  Auto))
  THEN  Try  (Fold  `bag-append`  0)
  THEN  (InstLemma  `bag-append-assoc`  [\mkleeneopen{}mapfilter(f;P;v)\mkleeneclose{};\mkleeneopen{}[f  u]\mkleeneclose{};\mkleeneopen{}mapfilter(f;Q;v)\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  RevHypSubst'  (-1)  0
  THEN  Try  (Fold  `cons-bag`  0\mcdot{})
  THEN  (InstLemma  `bag-append-comm`  [\mkleeneopen{}U\mkleeneclose{};\mkleeneopen{}mapfilter(f;P;v)\mkleeneclose{};\mkleeneopen{}f  u.[]\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  (HypSubst'  (-1)  0  THENA  Auto)
  THEN  RepUR  ``cons-bag  bag-append``  0
  THEN  Try  (Fold  `cons-bag`  0\mcdot{})
  THEN  (HypSubst'  (-7)  0  THENA  Auto)
  THEN  RepUR  ``cons-bag  bag-append``  0
  THEN  Auto)




Home Index