GaloisInc / pate

Patches Assured up to Trace Equivalence
Other
15 stars 2 forks source link

Nodes are not properly re-queued when propagating conditions across desync points #447

Open danmatichuk opened 6 days ago

danmatichuk commented 6 days ago

When a condition is propagated through a single-sided analysis, it needs to be propagated from the single-sided copy of the desync node to the original two-sided node (if it is not provable yet at the desync point).

Currently when a condition is added to a single-sided desync point, the two-sided node is not re-queued for analysis and as a result the condition is not propagated by default. As a result, assertions that are unprovable are not caught, as they stop propagating at the desync point and then are allowed to remain unproven without raising any errors.