Step
*
1
of Lemma
firstn_last
1. T : Type
2. u : T
3. v : T List
4. v = (firstn(||v|| - 1;v) @ [last(v)]) ∈ (T List) supposing ¬↑null(v)
5. ¬False
⊢ [u / v] = (firstn((||v|| + 1) - 1;[u / v]) @ [last([u / v])]) ∈ (T List)
BY
{ TACTIC:(((RecUnfold `firstn` 0 THEN Reduce 0 THEN SplitOnConclITE) THENA Auto) THEN Reduce 0) }
1
1. T : Type
2. u : T
3. v : T List
4. v = (firstn(||v|| - 1;v) @ [last(v)]) ∈ (T List) supposing ¬↑null(v)
5. ¬False
6. 0 < (||v|| + 1) - 1
⊢ [u / v] = [u / (firstn((||v|| + 1) - 1 - 1;v) @ [last([u / v])])] ∈ (T List)
2
1. T : Type
2. u : T
3. v : T List
4. v = (firstn(||v|| - 1;v) @ [last(v)]) ∈ (T List) supposing ¬↑null(v)
5. ¬False
6. ((||v|| + 1) - 1) ≤ 0
⊢ [u / v] = [last([u / v])] ∈ (T List)
Latex:
Latex:
1.  T  :  Type
2.  u  :  T
3.  v  :  T  List
4.  v  =  (firstn(||v||  -  1;v)  @  [last(v)])  supposing  \mneg{}\muparrow{}null(v)
5.  \mneg{}False
\mvdash{}  [u  /  v]  =  (firstn((||v||  +  1)  -  1;[u  /  v])  @  [last([u  /  v])])
By
Latex:
TACTIC:(((RecUnfold  `firstn`  0  THEN  Reduce  0  THEN  SplitOnConclITE)  THENA  Auto)  THEN  Reduce  0)
Home
Index