Step
*
2
2
2
1
1
of Lemma
add-ipoly-ringeq
1. r : Rng
2. n : ℤ
3. 0 < n
4. ∀p,q:iMonomial() List.
     (||p|| + ||q|| < n - 1 
⇒ ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
5. u : iMonomial()
6. v : iMonomial() List
7. u1 : iMonomial()
8. v1 : iMonomial() List
9. ||[u / v]|| + ||[u1 / v1]|| < n
10. ↑imonomial-le(u;u1)
11. add-ipoly(v;v1) ∈ iMonomial() List
12. add-ipoly(v;[u1 / v1]) ∈ iMonomial() List
13. ↑imonomial-le(u1;u)
⊢ ipolynomial-term(let cp,vs = u 
                   in eval c = cp + (fst(u1)) in
                      if c=0 then add-ipoly(v;v1) else [<c, vs> / add-ipoly(v;v1)]) ≡ ipolynomial-term([u / v])
(+) ipolynomial-term([u1 / v1])
BY
{ (((InstLemma `ipolynomial-term-cons-ringeq` [⌜r⌝]⋅ THENA Auto) THEN PromoteHyp (-1) 5)
   THEN DVar `u'
   THEN DVar `u1'
   THEN Reduce 0
   THEN (CallByValueReduce 0 THENA Auto)
   THEN AutoSplit
   THEN (RWW "4 5" 0 THENA Auto)
   THEN D 0
   THEN Reduce 0
   THEN Auto) }
1
1. r : Rng
2. n : ℤ
3. 0 < n
4. ∀p,q:iMonomial() List.
     (||p|| + ||q|| < n - 1 
⇒ ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
5. ∀[m:iMonomial()]. ∀[p:iMonomial() List].  ipolynomial-term([m / p]) ≡ imonomial-term(m) (+) ipolynomial-term(p)
6. u2 : ℤ-o
7. u3 : {vs:ℤ List| sorted(vs)} 
8. v : iMonomial() List
9. u4 : ℤ-o
10. u5 : {vs:ℤ List| sorted(vs)} 
11. v1 : iMonomial() List
12. ||[<u2, u3> / v]|| + ||[<u4, u5> / v1]|| < n
13. ↑imonomial-le(<u2, u3><u4, u5>)
14. add-ipoly(v;v1) ∈ iMonomial() List
15. add-ipoly(v;[<u4, u5> / v1]) ∈ iMonomial() List
16. ↑imonomial-le(<u4, u5><u2, u3>)
17. (u2 + u4) = 0 ∈ ℤ
18. f : ℤ ⟶ |r|
⊢ (ring_term_value(f;ipolynomial-term(v)) +r ring_term_value(f;ipolynomial-term(v1)))
= ((ring_term_value(f;imonomial-term(<u2, u3>)) +r ring_term_value(f;ipolynomial-term(v))) +r (ring_term_value(f;imonomi\000Cal-term(<u4, u5>)) +r ring_term_value(f;ipolynomial-term(v1))))
∈ |r|
2
1. r : Rng
2. n : ℤ
3. 0 < n
4. ∀p,q:iMonomial() List.
     (||p|| + ||q|| < n - 1 
⇒ ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
5. ∀[m:iMonomial()]. ∀[p:iMonomial() List].  ipolynomial-term([m / p]) ≡ imonomial-term(m) (+) ipolynomial-term(p)
6. u2 : ℤ-o
7. u3 : {vs:ℤ List| sorted(vs)} 
8. v : iMonomial() List
9. u4 : ℤ-o
10. u2 + u4 ≠ 0
11. u5 : {vs:ℤ List| sorted(vs)} 
12. v1 : iMonomial() List
13. ||[<u2, u3> / v]|| + ||[<u4, u5> / v1]|| < n
14. ↑imonomial-le(<u2, u3><u4, u5>)
15. add-ipoly(v;v1) ∈ iMonomial() List
16. add-ipoly(v;[<u4, u5> / v1]) ∈ iMonomial() List
17. ↑imonomial-le(<u4, u5><u2, u3>)
18. f : ℤ ⟶ |r|
⊢ (ring_term_value(f;imonomial-term(<u2 + u4, u3>)) +r (ring_term_value(f;ipolynomial-term(v)) +r ring_term_value(f;ipol\000Cynomial-term(v1))))
= ((ring_term_value(f;imonomial-term(<u2, u3>)) +r ring_term_value(f;ipolynomial-term(v))) +r (ring_term_value(f;imonomi\000Cal-term(<u4, u5>)) +r ring_term_value(f;ipolynomial-term(v1))))
∈ |r|
Latex:
Latex:
1.  r  :  Rng
2.  n  :  \mBbbZ{}
3.  0  <  n
4.  \mforall{}p,q:iMonomial()  List.
          (||p||  +  ||q||  <  n  -  1
          {}\mRightarrow{}  ipolynomial-term(add-ipoly(p;q))  \mequiv{}  ipolynomial-term(p)  (+)  ipolynomial-term(q))
5.  u  :  iMonomial()
6.  v  :  iMonomial()  List
7.  u1  :  iMonomial()
8.  v1  :  iMonomial()  List
9.  ||[u  /  v]||  +  ||[u1  /  v1]||  <  n
10.  \muparrow{}imonomial-le(u;u1)
11.  add-ipoly(v;v1)  \mmember{}  iMonomial()  List
12.  add-ipoly(v;[u1  /  v1])  \mmember{}  iMonomial()  List
13.  \muparrow{}imonomial-le(u1;u)
\mvdash{}  ipolynomial-term(let  cp,vs  =  u 
                                      in  eval  c  =  cp  +  (fst(u1))  in
                                            if  c=0  then  add-ipoly(v;v1)  else  [<c,  vs>  /  add-ipoly(v;v1)]) 
\mequiv{}  ipolynomial-term([u  /  v])  (+)  ipolynomial-term([u1  /  v1])
By
Latex:
(((InstLemma  `ipolynomial-term-cons-ringeq`  [\mkleeneopen{}r\mkleeneclose{}]\mcdot{}  THENA  Auto)  THEN  PromoteHyp  (-1)  5)
  THEN  DVar  `u'
  THEN  DVar  `u1'
  THEN  Reduce  0
  THEN  (CallByValueReduce  0  THENA  Auto)
  THEN  AutoSplit
  THEN  (RWW  "4  5"  0  THENA  Auto)
  THEN  D  0
  THEN  Reduce  0
  THEN  Auto)
Home
Index