Step
*
2
2
1
of Lemma
polyvar-val
1. n : ℤ
2. 0 < n
3. ∀[v:ℤ]. ∀[l:{l:ℤ List| ||l|| = n ∈ ℤ} ].  (l@polyvar(n;v) = if 0 ≤z v ∧b v <z n then l[v] else 0 fi  ∈ ℤ)
4. v : ℤ
5. l : {l:ℤ List| ||l|| = (n + 1) ∈ ℤ} 
6. ¬v < 0
7. 0 ≤ v
⊢ l@polyvar(n + 1;v) = if v <z n + 1 then l[v] else 0 fi  ∈ ℤ
BY
{ ((RecUnfold `polyvar` 0 THEN (Reduce 0 THENA Auto))
   THEN (Subst' (n + 1) - 1 ~ n 0 THENA Auto)
   THEN (CallByValueReduce 0 THENA Auto)
   THEN (Decide  ⌜n < v⌝⋅ THENA Auto)
   THEN Reduce 0
   THEN Auto) }
1
1. n : ℤ
2. 0 < n
3. ∀[v:ℤ]. ∀[l:{l:ℤ List| ||l|| = n ∈ ℤ} ].  (l@polyvar(n;v) = if 0 ≤z v ∧b v <z n then l[v] else 0 fi  ∈ ℤ)
4. v : ℤ
5. l : {l:ℤ List| ||l|| = (n + 1) ∈ ℤ} 
6. ¬v < 0
7. 0 ≤ v
8. n < v
⊢ l@[] = if v <z n + 1 then l[v] else 0 fi  ∈ ℤ
2
1. n : ℤ
2. 0 < n
3. ∀[v:ℤ]. ∀[l:{l:ℤ List| ||l|| = n ∈ ℤ} ].  (l@polyvar(n;v) = if 0 ≤z v ∧b v <z n then l[v] else 0 fi  ∈ ℤ)
4. v : ℤ
5. l : {l:ℤ List| ||l|| = (n + 1) ∈ ℤ} 
6. ¬v < 0
7. 0 ≤ v
8. ¬n < v
⊢ l@if v=0
    then eval one = polyconst(n;1) in
         eval zero = polyconst(n;0) in
           [one; zero]
    else eval v' = v - 1 in
         eval a = polyvar(n;v') in
           [a]
= if v <z n + 1 then l[v] else 0 fi 
∈ ℤ
Latex:
Latex:
1.  n  :  \mBbbZ{}
2.  0  <  n
3.  \mforall{}[v:\mBbbZ{}].  \mforall{}[l:\{l:\mBbbZ{}  List|  ||l||  =  n\}  ].    (l@polyvar(n;v)  =  if  0  \mleq{}z  v  \mwedge{}\msubb{}  v  <z  n  then  l[v]  else  0  fi  )
4.  v  :  \mBbbZ{}
5.  l  :  \{l:\mBbbZ{}  List|  ||l||  =  (n  +  1)\} 
6.  \mneg{}v  <  0
7.  0  \mleq{}  v
\mvdash{}  l@polyvar(n  +  1;v)  =  if  v  <z  n  +  1  then  l[v]  else  0  fi 
By
Latex:
((RecUnfold  `polyvar`  0  THEN  (Reduce  0  THENA  Auto))
  THEN  (Subst'  (n  +  1)  -  1  \msim{}  n  0  THENA  Auto)
  THEN  (CallByValueReduce  0  THENA  Auto)
  THEN  (Decide    \mkleeneopen{}n  <  v\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  Reduce  0
  THEN  Auto)
Home
Index