Skip to content
Snippets Groups Projects
Commit 2bc4df02 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Use ndot_ne_disjoint more eager so it expands definitions.

parent 13117f43
No related branches found
No related tags found
No related merge requests found
......@@ -412,10 +412,11 @@ Tactic Notation "feed" "destruct" constr(H) "as" simple_intropattern(IP) :=
It will search for the first subterm of the goal matching [pat], and then call [tac]
with that subterm. *)
Ltac find_pat pat tac :=
match goal with |- context [?x] =>
unify pat x with typeclass_instances;
tryif tac x then idtac else fail 2
end.
match goal with
|- context [?x] =>
unify pat x with typeclass_instances;
tryif tac x then idtac else fail 2
end.
(** Coq's [firstorder] tactic fails or loops on rather small goals already. In
particular, on those generated by the tactic [unfold_elem_ofs] which is used
......
......@@ -64,7 +64,7 @@ End ndisjoint.
(* The hope is that registering these will suffice to solve most goals
of the form [N1 ⊥ N2] and those of the form [((N1 ⊆ E ∖ N2) ∖ ..) ∖ Nn]. *)
Hint Resolve ndisj_subseteq_difference : ndisj.
Hint Extern 0 (_ .@ _ _ .@ _) => apply ndot_ne_disjoint; congruence : ndisj.
Hint Extern 0 (_ _) => apply ndot_ne_disjoint; congruence : ndisj.
Hint Resolve ndot_preserve_disjoint_l : ndisj.
Hint Resolve ndot_preserve_disjoint_r : ndisj.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment