Step
*
of Lemma
nonzero-mul-polynom
∀[n:ℕ]. ∀[p,q:polynom(n)].
  (poly-zero(n;mul-polynom(n;p;q)) = ff) supposing (poly-zero(n;q) = ff and poly-zero(n;p) = ff)
BY
{ (CompleteInductionOnNat
   THEN (UnivCD THENA Auto)
   THEN RecUnfold `mul-polynom` 0⋅
   THEN RepeatFor 4 ((CallByValueReduce 0 THENA Auto))
   THEN (CaseNat 0 `n' THENL [Reduce 0; (InstHyp [⌜n - 1⌝] 2⋅ THENA Auto)])) }
1
1. n : ℕ
2. ∀n:ℕn
     ∀[p,q:polynom(n)].  (poly-zero(n;mul-polynom(n;p;q)) = ff) supposing (poly-zero(n;q) = ff and poly-zero(n;p) = ff)
3. p : polynom(n)
4. q : polynom(n)
5. poly-zero(n;p) = ff
6. poly-zero(n;q) = ff
7. n = 0 ∈ ℤ
⊢ poly-zero(0;if poly-zero(0;p) then p if poly-zero(0;q) then q else p * q fi ) = ff
2
1. n : ℕ
2. ∀n:ℕn
     ∀[p,q:polynom(n)].  (poly-zero(n;mul-polynom(n;p;q)) = ff) supposing (poly-zero(n;q) = ff and poly-zero(n;p) = ff)
3. p : polynom(n)
4. q : polynom(n)
5. poly-zero(n;p) = ff
6. poly-zero(n;q) = ff
7. ¬(n = 0 ∈ ℤ)
8. ∀[p,q:polynom(n - 1)].
     (poly-zero(n - 1;mul-polynom(n - 1;p;q)) = ff) supposing (poly-zero(n - 1;q) = ff and poly-zero(n - 1;p) = ff)
⊢ poly-zero(n;if poly-zero(n;p) then p
  if poly-zero(n;q) then q
  else 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)
  fi ) 
= ff
Latex:
Latex:
\mforall{}[n:\mBbbN{}].  \mforall{}[p,q:polynom(n)].
    (poly-zero(n;mul-polynom(n;p;q))  =  ff)  supposing  (poly-zero(n;q)  =  ff  and  poly-zero(n;p)  =  ff)
By
Latex:
(CompleteInductionOnNat
  THEN  (UnivCD  THENA  Auto)
  THEN  RecUnfold  `mul-polynom`  0\mcdot{}
  THEN  RepeatFor  4  ((CallByValueReduce  0  THENA  Auto))
  THEN  (CaseNat  0  `n'  THENL  [Reduce  0;  (InstHyp  [\mkleeneopen{}n  -  1\mkleeneclose{}]  2\mcdot{}  THENA  Auto)]))
Home
Index