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

Termination checking for complete induction #227

Open
MartyO256 opened this issue Jul 2, 2020 · 1 comment
Open

Termination checking for complete induction #227

MartyO256 opened this issue Jul 2, 2020 · 1 comment
Labels
A | core affecting the typechecker B | enhancement new features

Comments

@MartyO256
Copy link
Member

Twelf has a reduction declaration that can be used to label the outputs of lemmas as non-inflationary, which allows for recursive calls on these outputs.

Totality checking for such programs would require the use of complete induction.
This may be implemented following the same ideas as in Termination and Reduction Checking for Higher-Order Logic Programs.

@tsani
Copy link
Contributor

tsani commented Jul 7, 2020

This would be really great to have. Brigitte pointed out that the main challenge will be integrating it with our existing approach for totality checking. It isn't clear how this can be made compatible with the notion of generating at the moment that splitting occurs a list of possible induction hypotheses, since suddenly terms such as lemma [|- D] is still considered structurally smaller.

I think that a bigger investigation into how we do totality checking will be necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A | core affecting the typechecker B | enhancement new features
Projects
None yet
Development

No branches or pull requests

2 participants