a ::= n | X | a₀ + a₁ | a₀ - a₁ | a₀ * a₁
b ::= true | false | a₀ = a₁ | a₀ ≤ a₁ | ¬b | b₀ ∧ b₁ | b₀ ∨ b₁
c ::= skip | X := a | c₀ ; c₁ | if b then c₀ else c₁ | while b do c