Step
*
2
of Lemma
mul-polynom_wf
1. n : ℤ
2. 0 < n
3. ∀[p,q:polyform(n - 1)].  (mul-polynom(n - 1;p;q) ∈ polyform(n - 1))
⊢ ∀[p,q:polyform(n)].
    (if n=0
        then p * q
        else 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) ∈ polyform(n))
BY
{ ((Decide ⌜n = 0 ∈ ℤ⌝⋅ THENA Auto) THEN Reduce 0 THEN Auto) }
1
1. n : ℤ
2. 0 < n
3. ∀[p,q:polyform(n - 1)].  (mul-polynom(n - 1;p;q) ∈ polyform(n - 1))
4. ¬(n = 0 ∈ ℤ)
5. p : polyform(n)
6. q : polyform(n)
⊢ 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) ∈ polyform(n)
Latex:
Latex:
1.  n  :  \mBbbZ{}
2.  0  <  n
3.  \mforall{}[p,q:polyform(n  -  1)].    (mul-polynom(n  -  1;p;q)  \mmember{}  polyform(n  -  1))
\mvdash{}  \mforall{}[p,q:polyform(n)].
        (if  n=0
                then  p  *  q
                else  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)  \mmember{}  polyform(n))
By
Latex:
((Decide  \mkleeneopen{}n  =  0\mkleeneclose{}\mcdot{}  THENA  Auto)  THEN  Reduce  0  THEN  Auto)
Home
Index