Commit 5249f4c4 authored by Jacques-Henri Jourdan's avatar Jacques-Henri Jourdan
Browse files

Use [notypeclasses refine] instead of eapply in iLöb and iNext, to workaround...

Use [notypeclasses refine] instead of eapply in iLöb and iNext, to workaround the confusion of apply wrt canonical structures.
parent d997bf03
Pipeline #6162 passed with stages
in 3 minutes and 43 seconds
...@@ -899,7 +899,10 @@ Tactic Notation "iNext" open_constr(n) := ...@@ -899,7 +899,10 @@ Tactic Notation "iNext" open_constr(n) :=
iStartProof; iStartProof;
let P := match goal with |- envs_entails _ ?P => P end in let P := match goal with |- envs_entails _ ?P => P end in
try lazymatch n with 0 => fail 1 "iNext: cannot strip 0 laters" end; try lazymatch n with 0 => fail 1 "iNext: cannot strip 0 laters" end;
eapply (tac_next _ _ n); (* apply is sometimes confused wrt. canonical structures search.
refine should us the other unification algorithm, which should
not have this issue. *)
notypeclasses refine (coq_tactics.tac_next _ _ n _ _ _ _ _);
Please register or sign in to reply
[apply _ || fail "iNext:" P "does not contain" n "laters" [apply _ || fail "iNext:" P "does not contain" n "laters"
|lazymatch goal with |lazymatch goal with
| |- IntoLaterNEnvs 0 _ _ => fail "iNext:" P "does not contain laters" | |- IntoLaterNEnvs 0 _ _ => fail "iNext:" P "does not contain laters"
...@@ -1558,7 +1561,10 @@ Tactic Notation "iInduction" constr(x) "as" simple_intropattern(pat) constr(IH) ...@@ -1558,7 +1561,10 @@ Tactic Notation "iInduction" constr(x) "as" simple_intropattern(pat) constr(IH)
(** * Löb Induction *) (** * Löb Induction *)
Tactic Notation "iLöbCore" "as" constr (IH) := Tactic Notation "iLöbCore" "as" constr (IH) :=
iStartProof; iStartProof;
eapply tac_löb with _ IH; (* apply is sometimes confused wrt. canonical structures search.
refine should us the other unification algorithm, which should
Please register or sign in to reply
not have this issue. *)
notypeclasses refine (tac_löb _ _ IH _ _ _ _);
[reflexivity || fail "iLöb: spatial context not empty, this should not happen" [reflexivity || fail "iLöb: spatial context not empty, this should not happen"
|env_reflexivity || fail "iLöb:" IH "not fresh"|]. |env_reflexivity || fail "iLöb:" IH "not fresh"|].
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment