Step * 3 1 1 of Lemma add-polynom-val


1. : ℕ
2. ∀k:ℕk
     ∀[n:ℕ]. ∀[p,q:polyform(n)].
       (((tree_size(p) tree_size(q)) ≤ k)  (∀[l:{l:ℤ List| n ≤ ||l||} ]. (add-polynom(p;q)@l (p@l q@l) ∈ ℤ)))
3. : ℕ
4. left tree(ℤ)
5. p2 tree(ℤ)
6. ↑(ispolyform(left) (n 1))
7. ↑(ispolyform(p2) n)
8. 0 < n
9. q1 : ℤ
10. True
11. (((1 tree_size(left)) tree_size(p2)) 0) ≤ k
12. : ℤ
13. : ℤ List
14. n ≤ (||v|| 1)
15. tree_node(left;p2) ∈ polyform(n)
16. tree_leaf(q1) ∈ polyform(n)
17. left ∈ polyform(n 1)
18. ∀[l:{l:ℤ List| (n 1) ≤ ||l||} ]. (add-polynom(left;tree_leaf(q1))@l (left@l tree_leaf(q1)@l) ∈ ℤ)
19. add-polynom(left;tree_leaf(q1))@v (left@v tree_leaf(q1)@v) ∈ ℤ
⊢ eval av left@v tree_leaf(q1)@v in
  eval bv p2@[u v] in
    if bv=0 then av else eval in av (h bv)
(eval av left@v in eval bv p2@[u v] in   if bv=0 then av else eval in av (h bv) q1)
∈ ℤ
BY
((Fold `polyconst` THEN Reduce 0)
   THEN (Assert left ∈ polyform(n 1) BY
               Auto)
   THEN (Assert p2 ∈ polyform(n) BY
               Auto)
   THEN RepeatFor ((CallByValueReduce THENA Auto))
   THEN Auto) }


Latex:


Latex:

1.  k  :  \mBbbN{}
2.  \mforall{}k:\mBbbN{}k
          \mforall{}[n:\mBbbN{}].  \mforall{}[p,q:polyform(n)].
              (((tree\_size(p)  +  tree\_size(q))  \mleq{}  k)
              {}\mRightarrow{}  (\mforall{}[l:\{l:\mBbbZ{}  List|  n  \mleq{}  ||l||\}  ].  (add-polynom(p;q)@l  =  (p@l  +  q@l))))
3.  n  :  \mBbbN{}
4.  left  :  tree(\mBbbZ{})
5.  p2  :  tree(\mBbbZ{})
6.  \muparrow{}(ispolyform(left)  (n  -  1))
7.  \muparrow{}(ispolyform(p2)  n)
8.  0  <  n
9.  q1  :  \mBbbZ{}
10.  True
11.  (((1  +  tree\_size(left))  +  tree\_size(p2))  +  0)  \mleq{}  k
12.  u  :  \mBbbZ{}
13.  v  :  \mBbbZ{}  List
14.  n  \mleq{}  (||v||  +  1)
15.  tree\_node(left;p2)  \mmember{}  polyform(n)
16.  tree\_leaf(q1)  \mmember{}  polyform(n)
17.  left  \mmember{}  polyform(n  -  1)
18.  \mforall{}[l:\{l:\mBbbZ{}  List|  (n  -  1)  \mleq{}  ||l||\}  ]
            (add-polynom(left;tree\_leaf(q1))@l  =  (left@l  +  tree\_leaf(q1)@l))
19.  add-polynom(left;tree\_leaf(q1))@v  =  (left@v  +  tree\_leaf(q1)@v)
\mvdash{}  eval  av  =  left@v  +  tree\_leaf(q1)@v  in
    eval  bv  =  p2@[u  /  v]  in
        if  bv=0  then  av  else  eval  h  =  u  in  av  +  (h  *  bv)
=  (eval  av  =  left@v  in
      eval  bv  =  p2@[u  /  v]  in
          if  bv=0  then  av  else  eval  h  =  u  in  av  +  (h  *  bv)
    +  q1)


By


Latex:
((Fold  `polyconst`  0  THEN  Reduce  0)
  THEN  (Assert  left  \mmember{}  polyform(n  -  1)  BY
                          Auto)
  THEN  (Assert  p2  \mmember{}  polyform(n)  BY
                          Auto)
  THEN  RepeatFor  3  ((CallByValueReduce  0  THENA  Auto))
  THEN  Auto)




Home Index