aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_CoqProject3
-rw-r--r--src/Compilers/Z/InlineConstAndOp.v7
-rw-r--r--src/Compilers/Z/InlineConstAndOpInterp.v11
-rw-r--r--src/Compilers/Z/InlineConstAndOpWf.v11
4 files changed, 32 insertions, 0 deletions
diff --git a/_CoqProject b/_CoqProject
index babe95a3a..e86e74678 100644
--- a/_CoqProject
+++ b/_CoqProject
@@ -149,6 +149,9 @@ src/Compilers/Z/CommonSubexpressionEliminationWf.v
src/Compilers/Z/FoldTypes.v
src/Compilers/Z/HexNotationConstants.v
src/Compilers/Z/Inline.v
+src/Compilers/Z/InlineConstAndOp.v
+src/Compilers/Z/InlineConstAndOpInterp.v
+src/Compilers/Z/InlineConstAndOpWf.v
src/Compilers/Z/InlineInterp.v
src/Compilers/Z/InlineWf.v
src/Compilers/Z/InterpSideConditions.v
diff --git a/src/Compilers/Z/InlineConstAndOp.v b/src/Compilers/Z/InlineConstAndOp.v
new file mode 100644
index 000000000..bdcc0a21b
--- /dev/null
+++ b/src/Compilers/Z/InlineConstAndOp.v
@@ -0,0 +1,7 @@
+Require Import Crypto.Compilers.Syntax.
+Require Import Crypto.Compilers.InlineConstAndOp.
+Require Import Crypto.Compilers.Z.Syntax.
+Require Import Crypto.Compilers.Z.Syntax.Util.
+
+Definition InlineConstAndOp {t} (e : Expr t) : Expr t
+ := @InlineConstAndOp base_type op interp_base_type interp_op make_const t e.
diff --git a/src/Compilers/Z/InlineConstAndOpInterp.v b/src/Compilers/Z/InlineConstAndOpInterp.v
new file mode 100644
index 000000000..417085929
--- /dev/null
+++ b/src/Compilers/Z/InlineConstAndOpInterp.v
@@ -0,0 +1,11 @@
+Require Import Crypto.Compilers.Syntax.
+Require Import Crypto.Compilers.Wf.
+Require Import Crypto.Compilers.InlineConstAndOpInterp.
+Require Import Crypto.Compilers.Z.Syntax.
+Require Import Crypto.Compilers.Z.InlineConstAndOp.
+
+Definition InterpInlineConstAndOp {t} (e : Expr t) (Hwf : Wf e)
+ : forall x, Interp (InlineConstAndOp e) x = Interp e x
+ := @InterpInlineConstAndOp _ _ _ _ _ t e Hwf Syntax.Util.make_const_correct.
+
+Hint Rewrite @InterpInlineConstAndOp using solve_wf_side_condition : reflective_interp.
diff --git a/src/Compilers/Z/InlineConstAndOpWf.v b/src/Compilers/Z/InlineConstAndOpWf.v
new file mode 100644
index 000000000..aa0f41d07
--- /dev/null
+++ b/src/Compilers/Z/InlineConstAndOpWf.v
@@ -0,0 +1,11 @@
+Require Import Crypto.Compilers.Syntax.
+Require Import Crypto.Compilers.Wf.
+Require Import Crypto.Compilers.InlineConstAndOpWf.
+Require Import Crypto.Compilers.Z.Syntax.
+Require Import Crypto.Compilers.Z.InlineConstAndOp.
+
+Definition Wf_InlineConstAndOp {t} (e : Expr t) (Hwf : Wf e)
+ : Wf (InlineConstAndOp e)
+ := @Wf_InlineConstAndOp _ _ _ _ _ t e Hwf.
+
+Hint Resolve Wf_InlineConstAndOp : wf.