Skip to content

Non-strict order equational reasoning #1229

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

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

hexwell
Copy link
Contributor

@hexwell hexwell commented Jul 17, 2025

Following #1203, this adds facilities for equational reasoning involving mixed use of <, ≤, ≡;
extracting a non-strict inequality instead of a strict one.

To extract a non-strict inequality, the additional data of <-≤-weaken is required (on top of what strict order already requires).

The same notes as the previous PR apply, noting that now:

  • Either begin< or begin≤ is needed at the start of the chain, since it has to extract an inequality from the given chain.

Changelog

  • The interface is now as follows:

    • Former <-≤-Reasoning renamed to <-≤-StrictReasoning
    • Former begin_ renamed to begin<_
    • Added new <-≤-Reasoning
    • Added new begin≤_

    Import <-≤-StrictReasoning if you only need to obtain strict inequalities,
    import <-≤-Reasoning otherwise.
    Use begin< to obtain a strict inequality (in this case, at least one < is required in the chain).
    Use begin≤ to obtain a nonstrict inequality.

  • The SubRelation record has been deleted since it was out of place and not useful here, the instance has also been removed.

  • Examples have been moved from a comment to a module, so that the compiler can check them for correctness in case of changes to the library.

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