Step
*
2
1
of Lemma
apply-cycle-member
1. n : ℕ
2. L : ℕn List
3. no_repeats(ℕn;L)
4. i : ℕ||L||
5. ¬(L = [] ∈ (ℕn List))
6. b : ℕn
7. hd(L) = b ∈ ℕn
⊢ rec-case(L) of
  [] => L[i]
  a::as =>
   r.if (L[i] =z a) then if null(as) then b else hd(as) fi  else r fi 
= if (i =z ||L|| - 1) then b else L[i + 1] fi 
∈ ℕn
BY
{ TACTIC:((Assert ∃j:ℕ||L||
                   ((L[i] = L[j] ∈ ℕn)
                   ∧ ((j = (||L|| - 1) ∈ ℤ) 
⇒ (if (i =z ||L|| - 1) then b else L[i + 1] fi  = b ∈ ℕn))
                   ∧ ((¬(j = (||L|| - 1) ∈ ℤ)) 
⇒ (if (i =z ||L|| - 1) then b else L[i + 1] fi  = L[j + 1] ∈ ℕn))) BY
                 (InstConcl [⌜i⌝]⋅ THEN Auto THEN (SplitOnConclITE THEN Auto)⋅))
          THEN MoveToConcl (-1)
          THEN ((GenConclAtAddr [2;3] THENA Auto) THEN Thin (-1))
          THEN (GenConclAtAddr [2;2;2] THENA Auto)
          THEN Thin (-1)) }
1
1. n : ℕ
2. L : ℕn List
3. no_repeats(ℕn;L)
4. i : ℕ||L||
5. ¬(L = [] ∈ (ℕn List))
6. b : ℕn
7. hd(L) = b ∈ ℕn
8. v : ℕn
9. v1 : ℕn
⊢ (∃j:ℕ||L||
    ((v1 = L[j] ∈ ℕn) ∧ ((j = (||L|| - 1) ∈ ℤ) 
⇒ (v = b ∈ ℕn)) ∧ ((¬(j = (||L|| - 1) ∈ ℤ)) 
⇒ (v = L[j + 1] ∈ ℕn))))
⇒ (rec-case(L) of [] => v1 | a::as => r.if (v1 =z a) then if null(as) then b else hd(as) fi  else r fi  = v ∈ ℕn)
Latex:
Latex:
1.  n  :  \mBbbN{}
2.  L  :  \mBbbN{}n  List
3.  no\_repeats(\mBbbN{}n;L)
4.  i  :  \mBbbN{}||L||
5.  \mneg{}(L  =  [])
6.  b  :  \mBbbN{}n
7.  hd(L)  =  b
\mvdash{}  rec-case(L)  of
    []  =>  L[i]
    a::as  =>
      r.if  (L[i]  =\msubz{}  a)  then  if  null(as)  then  b  else  hd(as)  fi    else  r  fi 
=  if  (i  =\msubz{}  ||L||  -  1)  then  b  else  L[i  +  1]  fi 
By
Latex:
TACTIC:((Assert  \mexists{}j:\mBbbN{}||L||
                                  ((L[i]  =  L[j])
                                  \mwedge{}  ((j  =  (||L||  -  1))  {}\mRightarrow{}  (if  (i  =\msubz{}  ||L||  -  1)  then  b  else  L[i  +  1]  fi    =  b))
                                  \mwedge{}  ((\mneg{}(j  =  (||L||  -  1)))
                                      {}\mRightarrow{}  (if  (i  =\msubz{}  ||L||  -  1)  then  b  else  L[i  +  1]  fi    =  L[j  +  1])))  BY
                              (InstConcl  [\mkleeneopen{}i\mkleeneclose{}]\mcdot{}  THEN  Auto  THEN  (SplitOnConclITE  THEN  Auto)\mcdot{}))
                THEN  MoveToConcl  (-1)
                THEN  ((GenConclAtAddr  [2;3]  THENA  Auto)  THEN  Thin  (-1))
                THEN  (GenConclAtAddr  [2;2;2]  THENA  Auto)
                THEN  Thin  (-1))
Home
Index