Step
*
3
of Lemma
mul-polynom_wf
1. k : ℕ
2. ∀k:ℕk. ∀[n:ℕ]. ∀[p,q:polyform(n)].  (((tree_size(p) + tree_size(q)) ≤ k) 
⇒ (mul-polynom(p;q) ∈ polyform(n)))
3. n : ℕ
4. left : tree(ℤ)
5. p2 : tree(ℤ)
6. ↑(((ispolyform(left) (n - 1)) ∧b (ispolyform(p2) n)) ∧b 0 <z n)
7. q1 : ℤ
8. True
9. (((1 + tree_size(left)) + tree_size(p2)) + 0) ≤ k
⊢ 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) ∈ polyform(n)
BY
{ ((RW assert_pushdownC (-4) THENA Auto)
   THEN (Assert mul-polynom(left;tree_leaf(q1)) ∈ polyform(n - 1) BY
               ((InstHyp [⌜k - 1⌝;⌜n - 1⌝;⌜left⌝;⌜tree_leaf(q1)⌝] 2⋅ THENA Auto)
                THEN Subst' tree_size(tree_leaf(q1)) ~ 0 0
                THEN Auto))
   THEN (Assert mul-polynom(p2;tree_leaf(q1)) ∈ polyform(n) BY
               ((InstHyp [⌜k - 1⌝;⌜n⌝;⌜p2⌝;⌜tree_leaf(q1)⌝] 2⋅ THENA Auto)
                THEN Subst' tree_size(tree_leaf(q1)) ~ 0 0
                THEN Auto))) }
1
1. k : ℕ
2. ∀k:ℕk. ∀[n:ℕ]. ∀[p,q:polyform(n)].  (((tree_size(p) + tree_size(q)) ≤ k) 
⇒ (mul-polynom(p;q) ∈ polyform(n)))
3. n : ℕ
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. mul-polynom(left;tree_leaf(q1)) ∈ polyform(n - 1)
11. mul-polynom(p2;tree_leaf(q1)) ∈ polyform(n)
⊢ 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) ∈ polyform(n)
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{}  (mul-polynom(p;q)  \mmember{}  polyform(n)))
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
\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)  \mmember{}  polyform(n)
By
Latex:
((RW  assert\_pushdownC  (-4)  THENA  Auto)
  THEN  (Assert  mul-polynom(left;tree\_leaf(q1))  \mmember{}  polyform(n  -  1)  BY
                          ((InstHyp  [\mkleeneopen{}k  -  1\mkleeneclose{};\mkleeneopen{}n  -  1\mkleeneclose{};\mkleeneopen{}left\mkleeneclose{};\mkleeneopen{}tree\_leaf(q1)\mkleeneclose{}]  2\mcdot{}  THENA  Auto)
                            THEN  Subst'  tree\_size(tree\_leaf(q1))  \msim{}  0  0
                            THEN  Auto))
  THEN  (Assert  mul-polynom(p2;tree\_leaf(q1))  \mmember{}  polyform(n)  BY
                          ((InstHyp  [\mkleeneopen{}k  -  1\mkleeneclose{};\mkleeneopen{}n\mkleeneclose{};\mkleeneopen{}p2\mkleeneclose{};\mkleeneopen{}tree\_leaf(q1)\mkleeneclose{}]  2\mcdot{}  THENA  Auto)
                            THEN  Subst'  tree\_size(tree\_leaf(q1))  \msim{}  0  0
                            THEN  Auto)))
Home
Index