Step
*
1
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))
4. p : polyform(n)
5. 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)
BY
{ ((Assert polyconst(n;0) ∈ polyform(n - 1) List BY
          (RecUnfold `polyconst` 0 THEN Auto))
   THEN RepeatFor 2 (((RecUnfold `polyform` (-3) THENA Auto) THEN (SplitOnHypITE -3  THENA Auto) THEN Try (Trivial)))
   THEN Try (((Assert ¬0 < n BY Auto) THEN Trivial))
   THEN (RecUnfold `polyform` 0 THEN (SplitOnConclITE THENA Auto) THEN Try (Trivial))
   THEN MemCD
   THEN Try (QuickAuto)) }
1
.....subterm..... T:t
1:n
1. n : ℤ
2. 0 < n
3. ∀[p,q:polyform(n - 1)].  (mul-polynom(n - 1;p;q) ∈ polyform(n - 1))
4. p : polyform(n - 1) List
5. q : polyform(n - 1) List
6. polyconst(n;0) ∈ polyform(n - 1) List
7. ¬(n = 0 ∈ ℤ)
8. ¬(n = 0 ∈ ℤ)
9. ¬(n = 0 ∈ ℤ)
10. z : polyform(n - 1) List
11. a : polyform(n - 1)
⊢ 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 ) ∈ polyform(n - 1) List
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))
4.  p  :  polyform(n)
5.  q  :  polyform(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{}  polyform(n)
By
Latex:
((Assert  polyconst(n;0)  \mmember{}  polyform(n  -  1)  List  BY
                (RecUnfold  `polyconst`  0  THEN  Auto))
  THEN  RepeatFor  2  (((RecUnfold  `polyform`  (-3)  THENA  Auto)
                                        THEN  (SplitOnHypITE  -3    THENA  Auto)
                                        THEN  Try  (Trivial)))
  THEN  Try  (((Assert  \mneg{}0  <  n  BY  Auto)  THEN  Trivial))
  THEN  (RecUnfold  `polyform`  0  THEN  (SplitOnConclITE  THENA  Auto)  THEN  Try  (Trivial))
  THEN  MemCD
  THEN  Try  (QuickAuto))
Home
Index