aboutsummaryrefslogtreecommitdiff
path: root/src/Util/Tactics
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-04-05 10:29:59 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-04-05 10:29:59 -0400
commit2a94c03e5326020d63dd5a1afd4ab514ffb30a81 (patch)
tree477f513ae3734d6d132d7662d22f24ae87e0a646 /src/Util/Tactics
parent8e6549d776ab2e60d4a669d37dd7b2df9becc592 (diff)
Add TransparentAssert
Diffstat (limited to 'src/Util/Tactics')
-rw-r--r--src/Util/Tactics/TransparentAssert.v8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Util/Tactics/TransparentAssert.v b/src/Util/Tactics/TransparentAssert.v
new file mode 100644
index 000000000..533d159f7
--- /dev/null
+++ b/src/Util/Tactics/TransparentAssert.v
@@ -0,0 +1,8 @@
+(** [transparent assert (H : T)] is like [assert (H : T)], but leaves the body transparent. *)
+Tactic Notation "transparent" "assert" "(" ident(name) ":" constr(type) ")" :=
+ simple refine (let name := (_ : type) in _).
+
+(** [transparent eassert] is like [transparent assert], but allows holes in the type, which will be turned into evars. *)
+Tactic Notation "transparent" "assert" "(" ident(name) ":" constr(type) ")" "by" tactic3(tac) := let name := fresh "H" in transparent assert (name : type); [ solve [ tac ] | ].
+Tactic Notation "transparent" "eassert" "(" ident(name) ":" open_constr(type) ")" := transparent assert (name : type).
+Tactic Notation "transparent" "eassert" "(" ident(name) ":" open_constr(type) ")" "by" tactic3(tac) := transparent assert (name : type) by tac.