-
Notifications
You must be signed in to change notification settings - Fork 7
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
Definition vs Inductive #160
Comments
An advantage of having everything as definitions is that when we get to a formula such as
We can unfold The same holds true for or_lang being inside another Inductive type, we first have to deconstruct the top, before we can deconstruct the operator inside. |
I think this would require General Recursion as described here http://adam.chlipala.net/cpdt/html/Cpdt.GeneralRec.html I think we will only need everything above:
since mergeSort also requires splitting of the list and proving that the lists are decreasing. But then we have to see whether the proofs would be more complicated or whether we can prove some equivalance to make the proofs easier again. |
Just a reference: This also relates to #73 |
Interesting. I tried a slightly different approach, but I think it has fundamentally the same problem (maybe it even has more problems):
[Added later: ] It doesn't compile (gives a similar kind of error IIRC). |
Did it compile? |
No, it didn't... |
Okay that makes sense, the Here was one way to get around it: |
Currently we have defined our denotation of regular expression in terms of Inductive and Definition.
#149 (comment)
The reason so that all operators are consistently defined and we avoid the
Recursive definition is ill-formed
error when defining star_lang. Here is a recent attempt that has failed, but it does not mean that it is impossible.The text was updated successfully, but these errors were encountered: