Module lemmas

Require Export sqrt_prog.
Require Export Decidable.

Lemma A1' : (X0:bool)(sp0,np0,nn0:nat)(m1,m2:(array bound modZ))
`(I m1 (plus np0 (mult (S (S O)) (div2' nn0))) (minus nn0 (div2' nn0)))
<(I m1 (plus sp0 (div2' nn0)) (minus nn0 (div2' nn0)))`
->`(I m2 (plus np0 (mult (S (S O)) (div2' nn0)))
            (minus nn0 (div2' nn0)))
           = (Zmultbool X0 (pow beta (minus nn0 (div2' nn0))))+
           (I m1 (plus np0 (mult (S (S O)) (div2' nn0)))
           (minus nn0 (div2' nn0)))-
           (I m1 (plus sp0 (div2' nn0))
           (minus nn0 (div2' nn0)))`->X0=true.

Lemma l1
     : (q:Z)
        `0 <= q <= 2`->`(shift_2 q)*beta+(aux_shift_1 q) = q*beta'`.

Lemma suppress_1 : (n:Z)`1*n = n`.

Lemma Zmult_reg_r
     : (A,B,C:Z)`A = B`->`A*C = B*C`.

Lemma l2 : (q:Z)`0 <= q <= 2`->`q*beta=(shift_2 q)*2*beta+2*(aux_shift_1 q)`.

Lemma l3 : (q:Z)(rb0:bool)(l:nat)(`q = 0`\/`q = 1`) ->(lt O l)->
 `(q+(bool2Z rb0))*(pow beta l) = (shift_2 (q+(bool2Z rb0)))*
   (pow beta l)*2+(pow beta (pred l))*(aux_shift_1 (q+(bool2Z rb0)))*
   2`.

Lemma l4 : (nn,l:nat)(le l nn)->l=(minus nn (minus nn l)).

Lemma l5 : (f:Z)(l:nat)(`0<=f`)->`0<=f*(pow beta l)`.

Lemma l6 : (q:Z)(rb0:bool)`q = 0`\/`q = 1`->
`0<=(shift_2 (q+(bool2Z rb0)))`.

Lemma l7 : (A,B:Z)(`0<=A`)->(`0<=B`)->(`A<B`)->(`A<2*B`).

Lemma l8 :
(m2:(array bound modZ))(sp,l:nat)
(Zlt (Zmult `2` (I m2 sp (S l))) (pow beta (S l)))->
(Zlt (Zmult `2` (I m2 (S sp) l)) (pow beta l)).

Lemma l9 :
(m2:(array bound modZ))(sp,l:nat) (lt O l)->
(Zlt (Zmult `2` (I m2 sp l)) (pow beta l))->
`2*(I m2 (plus sp (pred l)) (S O)) < beta`.

Lemma l10 :
(m1,m2:(array bound modZ))(sp,l:nat)(c0:Z)(Hlt:(lt O l))(Hc0:`0<=c0`)
(`(I m1 sp l) = 2*(I m2 sp l)+c0 `)->
`(I m2 (plus sp (pred l)) (S O)) < beta'`.

Lemma l11 : (y:modZ)`0<=(modZtoZ y)`.

Lemma l12 : (p,sp,l:nat)(lt O l)->(le (plus sp l) p)->`(plus sp (pred l))<p`.

Lemma l14 :(m1:(array bound modZ))(sp:nat)
   `(modZtoZ (isEvenOrOdd m1 sp)) = 0`
   \/`(modZtoZ (isEvenOrOdd m1 sp)) = 1`.

Lemma l15 : (a,b:Z)`0<=a`->`0<=b`->`0<=a+b`.

Lemma l16 : (a,b,c,d:Z)`a<=c`->`b<d`->`a+b<c+d`.

Lemma l17 : (q:Z)(rb:bool)
 (`q = 0`\/`q = 1`)->`0 <= (shift_2 (q+(bool2Z rb))) <= 1`.

Lemma v12 : (nn,l,sp,p:nat)(lt (1) nn)->(l=(div2' nn))->
~((le sp p)/\(lt p (plus sp l)))->
`p<>(plus sp (pred l))`.


Index
This page has been generated by coqdoc