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
- Variable symbols: