Step * 2 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. p1 : ℤ
5. True
6. left tree(ℤ)
7. q2 tree(ℤ)
8. ↑(((ispolyform(left) (n 1)) ∧b (ispolyform(q2) n)) ∧b 0 <n)
9. (0 (1 tree_size(left)) tree_size(q2)) ≤ k
10. {l:ℤ List| n ≤ ||l||} 
11. tree_leaf(p1) ∈ polyform(n)
12. tree_node(left;q2) ∈ polyform(n)
⊢ eval add-polynom(tree_leaf(p1);left) in
  eval q2 in
    tree_node(a;b)@l
(tree_leaf(p1)@l tree_node(left;q2)@l)
∈ ℤ
BY
(Fold `polyconst` 0
   THEN (RW assert_pushdownC THENA Auto)
   THEN (Assert left ∈ polyform(n 1) BY
               Auto)
   THEN RepeatFor ((CallByValueReduce THEN Auto))) }

1
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. p1 : ℤ
5. True
6. left tree(ℤ)
7. q2 tree(ℤ)
8. ↑(ispolyform(left) (n 1))
9. ↑(ispolyform(q2) n)
10. 0 < n
11. (0 (1 tree_size(left)) tree_size(q2)) ≤ k
12. {l:ℤ List| n ≤ ||l||} 
13. tree_leaf(p1) ∈ polyform(n)
14. tree_node(left;q2) ∈ polyform(n)
15. left ∈ polyform(n 1)
⊢ tree_node(add-polynom(polyconst(p1);left);q2)@l (polyconst(p1)@l tree_node(left;q2)@l) ∈ ℤ


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.  p1  :  \mBbbZ{}
5.  True
6.  left  :  tree(\mBbbZ{})
7.  q2  :  tree(\mBbbZ{})
8.  \muparrow{}(((ispolyform(left)  (n  -  1))  \mwedge{}\msubb{}  (ispolyform(q2)  n))  \mwedge{}\msubb{}  0  <z  n)
9.  (0  +  (1  +  tree\_size(left))  +  tree\_size(q2))  \mleq{}  k
10.  l  :  \{l:\mBbbZ{}  List|  n  \mleq{}  ||l||\} 
11.  tree\_leaf(p1)  \mmember{}  polyform(n)
12.  tree\_node(left;q2)  \mmember{}  polyform(n)
\mvdash{}  eval  a  =  add-polynom(tree\_leaf(p1);left)  in
    eval  b  =  q2  in
        tree\_node(a;b)@l
=  (tree\_leaf(p1)@l  +  tree\_node(left;q2)@l)


By


Latex:
(Fold  `polyconst`  0
  THEN  (RW  assert\_pushdownC  8  THENA  Auto)
  THEN  (Assert  left  \mmember{}  polyform(n  -  1)  BY
                          Auto)
  THEN  RepeatFor  2  ((CallByValueReduce  0  THEN  Auto)))




Home Index