usi-verification-and-security / golem

Solver for Constrained Horn Clauses
MIT License
34 stars 7 forks source link

PDKIND: Add engine #65

Closed stepanhen closed 2 months ago

stepanhen commented 4 months ago

Implement PDKIND Engine in Golem Solver

Overview

This pull request integrates the PDKIND (Property Directed K-Induction) algorithm into the Golem solver. The PDKIND algorithm is detailed in the IEEE paper.

PDKIND algorithm consists of 3 main methods:

In the paper, there were also mentioned two data structures that are needed for the methods mentioned above to run effectively. In this implementation, they are called:

The Reachable() method and RFrame were wrapped in a ReachabilityChecker class so that each instance of this class can construct and reuse its RFrame using the Reachable() method.

Validity witnesses were also implemented in this engine.

blishko commented 2 months ago

Implement PDKIND Engine in Golem Solver

Please move this description from the comment to the proper description of the PR.