Skip to content

Conversation

@JasonGross
Copy link
Contributor

I got fed up trying to manually prove some weakening properties across checker configuration, and wanted a stronger hammer for dealing with things like All and Forall.

The existing strategy of combining Foralls in the context and then trying to prove the property universally is lossy when there are goals like Forall (Forall2 P l1) l2 lying around, because it doesn't guarantee that all relevant hypotheses are found. Instead, we can convert all hypotheses to nth_error and try to carefully specialize hypotheses so that nth_errors line up.

@JasonGross JasonGross force-pushed the coq-8.16+all-forall-utils branch 2 times, most recently from 338093d to d68a961 Compare January 24, 2023 18:54
@JasonGross JasonGross marked this pull request as draft February 12, 2023 06:44
@mattam82
Copy link
Member

Indeed, that's a more general approach and it would be great to have this!

@JasonGross
Copy link
Contributor Author

Unfortunately, this seems to result in a bunch of universe errors down the line, and I ran out of time trying to debug them :-/

@JasonGross JasonGross force-pushed the coq-8.16+all-forall-utils branch 2 times, most recently from a55ff91 to 2d25a7a Compare April 2, 2023 20:00
The existing strategy of combining `Forall`s in the context and then
trying to prove the property universally is lossy when there are goals
like `Forall (Forall2 P l1) l2` lying around, because it doesn't
guarantee that all relevant hypotheses are found.  Instead, we can
convert all hypotheses to `nth_error` and try to carefully specialize
hypotheses so that `nth_error`s line up.
@JasonGross JasonGross force-pushed the coq-8.16+all-forall-utils branch from 2d25a7a to bacf7db Compare April 3, 2023 06:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants