Step
*
2
2
1
2
1
1
3
of Lemma
select-front-as-reduce
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
8. v ~ firstn(n;v) @ nth_tl(n;v)
⊢ nth_tl(1 + n;v) ~ []
BY
{ xxx(Assert ||nth_tl(1 + n;v)|| = 0 ∈ ℤ BY
            ((InstLemma `length_nth_tl` [⌜Top⌝;⌜v⌝;⌜1 + n⌝]⋅ THENA Auto) THEN Auto'))xxx }
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
8. v ~ firstn(n;v) @ nth_tl(n;v)
9. ||nth_tl(1 + n;v)|| = 0 ∈ ℤ
⊢ nth_tl(1 + n;v) ~ []
Latex:
Latex:
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{}  ||v||
7.  0  <  n  +  1
8.  v  \msim{}  firstn(n;v)  @  nth\_tl(n;v)
\mvdash{}  nth\_tl(1  +  n;v)  \msim{}  []
By
Latex:
xxx(Assert  ||nth\_tl(1  +  n;v)||  =  0  BY
                    ((InstLemma  `length\_nth\_tl`  [\mkleeneopen{}Top\mkleeneclose{};\mkleeneopen{}v\mkleeneclose{};\mkleeneopen{}1  +  n\mkleeneclose{}]\mcdot{}  THENA  Auto)  THEN  Auto'))xxx
Home
Index