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

Join the two mechanisms that do "Unification with abstraction" around in substitution trees #383

Open
quickbeam123 opened this issue Jun 9, 2022 · 1 comment

Comments

@quickbeam123
Copy link
Collaborator

From Ahmed:

"The VSpecialVar mechanism is not to do with applicative terms, but linked to a unification with abstraction type of thing that we use in higher-order mode. I have long thought that we should combine it with unification with abstraction instead of having two mechanisms.

I can illustrate it with an example. Imagine that we have terms p(8) and ~p(2y). Instead of inserting these terms into the indices, we would insert terms p(#1) and ~p(#2) into the indices where #1 and #2 are the so-called VSpecialVars. They need to be disjoint from both normal vars and special variables. Outside the indices, we maintain a mapping from very special vars to the terms they represent (I can't recall what we do about alpha-equivalence).

When attempting to unify the terms, we succeed and produce the constraint #1 != #2. Dereferencing the very special variable then gives us the actual constraint 8 != 2y."

"As noted above, we should really merge the two unification with abstraction mechanism currently functional in Vampire. From before, I recall thinking that the mechanism I outline above is cleaner than the other mechanism, but if this is mistaken we can go with the other mechanism."

@MichaelRawson
Copy link
Contributor

I don't think we have "very special" variables any more - should this be closed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants