aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/GF25519Reflective/Reified/CarrySub.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/Specific/GF25519Reflective/Reified/CarrySub.v')
-rw-r--r--src/Specific/GF25519Reflective/Reified/CarrySub.v16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/Specific/GF25519Reflective/Reified/CarrySub.v b/src/Specific/GF25519Reflective/Reified/CarrySub.v
new file mode 100644
index 000000000..3acfb1f45
--- /dev/null
+++ b/src/Specific/GF25519Reflective/Reified/CarrySub.v
@@ -0,0 +1,16 @@
+Require Import Crypto.Specific.GF25519Reflective.Common.
+
+Definition rcarry_subZ_sig : rexpr_binop_sig carry_sub. Proof. reify_sig. Defined.
+Definition rcarry_subW := Eval vm_compute in rword_of_Z rcarry_subZ_sig.
+Lemma rcarry_subW_correct_and_bounded_gen : correct_and_bounded_genT rcarry_subW rcarry_subZ_sig.
+Proof. rexpr_correct. Qed.
+Definition rcarry_sub_output_bounds := Eval vm_compute in compute_bounds rcarry_subW ExprBinOp_bounds.
+Local Obligation Tactic := intros; vm_compute; constructor.
+Program Definition rcarry_subW_correct_and_bounded
+ := ExprBinOp_correct_and_bounded
+ rcarry_subW carry_sub rcarry_subZ_sig rcarry_subW_correct_and_bounded_gen
+ _ _.
+
+Local Open Scope string_scope.
+Compute ("Carry_Sub", compute_bounds_for_display rcarry_subW ExprBinOp_bounds).
+(*Compute ("Carry_Sub overflows? ", sanity_check rcarry_subW ExprBinOp_bounds).*)