Class BitVectorFormulaSolverSat4j

  • All Implemented Interfaces:
    Solver<java.util.Map<ru.ispras.fortress.data.Variable,​ru.ispras.fortress.data.types.bitvector.BitVector>>

    public final class BitVectorFormulaSolverSat4j
    extends java.lang.Object
    implements Solver<java.util.Map<ru.ispras.fortress.data.Variable,​ru.ispras.fortress.data.types.bitvector.BitVector>>
    BitVectorFormulaSolverSat4j is a SAT-based bit-vector constraint solver.
    • Constructor Detail

      • BitVectorFormulaSolverSat4j

        public BitVectorFormulaSolverSat4j​(BitVectorFormulaBuilder builder,
                                           BitVectorVariableInitializer initializer)
        Constructs a solver.
        Parameters:
        builder - the builder of the problem to be solved.
        initializer - the initializer to be used to fill the unused fields.
      • BitVectorFormulaSolverSat4j

        public BitVectorFormulaSolverSat4j​(java.util.Collection<ru.ispras.fortress.expression.Node> formulae,
                                           BitVectorVariableInitializer initializer)
        Constructs a solver.
        Parameters:
        formulae - the constraints to be solved.
        initializer - the initializer to be used to fill the unused fields.
      • BitVectorFormulaSolverSat4j

        public BitVectorFormulaSolverSat4j​(ru.ispras.fortress.expression.Node formula,
                                           BitVectorVariableInitializer initializer)
        Constructs a solver.
        Parameters:
        formula - the constraint to be solved.
        initializer - the initializer to be used to fill the unused fields.
    • Method Detail

      • solve

        public SolverResult<java.util.Map<ru.ispras.fortress.data.Variable,​ru.ispras.fortress.data.types.bitvector.BitVector>> solve​(Solver.Mode mode)
        Description copied from interface: Solver
        Checks whether the equation clause is satisfiable and returns a solution (if required).
        Specified by:
        solve in interface Solver<java.util.Map<ru.ispras.fortress.data.Variable,​ru.ispras.fortress.data.types.bitvector.BitVector>>
        Parameters:
        mode - the solver mode.
        Returns:
        SAT if the equation clause is satisfiable; UNSAT otherwise.