-
Notifications
You must be signed in to change notification settings - Fork 19
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
Feature request: explicitly specify * and @ by user #112
Comments
This is unlikely to ever be implemented, since we do not treat We have discussed ideas for promoting something like these annotations to connectives in a variant of G, but it's not an easy thing to get right. Needless to say, any implementation must be preceeded by a careful theoretical justification first. |
I just wanted to add that I've come across many instances where it would be nice to be able to say that applying a theorem doesn't change the height of a derivation. For example, in the notation above,
This would allow one to induct on a p-judgment and swap the arguments without losing the ability to apply the IH. In the standard translation from the specification language to G, there is an added natural-number argument representing the height of the derivation, and in the context of that translation, theorems like the above are easy to state and prove. It would be nice if that implicit argument could somehow be made accessible for this use. Maybe something like
using a built-in |
Right now you have to reify the "size" of p somewhere and use that to drive
your induction instead:
Theorem convert : forall X Y N, nat N -> p N X Y -> p N Y X.
Abella's inductive restriction annotations are not natural numbers but
rather ordinals of a certain form depending on the precise form of
induction being performed. You can't take the annotations out of the
context they're in. Imagine, for instance, you're doing a nested induction
-- then you couldn't use your form of convert because the annotation would
be **, not *. Figuring this out formally is one of the things I am working
on these days research wise, but things are not as easy as they seemed when
I started.
|
I like the inductive restriction symbols @(equal) and *(smaller) for their simplicity. I wonder if we could make use of these symbols to prove the size of objects. For example,
With this feature, proof by induction could be more flexible (just like applying unfold multiple times).
It seems that this is somehow related to nested induction. Please correct me if I am wrong.
The text was updated successfully, but these errors were encountered: