 # Logical functions

Gorgeous Karnaugh scripting engine provides some logical functions to replace and extend Lua logical operators. Main difference between Gorgeous Karnaugh logical functions and Lua logical operators is in interpretation of values and its conversions to logical true and false. All Lua logical operators consider both false and nil as false and anything else as true, instead of this Gorgeous Karnaugh logical functions consider nil, false and numeric 0 as false and anything else as true. All Gorgeous Karnaugh logical functions have prefix 'l' to differ with Lua operators and doesn't have the 'gk' prefix to make names shorter.

• lnot - performs logical negation (or complement) of input value.
• land - performs logical multiplication (conjunction) of input values
• lnand - the short form for expression lnot(land(...))
• lor - performs logical addition (disjunction) of input values
• lnor - the short form for expression lnot(lor(...))
• lxor - performs logical 'exclusive or' operation of input values
• lxnor - the short form for expression lnot(lxor(...))
• lequ - performs logical 'equivalence' operation of input values
• lnequ - the short form for expression lnot(lequ(...))
• limpl - performs logical 'implication' operation of input values
• lnimpl - the short form for expression lnot(limpl(...))

## lnot

The lnot logical function performs logical negation (or complement) of input value.

#### Usage

```lnot(val)
```

## land

The land logical function performs logical multiplication (conjunction) of input values. It accepts unlimited number of input values, but it can't be less than 2.

#### Usage

```land(val1,val2[,...])
```

## lnand

The lnand function is the short form for expression lnot(land(...)).

#### Usage

```lnand(val1,val2[,...])
```

## lor

The lor logical function performs logical addition (disjunction) of input values. It accepts unlimited number of input values, but it can't be less than 2.

#### Usage

```lor(val1,val2[,...])
```

## lnor

The lnor function is the short form for expression lnot(lor(...)).

#### Usage

```lnor(val1,val2[,...])
```

## lxor

The lxor logical function performs logical 'exclusive or' operation of input values. It accepts unlimited number of input values, but it can't be less than 2. Meaning of this operation for number of inputs greater then 2 you can see in sample near below.

#### Usage

```lxor(val1,val2[,...])
```

## lxnor

The lxnor function is the short form for expression lnot(lxor(...)).

#### Usage

```lxnor(val1,val2[,...])
```

## lequ

The lequ logical function performs logical 'equivalence' operation of input values. It accepts unlimited number of input values, but it can't be less than 2. Meaning of this operation for number of inputs greater then 2 you can see in sample near below.

#### Usage

```lequ(val1,val2[,...])
```

## lnequ

The lnequ function is the short form for expression lnot(lequ(...)).

#### Usage

```lnequ(val1,val2[,...])
```

## limpl

The limpl logical function performs logical 'implication' operation of input values. It accepts exact 2 input values. Meaning of this operation you can see in sample near below.

#### Usage

```limpl(val1,val2)
```

## lnimpl

The lnimpl function is the short form for expression lnot(limpl(...)).

#### Usage

```lnimpl(val1,val2)
```