Step
*
2
2
1
of Lemma
split-at-first-rel
1. [T] : Type
2. [R] : T ⟶ T ⟶ ℙ
3. ∀x,y:T.  Dec(R[x;y])
4. u : T
5. u1 : T
6. v : T List
7. ∃XY:T List × (T List) [let X,Y = XY 
                          in ([u1 / v] = (X @ Y) ∈ (T List))
                             ∧ (∀i:ℕ||X|| - 1. R[X[i];X[i + 1]])
                             ∧ ((¬↑null([u1 / v])) 
⇒ ((¬↑null(X)) ∧ ¬R[last(X);hd(Y)] supposing ||Y|| ≥ 1 ))]
8. R[u;u1]
⊢ ∃XY:T List × (T List) [let X,Y = XY 
                         in ([u; [u1 / v]] = (X @ Y) ∈ (T List))
                            ∧ (∀i:ℕ||X|| - 1. R[X[i];X[i + 1]])
                            ∧ ((¬↑null([u; [u1 / v]])) 
⇒ ((¬↑null(X)) ∧ ¬R[last(X);hd(Y)] supposing ||Y|| ≥ 1 ))]
BY
{ (D -2 THEN D -3 THEN InstConcl [⌜<[u / X1], X2>⌝]⋅ THEN All Reduce THEN Auto) }
1
1. T : Type
2. R : T ⟶ T ⟶ ℙ
3. ∀x,y:T.  Dec(R[x;y])
4. u : T
5. u1 : T
6. v : T List
7. X1 : T List
8. X2 : T List
9. [u1 / v] = (X1 @ X2) ∈ (T List)
10. ∀i:ℕ||X1|| - 1. R[X1[i];X1[i + 1]]
11. (¬False) 
⇒ ((¬↑null(X1)) ∧ ¬R[last(X1);hd(X2)] supposing ||X2|| ≥ 1 )
12. R[u;u1]
13. [u; [u1 / v]] = [u / (X1 @ X2)] ∈ (T List)
14. i : ℕ(||X1|| + 1) - 1
⊢ R[[u / X1][i];[u / X1][i + 1]]
Latex:
Latex:
1.  [T]  :  Type
2.  [R]  :  T  {}\mrightarrow{}  T  {}\mrightarrow{}  \mBbbP{}
3.  \mforall{}x,y:T.    Dec(R[x;y])
4.  u  :  T
5.  u1  :  T
6.  v  :  T  List
7.  \mexists{}XY:T  List  \mtimes{}  (T  List)  [let  X,Y  =  XY 
                                                    in  ([u1  /  v]  =  (X  @  Y))
                                                          \mwedge{}  (\mforall{}i:\mBbbN{}||X||  -  1.  R[X[i];X[i  +  1]])
                                                          \mwedge{}  ((\mneg{}\muparrow{}null([u1  /  v]))
                                                              {}\mRightarrow{}  ((\mneg{}\muparrow{}null(X))  \mwedge{}  \mneg{}R[last(X);hd(Y)]  supposing  ||Y||  \mgeq{}  1  ))]
8.  R[u;u1]
\mvdash{}  \mexists{}XY:T  List  \mtimes{}  (T  List)  [let  X,Y  =  XY 
                                                  in  ([u;  [u1  /  v]]  =  (X  @  Y))
                                                        \mwedge{}  (\mforall{}i:\mBbbN{}||X||  -  1.  R[X[i];X[i  +  1]])
                                                        \mwedge{}  ((\mneg{}\muparrow{}null([u;  [u1  /  v]]))
                                                            {}\mRightarrow{}  ((\mneg{}\muparrow{}null(X))  \mwedge{}  \mneg{}R[last(X);hd(Y)]  supposing  ||Y||  \mgeq{}  1  ))]
By
Latex:
(D  -2  THEN  D  -3  THEN  InstConcl  [\mkleeneopen{}<[u  /  X1],  X2>\mkleeneclose{}]\mcdot{}  THEN  All  Reduce  THEN  Auto)
Home
Index