All the variable defining nodes that are for invariants must also be able to be registered as soft constraints, if they aren't annotated with the "defines_var" annotation. With this PR, in that scenario for each output variable a copy is registered with the engine. The copy is then defined by the invariant and the copy is constrained to be equal to the original output.
All the variable defining nodes that are for invariants must also be able to be registered as soft constraints, if they aren't annotated with the "defines_var" annotation. With this PR, in that scenario for each output variable a copy is registered with the engine. The copy is then defined by the invariant and the copy is constrained to be equal to the original output.