Function Support#

DNNP supports the application of any python function to concrete variables and values. These are values which are known to DNNV at runtime. This includes things like: literal values such as 1 or 127.5, any imported functions or classes, any objects built from other concrete values, and any Parameter declared in the specification.

Values that are not concrete are symbolic. The most common instance of a symbolic value is the free variable of a quantifier, such as the first argument to Forall in a DNNP specification. Any expression that is built from symbolic expressions, or a mix of symbolic and concrete expressions is a symbolic expression. Usually this will include a symbolic variable for the neural network input, and a symbolic expression representing the neural network output (or intermediate outputs). Because symbolic expressions do not have a concrete value, it is not possible to apply just any function to them since there is no actual value on which to apply the function and get a result.

Python Support#

abs, len, max, min, sum

Numpy Support#

We partially support the following functions, however not all parameter options are currently supported.

abs, argmax, argmin, max, mean min, shape, sum