Hello everyone.

I am trying to model some constraints through constraint programming, by using CPLEXCP.jl. But I am having some issues with regards to translating the constraints into functions available by the library. So, the constraint I am trying to model is this:

```
if x = 10 then p + 5 = q
```

However, I am struggling to find a way to express this by using the functions given by library. One straightforward solution, would be to create a variable `r`

.

```
r = q - p
if x = 10 then r = 5
```

The above logic could be implemented as below:

```
# r - (q - p) = r - q + p
r_eq = MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.([1, -1, 1], [r, q, p]), 0)
# r - q + p = 0
MOI.add_constraint(model, r_eq, MOI.EqualsTo(0))
# if x = 10 then r = 5
MOI.add_constraint(model,
MOI.VectorOfVariables([x, r]),
CP.Implication(MOI.EqualTo(10), MOI.EqualTo(5))
# github.com/JuliaConstraints/ConstraintProgrammingExtensions.jl/blob/master/src/Test/test_implication.jl#L16
)
```

However, by doing so, for each `p`

and `q`

we want to impose such constraint, we would have to create another variable `r`

. I would like to know other ways of doing this without imposing a new variable to the model.

Case there is any confusing point, please, let me know. Thanks and regards.