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

use Proper and rewrite from stdlib for monotonicity #14

Open
wants to merge 1 commit into
base: coq-8.16
Choose a base branch
from

Conversation

haansn08
Copy link

This PR replaces the monotonic predicate with Proper (le ==> le) from stdlib.

Pros:

  • one can use setoid_rewrite and setoid_replace for upper bounding expressions instead of using the custom poly_mono tactic + existential variables.
  • monotonicity of nat -> nat functions can be shown by the solve_proper tactic from stdlib instead of using smpl which has been dropped from the depedencies of coq-library-undecidability (smpl is still needed for other things however).

Pros?:

  • the monotonicity instances are now separate from inOPoly lemmas.
  • smpl_inO is weaker and only proves inOPoly instead of of both monotonic and inOPoly which are often used together.

Cons:

  • Proper (le ==> le) is more verbose and arguably harder to understand than monotonic.
  • Rewrite / Typeclass resolution can get hard to understand hiccups which was not the case with the custom smpl tactic.

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.

1 participant