Skip to main content

Logical operators

>

(> x y)
(> x y)
  • takes x: a
  • takes y: a
  • produces bool
  • where a is of type integer or decimal

True if x > y

Supported in either invariants or properties.

<

(< x y)
(< x y)
  • takes x: a
  • takes y: a
  • produces bool
  • where a is of type integer or decimal

True if x < y

Supported in either invariants or properties.

>=

(>= x y)
(>= x y)
  • takes x: a
  • takes y: a
  • produces bool
  • where a is of type integer or decimal

True if x >= y

Supported in either invariants or properties.

<=

(<= x y)
(<= x y)
  • takes x: a
  • takes y: a
  • produces bool
  • where a is of type integer or decimal

True if x <= y

Supported in either invariants or properties.

=

(= x y)
(= x y)
  • takes x: a
  • takes y: a
  • produces bool
  • where a is of type integer, decimal, string, time, bool, object, or keyset

True if x = y

Supported in either invariants or properties.

!=

(!= x y)
(!= x y)
  • takes x: a
  • takes y: a
  • produces bool
  • where a is of type integer, decimal, string, time, bool, object, or keyset

True if x != y

Supported in either invariants or properties.

and

(and x y)
(and x y)
  • takes x: bool
  • takes y: bool
  • produces bool

Short-circuiting logical conjunction

Supported in either invariants or properties.

or

(or x y)
(or x y)
  • takes x: bool
  • takes y: bool
  • produces bool

Short-circuiting logical disjunction

Supported in either invariants or properties.

not

(not x)
(not x)
  • takes x: bool
  • produces bool

Logical negation

Supported in either invariants or properties.

when

(when x y)
(when x y)
  • takes x: bool
  • takes y: bool
  • produces bool

Logical implication. Equivalent to (or (not x) y).

Supported in either invariants or properties.

and?

(and? f g a)
(and? f g a)
  • takes f: a -> bool
  • takes g: a -> bool
  • takes a: a
  • produces bool

and the results of applying both f and g to a

Supported in either invariants or properties.

or?

(or? f g a)
(or? f g a)
  • takes f: a -> bool
  • takes g: a -> bool
  • takes a: a
  • produces bool

or the results of applying both f and g to a

Supported in either invariants or properties.

hash

(hash s)
(hash s)
  • takes s: bool
  • produces string

BLAKE2b 256-bit hash of bool values

Supported in properties only.


Receive important developer updates