GaloisInc / pate

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

Infinite loop when nodes related to control flow sync are determined to be infeasible #407

Open lcasburn opened 2 months ago

lcasburn commented 2 months ago

If a node is infeasible (assertion or assumption that is false or unsat), then that node needs to be prevented from getting added to work queue. There's conflict w/ control flow resync logic (which queues nodes for resynchronization), if they're deemed infeasible, these nodes are removed, but then the control flow sync adds the nodes again and causes infinite loop.

This could happen if we manually add assumptions to the verifier.