# Logical relation

An expression whose value is TRUE or FALSE is a **logical expression**. Such
expressions may contain boolean variables. If A,B, and laminar are boolean,
then the following is a logical expression:

A + (B * laminar)

as is (and probably more clearly)

A OR (B AND laminar)

The plus operator acts like an OR among the terms while the times operator acts like an AND. Think of TRUE being equal to 1 and FALSE being equal to 0 with the rules

- 1+1 = 0+1 = 1+0 = 1
- 0+0 = 0
- 1*1 = 1 and
- 0*1 = 1*0 = 0*0 = 0.

If A is FALSE, B is TRUE and laminar is TRUE, the above expression has the value

`FALSE OR (TRUE AND TRUE) -->TRUE`

or in terms of ones and zeros

`0 + (1 * 1) --> 1.`

**Logical relations** are then made by putting together logical expressions with
the boolean relational operators == and !=. Since we have no logical solving
engine we have not pushed the implementation of logical relations very hard
yet.

*Note: the LRSlv solver is an implementation of a logical relation solver, although it has some limitations on what it can/cannot acheive.*

See also SATISFIED, Conditional modelling.