## errors.CompositionError


A contracted transformation's precondition on an input is not implied


Usage

``` python
errors.CompositionError(
    report,
    consumer,
    param,
    producer,
    guarantees,
)
```


by what the contracted transformation producing that input guarantees.

Import it from `sverify.errors`. It is raised when the link is built: when a transform is called on another contracted transformation's result, or on a node ([sverify.Node](Node.md#sverify.Node)) built from one, stored or not. The message names both sides, for example "doubled needs (*.amount \>= 0) (it may be FALSE on some rows) on 't'; not_null only guarantees* .amount.notnull()". With `on_unproved="check"` and a bound input, the precondition is checked on the data instead; with `on_unproved="warn"` it is a warning.


## Attributes


`report`  
The [Report](Report.md#sverify.Report) of the failed proof of the link.

`consumer`  
The name of the transformation whose precondition failed.

`param`  
The parameter of `consumer` that received the input.

`producer`  
The name of the contracted transformation that produced it.
