Step
*
1
of Lemma
filter-equals
1. [T] : Type
2. P : T ⟶ 𝔹
⊢ ∀L2:T List
    (filter(P;[]) = L2 ∈ (T List)
       
⇐⇒ (∀x:T. ((x ∈ L2) 
⇐⇒ (x ∈ []) ∧ (↑(P x)))) ∧ (∀x,y:T.  (x before y ∈ L2 
⇒ x before y ∈ []))) supposing 
       (no_repeats(T;L2) and 
       no_repeats(T;[]))
BY
{ (Reduce 0 THEN InductionOnList THEN Reduce 0 THEN Auto)⋅ }
1
1. T : Type
2. P : T ⟶ 𝔹
3. u : T
4. v : T List
5. no_repeats(T;[])
6. no_repeats(T;[u / v])
7. ∀x:T. ((x ∈ [u / v]) 
⇐⇒ (x ∈ []) ∧ (↑(P x)))
8. ∀x,y:T.  (x before y ∈ [u / v] 
⇒ x before y ∈ [])
9. [] = v ∈ (T List) 
⇐⇒ (∀x:T. ((x ∈ v) 
⇐⇒ (x ∈ []) ∧ (↑(P x)))) ∧ (∀x,y:T.  (x before y ∈ v 
⇒ x before y ∈ [])) 
   supposing no_repeats(T;v)
⊢ [] = [u / v] ∈ (T List)
Latex:
Latex:
1.  [T]  :  Type
2.  P  :  T  {}\mrightarrow{}  \mBbbB{}
\mvdash{}  \mforall{}L2:T  List
        (filter(P;[])  =  L2
              \mLeftarrow{}{}\mRightarrow{}  (\mforall{}x:T.  ((x  \mmember{}  L2)  \mLeftarrow{}{}\mRightarrow{}  (x  \mmember{}  [])  \mwedge{}  (\muparrow{}(P  x))))
                      \mwedge{}  (\mforall{}x,y:T.    (x  before  y  \mmember{}  L2  {}\mRightarrow{}  x  before  y  \mmember{}  [])))  supposing 
              (no\_repeats(T;L2)  and 
              no\_repeats(T;[]))
By
Latex:
(Reduce  0  THEN  InductionOnList  THEN  Reduce  0  THEN  Auto)\mcdot{}
Home
Index