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

Distinguish between static and dynamic variables that might derive from the same logical symbol #18

Closed
gfrances opened this issue Jan 30, 2017 · 2 comments
Assignees
Labels

Comments

@gfrances
Copy link
Member

(C&P from elsewhere:)

Say I'm grounding the move action in visitall with grounding move(A,B), and it turns out that B is the initial position of the agent. This means that visited(B) is detected by the reachability analysis as statically true, ergo visited(B) is not a state variable.
This is provoking some errors right now, because when grounding the action, I try to recover the ID of the state variable visited(B) to create and effect visited(B) = true, but since that is not a state variable, that effect should be pruned. Agreed?

(I say this is subtle because up til now I was only considering that a predicate is or is not static, not that certain state variables derived from a predicate might be static and others not)

@gfrances
Copy link
Member Author

This needs to be properly addressed as follows:
FluentHeadedNestedTerm::bind needs to take into account the possibility that the term is actually not fluent, and thus upon grounding the term can resolve into a constant value. Shouldn't be too difficult to implement, but will involve injecting inside of the binding methods some reference to the initial state, so that we can infer what the constant value of a "static state variable" is.

@gfrances
Copy link
Member Author

This was finally solved with the integration with Tarski

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

No branches or pull requests

1 participant