Syntax (logic)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
This diagram shows the syntactic entities which may be constructed from formal languages.[1] The symbols and strings of symbols may be broadly divided into nonsense and well-formed formulas. A formal language is identical to the set of its well-formed formulas. The set of well-formed formulas may be broadly divided into theorems and non-theorems.

In logic, syntax is anything having to do with formal languages or formal systems without regard to any interpretation or meaning given to them. Syntax is concerned with the rules used for constructing, or transforming the symbols and words of a language, as contrasted with the semantics of a language which is concerned with its meaning.

The symbols, formulas, systems, theorems, proofs, and interpretations expressed in formal languages are syntactic entities whose properties may be studied without regard to any meaning they may be given, and, in fact, need not be given any.

Syntax is usually associated with the rules (or grammar) governing the composition of texts in a formal language that constitute the well-formed formulas of a formal system.

In computer science, the term syntax refers to the rules governing the composition of well-formed expressions in a programming language. As in mathematical logic, it is independent of semantics and interpretation.

Syntactic entities


A symbol is an idea, abstraction or concept, tokens of which may be marks or a configuration of marks which form a particular pattern. Symbols of a formal language need not be symbols of anything. For instance there are logical constants which do not refer to any idea, but rather serve as a form of punctuation in the language (e.g. parentheses). A symbol or string of symbols may comprise a well-formed formula if the formulation is consistent with the formation rules of the language. Symbols of a formal language must be capable of being specified without any reference to any interpretation of them.

Formal language

A formal language is a syntactic entity which consists of a set of finite strings of symbols which are its words (usually called its well-formed formulas). Which strings of symbols are words is determined by fiat by the creator of the language, usually by specifying a set of formation rules. Such a language can be defined without reference to any meanings of any of its expressions; it can exist before any interpretation is assigned to it – that is, before it has any meaning.

Formation rules

Formation rules are a precise description of which strings of symbols are the well-formed formulas of a formal language. It is synonymous with the set of strings over the alphabet of the formal language which constitute well formed formulas. However, it does not describe their semantics (i.e. what they mean).


A proposition is a sentence expressing something true or false. A proposition is identified ontologically as an idea, concept or abstraction whose token instances are patterns of symbols, marks, sounds, or strings of words.[2] Propositions are considered to be syntactic entities and also truthbearers.

Formal theories

A formal theory is a set of sentences in a formal language.

Formal systems

A formal system (also called a logical calculus, or a logical system) consists of a formal language together with a deductive apparatus (also called a deductive system). The deductive apparatus may consist of a set of transformation rules (also called inference rules) or a set of axioms, or have both. A formal system is used to derive one expression from one or more other expressions. Formal systems, like other syntactic entities may be defined without any interpretation given to it (as being, for instance, a system of arithmetic).

Syntactic consequence within a formal system

A formula A is a syntactic consequence[3][4][5][6] within some formal system  \mathcal{FS} of a set Г of formulas if there is a derivation in formal system  \mathcal{FS} of A from the set Г.

\Gamma \vdash_{\mathrm FS} A

Syntactic consequence does not depend on any interpretation of the formal system.[7]

Syntactic completeness of a formal system

A formal system  \mathcal{S} is syntactically complete[8][9][10][11] (also deductively complete, maximally complete, negation complete or simply complete) iff for each formula A of the language of the system either A or ¬A is a theorem of  \mathcal{S}. In another sense, a formal system is syntactically complete iff no unprovable axiom can be added to it as an axiom without introducing an inconsistency. Truth-functional propositional logic and first-order predicate logic are semantically complete, but not syntactically complete (for example the propositional logic statement consisting of a single variable "a" is not a theorem, and neither is its negation, but these are not tautologies). Gödel's incompleteness theorem shows that no recursive system that is sufficiently powerful, such as the Peano axioms, can be both consistent and complete.


An interpretation of a formal system is the assignment of meanings to the symbols, and truth values to the sentences of a formal system. The study of interpretations is called formal semantics. Giving an interpretation is synonymous with constructing a model. An interpretation is expressed in a metalanguage, which may itself be a formal language, and as such itself is a syntactic entity.


  1. Dictionary Definition
  2. Metalogic, Geoffrey Hunter
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Hunter, Geoffrey, Metalogic: An Introduction to the Metatheory of Standard First-Order Logic, University of California Pres, 1971, p. 75.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.

See also