- Adding incremental infrastructure which allows pushing and popping constraints to/from the InputQuery.
- Dropped support for parsing Tensorflow network format. Newest Marabou version that supports Tensorflow is at commit 190555573e4702.
- Fixed bug in the parsing of
transposenodes in command line C++ parser. - Implemented forward-backward abstract interpretation, symbolic bound tightening, interval arithmetic and simulations for all activation functions.
- Added the BaBSR heuristic as a new branching strategy for ReLU Splitting
- Support Sub of two variables, "Mul" of two constants, Slice, and ConstantOfShape in the python onnx parser
- Renamed SmtCore module to SearchTreeHandler
-
Changes in core solving module:
- Added proof producing versions of
Sign,Max,Absolute ValueandDisjunctionconstraints. - Added support for
LeakyRelu,Clip,Round,Softmax. - Added support for forward-backward abstract interpretation.
- Added proof producing versions of
-
Dependency changes:
- Dropped support for Python 3.7
- Now use ONNX 1.15.0 (up from 1.12.0) in both C++ and Python backends.
- The class
MarabouONNXNetworkno longer depends ontorchin Python backend. - Upgrade C++ standard from 11 to 17.
-
Marabou now prints errors on
stderrrather thanstdout -
Changes to command-line ONNX support:
- Fixed bug with variable lower bounds not being set correctly.
- Fixed bug with sigmoid operators not being parsed correctly.
- Added support for
Tanh,Unsqueeze,Squeeze,LeakyRelu,Dropout, andCastoperators. - Added support for networks with multiple outputs
-
Added command-line support for properties in the VNNLIB format.
-
Changes to Python ONNX support:
- Added support for
Softmax,Bilinear,Dropout,Sign, andLeakyReluoperators. MarabouONNXNetworkno longer exposes the fieldsmadeGraphEquations,varMap,constantMap,shapeMapas these were supposed to be internal implementation details.MarabouONNXNetworkno longer has ashallowCopymethod. Instead of calling this method, you should set the new parameterpreserveExistingConstraintsin the methodreadONNXtoTruewhich has the same effect.- The constructor
MarabouONNXNetwork()and methodMarabouNetwork.readONNXno longer take areindexOutputVarsparameter (was intended to be used for internal testing purposes only). - The method
MarabouNetwork.getMarabouQueryhas been renamedgetInputQuery.
- Added support for
-
Added support for creating constraints using the overloaded syntax
<=,==etc. in the Python backend. Seemaraboupy/examples/7_PythonicAPI.pyfor details.
- Initial versioned release