Propositions

Syntax

<proposition>  ::= <expression>
<propositions> ::= "{" (<proposition> ",")* <proposition>? "}"

Semantics

  • They must evaluate to a value of type bool.
  • They must be able to be evaluated during compilation (e.g., sould not perform IO).