Sometimes it is convenient to make sure some condition is true in your program before continuing execution. For that we can use an assertion.

An assertion is made using the assert keyword. It always acts on an expression of type Bool.

If the expression is true then the whole assertion evaluates to the unit type () and the program continues execution as normal. If the expression evaluates to false then the program traps.

let condition : Bool = 1 > 2;

assert condition; // Program traps!

Because our condition is false, this program will trap at the assertion. The exact consequences of a trap inside a running canister will be explained later in this book.