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

Remove surplus generated variable assignments #17

Open
nsbgn opened this issue Jan 16, 2018 · 0 comments
Open

Remove surplus generated variable assignments #17

nsbgn opened this issue Jan 16, 2018 · 0 comments

Comments

@nsbgn
Copy link
Owner

nsbgn commented Jan 16, 2018

We have seperation between generators and constraints. The general rule is to put the constraints as much as possible in the constraints, since every additional generated instantiation adds a lot of complexity to the tableau.

There are some things that the user can do to achieve this: for example, once a variable has been bound, it should no longer be treated as generative.

However, sometimes we may need throwaway variables. For example, to bind a production A with formulas of the form C:A, we obtain an instantiation of C that we don't really need to remember. We could have assignments [C=a,A=c] and [C=b,A=c]; our match needlessly increased the number of possible instantiations (the assignments are equivalent from a practical perspective), and added a lot of complexity.

I propose to pre-generate the constraint, then take out all variables that don't need to be generative, and make them restrictive. The remainder is united and duplicates are removed. This will minimise the number of instantiations.

To achieve this, it is necessary that we can automatically translate those degenerated variables into a constraint that checks if a certain combination of assignments is allowed to occur.

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

No branches or pull requests

1 participant