Step
*
2
2
of Lemma
select-front-as-reduce
.....falsecase..... 
1. n : ℕ
2. u : Top
3. v : Top List
4. reduce(λu,x. if ||x|| <z n + 1 then x @ [u] else tl(x) @ [u] fi [];v) ~ rev(firstn(n + 1;v))
5. ||v|| ≤ (n + 1)
6. (n + 1) ≤ ||firstn(n + 1;v)||
⊢ tl(rev(firstn(n + 1;v))) @ [u] ~ rev(firstn(n + 1;[u / v]))
BY
{ ((RWO "firstn_all" (-1) THEN Try (Complete (Auto')))
   THEN RecUnfold `firstn` 0
   THEN Reduce 0
   THEN RecFold `firstn` 0
   THEN (SplitOnConclITE THENA Auto)
   THEN Try (Complete (Auto'))
   THEN (RWO "reverse-cons" 0 THENA Auto)
   THEN EqCD
   THEN Try (Trivial)) }
1
1. n : ℕ
2. u : Top
3. v : Top List
4. reduce(λu,x. if ||x|| <z n + 1 then x @ [u] else tl(x) @ [u] fi [];v) ~ rev(firstn(n + 1;v))
5. ||v|| ≤ (n + 1)
6. (n + 1) ≤ ||v||
7. 0 < n + 1
⊢ tl(rev(firstn(n + 1;v))) ~ rev(firstn((n + 1) - 1;v))
Latex:
Latex:
.....falsecase..... 
1.  n  :  \mBbbN{}
2.  u  :  Top
3.  v  :  Top  List
4.  reduce(\mlambda{}u,x.  if  ||x||  <z  n  +  1  then  x  @  [u]  else  tl(x)  @  [u]  fi  ;[];v)  \msim{}  rev(firstn(n  +  1;v))
5.  ||v||  \mleq{}  (n  +  1)
6.  (n  +  1)  \mleq{}  ||firstn(n  +  1;v)||
\mvdash{}  tl(rev(firstn(n  +  1;v)))  @  [u]  \msim{}  rev(firstn(n  +  1;[u  /  v]))
By
Latex:
((RWO  "firstn\_all"  (-1)  THEN  Try  (Complete  (Auto')))
  THEN  RecUnfold  `firstn`  0
  THEN  Reduce  0
  THEN  RecFold  `firstn`  0
  THEN  (SplitOnConclITE  THENA  Auto)
  THEN  Try  (Complete  (Auto'))
  THEN  (RWO  "reverse-cons"  0  THENA  Auto)
  THEN  EqCD
  THEN  Try  (Trivial))
Home
Index