Closed neilconway closed 10 years ago
the algorithm used by calc_stratum() looks broken. as we explore a path, if we visit a node we've already visited, AND anywhere on the path we've crossed a negated edge, we throw unstratifiable. we should only do so if the negated edge was IN the cycle. fix coming.
someone remind me why this is no longer done "declaratively" in depanalysis by testing if a node is reachable from itself on a path with negation?
Given this program:
Bud mistakenly claims this program is unstratifiable: