Step * 1 2 2 of Lemma add-ipoly-equiv


1. : ℤ
2. 0 < n
3. ∀p,q:iMonomial() List.
     (||p|| ||q|| <  ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
4. iMonomial()
5. iMonomial() List
6. iMonomial() List
7. ||[u v]|| ||q|| < n
⊢ ipolynomial-term(if null(q)
  then [u v]
  else let q1,qs 
       in if imonomial-le(u;q1)
          then if imonomial-le(q1;u)
               then let x ⟵ add-ipoly(v;qs)
                    in let cp,vs 
                       in eval cp (fst(q1)) in
                          if c=0 then else [<c, vs> x]
               else let x ⟵ add-ipoly(v;[q1 qs])
                    in [u x]
               fi 
          else let x ⟵ add-ipoly([u v];qs)
               in [q1 x]
          fi 
  fi ) ≡ ipolynomial-term([u v]) (+) ipolynomial-term(q)
BY
(DVar `q' THEN Reduce 0) }

1
1. : ℤ
2. 0 < n
3. ∀p,q:iMonomial() List.
     (||p|| ||q|| <  ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
4. iMonomial()
5. iMonomial() List
6. ||[u v]|| ||[]|| < n
⊢ ipolynomial-term([u v]) ≡ ipolynomial-term([u v]) (+) ipolynomial-term([])

2
1. : ℤ
2. 0 < n
3. ∀p,q:iMonomial() List.
     (||p|| ||q|| <  ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
4. iMonomial()
5. iMonomial() List
6. u1 iMonomial()
7. v1 iMonomial() List
8. ||[u v]|| ||[u1 v1]|| < n
⊢ ipolynomial-term(if imonomial-le(u;u1)
  then 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 
  else let x ⟵ add-ipoly([u v];v1)
       in [u1 x]
  fi ) ≡ ipolynomial-term([u v]) (+) ipolynomial-term([u1 v1])


Latex:


Latex:

1.  n  :  \mBbbZ{}
2.  0  <  n
3.  \mforall{}p,q:iMonomial()  List.
          (||p||  +  ||q||  <  n  -  1
          {}\mRightarrow{}  ipolynomial-term(add-ipoly(p;q))  \mequiv{}  ipolynomial-term(p)  (+)  ipolynomial-term(q))
4.  u  :  iMonomial()
5.  v  :  iMonomial()  List
6.  q  :  iMonomial()  List
7.  ||[u  /  v]||  +  ||q||  <  n
\mvdash{}  ipolynomial-term(if  null(q)
    then  [u  /  v]
    else  let  q1,qs  =  q 
              in  if  imonomial-le(u;q1)
                    then  if  imonomial-le(q1;u)
                              then  let  x  \mleftarrow{}{}  add-ipoly(v;qs)
                                        in  let  cp,vs  =  u 
                                              in  eval  c  =  cp  +  (fst(q1))  in
                                                    if  c=0  then  x  else  [<c,  vs>  /  x]
                              else  let  x  \mleftarrow{}{}  add-ipoly(v;[q1  /  qs])
                                        in  [u  /  x]
                              fi 
                    else  let  x  \mleftarrow{}{}  add-ipoly([u  /  v];qs)
                              in  [q1  /  x]
                    fi 
    fi  )  \mequiv{}  ipolynomial-term([u  /  v])  (+)  ipolynomial-term(q)


By


Latex:
(DVar  `q'  THEN  Reduce  0)




Home Index