Require
Export
lemmas.
Require
Export
tacdef.
Theorem
div_goal4 :
(np : nat)
(sp : nat)
(nn : nat)
(c : Z)
(h : nat)
(l : nat)
(m : (array bound modZ))
(q : Z)
(rb : bool)
(rz : Z)
(Pre_1 : (lt (1) nn)
/\l=(div2' nn)
/\h=(minus nn (div2' nn))
/\(`q = 0`\/`q = 1`)
/\`np+2*nn <= bound`
/\`sp+nn <= bound`
/\(`np+2*nn <= sp`\/`sp+nn <= np`)
/\(`q = 1`
->`(I m (plus np (mult (S (S O)) l)) h)
< (I m (plus sp l) h)`)
/\`(pow beta h) <= 2*(I m (plus sp l) h)`)
(rb0 : bool)
(m0 : (array bound modZ))
(result : unit)
(Post_2 : `(I m (plus np (mult (S (S O)) l)) h)+q*(pow beta h)-q*
(I m (plus sp l) h)
= (I m0 (plus np (mult (S (S O)) l)) h)`
/\((p:nat)
`0 <= p < bound`
->~((le (plus np (mult (2) l)) p)
/\(lt p (plus np (plus (mult (2) l) h))))
->(access m0 p)=(access m p)))
`(plus np l)+nn <= bound`
/\`(plus sp l)+h <= bound`
/\`sp+(nn-h) <= bound`
/\`h <= nn`
/\`(pow beta h) <= 2*(I m0 (plus sp l) h)`
/\(no_overlap (plus np l) (plus sp l) nn h)
/\(no_overlap sp (plus np l) (minus nn h) nn)
/\(no_overlap sp (plus sp l) (minus nn h) h)
.