Step
*
2
1
of Lemma
mul-polynom_wf2
1. n : ℤ
2. 0 < n
3. ∀[p,q:polynom(n - 1)].  (mul-polynom(n - 1;p;q) ∈ polynom(n - 1))
4. ¬(n = 0 ∈ ℤ)
5. p : polynom(n)
6. q : polynom(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) ∈ polynom(n)
BY
{ (RepeatFor 2 (((RecUnfold `polynom` (-2) THENA Auto) THEN (SplitOnHypITE -2  THENA Auto) THEN Try (Trivial)))
   THEN Auto
   THEN Try ((RecUnfold `polynom` 0 THEN (SplitOnConclITE THENA Auto) THEN Try (Trivial)))
   THEN Try (OnVar `z' (\h. ((RecUnfold `polynom` h THENA Auto) THEN (SplitOnHypITE h  THENA Auto) THEN Try (Trivial)))
             ⋅)
   THEN DSetVars
   THEN Try ((RepUR ``polyform-lead-nonzero`` 0 THEN MemTypeCD))
   THEN Auto) }
1
1. n : ℤ
2. 0 < n
3. ∀[p,q:polynom(n - 1)].  (mul-polynom(n - 1;p;q) ∈ polynom(n - 1))
4. ¬(n = 0 ∈ ℤ)
5. p : polynom(n - 1) List
6. polyform-lead-nonzero(n;p)
7. q : polynom(n - 1) List
8. polyform-lead-nonzero(n;q)
9. ¬(n = 0 ∈ ℤ)
10. ¬(n = 0 ∈ ℤ)
11. z : polynom(n - 1) List
12. polyform-lead-nonzero(n;z)
13. ¬↑null(z)
14. a : polynom(n - 1)
15. ff ∈ 𝔹
16. ¬(n = 0 ∈ ℤ)
17. ¬(n = 0 ∈ ℤ)
18. 0 < n
19. 0 < ||z @ [polyconst(n - 1;0)]||
⊢ ¬↑poly-zero(n - 1;hd(z @ [polyconst(n - 1;0)]))
2
1. n : ℤ
2. 0 < n
3. ∀[p,q:polynom(n - 1)].  (mul-polynom(n - 1;p;q) ∈ polynom(n - 1))
4. ¬(n = 0 ∈ ℤ)
5. p : polynom(n - 1) List
6. polyform-lead-nonzero(n;p)
7. q : polynom(n - 1) List
8. polyform-lead-nonzero(n;q)
9. ¬(n = 0 ∈ ℤ)
10. ¬(n = 0 ∈ ℤ)
11. z : polynom(n - 1) List
12. polyform-lead-nonzero(n;z)
13. a : polynom(n - 1)
14. ¬↑poly-zero(n - 1;a)
15. ff ∈ 𝔹
16. ¬(n = 0 ∈ ℤ)
17. ¬(n = 0 ∈ ℤ)
18. 0 < n
19. 0 < ||map(λx.mul-polynom(n - 1;a;x);q)||
⊢ ¬↑poly-zero(n - 1;hd(map(λx.mul-polynom(n - 1;a;x);q)))
Latex:
Latex:
1.  n  :  \mBbbZ{}
2.  0  <  n
3.  \mforall{}[p,q:polynom(n  -  1)].    (mul-polynom(n  -  1;p;q)  \mmember{}  polynom(n  -  1))
4.  \mneg{}(n  =  0)
5.  p  :  polynom(n)
6.  q  :  polynom(n)
\mvdash{}  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{}  polynom(n)
By
Latex:
(RepeatFor  2  (((RecUnfold  `polynom`  (-2)  THENA  Auto)
                              THEN  (SplitOnHypITE  -2    THENA  Auto)
                              THEN  Try  (Trivial)))
  THEN  Auto
  THEN  Try  ((RecUnfold  `polynom`  0  THEN  (SplitOnConclITE  THENA  Auto)  THEN  Try  (Trivial)))
  THEN  Try  (OnVar  `z'  (\mbackslash{}h.  ((RecUnfold  `polynom`  h  THENA  Auto)
                                                      THEN  (SplitOnHypITE  h    THENA  Auto)
                                                      THEN  Try  (Trivial)))\mcdot{})
  THEN  DSetVars
  THEN  Try  ((RepUR  ``polyform-lead-nonzero``  0  THEN  MemTypeCD))
  THEN  Auto)
Home
Index