Step * 2 2 1 1 1 of Lemma list_split_wf


1. Type
2. (T List) ⟶ 𝔹
3. : ℕ
4. List
5. ¬↑null(L)
6. v1 List List
7. T
8. List
9. firstn(||L|| 1;L) (concat(v1) [u v]) ∈ (T List)
10. (∀L'∈v1.(↑(f L')) ∧ (¬↑null(L')) ∧ (∀S:T List. ((¬↑null(S))  S ≤ L'  (S L' ∈ (T List)))  (¬↑(f S)))))
11. (¬↑null(firstn(||L|| 1;L)))  False)
12. ∀S:T List. ((¬↑null(S))  S ≤ [u v]  (S [u v] ∈ (T List)))  (¬↑(f S)))
13. ↑(f [u v])
⊢ (firstn(||L|| 1;L) [last(L)]) (concat(v1 [[u v]]) [last(L)]) ∈ (T List)
BY
TACTIC:((EqCD THEN Auto) THEN RWO "concat_append" THEN Auto) }


Latex:


Latex:

1.  T  :  Type
2.  f  :  (T  List)  {}\mrightarrow{}  \mBbbB{}
3.  n  :  \mBbbN{}
4.  L  :  T  List
5.  \mneg{}\muparrow{}null(L)
6.  v1  :  T  List  List
7.  u  :  T
8.  v  :  T  List
9.  firstn(||L||  -  1;L)  =  (concat(v1)  @  [u  /  v])
10.  (\mforall{}L'\mmember{}v1.(\muparrow{}(f  L'))
                \mwedge{}  (\mneg{}\muparrow{}null(L'))
                \mwedge{}  (\mforall{}S:T  List.  ((\mneg{}\muparrow{}null(S))  {}\mRightarrow{}  S  \mleq{}  L'  {}\mRightarrow{}  (\mneg{}(S  =  L'))  {}\mRightarrow{}  (\mneg{}\muparrow{}(f  S)))))
11.  (\mneg{}\muparrow{}null(firstn(||L||  -  1;L)))  {}\mRightarrow{}  (\mneg{}False)
12.  \mforall{}S:T  List.  ((\mneg{}\muparrow{}null(S))  {}\mRightarrow{}  S  \mleq{}  [u  /  v]  {}\mRightarrow{}  (\mneg{}(S  =  [u  /  v]))  {}\mRightarrow{}  (\mneg{}\muparrow{}(f  S)))
13.  \muparrow{}(f  [u  /  v])
\mvdash{}  (firstn(||L||  -  1;L)  @  [last(L)])  =  (concat(v1  @  [[u  /  v]])  @  [last(L)])


By


Latex:
TACTIC:((EqCD  THEN  Auto)  THEN  RWO  "concat\_append"  0  THEN  Auto)




Home Index