aboutsummaryrefslogtreecommitdiff
path: root/src/LegacyArithmetic/BaseSystem.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/LegacyArithmetic/BaseSystem.v')
-rw-r--r--src/LegacyArithmetic/BaseSystem.v39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/LegacyArithmetic/BaseSystem.v b/src/LegacyArithmetic/BaseSystem.v
deleted file mode 100644
index 359b4313b..000000000
--- a/src/LegacyArithmetic/BaseSystem.v
+++ /dev/null
@@ -1,39 +0,0 @@
-Require Import Coq.Lists.List.
-Require Import Coq.ZArith.ZArith Coq.ZArith.Zdiv.
-Require Import Coq.omega.Omega Coq.Numbers.Natural.Peano.NPeano Coq.Arith.Arith.
-Require Import Crypto.Util.ListUtil.
-Require Import Crypto.Util.Notations.
-Require Export Crypto.Util.FixCoqMistakes.
-Import Nat.
-
-Local Open Scope Z.
-
-Class BaseVector (base : list Z):= {
- base_positive : forall b, In b base -> b > 0; (* nonzero would probably work too... *)
- b0_1 : forall x, nth_default x base 0 = 1; (** TODO(jadep,jgross): change to [nth_error base 0 = Some 1], then use [nth_error_value_eq_nth_default] to prove a [forall x, nth_default x base 0 = 1] as a lemma *)
- base_good :
- forall i j, (i+j < length base)%nat ->
- let b := nth_default 0 base in
- let r := (b i * b j) / b (i+j)%nat in
- b i * b j = r * b (i+j)%nat
-}.
-
-Section BaseSystem.
- Context (base : list Z).
- (** [BaseSystem] implements an constrained positional number system.
- A wide variety of bases are supported: the base coefficients are not
- required to be powers of 2, and it is NOT necessarily the case that
- $b_{i+j} = b_i b_j$. Implementations of addition and multiplication are
- provided, with focus on near-optimal multiplication performance on
- non-trivial but small operands: maybe 10 32-bit integers or so. This
- module does not handle carries automatically: if no restrictions are put
- on the use of a [BaseSystem], each digit is unbounded. This has nothing
- to do with modular arithmetic either.
- *)
- Definition digits : Type := list Z.
-
- Definition accumulate p acc := fst p * snd p + acc.
- Definition decode' bs u := fold_right accumulate 0 (combine u bs).
- Definition decode := decode' base.
- Definition mul_each u := map (Z.mul u).
-End BaseSystem.