diff options
author | jadep <jade.philipoom@gmail.com> | 2016-07-25 21:06:20 -0400 |
---|---|---|
committer | jadep <jade.philipoom@gmail.com> | 2016-07-25 21:06:20 -0400 |
commit | 4c73b7273c5fae67154ad9dd8bd3a719e4fbcf5f (patch) | |
tree | f2e60ad282447023ff59330e77ee588657e77e97 /src/ModularArithmetic | |
parent | 39a6c95de8a900c859726d875cc40ea96298d31b (diff) | |
parent | b9312acc45407a58d07e19e407e9575d427dd6c3 (diff) |
Merge branch 'master' of github.com:mit-plv/fiat-crypto
Diffstat (limited to 'src/ModularArithmetic')
-rw-r--r-- | src/ModularArithmetic/ModularArithmeticTheorems.v | 9 | ||||
-rw-r--r-- | src/ModularArithmetic/ModularBaseSystemOpt.v | 3 | ||||
-rw-r--r-- | src/ModularArithmetic/ModularBaseSystemProofs.v | 1 | ||||
-rw-r--r-- | src/ModularArithmetic/Pow2BaseProofs.v | 3 | ||||
-rw-r--r-- | src/ModularArithmetic/Pre.v | 1 | ||||
-rw-r--r-- | src/ModularArithmetic/PrimeFieldTheorems.v | 1 |
6 files changed, 14 insertions, 4 deletions
diff --git a/src/ModularArithmetic/ModularArithmeticTheorems.v b/src/ModularArithmetic/ModularArithmeticTheorems.v index a1d47ae8f..be9307b50 100644 --- a/src/ModularArithmetic/ModularArithmeticTheorems.v +++ b/src/ModularArithmetic/ModularArithmeticTheorems.v @@ -9,6 +9,8 @@ Require Import Coq.Classes.Morphisms Coq.Setoids.Setoid. Require Export Coq.setoid_ring.Ring_theory Coq.setoid_ring.Field_theory Coq.setoid_ring.Field_tac. Require Export Crypto.Util.IterAssocOp. +Require Export Crypto.Util.FixCoqMistakes. + Section ModularArithmeticPreliminaries. Context {m:Z}. Let ZToFm := ZToField : BinNums.Z -> F m. Hint Unfold ZToFm. Local Coercion ZToFm : Z >-> F. @@ -76,13 +78,16 @@ Ltac eq_remove_proofs := lazymatch goal with simpl in *; apply Q; clear Q end. +(** TODO FIXME(from jgross): This tactic is way too powerful for + arcane reasons. It should not be using so many databases with + [intuition]. *) Ltac Fdefn := intros; repeat match goal with [ x : F _ |- _ ] => destruct x end; try eq_remove_proofs; demod; rewrite ?Z.mul_1_l; - intuition; demod; try solve [ f_equal; intuition ]. + intuition auto with zarith lia relations typeclass_instances; demod; try solve [ f_equal; intuition auto with zarith lia relations typeclass_instances ]. Local Open Scope F_scope. @@ -139,7 +144,7 @@ Section FandZ. Lemma ZToField_small_nonzero : forall z, (0 < z < m)%Z -> ZToField z <> (0:F m). Proof. - intuition; find_inversion; rewrite ?Z.mod_0_l, ?Z.mod_small in *; intuition. + intuition; find_inversion; rewrite ?Z.mod_0_l, ?Z.mod_small in *; intuition auto with zarith. Qed. Require Crypto.Algebra. diff --git a/src/ModularArithmetic/ModularBaseSystemOpt.v b/src/ModularArithmetic/ModularBaseSystemOpt.v index 436d309c7..5f748e0f6 100644 --- a/src/ModularArithmetic/ModularBaseSystemOpt.v +++ b/src/ModularArithmetic/ModularBaseSystemOpt.v @@ -16,6 +16,7 @@ Import ListNotations. Require Import Coq.ZArith.ZArith Coq.ZArith.Zpower Coq.ZArith.ZArith Coq.ZArith.Znumtheory. Require Import Coq.QArith.QArith Coq.QArith.Qround. Require Import Crypto.Tactics.VerdiTactics. +Require Export Crypto.Util.FixCoqMistakes. Local Open Scope Z. Class SubtractionCoefficient (m : Z) (prm : PseudoMersenneBaseParams m) := { @@ -702,4 +703,4 @@ Section Canonicalization. auto using freeze_opt_preserves_rep. Qed. *) -End Canonicalization.
\ No newline at end of file +End Canonicalization. diff --git a/src/ModularArithmetic/ModularBaseSystemProofs.v b/src/ModularArithmetic/ModularBaseSystemProofs.v index 01c073f06..2baf2ccc2 100644 --- a/src/ModularArithmetic/ModularBaseSystemProofs.v +++ b/src/ModularArithmetic/ModularBaseSystemProofs.v @@ -17,6 +17,7 @@ Require Import Crypto.Util.ListUtil Crypto.Util.CaseUtil Crypto.Util.ZUtil Crypt Require Import Crypto.Util.Tuple. Require Import Crypto.Util.Tactics. Require Import Crypto.Util.Notations. +Require Export Crypto.Util.FixCoqMistakes. Local Open Scope Z_scope. Local Opaque add_to_nth carry_simple. diff --git a/src/ModularArithmetic/Pow2BaseProofs.v b/src/ModularArithmetic/Pow2BaseProofs.v index 4b616c288..da9bbac0d 100644 --- a/src/ModularArithmetic/Pow2BaseProofs.v +++ b/src/ModularArithmetic/Pow2BaseProofs.v @@ -4,6 +4,7 @@ Require Import Coq.Lists.List. Require Import Crypto.Util.ListUtil Crypto.Util.ZUtil Crypto.Util.NatUtil. Require Import Crypto.Util.Tactics. Require Import Crypto.ModularArithmetic.Pow2Base Crypto.BaseSystemProofs. +Require Export Crypto.Util.FixCoqMistakes. Require Crypto.BaseSystem. Local Open Scope Z_scope. @@ -779,7 +780,7 @@ Section carrying. (* TODO : move? *) Lemma make_chain_lt : forall x i : nat, In i (make_chain x) -> (i < x)%nat. Proof. - induction x; simpl; intuition. + induction x; simpl; intuition auto with arith lia. Qed. Lemma nth_default_carry_gen_full fc fi d i n us diff --git a/src/ModularArithmetic/Pre.v b/src/ModularArithmetic/Pre.v index 5e61278f6..8566d30ab 100644 --- a/src/ModularArithmetic/Pre.v +++ b/src/ModularArithmetic/Pre.v @@ -5,6 +5,7 @@ Require Import Crypto.Tactics.VerdiTactics. Require Import Coq.omega.Omega. Require Import Crypto.Util.NumTheoryUtil. Require Import Crypto.Tactics.VerdiTactics. +Require Export Crypto.Util.FixCoqMistakes. Lemma Z_mod_mod x m : x mod m = (x mod m) mod m. symmetry. diff --git a/src/ModularArithmetic/PrimeFieldTheorems.v b/src/ModularArithmetic/PrimeFieldTheorems.v index 8d594e8ce..8d47e36ed 100644 --- a/src/ModularArithmetic/PrimeFieldTheorems.v +++ b/src/ModularArithmetic/PrimeFieldTheorems.v @@ -10,6 +10,7 @@ Require Import Coq.ZArith.BinInt Coq.NArith.BinNat Coq.ZArith.ZArith Coq.ZArith. Require Import Coq.Logic.Eqdep_dec. Require Import Crypto.Util.NumTheoryUtil Crypto.Util.ZUtil. Require Import Crypto.Util.Tactics. +Require Export Crypto.Util.FixCoqMistakes. Require Crypto.Algebra. Existing Class prime. |