Step
*
1
of Lemma
list_split_wf
1. T : Type
2. f : (T List) ⟶ 𝔹
3. n : ℕ
4. L : T List
5. ∀L1:T List
     (||L1|| < ||L||
     
⇒ (list_split(f;L1) ∈ {p:T List List × (T List)| let LL,L2 = p in is_list_splitting(T;L1;LL;L2;f)} ))
6. ↑null(L)
⊢ list_split(f;L) ∈ {p:T List List × (T List)| let LL,L2 = p in is_list_splitting(T;L;LL;L2;f)} 
BY
{ (DVar `L'
   THEN All Reduce
   THEN Auto
   THEN RepUR ``list_split`` 0
   THEN MemTypeCD
   THEN Reduce 0
   THEN Auto
   THEN D 0
   THEN Reduce 0
   THEN Auto) }
1
1. T : Type
2. f : (T List) ⟶ 𝔹
3. n : ℕ
4. ∀L1:T List
     (||L1|| < 0 
⇒ (list_split(f;L1) ∈ {p:T List List × (T List)| let LL,L2 = p in is_list_splitting(T;L1;LL;L2;f)} ))
5. True
6. (∀L'∈[].(↑(f L')) ∧ (¬↑null(L')) ∧ (∀S:T List. ((¬↑null(S)) 
⇒ S ≤ L' 
⇒ (¬(S = L' ∈ (T List))) 
⇒ (¬↑(f S)))))
7. (¬True) 
⇒ (¬True)
8. S : T List
9. ¬↑null(S)
10. S ≤ []
11. ¬(S = [] ∈ (T List))
⊢ ¬↑(f S)
Latex:
Latex:
1.  T  :  Type
2.  f  :  (T  List)  {}\mrightarrow{}  \mBbbB{}
3.  n  :  \mBbbN{}
4.  L  :  T  List
5.  \mforall{}L1:T  List
          (||L1||  <  ||L||
          {}\mRightarrow{}  (list\_split(f;L1)  \mmember{}  \{p:T  List  List  \mtimes{}  (T  List)| 
                                                          let  LL,L2  =  p 
                                                          in  is\_list\_splitting(T;L1;LL;L2;f)\}  ))
6.  \muparrow{}null(L)
\mvdash{}  list\_split(f;L)  \mmember{}  \{p:T  List  List  \mtimes{}  (T  List)|  let  LL,L2  =  p  in  is\_list\_splitting(T;L;LL;L2;f)\} 
By
Latex:
(DVar  `L'
  THEN  All  Reduce
  THEN  Auto
  THEN  RepUR  ``list\_split``  0
  THEN  MemTypeCD
  THEN  Reduce  0
  THEN  Auto
  THEN  D  0
  THEN  Reduce  0
  THEN  Auto)
Home
Index