implies is used to define implications between logic cases

```
F = implies(A,B)
```

implies is used to define logic implications. As an example, the following code will ensure that a variable **x** satisfies a set of linear inequalities if a binary variable **d** is true. If **d** is false, the value of **x** is arbitrary the constraints could be satisfied, but they do not have to be)

```
d = binvar(1);
F = implies(d,A*x <= b);
```

implies is mainly intended for (BINARY -> BINARY) or (BINARY -> Linear constraint), although it can be used also for more general constructions such as (Linear Constraint -> Linear Constraint) (bearing in mind that these models typically are numerically sensitive and may require a lot of binary variables to be modeled).

The following code reverts the logic: if a set of linear inequalities are satisfied, the binary variable is forced to be true.

```
d = binvar(1);
F = implies(A*x <= b, d);
```

For more examples, check out another logic programming example

Since implies is implemented using a big-M approach, it is crucial that all involved variables have explicit bound constraints.