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
Extend comparison predicates for nat with minn and maxn and reorder arguments of those in order.v #429
Conversation
bc57dcf
to
e3f9b97
Compare
e3f9b97
to
3997b9b
Compare
47ce0a9
to
ec83f47
Compare
ec83f47
to
f69c5a6
Compare
f69c5a6
to
fb0f18c
Compare
3c03bf1
to
698108c
Compare
698108c
to
c282b3c
Compare
I just changed the title and resolved a conflict with #453. Since |
c282b3c
to
5f12298
Compare
+ In the development process of this version of Mathematical Components, the | ||
ordering of arguments of comparison predicates `lcomparableP`, | ||
`(lcomparable_)ltgtP`, `(lcomparable_)leP`, and `(lcomparable_)ltP` in | ||
`order.v` has been changed as follows. This is a potential source of | ||
incompatibilities. | ||
* before the change: | ||
``` | ||
lcomparableP x y : incomparel x y | ||
(y == x) (x == y) (x >= y) (x <= y) (x > y) (x < y) | ||
(y >=< x) (x >=< y) (y `&` x) (x `&` y) (y `|` x) (x `|` y). | ||
ltgtP x y : comparel x y | ||
(y == x) (x == y) (x >= y) (x <= y) (x > y) (x < y) | ||
(y `&` x) (x `&` y) (y `|` x) (x `|` y). | ||
leP x y : | ||
lel_xor_gt x y (x <= y) (y < x) (y `&` x) (x `&` y) (y `|` x) (x `|` y). | ||
ltP x y : | ||
ltl_xor_ge x y (y <= x) (x < y) (y `&` x) (x `&` y) (y `|` x) (x `|` y). | ||
``` | ||
* after the change: | ||
``` | ||
lcomparableP x y : incomparel x y | ||
(y `&` x) (x `&` y) (y `|` x) (x `|` y) | ||
(y == x) (x == y) (x >= y) (x <= y) (x > y) (x < y) (y >=< x) (x >=< y). | ||
ltgtP x y : comparel x y | ||
(y `&` x) (x `&` y) (y `|` x) (x `|` y) | ||
(y == x) (x == y) (x >= y) (x <= y) (x > y) (x < y). | ||
leP x y : | ||
lel_xor_gt x y (y `&` x) (x `&` y) (y `|` x) (x `|` y) (x <= y) (y < x). | ||
ltP x y : | ||
ltl_xor_ge x y (y `&` x) (x `&` y) (y `|` x) (x `|` y) (y <= x) (x < y). | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So I did this documentation work. Since we decided to have a beta release, I think we should keep this entry in the beta version and remove it in the stable release.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree
Hello @ggonthier, @CohenCyril, can we merge this before the next beta release? Thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM @ggonthier
There remains a tag "Needs:documentation" that is confusing for release managers. Can you please clarify, complete the work if needed, and merge? @CohenCyril @ggonthier |
I was a bit worried about the backward compatibility issues triggered by this PR, but after @pi8027's experiments, it does not not look so bad. I also thought @ggonthier could be opposed to it for the same reasons (or others?). I think we can merge for the beta and backtrack if this causes more trouble than relief to our users (in the former case, we could have distinct spec lemmas for the enhanced cased analysis instead of overloading |
Thanks @pi8027 @CohenCyril |
that explains an incompatibility between development versions
that explains an incompatibility between development versions
that explains an incompatibility between development versions
Reword a CHANGELOG entry introduced in #429
Motivation for this change
This PR partially addresses #404. It extends the comparison predicates
leqP
,ltnP
, andltngtP
inssrnat.v
to allow case analysis onminn
andmaxn
. It also changes the ordering of arguments oflcomparableP
,(lcomparable_)leP
,(lcomparable_)ltP
, and(lcomparable_)ltgtP
inorder.v
.Things done/to do
CHANGELOG_UNRELEASED.md
[ ] added corresponding documentation in the headersAutomatic note to reviewers
Read this Checklist and make sure there is a milestone.