# Part 1: Overview of CP, Filtering, Search, Consistency, Fixpoint¶

We propose a set of exercises to extend MiniCP with useful features. By doing these exercises you will gradually progress in your understanding of CP. For each exercise, we ask you to implement JUnit tests to make sure that your implementation works as expected. If you don’t test each feature independently you take the risk to lose a lot of time finding very difficult bugs.

*We ask you not to publish your solutions on a public repository.
The instructors interested to get the source code of
our solutions can contact us.*

## Slides¶

## Theoretical Questions¶

## Forking MiniCP to Do the Programming Exercices¶

Follow the tutorial and then clone your repository.

## Less-or-equal Reified Constraint¶

Implement IsLessOrEqual.java.

This is a propagator for the constraint b iff x <= c, which is called the reified constraint (or: reification) of the constraint x <= c: it holds if Boolean variable b is true if and only if variable x is less than or equal to value c.

For example, the constraint holds for

```
b = true , x = 4, c = 5
b = false, x = 4, c = 2
```

but is violated for

```
b = true , x = 5, c = 4
b = false, x = 2, c = 4
```

For an example of reification, you can look at IsEqual.java.

Check that your implementation passes the tests IsLessOrEqualTest.java.