-
Notifications
You must be signed in to change notification settings - Fork 12
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
New redtt core #270
New redtt core #270
Conversation
Ahh, I think I realized that the idea of naive / syntactic substitution is just wrong in this setting, even if followed by 're-evaluation'. Consider I guess the meaning of substitution really has to be, add the equation to the theory and re-evaluate or something. @favonia Do you have any clarifying Thoughts here? |
The substitution is done to both the term and the oracle. That's why we have the two-layer oracle to deal with hiding. The semantics in terms of stratified judgments is
so any dimension substitution applies to the rest of the judgment. In this case, you should have |
@favonia I see, now I think I remember. |
@favonia Does the following rule make sense? In particular the third premise to calculate the substitution. (I'm checking whether I understood your comment.) |
Yes, it's okay, except that you should get the value right away from the second premise. |
I now implemented the subst and swap operations directly in #265 to save you some brain power. |
|
I fixed the rule in the LaTeX note. |
@jonsterling I think
The above line means |
@favonia I already brought in the files, so technically there is no need to cherry-pick --- except the git history is not correct, since it does not indicate that you wrote those files. Please feel to make changes directly to this branch, so that we avoid needless merge conflicts. Also feel free to make any renamings you like :) |
And the pretty printing format you described sounds good! |
|
Done (modulo bugs). |
I think you can cherry-pick a commit out of the history, but oh well it is done now. |
mutable parent : (int, cls) T.t} | ||
|
||
let emp () = | ||
let size = 100 in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I might have picked the wrong initial size...
9a98199
to
51c067b
Compare
e9d988a
to
ad2c0de
Compare
I'm sketching some ideas for how to formulate the new evaluator in a cleaner and more systematic way, which should also enable some optimizations to avoid unnecessary swapping, etc.