Step * of Lemma mapfilter-subbag

T,U:Type. ∀f:T ⟶ U. ∀P,Q:T ⟶ 𝔹. ∀L:T List.
  ((∀t:T. ((↑(P t))  (↑(Q t))))  sub-bag(U;mapfilter(f;P;L);mapfilter(f;Q;L)))
BY
((UnivCD THENA Auto)
   THEN Unfold `sub-bag` 0
   THEN (InstConcl [⌜mapfilter(f;λx.((¬bP[x]) ∧b Q[x]);L)⌝]⋅ THENA Auto)
   THEN Unfold `bag-append` 0
   THEN InstLemma `mapfilter-bor-eq` [⌜T⌝;⌜U⌝;⌜f⌝;⌜P⌝;⌜λx.((¬bP[x]) ∧b Q[x])⌝;⌜L⌝]⋅
   THEN Auto
   THEN All (RepUR ``so_apply``)) }

1
1. Type@i'
2. Type@i'
3. T ⟶ U@i
4. T ⟶ 𝔹@i
5. T ⟶ 𝔹@i
6. List@i
7. ∀t:T. ((↑(P t))  (↑(Q t)))@i
8. (mapfilter(f;P;L) mapfilter(f;λx.((¬b(P x)) ∧b (Q x));L))
(mapfilter(f;λx.((P x) ∨b((¬b(P x)) ∧b (Q x)));L) mapfilter(f;λx.((P x) ∧b b(P x)) ∧b (Q x));L))
∈ bag(U)
⊢ mapfilter(f;Q;L) (mapfilter(f;P;L) mapfilter(f;λx.((¬b(P x)) ∧b (Q x));L)) ∈ bag(U)


Latex:


Latex:
\mforall{}T,U:Type.  \mforall{}f:T  {}\mrightarrow{}  U.  \mforall{}P,Q:T  {}\mrightarrow{}  \mBbbB{}.  \mforall{}L:T  List.
    ((\mforall{}t:T.  ((\muparrow{}(P  t))  {}\mRightarrow{}  (\muparrow{}(Q  t))))  {}\mRightarrow{}  sub-bag(U;mapfilter(f;P;L);mapfilter(f;Q;L)))


By


Latex:
((UnivCD  THENA  Auto)
  THEN  Unfold  `sub-bag`  0
  THEN  (InstConcl  [\mkleeneopen{}mapfilter(f;\mlambda{}x.((\mneg{}\msubb{}P[x])  \mwedge{}\msubb{}  Q[x]);L)\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  Unfold  `bag-append`  0
  THEN  InstLemma  `mapfilter-bor-eq`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}U\mkleeneclose{};\mkleeneopen{}f\mkleeneclose{};\mkleeneopen{}P\mkleeneclose{};\mkleeneopen{}\mlambda{}x.((\mneg{}\msubb{}P[x])  \mwedge{}\msubb{}  Q[x])\mkleeneclose{};\mkleeneopen{}L\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  All  (RepUR  ``so\_apply``))




Home Index