Used to perform a logical implication on two expressions.

## Syntax

*result*=*expression1* **Imp** *expression2*

The **Imp** operator syntax has these parts:

Part | Description |
---|---|

result |
Required; any numeric variable. |

expression1 |
Required; any expression. |

expression2 |
Required; any expression. |

## Remarks

The following table illustrates how *result* is determined.

If expression1 is |
And expression2 is |
The result is |
---|---|---|

True |
True |
True |

True |
False |
False |

True |
Null | Null |

False |
True |
True |

False |
False |
True |

False |
Null |
True |

Null |
True |
True |

Null |
False |
Null |

Null |
Null |
Null |

The **Imp** operator performs a bitwise comparison of identically positioned bits in two numeric expressions and sets the corresponding bit in *result* according to the following table.

If bit in expression1 is |
And bit in expression2 is |
The result is |
---|---|---|

0 | 0 | 1 |

0 | 1 | 1 |

1 | 0 | 0 |

1 | 1 | 1 |

## Example

This example uses the **Imp** operator to perform a logical implication on two expressions.

```
Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null ' Initialize variables.
MyCheck = A > B Imp B > C ' Returns True.
MyCheck = A > B Imp C > B ' Returns False.
MyCheck = B > A Imp C > B ' Returns True.
MyCheck = B > A Imp C > D ' Returns True.
MyCheck = C > D Imp B > A ' Returns Null.
MyCheck = B Imp A ' Returns -1 (bitwise comparison).
```