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
while_correction behavior #14
Comments
Seems to me W says "diagonal all m" and "for all i,j cannot have p"? That would be "no p anywhere" which matches the expression in the code. But can we not apply L if there is p somewhere? Or when we analyze |
Sorry, I meant on the diagonal. You are correct that p can be problematic anywhere (and so is |
I think while loops should be analysed with W each time, and for loops can be analyzed with L. I think the implicit difference is that when entering a for we know from the start how many iterations we will do, so we can accept more behaviors than in a while. |
Briefly, the condition
(Taking into account the fact that replacing an |
We should discuss the behavior of this method:
https://github.com/seiller/pymwp/blob/4250ab22bab7d7057c4949712ca35b9e76b50fd5/pymwp/relation.py#L130-L136
This is the only place where
i
may be introduced. It is run on each while loop node during the analysis (after computing fixpoint).Some open questions:
What I don't get is that it seems that we are applying that correction to all the coef., and not only to the ones on the diagonal. What am I missing?
I think that if the coefficient is not m (meaning it is either 0, w, p or i), then we need to change it to i: as of now, I don't think that's what we do.
this expression is totally different if you change parentheses:
to
the latter checks for diagonal scalars only.
The text was updated successfully, but these errors were encountered: