Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PE: Partial evaluation for Constrained Horn clauses (pure Prolog)

PE is a tool for partially evaluating Constrained Horn clauses.

Programming

PE is written in Ciao and is interfaced with Parma Polyhedra library and Yices SMT solver for handling constraints.

Requirements

Ciao 1.16 or newer (installed from git repository with ./ciao-boot.sh local-install)

The following dependendencies (including third-party code) need to be installed automatically:

Note: Installing RAHFT (ciao get github.com/bishoksan/RAHFT) includes installation of all the above dependencies, and the Yices and PPL libraries.

  • dot for drawing control flow graphs.

Partial evaluation

PE is carried out with respect to a fixed set of properties. Properties are generated using the props.pl or props1.pl programs

  • See shell script pe.sh

Control Flow Refinement

PE is used as the central component in a control-flow refinement algorithm.

  • See shell script cfr.sh

Verification of safety properties

PE is used in an iterative algorithm for checking safety of a set of CHCs.

  • See shell script safe.sh

Constraint specialisation

(Does not use PE). Strengthens constraints in a set of CHCs with respect to an entry goal, adding invariants to the clause bodies.

  • See shell script spec.sh

About

Partial evaluation for Prolog

Resources

Stars

3 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages