Describe dependencies in planner using equivalency
Using only implication is problematic if we add negation to chain. In such case its meaning isn't that it implies negative value, but that it doesn't imply. That is problem if we use use negative dependencies. New approach uses equivalency instead of implications. We used equivalency originally because formulas added to sat solver as dependencies of one package would introduced limitation on package even if original package isn't selected and that is wrong. Now instead of that we use formulas activators. It's variable that ensures that if it isn't set than formula is always true. Activator is package group or candidate for which given dependency is build. This way we are able to ignore dependency formulas that don't have to be activated because we don't choose that package.
Showing with 81 additions and 78 deletions