aboutsummaryrefslogtreecommitdiff
path: root/src/ModularArithmetic/ModularBaseSystemProofs.v
diff options
context:
space:
mode:
authorGravatar jadep <jade.philipoom@gmail.com>2016-08-24 23:52:06 -0400
committerGravatar jadep <jade.philipoom@gmail.com>2016-08-24 23:52:06 -0400
commitec33e34bb2928cbaee1895417e19d744497fdf3b (patch)
tree94a0dd156a2da76507efcd1a9330779cb7d3a1f1 /src/ModularArithmetic/ModularBaseSystemProofs.v
parentdfcae14436538ff9196b92061603ed832947f6af (diff)
Proper proofs for all ModularBaseSystem operations except [sub]
Diffstat (limited to 'src/ModularArithmetic/ModularBaseSystemProofs.v')
-rw-r--r--src/ModularArithmetic/ModularBaseSystemProofs.v43
1 files changed, 34 insertions, 9 deletions
diff --git a/src/ModularArithmetic/ModularBaseSystemProofs.v b/src/ModularArithmetic/ModularBaseSystemProofs.v
index 2d5f5a0c5..371da7767 100644
--- a/src/ModularArithmetic/ModularBaseSystemProofs.v
+++ b/src/ModularArithmetic/ModularBaseSystemProofs.v
@@ -265,24 +265,49 @@ Section FieldOperationProofs.
rewrite !encode_rep. assumption.
Qed.
- Global Instance opp_Proper : Proper (Logic.eq ==> eq ==> eq) opp.
- Admitted.
-
Global Instance add_Proper : Proper (eq ==> eq ==> eq) add.
- Admitted.
+ Proof.
+ repeat intro.
+ cbv beta delta [eq] in *.
+ erewrite !add_rep; cbv [rep] in *; try reflexivity; assumption.
+ Qed.
- Global Instance sub_Proper : Proper (Logic.eq ==> eq ==> eq ==> eq) sub.
+ Global Instance sub_Proper : Proper (eq ==> eq ==> eq ==> eq) sub.
+ Proof.
Admitted.
+ Global Instance opp_Proper : Proper (eq ==> eq ==> eq) opp.
+ Proof.
+ cbv [opp]; repeat intro.
+ apply sub_Proper; assumption || reflexivity.
+ Qed.
+
Global Instance mul_Proper : Proper (eq ==> eq ==> eq) mul.
- Admitted.
+ Proof.
+ repeat intro.
+ cbv beta delta [eq] in *.
+ erewrite !mul_rep; cbv [rep] in *; try reflexivity; assumption.
+ Qed.
+
+ Check pow.
+ Global Instance pow_Proper : Proper (eq ==> Logic.eq ==> eq) pow.
+ Proof.
+ repeat intro.
+ cbv beta delta [eq] in *.
+ erewrite !pow_rep; cbv [rep] in *; subst; try reflexivity.
+ congruence.
+ Qed.
Global Instance inv_Proper chain chain_correct : Proper (eq ==> eq) (inv chain chain_correct).
- Admitted.
+ Proof.
+ cbv [inv]; repeat intro.
+ apply pow_Proper; assumption || reflexivity.
+ Qed.
Global Instance div_Proper : Proper (eq ==> eq ==> eq) div.
- Admitted.
-
+ Proof.
+ cbv [div]; repeat intro; congruence.
+ Qed.
Section FieldProofs.
Context (modulus_gt_2 : 2 < modulus)