kodkod.engine.config
Interface Reporter

All Known Implementing Classes:
AbstractReporter, ConsoleReporter

public interface Reporter

Enables passing of messages between the kodkod engine and the client about the following stages of the analysis:

  1. bounds optimization (symmetry detection and breaking of predicate symmetries)
  2. formula optimization (predicate inlining and skolemization)
  3. translation to a boolean circuit
  4. symmetry breaking predicate (SBP) generation
  5. circuit flattening
  6. translation to cnf
  7. running a sat solver on the generated cnf
Some of these stages may not be executed, depending on the options used for analysis.

Author:
Emina Torlak

Method Summary
 void flattening(BooleanFormula circuit)
          Reports that the stage 5 of the analysis is being performed on the given boolean formula.
 void generatingSBP()
          Reports that the analysis is in stage 4.
 void optimizingBounds()
          Reports that bounds optimization is in progress (stage 1).
 void optimizingFormula()
          Reports that formula optimization is in progress (stage 2).
 void skolemizing(Decl decl, Relation skolem, java.util.List<Decl> context)
          Reports that the given declaration is being skolemized using the given skolem relation.
 void solvingCNF(int primaryVars, int vars, int clauses)
          Reports that the cnf generated in stage 7, consisting of the given number of variables and clauses, is being analyzed by a sat solver (stage 8 of the analysis).
 void translatingToBoolean(Formula formula, Bounds bounds)
          Reports that the analysis of the given (optimized) formula and bounds is in stage 3.
 void translatingToCNF(BooleanFormula circuit)
          Reports that the given (optimized) circuit is being translated to CNF (stage 6 of the analysis).
 

Method Detail

optimizingBounds

void optimizingBounds()
Reports that bounds optimization is in progress (stage 1).


optimizingFormula

void optimizingFormula()
Reports that formula optimization is in progress (stage 2).


skolemizing

void skolemizing(Decl decl,
                 Relation skolem,
                 java.util.List<Decl> context)
Reports that the given declaration is being skolemized using the given skolem relation. The context list contains non-skolemizable quantified declarations on which the given decl depends, in the order of declaration (most recent decl is last in the list).


translatingToBoolean

void translatingToBoolean(Formula formula,
                          Bounds bounds)
Reports that the analysis of the given (optimized) formula and bounds is in stage 3. The given bounds are not mutated.

effects:
bounds' = bounds

generatingSBP

void generatingSBP()
Reports that the analysis is in stage 4.


flattening

void flattening(BooleanFormula circuit)
Reports that the stage 5 of the analysis is being performed on the given boolean formula.


translatingToCNF

void translatingToCNF(BooleanFormula circuit)
Reports that the given (optimized) circuit is being translated to CNF (stage 6 of the analysis).


solvingCNF

void solvingCNF(int primaryVars,
                int vars,
                int clauses)
Reports that the cnf generated in stage 7, consisting of the given number of variables and clauses, is being analyzed by a sat solver (stage 8 of the analysis).