use Proper and rewrite from stdlib for monotonicity #14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR replaces the
monotonic
predicate withProper (le ==> le)
from stdlib.Pros:
setoid_rewrite
andsetoid_replace
for upper bounding expressions instead of using the custompoly_mono
tactic + existential variables.nat -> nat
functions can be shown by thesolve_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?:
inOPoly
lemmas.smpl_inO
is weaker and only provesinOPoly
instead of of bothmonotonic
andinOPoly
which are often used together.Cons:
Proper (le ==> le)
is more verbose and arguably harder to understand thanmonotonic
.smpl
tactic.