Step
*
of Lemma
add-ipoly_wf1
∀[p,q:iMonomial() List].  (add-ipoly(p;q) ∈ iMonomial() List)
BY
{ TACTIC:(InductionOnList
          THEN Auto
          THEN (RecUnfold `add-ipoly` 0 THEN RepeatFor 2 ((CallByValueReduce 0 THENA Auto)))
          THEN Reduce 0
          THEN Try (Declaration)
          THEN D -1
          THEN Reduce 0) }
1
1. u : iMonomial()
2. v : iMonomial() List
3. ∀[q:iMonomial() List]. (add-ipoly(v;q) ∈ iMonomial() List)
⊢ [u / v] ∈ iMonomial() List
2
1. u : iMonomial()
2. v : iMonomial() List
3. ∀[q:iMonomial() List]. (add-ipoly(v;q) ∈ iMonomial() List)
4. u1 : iMonomial()
5. v1 : iMonomial() List
⊢ if imonomial-le(u;u1)
  then if imonomial-le(u1;u)
       then let x ⟵ add-ipoly(v;v1)
            in let cp,vs = u 
               in eval c = cp + (fst(u1)) in
                  if c=0 then x else [<c, vs> / x]
       else let x ⟵ add-ipoly(v;[u1 / v1])
            in [u / x]
       fi 
  else let x ⟵ add-ipoly([u / v];v1)
       in [u1 / x]
  fi  ∈ iMonomial() List
Latex:
Latex:
\mforall{}[p,q:iMonomial()  List].    (add-ipoly(p;q)  \mmember{}  iMonomial()  List)
By
Latex:
TACTIC:(InductionOnList
                THEN  Auto
                THEN  (RecUnfold  `add-ipoly`  0  THEN  RepeatFor  2  ((CallByValueReduce  0  THENA  Auto)))
                THEN  Reduce  0
                THEN  Try  (Declaration)
                THEN  D  -1
                THEN  Reduce  0)
Home
Index