Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to report the status of existential variables in a UI in the future? #19001

Open
hendriktews opened this issue May 3, 2024 · 2 comments
Open
Labels
kind: wish Feature or enhancement requests.

Comments

@hendriktews
Copy link

Is your feature request related to a problem?

In #18991, which attempts to fix #18980, @ppedrot commented that future Coq versions might not feature the dependent evar line. I opened this issue to discuss how a Coq user interface could obtain the necessary information from Coq in order to indicate the status of existential variables for such a future Coq version.
With the dependent evar line, a user interface can give information about which existential variables are not instantiated yet, which are partially instantiated (in the sense that they are instantiated with a term which still contains an open existential variable), and which are fully instantiated.
When such information is present in the user interface, one can immediately investigate when some existential variable is not completely instantiated as expected during proof development. Without such information in the user interface one might only see at the end of the proof that some existential variable still needs to be instantiated.
I would be interested how one can retrieve the information that is present in the dependent evar line in 8.17 without using this line.

Proposed solution

No response

Alternative solutions

No response

Additional context

No response

@hendriktews hendriktews added needs: triage The validity of this issue needs to be checked, or the issue itself updated. kind: wish Feature or enhancement requests. labels May 3, 2024
@ppedrot
Copy link
Member

ppedrot commented May 4, 2024

a user interface can give information about which existential variables are not instantiated yet, which are partially instantiated (in the sense that they are instantiated with a term which still contains an open existential variable), and which are fully instantiated.

This spec is perfectly reasonable, but this is not what the dependent evar printing mechanism is doing. The thing that is very much not compatible with the proof engine is the ability to check that an instantiated evar depends on another instantiated evar, because an instantiated evar should behave exactly like its expansion.

@SkySkimmer
Copy link
Contributor

If you save a econstr which is the evar when it's uninstantiated, you can inspect it in a later evar map to see if it got instantiated (assuming Optimize Proof or other hypothetical GC mechanisms didn't invalidate it).
That requires some upfront work though.

@SkySkimmer SkySkimmer removed the needs: triage The validity of this issue needs to be checked, or the issue itself updated. label May 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: wish Feature or enhancement requests.
Projects
None yet
Development

No branches or pull requests

3 participants