aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-04-02 00:18:29 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-04-02 00:18:29 -0400
commit2882da783bf4a45cbdab2ff53d6acaea74c71f22 (patch)
tree680b491529e320e341fe7f63d573d721cb47d931 /src
parent7b25cca4e82d030e56fea0bebf5b7322f86e265a (diff)
Add reflective_interp rewrite db
Diffstat (limited to 'src')
-rw-r--r--src/Reflection/EtaInterp.v2
-rw-r--r--src/Reflection/InlineCastInterp.v2
-rw-r--r--src/Reflection/InlineInterp.v2
-rw-r--r--src/Reflection/InterpProofs.v3
-rw-r--r--src/Reflection/LinearizeInterp.v3
-rw-r--r--src/Reflection/RewriterInterp.v2
-rw-r--r--src/Reflection/SmartCastInterp.v2
-rw-r--r--src/Reflection/Z/ArithmeticSimplifierInterp.v2
8 files changed, 18 insertions, 0 deletions
diff --git a/src/Reflection/EtaInterp.v b/src/Reflection/EtaInterp.v
index 170056a02..4dd5b00bb 100644
--- a/src/Reflection/EtaInterp.v
+++ b/src/Reflection/EtaInterp.v
@@ -94,3 +94,5 @@ Section language.
: forall x, Interp (t:=Arrow s d) (@interp_op) (ExprEta' (t:=Arrow s d) e) x = Interp (@interp_op) e x.
Proof. exact (@InterpExprEta' (Arrow s d) e). Qed.
End language.
+
+Hint Rewrite @eq_interp_flat_type_eta @eq_interp_flat_type_eta' @interpf_exprf_eta @interpf_exprf_eta' @interp_expr_eta @interp_expr_eta' @InterpExprEta @InterpExprEta' @InterpExprEta_arrow @InterpExprEta'_arrow : reflective_interp.
diff --git a/src/Reflection/InlineCastInterp.v b/src/Reflection/InlineCastInterp.v
index 8e6719f0c..aa9fbb119 100644
--- a/src/Reflection/InlineCastInterp.v
+++ b/src/Reflection/InlineCastInterp.v
@@ -111,3 +111,5 @@ Section language.
= Interp interp_op e x.
Proof. apply InterpInlineConstGen; auto. Qed.
End language.
+
+Hint Rewrite @interpf_exprf_of_push_cast @InterpInlineCast using solve [ eassumption | eauto with wf ] : reflective_interp.
diff --git a/src/Reflection/InlineInterp.v b/src/Reflection/InlineInterp.v
index 7d3909c79..caf1931fb 100644
--- a/src/Reflection/InlineInterp.v
+++ b/src/Reflection/InlineInterp.v
@@ -130,3 +130,5 @@ Section language.
eapply InterpInlineConstGen; eauto.
Qed.
End language.
+
+Hint Rewrite @InterpInlineConst @interp_inline_const @interpf_inline_constf using solve [ eassumption | eauto with wf ] : reflective_interp.
diff --git a/src/Reflection/InterpProofs.v b/src/Reflection/InterpProofs.v
index b0aa20ccf..a9ecdd674 100644
--- a/src/Reflection/InterpProofs.v
+++ b/src/Reflection/InterpProofs.v
@@ -60,3 +60,6 @@ Section language.
subst; eapply interpf_SmartVarVarf; eassumption.
Qed.
End language.
+
+Hint Rewrite @interpf_LetIn @interpf_SmartVarf : reflective_interp.
+Hint Rewrite @interpf_SmartVarVarf using assumption : reflective_interp.
diff --git a/src/Reflection/LinearizeInterp.v b/src/Reflection/LinearizeInterp.v
index e124ced5b..443cb9e3c 100644
--- a/src/Reflection/LinearizeInterp.v
+++ b/src/Reflection/LinearizeInterp.v
@@ -81,3 +81,6 @@ Section language.
eapply interp_linearize.
Qed.
End language.
+
+Hint Rewrite @interpf_under_letsf : reflective_interp.
+Hint Rewrite @InterpLinearize @interp_linearize @interpf_linearizef using solve [ eassumption | eauto with wf ] : reflective_interp.
diff --git a/src/Reflection/RewriterInterp.v b/src/Reflection/RewriterInterp.v
index 4de516dfd..66315ec0d 100644
--- a/src/Reflection/RewriterInterp.v
+++ b/src/Reflection/RewriterInterp.v
@@ -46,3 +46,5 @@ Section language.
apply interp_rewrite_op; assumption.
Qed.
End language.
+
+Hint Rewrite @InterpRewriteOp using assumption : reflective_interp.
diff --git a/src/Reflection/SmartCastInterp.v b/src/Reflection/SmartCastInterp.v
index 4266deb8a..410d108e3 100644
--- a/src/Reflection/SmartCastInterp.v
+++ b/src/Reflection/SmartCastInterp.v
@@ -33,3 +33,5 @@ Section language.
{ reflexivity. }
Qed.
End language.
+
+Hint Rewrite @interpf_SmartCast_base using solve [ eassumption | eauto ] : reflective_interp.
diff --git a/src/Reflection/Z/ArithmeticSimplifierInterp.v b/src/Reflection/Z/ArithmeticSimplifierInterp.v
index 271cbcacc..927f904b7 100644
--- a/src/Reflection/Z/ArithmeticSimplifierInterp.v
+++ b/src/Reflection/Z/ArithmeticSimplifierInterp.v
@@ -98,3 +98,5 @@ Proof.
| progress Z.ltb_to_lt
| progress rewrite ?Z.land_0_l, ?Z.land_0_r, ?Z.lor_0_l, ?Z.lor_0_r ].
Qed.
+
+Hint Rewrite @InterpSimplifyArith : reflective_interp.