Documentation ¶
Overview ¶
Package check implements wrappers for dags that validate whether units respect predefined rules.
Index ¶
- func BasicCorrectness(u gomel.Unit, dag gomel.Dag) error
- func ForkerMuting(u gomel.Unit, _ gomel.Dag) error
- func NoForks(u gomel.Unit, dag gomel.Dag) error
- func NoLevelSkipping(u gomel.Unit, _ gomel.Dag) error
- func NoSelfForkingEvidence(u gomel.Unit, _ gomel.Dag) error
- func ParentConsistency(unit gomel.Unit, dag gomel.Dag) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BasicCorrectness ¶
BasicCorrectness returns a version of the dag that will check the following notion of correctness:
- If a unit has nProc parents such that the i-th parent is created by the i-th process.
- A unit has to have a predecessor or have all parents nil.
- A unit is a prime unit.
func ForkerMuting ¶
ForkerMuting checks if unit's parents respects the forker-muting policy: The following situation is not allowed:
- There exists a process j, s.t. one of parents was created by j AND
- one of the parents has evidence that j is forking.
func NoLevelSkipping ¶
NoLevelSkipping ensures that no process creates a unit of level n>0 without creating a unit of level n-1. To check that it is sufficient to test whether height = level for every unit.
func NoSelfForkingEvidence ¶
NoSelfForkingEvidence checks if a unit does not provide evidence of its creator forking.
func ParentConsistency ¶
ParentConsistency checks the parent consistency rule. Parent consistency rule means that unit's i-th parent cannot be lower (in a level sense) than i-th parent of any other of that units parents. In other words, units seen from U "directly" (as parents) cannot be below the ones seen "indirectly" (as parents of parents).
Types ¶
This section is empty.