diff options
author | jadep <jade.philipoom@gmail.com> | 2016-07-20 16:02:27 -0400 |
---|---|---|
committer | jadep <jade.philipoom@gmail.com> | 2016-07-20 16:02:27 -0400 |
commit | 4ea92779f54a7f6a49e334cd6071096be57c40ca (patch) | |
tree | 1095426403c59dda55012a910c5a6683d6245174 /src/ModularArithmetic/ModularBaseSystem.v | |
parent | b4875d9ca86b5626512178c0bf48e324a6391b7b (diff) |
restructured ModularBaseSystem pipeline to put tuple conversion before ModularBaseSystem is fully defined, rather than after ModularBaseSystemOpt
Diffstat (limited to 'src/ModularArithmetic/ModularBaseSystem.v')
-rw-r--r-- | src/ModularArithmetic/ModularBaseSystem.v | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/ModularArithmetic/ModularBaseSystem.v b/src/ModularArithmetic/ModularBaseSystem.v index dde021b4c..70c8138da 100644 --- a/src/ModularArithmetic/ModularBaseSystem.v +++ b/src/ModularArithmetic/ModularBaseSystem.v @@ -37,6 +37,19 @@ Section ModularBaseSystem. from_list (sub [[modulus_multiple]] [[us]] [[vs]]) (length_sub length_to_list length_to_list length_to_list). + Definition zero : digits := encode (ZToField 0). + + Definition one : digits := encode (ZToField 1). + + (* Placeholder *) + Definition opp (x : digits) : digits := encode (ModularArithmetic.opp (decode x)). + + (* Placeholder *) + Definition inv (x : digits) : digits := encode (ModularArithmetic.inv (decode x)). + + (* Placeholder *) + Definition div (x y : digits) : digits := encode (ModularArithmetic.div (decode x) (decode y)). + Definition carry i (us : digits) : digits := from_list (carry i [[us]]) (length_carry length_to_list). @@ -52,7 +65,15 @@ Section ModularBaseSystem. Definition freeze (us : digits) : digits := let us' := carry_full (carry_full (carry_full us)) in - from_list (conditional_subtract_modulus [[us]] (ge_modulus [[us]])) + from_list (conditional_subtract_modulus [[us']] (ge_modulus [[us']])) (length_conditional_subtract_modulus length_to_list). + Definition eq (x y : digits) : Prop := decode x = decode y. + + Import Morphisms. + Global Instance eq_Equivalence : Equivalence eq. + Proof. + split; cbv [eq]; repeat intro; congruence. + Qed. + End ModularBaseSystem.
\ No newline at end of file |