Step * 2 of Lemma mul-ipoly-req


1. iMonomial()
2. iMonomial() List
3. iMonomial() List
⊢ ipolynomial-term(let qq ⟵ q
                   in if null(qq)
                   then []
                   else eager-accum(sofar,m.add-ipoly(sofar;mul-mono-poly(m;qq));mul-mono-poly(u;qq);v)
                   fi ) ≡ ipolynomial-term([u v]) (*) ipolynomial-term(q)
BY
((CallByValueReduce THENA Auto) THEN AutoSplit) }

1
1. iMonomial()
2. iMonomial() List
3. iMonomial() List
4. [] ∈ (iMonomial() List)
⊢ ipolynomial-term([]) ≡ ipolynomial-term([u v]) (*) ipolynomial-term(q)

2
1. iMonomial()
2. iMonomial() List
3. iMonomial() List
4. ¬(q [] ∈ (iMonomial() List))
⊢ ipolynomial-term(eager-accum(sofar,m.add-ipoly(sofar;mul-mono-poly(m;q));mul-mono-poly(u;q);v)) 
≡ ipolynomial-term([u v]) (*) ipolynomial-term(q)


Latex:


Latex:

1.  u  :  iMonomial()
2.  v  :  iMonomial()  List
3.  q  :  iMonomial()  List
\mvdash{}  ipolynomial-term(let  qq  \mleftarrow{}{}  q
                                      in  if  null(qq)
                                      then  []
                                      else  eager-accum(sofar,m.add-ipoly(sofar;mul-mono-poly(m;qq));...;v)
                                      fi  )  \mequiv{}  ipolynomial-term([u  /  v])  (*)  ipolynomial-term(q)


By


Latex:
((CallByValueReduce  0  THENA  Auto)  THEN  AutoSplit)




Home Index