Add tactic `tc_solve`.
1 unresolved thread
1 unresolved thread
This is iSolveTC
from Iris. I think it's good to move this tactic to std++ because it is not specific to Iris.
Also I used the tc_
prefix to be consistent with other type class related utilities in std++.
Merge request reports
Activity
added 4 commits
-
fa929f0f...d40a9005 - 2 commits from branch
master
- 2db407d6 - Add tactic `tc_solve`.
- efa1b8f0 - CHANGELOG.
-
fa929f0f...d40a9005 - 2 commits from branch
enabled an automatic merge when the pipeline for efa1b8f0 succeeds
mentioned in commit d4458085
62 (** * Solving type class instances *) 63 (** The tactic [tc_solve] is used to solve type class goals by invoking type 64 class search. It is similar to [apply _], but it is more robust since it does 65 not affect unrelated goals/evars due to https://github.com/coq/coq/issues/6583. 66 67 The tactic [tc_solve] is particularly useful when building custom tactics that 68 need tight control over when type class search is invoked. In Iris, many of the 69 proof mode tactics make use of [notypeclasses refine] and use [tc_solve] to 70 manually invoke type class search. 71 72 Note that [typeclasses eauto] is multi-success. That means, whenever subsequent 73 tactics fail, it will backtrack to [typeclasses eauto] to try the next type 74 class instance. This is almost always undesired and can lead to poor performance 75 and horrible error messages. Hence, we wrap it in a [once]. *) 76 Ltac tc_solve := 77 solve [once (typeclasses eauto)].
Please register or sign in to reply