Step
*
2
1
of Lemma
mul_poly-sq
1. u : iMonomial()
2. v : iMonomial() List
3. ∀[q:iMonomial() List]. (mul_ipoly(v;q) ~ mul-ipoly(v;q))
4. u1 : iMonomial()
5. v1 : iMonomial() List
⊢ cbv_list_accum(sofar,m.add_ipoly(sofar;mul-mono-poly(m;[u1 / v1]));mul-mono-poly(u;[u1 / v1]);v)
~ eager-accum(sofar,m.add-ipoly(sofar;mul-mono-poly(m;[u1 / v1]));mul-mono-poly(u;[u1 / v1]);v)
BY
{ Assert ⌜∀p,q:iMonomial() List. (add_ipoly(p;q) ∈ iMonomial() List)⌝⋅ }
1
.....assertion.....
1. u : iMonomial()
2. v : iMonomial() List
3. ∀[q:iMonomial() List]. (mul_ipoly(v;q) ~ mul-ipoly(v;q))
4. u1 : iMonomial()
5. v1 : iMonomial() List
⊢ ∀p,q:iMonomial() List. (add_ipoly(p;q) ∈ iMonomial() List)
2
1. u : iMonomial()
2. v : iMonomial() List
3. ∀[q:iMonomial() List]. (mul_ipoly(v;q) ~ mul-ipoly(v;q))
4. u1 : iMonomial()
5. v1 : iMonomial() List
6. ∀p,q:iMonomial() List. (add_ipoly(p;q) ∈ iMonomial() List)
⊢ cbv_list_accum(sofar,m.add_ipoly(sofar;mul-mono-poly(m;[u1 / v1]));mul-mono-poly(u;[u1 / v1]);v)
~ eager-accum(sofar,m.add-ipoly(sofar;mul-mono-poly(m;[u1 / v1]));mul-mono-poly(u;[u1 / v1]);v)
Latex:
Latex:
1. u : iMonomial()
2. v : iMonomial() List
3. \mforall{}[q:iMonomial() List]. (mul\_ipoly(v;q) \msim{} mul-ipoly(v;q))
4. u1 : iMonomial()
5. v1 : iMonomial() List
\mvdash{} cbv\_list\_accum(sofar,m.add\_ipoly(sofar;mul-mono-poly(m;[u1 / v1]));mul-mono-poly(u;[u1 / v1]);v)
\msim{} eager-accum(sofar,m.add-ipoly(sofar;mul-mono-poly(m;[u1 / v1]));mul-mono-poly(u;[u1 / v1]);v)
By
Latex:
Assert \mkleeneopen{}\mforall{}p,q:iMonomial() List. (add\_ipoly(p;q) \mmember{} iMonomial() List)\mkleeneclose{}\mcdot{}
Home
Index