Step
*
2
2
2
2
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. ¬↑imonomial-le(u;u1)
9. v1 : iMonomial() List
10. ||[u / v]|| + ||[u1 / v1]|| < n
⊢ ipolynomial-term(let x ⟵ add-ipoly([u / v];v1)
                   in [u1 / x]) ≡ ipolynomial-term([u / v]) (+) ipolynomial-term([u1 / v1])
BY
{ ((InstLemma `add-ipoly_wf1` [⌜[u / v]⌝;⌜v1⌝]⋅ THEN Auto) THEN (CallByValueReduce 0 THENA 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. u : iMonomial()
6. v : iMonomial() List
7. u1 : iMonomial()
8. ¬↑imonomial-le(u;u1)
9. v1 : iMonomial() List
10. ||[u / v]|| + ||[u1 / v1]|| < n
11. add-ipoly([u / v];v1) ∈ iMonomial() List
⊢ ipolynomial-term([u1 / add-ipoly([u / v];v1)]) ≡ ipolynomial-term([u / v]) (+) ipolynomial-term([u1 / v1])
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.  \mneg{}\muparrow{}imonomial-le(u;u1)
9.  v1  :  iMonomial()  List
10.  ||[u  /  v]||  +  ||[u1  /  v1]||  <  n
\mvdash{}  ipolynomial-term(let  x  \mleftarrow{}{}  add-ipoly([u  /  v];v1)
                                      in  [u1  /  x])  \mequiv{}  ipolynomial-term([u  /  v])  (+)  ipolynomial-term([u1  /  v1])
By
Latex:
((InstLemma  `add-ipoly\_wf1`  [\mkleeneopen{}[u  /  v]\mkleeneclose{};\mkleeneopen{}v1\mkleeneclose{}]\mcdot{}  THEN  Auto)  THEN  (CallByValueReduce  0  THENA  Auto))
Home
Index