Lazy groundings will miss ground rules that require multiple lazy atoms (atoms that are to be activated in the same iteration).
These are missed because only a single lazy target (a query atom that may represent lazy atoms) is allowed to be lazy (pulls from the special partition) for each lazy grounding query.
To deal with this issue, we can use a config option.
When true, we can go over the powerset of lazy targets (minus the empty set).
When false, we can just do the single targets.
We will probably want to default this to false, because power sets can get large fast.
(Or maybe only consult the option where there are enough lazy atoms (>= 3?).)
Fixed in 668675ee60ce6aa6495387e0d437a1f901d64c29 with the move from LazyGrounding to PartialGrounding.
The powerset behavior is controlled by the partialgrounding.powerset flag.
Lazy groundings will miss ground rules that require multiple lazy atoms (atoms that are to be activated in the same iteration). These are missed because only a single lazy target (a query atom that may represent lazy atoms) is allowed to be lazy (pulls from the special partition) for each lazy grounding query.
To deal with this issue, we can use a config option. When true, we can go over the powerset of lazy targets (minus the empty set). When false, we can just do the single targets. We will probably want to default this to false, because power sets can get large fast. (Or maybe only consult the option where there are enough lazy atoms (>= 3?).)