Skip to content

coq.elaborate-skeleton abstracts over evars #919

Open

Description

@Tragicus

When a term contains multiple occurrences of an evar, coq.elaborate-skeleton produces a fresh unification variable for every occurrence of the evar, e.g. f ?x ?x is interpreted as f _ _.

Activity

  1. gares commented on Oct 28, 2025

    @gares
    Contributor

    The culprit is

    | Evar _ -> mkGHole

    To do this properly one needs:

    • add an option, eg @no-holes!
    • since we do not want to lose non-linearity carry a map Evar.t -> Evar.t
    • since we do not want to modify the input term create a new evar every time we encounter one, and add it to the map above and to sigma
  2. Tragicus commented on Nov 6, 2025

    @Tragicus
    ContributorAuthor

    I am not sure I understand the point of the option. Should we not always turn identical evars into identical holes?

  3. gares commented on Nov 7, 2025

    @gares
    Contributor

    Maybe it is the best default, but it is not how it works currently and if we don't have the option we break code. Let's see how CI goeas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions