Syntax

Alphabet

Non-logical Symbols (Signature)

  • Sorts (or Domains): (-sorted logic)
    • Each sort is a non-empty set of objects
  • Universe: is the set of all objects in the universe
  • Function Symbols:
    • All are unary functions
    • Each function symbol has two sorts associated with it
  • Predicate Symbols:
    • Each predicate symbol has arity and sorts associated with it
  • Constants Symbols:
    • Each constant symbol has a sort associated with it

For simplicity, we assume the language is finite, and we use in unary function symbols

It is possible for a constant symbol to have more than one sort associated with it, but for simplicity, we assume that each constant symbol has exactly one sort associated with it

Logical Symbols

  • Connectives, Quantifiers, Equality, and Parentheses are the same as in First-order logic
  • Variables: For each sort we have a set of variables .
    • that means that these variables can only take values from the sort
    • When we have a litle number of sorts, we can use for example for and for and so on, and denote instead of .

Language

The language of many-sorted logic is defined by the following grammar:

  • Terms:
    • where is a variable, is a constant symbol, is a function symbol, and is a term
  • Atomic Formulas:
    • where is a predicate symbol, and is a term
  • Formulas and sentences as in FOL

Semantics

  • Variable Assignment, as in FOL, but with the additional requirement that each variable is assigned a value from its sort
  • Interpretation of a terms and formulas is similar to FOLtodo

Examples

Real Analysis

  • The universe consists of three sorts:
    • : the set of real numbers
    • : the set of subsets of
    • : the set of all partial functions from to
  • The language:
    • Variable symbols:
      • for (or )
      • for (or )
      • for (or )
    • Constant symbols:
    • Function symbols: for elements and pairs of elements of
    • Predicate symbols:
      • (order relation) and for elements of
      • (membership relation) for conections between two sorts. (instead of we write )
      • A 3-ary predicate symbol for connecting a function with its domain and codomain (instead of we write )
        • Note: is not a term in the language, therefore composition of functions is not straightforward: is not a formula in the languagetodo