Skip to content

Ltac2: deprecate the current implementation of refine in favor of unshelve eexact? #21315

@JasonGross

Description

@JasonGross

As I understand it, Control.refine f and Control.unshelve (fun () => let c := f () in eexact $f) should have the same behavior modulo side-condition ordering.

Today I have run into an issue much like #20628 where Control.refine (fun () => c) instantiates some evar which occurs neither in c nor the type of c nor in the goal type (and which I believe is not a class).

If we can, I propose that we deprecate the current behavior of Control.refine and re-implement it with unshelve and eexact, unless there is something particularly important about the current quirks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind: questionIssues seeking an answer to a question. Consider asking on zulip instead.part: ltac2Issues and PRs related to the (in development) Ltac2 tactic langauge.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions