Step
*
2
2
1
of Lemma
add-ipoly_wf1
.....wf..... 
1. u : iMonomial()
2. v : iMonomial() List
3. ∀[q:iMonomial() List]. (add-ipoly(v;q) ∈ iMonomial() List)
4. u1 : iMonomial()
5. ¬↑imonomial-le(u;u1)
6. v1 : iMonomial() List
⊢ add-ipoly([u / v];v1) ∈ iMonomial() List
BY
{ TACTIC:(ListInd (-1)
          THEN (RecUnfold `add-ipoly` 0 THEN RepeatFor 2 ((CallByValueReduce 0 THENA Auto)))
          THEN Reduce 0) }
1
1. u : iMonomial()
2. v : iMonomial() List
3. ∀[q:iMonomial() List]. (add-ipoly(v;q) ∈ iMonomial() List)
4. u1 : iMonomial()
5. ¬↑imonomial-le(u;u1)
⊢ [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. ¬↑imonomial-le(u;u1)
6. u2 : iMonomial()
7. v2 : iMonomial() List
8. add-ipoly([u / v];v2) ∈ iMonomial() List
⊢ if imonomial-le(u;u2)
  then if imonomial-le(u2;u)
       then let x ⟵ add-ipoly(v;v2)
            in let cp,vs = u 
               in eval c = cp + (fst(u2)) in
                  if c=0 then x else [<c, vs> / x]
       else let x ⟵ add-ipoly(v;[u2 / v2])
            in [u / x]
       fi 
  else let x ⟵ add-ipoly([u / v];v2)
       in [u2 / x]
  fi  ∈ iMonomial() List
Latex:
Latex:
.....wf..... 
1.  u  :  iMonomial()
2.  v  :  iMonomial()  List
3.  \mforall{}[q:iMonomial()  List].  (add-ipoly(v;q)  \mmember{}  iMonomial()  List)
4.  u1  :  iMonomial()
5.  \mneg{}\muparrow{}imonomial-le(u;u1)
6.  v1  :  iMonomial()  List
\mvdash{}  add-ipoly([u  /  v];v1)  \mmember{}  iMonomial()  List
By
Latex:
TACTIC:(ListInd  (-1)
                THEN  (RecUnfold  `add-ipoly`  0  THEN  RepeatFor  2  ((CallByValueReduce  0  THENA  Auto)))
                THEN  Reduce  0)
Home
Index