Step
*
of Lemma
append_split
∀[T:Type]
  ∀L:T List
    ∀[P:T ⟶ ℙ]
      ((∀x:ℕ||L||. Dec(P L[x]))
      
⇒ (∀i,j:ℕ||L||.  ((P L[i]) 
⇒ P L[j] supposing i < j))
      
⇒ (∃L1,L2:T List
           (((L = (L1 @ L2) ∈ (T List)) ∧ (∀i:ℕ||L1||. (¬(P L1[i]))) ∧ (∀i:ℕ||L2||. (P L2[i])))
           ∧ (∀x∈L.(P x) 
⇒ (x ∈ L2)))))
BY
{ (InductionOnList THEN Reduce 0) }
1
1. [T] : Type
⊢ ∀[P:T ⟶ ℙ]
    ((∀x:ℕ0. Dec(P ⊥))
    
⇒ (∀i,j:ℕ0.  ((P ⊥) 
⇒ P ⊥ supposing i < j))
    
⇒ (∃L1,L2:T List
         ((([] = (L1 @ L2) ∈ (T List)) ∧ (∀i:ℕ||L1||. (¬(P L1[i]))) ∧ (∀i:ℕ||L2||. (P L2[i])))
         ∧ (∀x∈[].(P x) 
⇒ (x ∈ L2)))))
2
1. [T] : Type
2. u : T
3. v : T List
4. ∀[P:T ⟶ ℙ]
     ((∀x:ℕ||v||. Dec(P v[x]))
     
⇒ (∀i,j:ℕ||v||.  ((P v[i]) 
⇒ P v[j] supposing i < j))
     
⇒ (∃L1,L2:T List
          (((v = (L1 @ L2) ∈ (T List)) ∧ (∀i:ℕ||L1||. (¬(P L1[i]))) ∧ (∀i:ℕ||L2||. (P L2[i])))
          ∧ (∀x∈v.(P x) 
⇒ (x ∈ L2)))))
⊢ ∀[P:T ⟶ ℙ]
    ((∀x:ℕ||v|| + 1. Dec(P [u / v][x]))
    
⇒ (∀i,j:ℕ||v|| + 1.  ((P [u / v][i]) 
⇒ P [u / v][j] supposing i < j))
    
⇒ (∃L1,L2:T List
         ((([u / v] = (L1 @ L2) ∈ (T List)) ∧ (∀i:ℕ||L1||. (¬(P L1[i]))) ∧ (∀i:ℕ||L2||. (P L2[i])))
         ∧ (∀x∈[u / v].(P x) 
⇒ (x ∈ L2)))))
Latex:
Latex:
\mforall{}[T:Type]
    \mforall{}L:T  List
        \mforall{}[P:T  {}\mrightarrow{}  \mBbbP{}]
            ((\mforall{}x:\mBbbN{}||L||.  Dec(P  L[x]))
            {}\mRightarrow{}  (\mforall{}i,j:\mBbbN{}||L||.    ((P  L[i])  {}\mRightarrow{}  P  L[j]  supposing  i  <  j))
            {}\mRightarrow{}  (\mexists{}L1,L2:T  List
                      (((L  =  (L1  @  L2))  \mwedge{}  (\mforall{}i:\mBbbN{}||L1||.  (\mneg{}(P  L1[i])))  \mwedge{}  (\mforall{}i:\mBbbN{}||L2||.  (P  L2[i])))
                      \mwedge{}  (\mforall{}x\mmember{}L.(P  x)  {}\mRightarrow{}  (x  \mmember{}  L2)))))
By
Latex:
(InductionOnList  THEN  Reduce  0)
Home
Index