aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_CoqProject1
-rw-r--r--src/Util/Tactics.v1
-rw-r--r--src/Util/Tactics/PrintContext.v12
3 files changed, 14 insertions, 0 deletions
diff --git a/_CoqProject b/_CoqProject
index 09eafa01e..5553993a0 100644
--- a/_CoqProject
+++ b/_CoqProject
@@ -303,6 +303,7 @@ src/Util/Tactics/GetGoal.v
src/Util/Tactics/Head.v
src/Util/Tactics/Not.v
src/Util/Tactics/OnSubterms.v
+src/Util/Tactics/PrintContext.v
src/Util/Tactics/Revert.v
src/Util/Tactics/RewriteHyp.v
src/Util/Tactics/SetEvars.v
diff --git a/src/Util/Tactics.v b/src/Util/Tactics.v
index 88dcb0aa8..60c93df2f 100644
--- a/src/Util/Tactics.v
+++ b/src/Util/Tactics.v
@@ -17,6 +17,7 @@ Require Export Crypto.Util.Tactics.Forward.
Require Export Crypto.Util.Tactics.GetGoal.
Require Export Crypto.Util.Tactics.OnSubterms.
Require Export Crypto.Util.Tactics.Not.
+Require Export Crypto.Util.Tactics.PrintContext.
Require Export Crypto.Util.Tactics.Revert.
Require Export Crypto.Util.Tactics.RewriteHyp.
Require Export Crypto.Util.Tactics.SetEvars.
diff --git a/src/Util/Tactics/PrintContext.v b/src/Util/Tactics/PrintContext.v
new file mode 100644
index 000000000..1a774bdfc
--- /dev/null
+++ b/src/Util/Tactics/PrintContext.v
@@ -0,0 +1,12 @@
+Ltac print_context _ :=
+ lazymatch goal with
+ | [ H : ?T |- False ]
+ => try ((clear H || fail 10000 "Anomaly in print_context: could not clear" H); print_context (); fail);
+ match goal with
+ | _ => let body := (eval cbv delta [H] in H) in
+ idtac H ":=" body ":" T
+ | _ => idtac H ":" T
+ end
+ | [ |- False ] => idtac
+ | [ |- _ ] => try (exfalso; print_context (); fail)
+ end.