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

Implement the algorithm #4

Draft
wants to merge 32 commits into
base: master
Choose a base branch
from
Draft

Implement the algorithm #4

wants to merge 32 commits into from

Conversation

jeltsch
Copy link
Owner

@jeltsch jeltsch commented Mar 9, 2021

This will ultimately resolve #3.

The key to have a short, largely automatic proof is to explicitly
specify that the witness for the existential statement is `Map.empty`.
This enables us to easily use the constraints of the `element_labeling`
subtype in future proofs.
The new definition consistently uses `parent`. For this to be possible,
it uses small steps also in the first two clauses.
Previously, the conditions in the definition of `lowest_common_ancestor`
were specified using Pure implications.
We do not want to make `nat × nat` an instance of `semilattice_sup`,
since there are lattice structures for this type that are more standard
than our structure.
The previous version did not outrule cycles as such but only outruled
that all vertices have cycles of a certain common size.
For a function with an associated termination proof, no `domintros` seem
to be generated anyhow. The generation of `domintros` would also be
superfluous, as the termination proof has access to the local
`termination` rule and generated facts do not refer to `domintros`.
@jeltsch jeltsch self-assigned this Mar 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement the algorithm
1 participant