diff options
-rw-r--r-- | _CoqProject | 1 | ||||
-rw-r--r-- | src/Util/Tactics.v | 1 | ||||
-rw-r--r-- | src/Util/Tactics/PrintContext.v | 12 |
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. |