MarabouCore¶
Maraboupy bindings to the C++ Marabou via pybind11
-
class
maraboupy.MarabouCore.PiecewiseLinearFunctionType[source]¶ Bases:
pybind11_builtins.pybind11_objectMembers:
ReLU
Max
Disjunction
AbsoluteValue
-
maraboupy.MarabouCore.addAbsConstraint(inputQuery: InputQuery, b: int, f: int) → None[source]¶ Add an Abs constraint to the InputQuery
- Parameters
inputQuery (
InputQuery) – Marabou input query to be solvedb (int) – Input variable
f (int) – Output variable
-
maraboupy.MarabouCore.addDisjunctionConstraint(inputQuery: InputQuery, disjuncts: List[List[Equation]]) → None[source]¶ Add a disjunction constraint to the InputQuery
- Parameters
inputQuery (
InputQuery) – Marabou input query to be solveddisjuncts (list of pairs) – A list of disjuncts. Each disjunct is represented by a pair: a list of bounds, and a list of (in)equalities.
-
maraboupy.MarabouCore.addMaxConstraint(inputQuery: InputQuery, elements: Set[int], v: int) → None[source]¶ Add a Max constraint to the InputQuery
- Parameters
inputQuery (
InputQuery) – Marabou input query to be solvedelements (set of int) – Input variables to max constraint
v (int) – Output variable from max constraint
-
maraboupy.MarabouCore.addReluConstraint(inputQuery: InputQuery, var1: int, var2: int) → None[source]¶ Add a Relu constraint to the InputQuery
- Parameters
inputQuery (
InputQuery) – Marabou input query to be solvedvar1 (int) – Input variable to Relu constraint
var2 (int) – Output variable to Relu constraint
-
maraboupy.MarabouCore.addSignConstraint(inputQuery: InputQuery, var1: int, var2: int) → None[source]¶ Add a Sign constraint to the InputQuery
- Parameters
inputQuery (
InputQuery) – Marabou input query to be solvedvar1 (int) – Input variable to Sign constraint
var2 (int) – Output variable to Sign constraint
-
maraboupy.MarabouCore.createInputQuery(arg0: InputQuery, arg1: str, arg2: str) → bool[source]¶ Create input query from network and property file
-
maraboupy.MarabouCore.loadQuery(filename: str) → InputQuery[source]¶ Loads and returns a serialized InputQuery from the given filename
- Parameters
filename (str) – Name of file to load into an InputQuery
- Returns
-
maraboupy.MarabouCore.saveQuery(inputQuery: InputQuery, filename: str) → None[source]¶ Serializes the inputQuery in the given filename
- Parameters
inputQuery (
InputQuery) – Marabou input query to be savedfilename (str) – Name of file to save query
-
maraboupy.MarabouCore.solve(inputQuery: InputQuery, options: MarabouOptions, redirect: str = '') → Tuple[Dict[int, float], Statistics][source]¶ Takes in a description of the InputQuery and returns the solution
- Parameters
inputQuery (
InputQuery) – Marabou input query to be solved(class (options) – ~maraboupy.MarabouCore.Options): Object defining the options used for Marabou
redirect (str, optional) – Filepath to direct standard output, defaults to “”
- Returns
- tuple containing:
vals (Dict[int, float]): Empty dictionary if UNSAT, otherwise a dictionary of SATisfying values for variables
stats (
Statistics): A Statistics object to how Marabou performed
- Return type
(tuple)
-
class
maraboupy.MarabouCore.InputQuery[source]¶ Bases:
pybind11_builtins.pybind11_object-
addEquation(self: maraboupy.MarabouCore.InputQuery, arg0: Equation) → None[source]¶
-
dump(self: maraboupy.MarabouCore.InputQuery) → None[source]¶
-
getLowerBound(self: maraboupy.MarabouCore.InputQuery, arg0: int) → float[source]¶
-
getNumInputVariables(self: maraboupy.MarabouCore.InputQuery) → int[source]¶
-
getNumOutputVariables(self: maraboupy.MarabouCore.InputQuery) → int[source]¶
-
getNumberOfVariables(self: maraboupy.MarabouCore.InputQuery) → int[source]¶
-
getSolutionValue(self: maraboupy.MarabouCore.InputQuery, arg0: int) → float[source]¶
-
getUpperBound(self: maraboupy.MarabouCore.InputQuery, arg0: int) → float[source]¶
-
inputVariableByIndex(self: maraboupy.MarabouCore.InputQuery, arg0: int) → int[source]¶
-
markInputVariable(self: maraboupy.MarabouCore.InputQuery, arg0: int, arg1: int) → None[source]¶
-
markOutputVariable(self: maraboupy.MarabouCore.InputQuery, arg0: int, arg1: int) → None[source]¶
-
outputVariableByIndex(self: maraboupy.MarabouCore.InputQuery, arg0: int) → int[source]¶
-
setLowerBound(self: maraboupy.MarabouCore.InputQuery, arg0: int, arg1: float) → None[source]¶
-
setNumberOfVariables(self: maraboupy.MarabouCore.InputQuery, arg0: int) → None[source]¶
-
setUpperBound(self: maraboupy.MarabouCore.InputQuery, arg0: int, arg1: float) → None[source]¶
-
-
class
maraboupy.MarabouCore.Equation[source]¶ Bases:
pybind11_builtins.pybind11_object-
addAddend(self: maraboupy.MarabouCore.Equation, arg0: float, arg1: int) → None[source]¶
-
setScalar(self: maraboupy.MarabouCore.Equation, arg0: float) → None[source]¶
-
-
class
maraboupy.MarabouCore.Statistics[source]¶ Bases:
pybind11_builtins.pybind11_object-
getMaxDegradation(self: maraboupy.MarabouCore.Statistics) → float[source]¶
-
getMaxStackDepth(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumConstraintFixingSteps(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumMainLoopIterations(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumPops(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumPrecisionRestorations(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumSimplexPivotSelectionsIgnoredForStability(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumSimplexUnstablePivots(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumSplits(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumTableauPivots(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getNumVisitedTreeStates(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getTimeSimplexStepsMicro(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
getTotalTime(self: maraboupy.MarabouCore.Statistics) → int[source]¶
-
hasTimedOut(self: maraboupy.MarabouCore.Statistics) → bool[source]¶
-