From b6d58ca645f8f9c1023118b7a8a0208aa9a7f40b Mon Sep 17 00:00:00 2001
From: Robbert Krebbers
Date: Wed, 17 Jan 2018 00:39:19 +0100
Subject: [PATCH] Support `||` in `naive_solver`.
---
theories/tactics.v | 3 +++
1 file changed, 3 insertions(+)
diff --git a/theories/tactics.v b/theories/tactics.v
index 93c64f5..56dda3c 100644
--- a/theories/tactics.v
+++ b/theories/tactics.v
@@ -517,6 +517,8 @@ Tactic Notation "naive_solver" tactic(tac) :=
| |- Is_true (_ && _) => apply andb_True; split
| H : _ ∨ _ |- _ =>
let H1 := fresh in destruct H as [H1|H1]; try clear H
+ | H : Is_true (_ || _) |- _ =>
+ apply orb_True in H; let H1 := fresh in destruct H as [H1|H1]; try clear H
(**i solve the goal using the user supplied tactic *)
| |- _ => solve [tac]
end;
@@ -525,6 +527,7 @@ Tactic Notation "naive_solver" tactic(tac) :=
(**i instantiation of the conclusion *)
| |- ∃ x, _ => no_new_unsolved_evars ltac:(eexists; go n)
| |- _ ∨ _ => first [left; go n | right; go n]
+ | |- Is_true (_ || _) => apply orb_True; first [left; go n | right; go n]
| _ =>
(**i instantiations of assumptions. *)
lazymatch n with
--
2.24.1