Step
*
2
2
2
of Lemma
add-ipoly-req
1. n : ℤ
2. 0 < n
3. ∀p,q:iMonomial() List.
(||p|| + ||q|| < n - 1
⇒ ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
4. u : iMonomial()
5. v : 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 = u
in eval c = cp + (fst(u1)) in
if c=0 then x 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])
BY
{ (BoolCase ⌜imonomial-le(u;u1)⌝⋅ THENA Auto) }
1
1. n : ℤ
2. 0 < n
3. ∀p,q:iMonomial() List.
(||p|| + ||q|| < n - 1
⇒ ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
4. u : iMonomial()
5. v : iMonomial() List
6. u1 : iMonomial()
7. v1 : iMonomial() List
8. ||[u / v]|| + ||[u1 / v1]|| < n
9. ↑imonomial-le(u;u1)
⊢ ipolynomial-term(if imonomial-le(u1;u)
then let x ⟵ 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 ⟵ add-ipoly(v;[u1 / v1])
in [u / x]
fi ) ≡ ipolynomial-term([u / v]) (+) ipolynomial-term([u1 / v1])
2
1. n : ℤ
2. 0 < n
3. ∀p,q:iMonomial() List.
(||p|| + ||q|| < n - 1
⇒ ipolynomial-term(add-ipoly(p;q)) ≡ ipolynomial-term(p) (+) ipolynomial-term(q))
4. u : iMonomial()
5. v : iMonomial() List
6. u1 : iMonomial()
7. ¬↑imonomial-le(u;u1)
8. v1 : iMonomial() List
9. ||[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])
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. u1 : iMonomial()
7. v1 : iMonomial() List
8. ||[u / v]|| + ||[u1 / v1]|| < n
\mvdash{} ipolynomial-term(if imonomial-le(u;u1)
then 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
else let x \mleftarrow{}{} add-ipoly([u / v];v1)
in [u1 / x]
fi ) \mequiv{} ipolynomial-term([u / v]) (+) ipolynomial-term([u1 / v1])
By
Latex:
(BoolCase \mkleeneopen{}imonomial-le(u;u1)\mkleeneclose{}\mcdot{} THENA Auto)
Home
Index