cottax.core.driven.proof module

DrivenGraph: an executable graph whose every problem is driven.

check_driven[N: Label, V: Place](name: N, node: NodeDefinition[V])[source]

Every problem carries a contract, placed.

Return type:

Iterator[Violation]

class DrivenGraph[N: Label, V: Place](graph: NestingGraph[N, V])[source]

Bases: SteppedExecutableGraph[N, V], Generic[N, V]

Executable graph with additionally all problems driven.

checks_node: PerLevel[tuple[Callable[[N, NodeDefinition[V]], Iterator[Violation]], ...]] = (<function check_driven>,)

the one thing a level below adds.

Type:

(name, node) -> violations

class Undriven(node: object)[source]

Bases: Violation

node: object
template: AbstractClassVar[str] = '{node!r} carries no driver, so nothing answers it -- `Assign` one'

e.g. ‘output {place!r} is owned by both {other!r} and {node!r}’

Type:

Wording