Step
*
1
1
2
1
of Lemma
mul-polynom-int-val
1. n : ℕ
2. u : ℤ
3. v : ℤ List
4. ||[u / v]|| = n ∈ ℤ
5. p : polyform(n - 1) List
6. q : polyform(n - 1) List
7. ¬(n = 0 ∈ ℤ)
8. ||v|| = (n - 1) ∈ ℤ
9. ∀[p,q:polyform(n - 1)].  (v@mul-polynom(n - 1;p;q) = (v@p * v@q) ∈ ℤ)
⊢ [u / v]@eager-accum(z,a.add-polynom(n;tt;if null(z) then [] else z @ [polyconst(n - 1;0)] fi if poly-zero(n - 1;a)
then []
else map(λx.mul-polynom(n - 1;a;x);q)
fi );polyconst(n;0);p)
= ([u / v]@p * [u / v]@q)
∈ ℤ
BY
{ (Assert ⌜∀r:polyform(n)
             ([u / v]@eager-accum(z,a.add-polynom(n;tt;if null(z)
             then []
             else z @ [polyconst(n - 1;0)]
             fi if poly-zero(n - 1;a) then [] else map(λx.mul-polynom(n - 1;a;x);q) fi );r;p)
             = (([u / v]@p * [u / v]@q) + ([u / v]@r * u^||p||))
             ∈ ℤ)⌝⋅
THENM ((Assert [u / v]@p ∈ ℤ BY
              ((Assert p ∈ polyform(n) BY (RecUnfold `polyform` 0 THEN Auto)) THEN Auto))
       THEN (Assert [u / v]@q ∈ ℤ BY
                   ((Assert q ∈ polyform(n) BY (RecUnfold `polyform` 0 THEN Auto)) THEN Auto))
       THEN (RWO "-3" 0 THENA Auto)
       THEN RWO "polyconst-val" 0
       THEN Auto)
) }
1
.....assertion..... 
1. n : ℕ
2. u : ℤ
3. v : ℤ List
4. ||[u / v]|| = n ∈ ℤ
5. p : polyform(n - 1) List
6. q : polyform(n - 1) List
7. ¬(n = 0 ∈ ℤ)
8. ||v|| = (n - 1) ∈ ℤ
9. ∀[p,q:polyform(n - 1)].  (v@mul-polynom(n - 1;p;q) = (v@p * v@q) ∈ ℤ)
⊢ ∀r:polyform(n)
    ([u / v]@eager-accum(z,a.add-polynom(n;tt;if null(z) then [] else z @ [polyconst(n - 1;0)] fi if poly-zero(n - 1;a)
    then []
    else map(λx.mul-polynom(n - 1;a;x);q)
    fi );r;p)
    = (([u / v]@p * [u / v]@q) + ([u / v]@r * u^||p||))
    ∈ ℤ)
Latex:
Latex:
1.  n  :  \mBbbN{}
2.  u  :  \mBbbZ{}
3.  v  :  \mBbbZ{}  List
4.  ||[u  /  v]||  =  n
5.  p  :  polyform(n  -  1)  List
6.  q  :  polyform(n  -  1)  List
7.  \mneg{}(n  =  0)
8.  ||v||  =  (n  -  1)
9.  \mforall{}[p,q:polyform(n  -  1)].    (v@mul-polynom(n  -  1;p;q)  =  (v@p  *  v@q))
\mvdash{}  [u  /  v]@eager-accum(z,a.add-polynom(n;tt;if  null(z)
then  []
else  z  @  [polyconst(n  -  1;0)]
fi  ;if  poly-zero(n  -  1;a)  then  []  else  map(\mlambda{}x.mul-polynom(n  -  1;a;x);q)  fi  );polyconst(n;0);p)
=  ([u  /  v]@p  *  [u  /  v]@q)
By
Latex:
(Assert  \mkleeneopen{}\mforall{}r:polyform(n)
                      ([u  /  v]@eager-accum(z,a.add-polynom(n;tt;if  null(z)
                      then  []
                      else  z  @  [polyconst(n  -  1;0)]
                      fi  ;if  poly-zero(n  -  1;a)  then  []  else  map(\mlambda{}x.mul-polynom(n  -  1;a;x);q)  fi  );r;p)
                      =  (([u  /  v]@p  *  [u  /  v]@q)  +  ([u  /  v]@r  *  u\^{}||p||)))\mkleeneclose{}\mcdot{}
THENM  ((Assert  [u  /  v]@p  \mmember{}  \mBbbZ{}  BY
                            ((Assert  p  \mmember{}  polyform(n)  BY  (RecUnfold  `polyform`  0  THEN  Auto))  THEN  Auto))
              THEN  (Assert  [u  /  v]@q  \mmember{}  \mBbbZ{}  BY
                                      ((Assert  q  \mmember{}  polyform(n)  BY  (RecUnfold  `polyform`  0  THEN  Auto))  THEN  Auto))
              THEN  (RWO  "-3"  0  THENA  Auto)
              THEN  RWO  "polyconst-val"  0
              THEN  Auto)
)
Home
Index