Step
*
2
1
1
2
1
of Lemma
add-remove-nth
1. T : Type
2. u : T
3. v : T List
4. ∀[n:ℕ||v||]. (let x,L' = remove-nth(n;v) in add-nth(n;x;L') ~ v)
5. n : ℕ||v|| + 1
6. 0 < n
⊢ firstn(n - 1;firstn(n - 1;v) @ nth_tl((n + 1) - 1;v))
@ [[u / v][n] / nth_tl(n - 1;firstn(n - 1;v) @ nth_tl((n + 1) - 1;v))] ~ v
BY
{ ((InstHyp [⌜n - 1⌝] (-3)⋅ THENA Auto)
   THEN NthHypSq (-1)
   THEN EqCD⋅
   THEN RepUR ``remove-nth add-nth`` 0
   THEN RepeatFor 2 ((EqCD THEN Try (Trivial)))
   THEN Try (Complete (RepeatFor 3 ((EqCD THEN Try (Complete (Auto))))⋅))) }
1
1. T : Type
2. u : T
3. v : T List
4. ∀[n:ℕ||v||]. (let x,L' = remove-nth(n;v) in add-nth(n;x;L') ~ v)
5. n : ℕ||v|| + 1
6. 0 < n
7. let x,L' = remove-nth(n - 1;v) 
   in add-nth(n - 1;x;L') ~ v
⊢ [u / v][n] ~ v[n - 1]
Latex:
Latex:
1.  T  :  Type
2.  u  :  T
3.  v  :  T  List
4.  \mforall{}[n:\mBbbN{}||v||].  (let  x,L'  =  remove-nth(n;v)  in  add-nth(n;x;L')  \msim{}  v)
5.  n  :  \mBbbN{}||v||  +  1
6.  0  <  n
\mvdash{}  firstn(n  -  1;firstn(n  -  1;v)  @  nth\_tl((n  +  1)  -  1;v))
@  [[u  /  v][n]  /  nth\_tl(n  -  1;firstn(n  -  1;v)  @  nth\_tl((n  +  1)  -  1;v))]  \msim{}  v
By
Latex:
((InstHyp  [\mkleeneopen{}n  -  1\mkleeneclose{}]  (-3)\mcdot{}  THENA  Auto)
  THEN  NthHypSq  (-1)
  THEN  EqCD\mcdot{}
  THEN  RepUR  ``remove-nth  add-nth``  0
  THEN  RepeatFor  2  ((EqCD  THEN  Try  (Trivial)))
  THEN  Try  (Complete  (RepeatFor  3  ((EqCD  THEN  Try  (Complete  (Auto))))\mcdot{})))
Home
Index