Step * 2 1 of Lemma add-ipoly_wf1


1. iMonomial()
2. iMonomial() List
3. ∀[q:iMonomial() List]. (add-ipoly(v;q) ∈ iMonomial() List)
4. u1 iMonomial()
5. v1 iMonomial() List
6. ↑imonomial-le(u;u1)
⊢ if imonomial-le(u1;u)
  then let x ⟵ add-ipoly(v;v1)
       in let cp,vs 
          in eval cp (fst(u1)) in
             if c=0 then else [<c, vs> x]
  else let x ⟵ add-ipoly(v;[u1 v1])
       in [u x]
  fi  ∈ iMonomial() List
BY
((Assert add-ipoly(v;v1) ∈ iMonomial() List BY
          Auto)
   THEN (Assert add-ipoly(v;[u1 v1]) ∈ iMonomial() List BY
               Auto)
   THEN (CallByValueReduce THENA Auto)) }

1
1. iMonomial()
2. iMonomial() List
3. ∀[q:iMonomial() List]. (add-ipoly(v;q) ∈ iMonomial() List)
4. u1 iMonomial()
5. v1 iMonomial() List
6. ↑imonomial-le(u;u1)
7. add-ipoly(v;v1) ∈ iMonomial() List
8. add-ipoly(v;[u1 v1]) ∈ iMonomial() List
⊢ if imonomial-le(u1;u)
  then let cp,vs 
       in eval cp (fst(u1)) in
          if c=0 then add-ipoly(v;v1) else [<c, vs> add-ipoly(v;v1)]
  else [u add-ipoly(v;[u1 v1])]
  fi  ∈ iMonomial() List


Latex:


Latex:

1.  u  :  iMonomial()
2.  v  :  iMonomial()  List
3.  \mforall{}[q:iMonomial()  List].  (add-ipoly(v;q)  \mmember{}  iMonomial()  List)
4.  u1  :  iMonomial()
5.  v1  :  iMonomial()  List
6.  \muparrow{}imonomial-le(u;u1)
\mvdash{}  if  imonomial-le(u1;u)
    then  let  x  \mleftarrow{}{}  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  \mleftarrow{}{}  add-ipoly(v;[u1  /  v1])
              in  [u  /  x]
    fi    \mmember{}  iMonomial()  List


By


Latex:
((Assert  add-ipoly(v;v1)  \mmember{}  iMonomial()  List  BY
                Auto)
  THEN  (Assert  add-ipoly(v;[u1  /  v1])  \mmember{}  iMonomial()  List  BY
                          Auto)
  THEN  (CallByValueReduce  0  THENA  Auto))




Home Index