fact: Record mod_spec : Prop := mk_mod_spec { succ_mod_spec : forall w t, [|w|]= t mod [|b|] -> [|succ_mod m_op w|] = ([|w|] + 1) mod [|b|]; add_mod_spec : forall w1 w2 t1 t2, [|w1|]= t1 mod [|b|] -> [|w2|]= t2 mod [|b|] -> [|add_mod m_op w1 w2|] = ([|w1|] + [|w2|]) mod [|b|]; pred_mod_spec : forall w t, [|w|]= t mod [|b|] -> [|pred_mod m_op w|] = ([|w|] - 1) mod [|b|]; sub_mod_spec : forall w1 w2 t1 t2, [|w1|]= t1 mod [|b|] -> [|w2|]= t2 mod [|b|] -> [|sub_mod m_op w1 w2|] = ([|w1|] - [|w2|]) mod [|b|]; mul_mod_spec : forall w1 w2 t1 t2, [|w1|]= t1 mod [|b|] -> [|w2|]= t2 mod [|b|] -> [|mul_mod m_op w1 w2|] = ([|w1|] * [|w2|]) mod [|b|]; square_mod_spec : forall w t, [|w|]= t mod [|b|] -> [|square_mod m_op w|] = ([|w|] * [|w|]) mod [|b|]; power_mod_spec : forall w t p, [|w|]= t mod [|b|] -> [|power_mod m_op w p|] = (Zpower_pos [|w|] p) mod [|b|] }.
imports: Bignums(DoubleBase DoubleSub DoubleMul DoubleSqrt DoubleLift DoubleDivn1 DoubleDiv) Bignums(DoubleCyclic BigN) CyclicAxioms Cyclic63 ZArith ZCAux