Step * 3 of Lemma mul-polynom-val


1. : ℕ
2. ∀k:ℕk
     ∀[n:ℕ]. ∀[p,q:polyform(n)].
       (((tree_size(p) tree_size(q)) ≤ k)  (∀[l:{l:ℤ List| n ≤ ||l||} ]. (mul-polynom(p;q)@l (p@l q@l) ∈ ℤ)))
3. : ℕ
4. left tree(ℤ)
5. p2 tree(ℤ)
6. ↑(((ispolyform(left) (n 1)) ∧b (ispolyform(p2) n)) ∧b 0 <n)
7. q1 : ℤ
8. True
9. (((1 tree_size(left)) tree_size(p2)) 0) ≤ k
10. {l:ℤ List| n ≤ ||l||} 
⊢ if q1=0
  then polyconst(0)
  else if q1=1
       then tree_node(left;p2)
       else eval mul-polynom(left;tree_leaf(q1)) in
            eval mul-polynom(p2;tree_leaf(q1)) in
              tree_node(a;b)@l
(tree_node(left;p2)@l tree_leaf(q1)@l)
∈ ℤ
BY
((RW assert_pushdownC (-5) THENA Auto)
   THEN (Assert mul-polynom(left;tree_leaf(q1)) ∈ polyform(n 1) BY
               Auto)
   THEN (Assert mul-polynom(p2;tree_leaf(q1)) ∈ polyform(n) BY
               Auto)
   THEN RepeatFor ((CallByValueReduce THENA Auto))
   THEN RepeatFor (DVar `l')
   THEN All Reduce
   THEN Try ((Assert ⌜False⌝⋅ THEN Complete (Auto)))) }

1
1. : ℕ
2. ∀k:ℕk
     ∀[n:ℕ]. ∀[p,q:polyform(n)].
       (((tree_size(p) tree_size(q)) ≤ k)  (∀[l:{l:ℤ List| n ≤ ||l||} ]. (mul-polynom(p;q)@l (p@l q@l) ∈ ℤ)))
3. : ℕ
4. left tree(ℤ)
5. p2 tree(ℤ)
6. ((↑(ispolyform(left) (n 1))) ∧ (↑(ispolyform(p2) n))) ∧ 0 < n
7. q1 : ℤ
8. True
9. (((1 tree_size(left)) tree_size(p2)) 0) ≤ k
10. : ℤ
11. : ℤ List
12. n ≤ (||v|| 1)
13. mul-polynom(left;tree_leaf(q1)) ∈ polyform(n 1)
14. mul-polynom(p2;tree_leaf(q1)) ∈ polyform(n)
⊢ if q1=0
  then polyconst(0)
  else if q1=1 then tree_node(left;p2) else tree_node(mul-polynom(left;tree_leaf(q1));mul-polynom(p2;tree_leaf(q1)))@...
(tree_node(left;p2)@[u v] tree_leaf(q1)@[u v])
∈ ℤ


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||\}  ].  (mul-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))  \mwedge{}\msubb{}  (ispolyform(p2)  n))  \mwedge{}\msubb{}  0  <z  n)
7.  q1  :  \mBbbZ{}
8.  True
9.  (((1  +  tree\_size(left))  +  tree\_size(p2))  +  0)  \mleq{}  k
10.  l  :  \{l:\mBbbZ{}  List|  n  \mleq{}  ||l||\} 
\mvdash{}  if  q1=0
    then  polyconst(0)
    else  if  q1=1
              then  tree\_node(left;p2)
              else  eval  a  =  mul-polynom(left;tree\_leaf(q1))  in
                        eval  b  =  mul-polynom(p2;tree\_leaf(q1))  in
                            tree\_node(a;b)@l
=  (tree\_node(left;p2)@l  *  tree\_leaf(q1)@l)


By


Latex:
((RW  assert\_pushdownC  (-5)  THENA  Auto)
  THEN  (Assert  mul-polynom(left;tree\_leaf(q1))  \mmember{}  polyform(n  -  1)  BY
                          Auto)
  THEN  (Assert  mul-polynom(p2;tree\_leaf(q1))  \mmember{}  polyform(n)  BY
                          Auto)
  THEN  RepeatFor  2  ((CallByValueReduce  0  THENA  Auto))
  THEN  RepeatFor  2  (DVar  `l')
  THEN  All  Reduce
  THEN  Try  ((Assert  \mkleeneopen{}False\mkleeneclose{}\mcdot{}  THEN  Complete  (Auto))))




Home Index