Step * 4 of Lemma mul-polynom_wf


1. : ℕ
2. ∀k:ℕk. ∀[n:ℕ]. ∀[p,q:polyform(n)].  (((tree_size(p) tree_size(q)) ≤ k)  (mul-polynom(p;q) ∈ polyform(n)))
3. : ℕ
4. left tree(ℤ)
5. p2 tree(ℤ)
6. ↑(((ispolyform(left) (n 1)) ∧b (ispolyform(p2) n)) ∧b 0 <n)
7. l1 tree(ℤ)
8. q2 tree(ℤ)
9. ↑(((ispolyform(l1) (n 1)) ∧b (ispolyform(q2) n)) ∧b 0 <n)
10. (((1 tree_size(left)) tree_size(p2)) (1 tree_size(l1)) tree_size(q2)) ≤ k
⊢ eval aa mul-polynom(left;l1) in
  eval ab mul-polynom(tree_node(left;polyconst(0));q2) in
  eval ba mul-polynom(p2;tree_node(l1;polyconst(0))) in
  eval bb mul-polynom(p2;q2) in
  eval mid add-polynom(ab;ba) in
  eval bb' add-polynom(mid;tree_node(polyconst(0);bb)) in
    tree_node(aa;bb') ∈ polyform(n)
BY
(((RW assert_pushdownC (-5) THENA Auto) THEN (RW assert_pushdownC (-2) THENA Auto))
   THEN (GenConcl ⌜mul-polynom(left;l1) aa ∈ polyform(n 1)⌝⋅
         THENA (InstHyp [⌜1⌝;⌜1⌝;⌜left⌝;⌜l1⌝2⋅ THEN Auto)
         )
   THEN (CallByValueReduce THENA Auto)
   THEN ((Assert tree_node(left;polyconst(0)) ∈ polyform(n) BY
                ((GenConcl ⌜polyconst(0) z ∈ polyform(n)⌝⋅ THENA (Auto THEN SubsumeC ⌜polynom(n)⌝⋅ THEN Auto))
                 THEN Auto
                 ))
         THEN (Assert tree_size(tree_node(left;polyconst(0))) (1 tree_size(left)) ∈ ℤ BY
                     (RW (AddrC [2] RecUnfoldTopAbC) 0
                      THEN Reduce 0
                      THEN Subst' tree_size(polyconst(0)) 0
                      THEN Auto))
         )
   THEN (Assert tree_node(l1;polyconst(0)) ∈ polyform(n) BY
               ((GenConcl ⌜polyconst(0) z ∈ polyform(n)⌝⋅ THENA (Auto THEN SubsumeC ⌜polynom(n)⌝⋅ THEN Auto))
                THEN Auto
                ))
   THEN (Assert tree_size(tree_node(l1;polyconst(0))) (1 tree_size(l1)) ∈ ℤ BY
               (RW (AddrC [2] RecUnfoldTopAbC) THEN Reduce THEN Subst' tree_size(polyconst(0)) THEN Auto))) }

1
1. : ℕ
2. ∀k:ℕk. ∀[n:ℕ]. ∀[p,q:polyform(n)].  (((tree_size(p) tree_size(q)) ≤ k)  (mul-polynom(p;q) ∈ polyform(n)))
3. : ℕ
4. left tree(ℤ)
5. p2 tree(ℤ)
6. ((↑(ispolyform(left) (n 1))) ∧ (↑(ispolyform(p2) n))) ∧ 0 < n
7. l1 tree(ℤ)
8. q2 tree(ℤ)
9. ((↑(ispolyform(l1) (n 1))) ∧ (↑(ispolyform(q2) n))) ∧ 0 < n
10. (((1 tree_size(left)) tree_size(p2)) (1 tree_size(l1)) tree_size(q2)) ≤ k
11. aa polyform(n 1)
12. mul-polynom(left;l1) aa ∈ polyform(n 1)
13. tree_node(left;polyconst(0)) ∈ polyform(n)
14. tree_size(tree_node(left;polyconst(0))) (1 tree_size(left)) ∈ ℤ
15. tree_node(l1;polyconst(0)) ∈ polyform(n)
16. tree_size(tree_node(l1;polyconst(0))) (1 tree_size(l1)) ∈ ℤ
⊢ eval ab mul-polynom(tree_node(left;polyconst(0));q2) in
  eval ba mul-polynom(p2;tree_node(l1;polyconst(0))) in
  eval bb mul-polynom(p2;q2) in
  eval mid add-polynom(ab;ba) in
  eval bb' add-polynom(mid;tree_node(polyconst(0);bb)) in
    tree_node(aa;bb') ∈ 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.  l1  :  tree(\mBbbZ{})
8.  q2  :  tree(\mBbbZ{})
9.  \muparrow{}(((ispolyform(l1)  (n  -  1))  \mwedge{}\msubb{}  (ispolyform(q2)  n))  \mwedge{}\msubb{}  0  <z  n)
10.  (((1  +  tree\_size(left))  +  tree\_size(p2))  +  (1  +  tree\_size(l1))  +  tree\_size(q2))  \mleq{}  k
\mvdash{}  eval  aa  =  mul-polynom(left;l1)  in
    eval  ab  =  mul-polynom(tree\_node(left;polyconst(0));q2)  in
    eval  ba  =  mul-polynom(p2;tree\_node(l1;polyconst(0)))  in
    eval  bb  =  mul-polynom(p2;q2)  in
    eval  mid  =  add-polynom(ab;ba)  in
    eval  bb'  =  add-polynom(mid;tree\_node(polyconst(0);bb))  in
        tree\_node(aa;bb')  \mmember{}  polyform(n)


By


Latex:
(((RW  assert\_pushdownC  (-5)  THENA  Auto)  THEN  (RW  assert\_pushdownC  (-2)  THENA  Auto))
  THEN  (GenConcl  \mkleeneopen{}mul-polynom(left;l1)  =  aa\mkleeneclose{}\mcdot{}
              THENA  (InstHyp  [\mkleeneopen{}k  -  1\mkleeneclose{};\mkleeneopen{}n  -  1\mkleeneclose{};\mkleeneopen{}left\mkleeneclose{};\mkleeneopen{}l1\mkleeneclose{}]  2\mcdot{}  THEN  Auto)
              )
  THEN  (CallByValueReduce  0  THENA  Auto)
  THEN  ((Assert  tree\_node(left;polyconst(0))  \mmember{}  polyform(n)  BY
                            ((GenConcl  \mkleeneopen{}polyconst(0)  =  z\mkleeneclose{}\mcdot{}  THENA  (Auto  THEN  SubsumeC  \mkleeneopen{}polynom(n)\mkleeneclose{}\mcdot{}  THEN  Auto))
                              THEN  Auto
                              ))
              THEN  (Assert  tree\_size(tree\_node(left;polyconst(0)))  =  (1  +  tree\_size(left))  BY
                                      (RW  (AddrC  [2]  RecUnfoldTopAbC)  0
                                        THEN  Reduce  0
                                        THEN  Subst'  tree\_size(polyconst(0))  \msim{}  0  0
                                        THEN  Auto))
              )
  THEN  (Assert  tree\_node(l1;polyconst(0))  \mmember{}  polyform(n)  BY
                          ((GenConcl  \mkleeneopen{}polyconst(0)  =  z\mkleeneclose{}\mcdot{}  THENA  (Auto  THEN  SubsumeC  \mkleeneopen{}polynom(n)\mkleeneclose{}\mcdot{}  THEN  Auto))
                            THEN  Auto
                            ))
  THEN  (Assert  tree\_size(tree\_node(l1;polyconst(0)))  =  (1  +  tree\_size(l1))  BY
                          (RW  (AddrC  [2]  RecUnfoldTopAbC)  0
                            THEN  Reduce  0
                            THEN  Subst'  tree\_size(polyconst(0))  \msim{}  0  0
                            THEN  Auto)))




Home Index