Given a set \(T\) of basic semantic types.

  1. \(\tau\) is a semantic type if \(\tau \in T\).
  2. If \(\tau_1\) and \(\tau_2\) are semantic types, then \(\smtyp{\tau_1}{\tau_2}\) is a semantic type.
  3. Nothing else is a semantic type.

Updated: