To start talking about anything we need a collection of symbols (a formal-alphabet). Any possible combination of symbols of the formal-alphabet is a formula. Generally there are some combinations that are not allowed. In this case, a collection of formation-rules (a formal-grammar) indicate which formulas are allowed (or well-formed) and which are not. The collection of all the well-formed-formulas (wffs) is known as a formal-language (note that it’s completely defined by the formal-alphabet and the formal-grammar).
Example: The symbols define the formal-alphabet . Any combination of these symbols is a formula, f.e. etc. We can then use a formal-grammar to mark which of these formulas are valid (wffs), f.e., “Valid formulas have 3 symbols”, “After a can’t be an ”, “After a must be other “. Using these 3 formation-rules we have that f.e., the formulas and are well-formed, and, f.e., are not. Then, with the formal-alphabet setting the possible formulas, and the formal-grammar establishing which formulas are well-formed and which are not, we have completely defined the formal-language . The formal-language (defined by ()) consists then explicitly of the wffs . We can then either write the implicit definition of as or explicitly define it as the collection of wffs .
propositions
A proposition is a statement that has a definite truth-value, either True (T) or False (F). Historically we denote propositions in general with lowercase letters starting from , i.e. , etc.
Examples: The statements “4 is even” () and “Rome is the capital of Italy” () are propositions with truth-value True, while “5 is even” () is a proposition with truth-value False.
logical-connectives
Say we have two propositions and (each, as we saw, with two possible truth-values T or F), we can combine them to form a new proposition in 16 different ways. We’ll use a symbol to denote each case, and call them logical-connectives (or just connectives).

Note: The logical-connectives 11, 13, 2, and 4 in the table are called implication, converse-implication, non-implication, and converse-non-implication respectively.
The new propositions created using connectives (like XOR or NOR) are called compound-propositions in contrast to the starting ones ( and in this case) that are called atomic-propositions.
Example: We can combine the propositions of the previous example with f.e. the XNOR connective to obtain a new proposition that is True only when they have the same truth-value. In this case read as “4 is even XNOR Rome is the capital of Italy” is a True proposition since both atomic-propositions are True (have truth-value True), and read “4 is even XNOR 5 is even” is a False proposition since is True and is False.
Example: We can also combine the propositions of the previous example with f.e. the AND connective to obtain a new proposition that is True only when both atomic-propositions are True. F.e., (“4 is even AND Rome is the capital of Italy”) is True, while (“4 is even AND 5 is even”) is False. Similarly for the NAND connective, we have that is False, while and are True, and for the OR connective, we have that is True, is True, etc.
The 16 logical-connectives of the previous table let us create 16 new compound-propositions from 2 previous atomic-propositions, but a logical-connective can create a new compound-proposition from only one atomic-proposition . The four possible combinations are: let the truth-values of untouched, which is known as the identity-connective, invert them, which is known as the negation connective (), make them always True, known as the tautology connective () and make them always False, known as the contradiction connective ().

We can also have logical-connectives that create a new proposition given 3, 4, and any number of previous propositions. To specify this number we call the 4 connectives that act over just one proposition unary-logical-connectives, the 16 that act over two propositions, binary-logical-connectives, and in general, the that act over propositions, n-ary-logical-connectives. We call the arity of the logical-connective.
Notation note: The binary-logical-connectives AND and OR are often represented with the symbols and respectively. E.g. the proposition is written as , the proposition written , etc.
equivalent-propositions
A proposition can have the exact same truth-values as another, in that cases we talk about equivalent-propositions and denote them using , f.e. any proposition is has the same truth-values that its double negation, therefore we say that they are equivalent-propositions, or directly write . You can also note that the negation of the proposition has the opposite truth-values (check the table of binary-logical-connectives) than the proposition , so the negation of results equivalent to , i.e. . The same thing occurs for , and that is why these connectives receive those names (the negation of OR (NOR) and the negation of AND (NAND)). It is common sometimes to replace one for the other for the sake of readability, comparison, brevity, etc.
There exist two pairs of equivalent-propositions that, given their importance and widespread use, receive a name (Morgan’s laws) and that are and (the negation of OR is the AND of the negations and vice versa). You can check (again just looking at the table of binary-logical-connectives) that the negation of OR (or NOR directly) is only True when both and are False and the AND connective is only True when and are both True, so it is also only True when and are both False. You can also check looking at the table, the dual case of the negation of AND and the OR of the negations and .
Another important pair of equivalent-propositions (important enough to receive a name) is , known as the contrapositive-law. For this reason, the proposition is known as the contrapositive of the implication .
Finally, another equivalence worth highlighting is . For this reason, the logical-connective XNOR is also called “the biconditional”, and represented with the symbol (i.e. instead of we often write ).
functional-completeness
The number of connectives grows extremely fast with the arity (there are binary-logical-connectives, 3-ary-logical-connectives, 4-ary-logical-connectives, 5-ary-logical-connectives, etc.), but luckily, the great majority of these connectives are redundant (they can be constructed, via equivalences, using other connectives) so we can use a much smaller number of them. F.e., we can see in the table of the binary-connectives that the values are mirrored, i.e. the 8 connectives of the left are just the negation of the 8 on the right. Therefore, we can construct the 16 possible binary-connectives with just 8 and the unary-connective of negation (). Furthermore, we can note that the negation is equivalent to the NOR connective applied to the same proposition (NOR), so we don’t need the negation anymore, we can construct the 16 binary-connectives using just the 8 of the left. The excellent news is that we can continue this search to find that we can construct any connective (of any arity!!) using only just one binary-connective! (namely the NOR or the NAND connectives). This property is known as NAND completeness (or NOR completeness).
We also saw that we can write the NAND as a combination of the negation and AND , therefore we can construct any connective from these two (or using the negation and OR connectives since they can construct the NOR). Any collection of connectives that allow us to create all of the others from them (like the NAND and NOR connectives, or the collections and as we just said) is called functional-complete. The functional-complete collections (FCCs) of logical-connectives that do not contain redundant connectives and are called minimal-functional-complete. F.e., the collections and are functional-complete but not minimal since we can construct the and connectives using the other two. The collections are all examples of minimal-functional-complete collections of connectives.
Although we saw that all the connectives can be constructed using just one connective (NAND or NOR), for readability in general we use FCCs of more than one connective. E.g. it’s better to read OR than NORNORNOR, and it is better to read AND than NORNORNOR, etc.
propositional-formal-language
As we have been doing, in general, to represent atomic-propositions we use lowercase letters , and from then, with an FCC (e.g. ) and parentheses to indicate the order of application of the connectives, we can create any proposition, so they form a formal-alphabet where the propositions are formulas (these are known as propositional-formal-alphabets). But not all the formulas of a propositional-formal-alphabet (in our example ) are propositions, e.g. or are just nonsensical combinations of symbols of . With a formal-grammar that identifies as well-formed-formulas just the formulas that are indeed valid propositions, we have that all the propositions form a formal-language, known (very creatively) as propositional-formal-language. The formal-grammar used to convert a propositional-formal-alphabet into a propositional-formal-language is known as a propositional-formal-grammar, and the most commonly used consist of just two formation-rules:
- If is an atomic-proposition (e.g., ), then is a wff.
- If and are wffs, then and are wffs, and similarly for other connectives in the FCC, with parentheses enclosing each application.
Examples of wffs of the propositional-formal-language with FCC are , , , , , , etc. And examples of formulas that are not wffs are , , , , , , , , etc.
order-of-precedence
To reduce the use of parentheses, it is common to define an order-of-precedence for the logical-connectives of the FCC. That is, define an order in which they have to be applied if different connectives appear in a proposition without parentheses. F.e., a very common order-of-precedence of connectives, is: negation , AND , OR , implication , and then biconditional (or XOR) . With this order, the proposition is interpreted as , because conjunction () has higher precedence than implication (). Similarly, is interpreted as , since negation () has higher precedence than disjunction (). In contrast, is interpreted as , and is interpreted as .
predicates
A predicate is a statement containing variables, which becomes a proposition when all the variables are given a specific value. Historically we denote variables with lowercase letters starting from , i.e. , etc. and predicates with uppercase letters starting from . The number of variables in a predicate is called its arity.
Example: The statement ” is even” is not a proposition, as its truth-value depends on the value of , but it is a predicate (that we can denote ) that if the value of is, f.e., 2 it becomes the proposition (“2 is even”) with truth-value True, and if the value of is, f.e., 3 it becomes the proposition (“3 is even”) with truth-value False.
Example: Similarly, the binary-predicate (a predicate of two variables) ” is the capital of ” becomes a proposition when both and are specified, e.g., Rome,Spain) (“Rome is the capital of Spain”) is False and Paris,France) is True.
If for the binary-predicate of the previous examples we specify the value of just one of the variables we end up not with a proposition, but with a unary-predicate (a predicate of just one variable).
F.e., if for the previous predicate we specify the value of “Spain”, then ,“Spain”) becomes the unary-predicate ” is the capital of Spain” that f.e. is a True proposition for Madrid)=(Madrid,Spain). Similarly, if we specify the value of “Spain”, then Lima,) becomes the unary-predicate “Lima is the capital of ” that f.e. is a False proposition for Canada)=(Lima,Canada) and a True proposition for Peru)=(Lima,Peru).
In general, if we have a predicate of variables, and we specify the value of only , it becomes a new predicate of variables, and when we specify all the variables it becomes a proposition. So a proposition is a predicate of variables in this context.
F.e., the predicate ” is a city of AND is a city of ” is a 3-ary predicate that if we specify f.e. “Italy” becomes the binary-predicate ” is a city of Italy AND is a city of Italy”, and if we specify the value of also and with f.e. “Lima” and “Madrid”, then it becomes the proposition (or 0-ary predicate) “Lima is a city of Italy AND Madrid is a city of Italy” with truth-value False.
Predicates can be combined using logical-connectives, just as propositions are, to form new predicates (called compound-predicates) since when all the variables of the new compound-predicate are specified, the predicates that were combined (called atomic-predicates) have also all their values specified and become propositions. Then the resulting truth-value is determined just applying the logical-connectives to this propositions.
Example: The predicates ” is even” and ” is greater than ” can be combined using f.e., the logical-connective AND to form the compound-predicate ” is even AND is greater than ” that just as any other predicate becomes a proposition when all of its variables are specified. F.e., becomes the True proposition “4 is even AND 8 is greater than 3”, and f.e., becomes the False proposition “6 is even AND 4 is greater than 9”.
existential-quantifier
There is another way to convert a predicate into a proposition besides specifying the value of all its variables. It is the statement “there exists (at least one) value of that makes a True proposition”. To represent this sentence we use the symbols where we have added the symbol known as the existential-quantifier.
Examples: For the predicate ” is even” without the need to specify a singular value for we know that the proposition (read as “there exists (at least one) value of that makes ” is even” a True proposition”) is a True proposition since f.e. is True, and in the same way we also know that for the predicate “Rio de Janeiro is the capital of the country ” the proposition is a False proposition since there is no value for that makes True.
predicative-formal-language
You can note that since predicates can be combined using logical-connectives (just as propositions are) to form new predicates, and that predicates of 0-arity represent propositions, then the formal-language of predicates (known as predicative-formal-language) is a generalization of the propositional-formal-language that adds to it the power to talk about variables and existence.
A formal-alphabet that lets us write any predicate (known as a predicative-formal-alphabet), is, as you can guess, formed by the symbols used to form predicates (uppercase letter starting from , and lowercase letters starting from and parenthesis and commas to list the variables), to combine them (an FCC of logical-connectives), and to talk about existence (the existential-quantifier ). An example of a predicative-formal-alphabet is (compare with the example of a propositional-formal-alphabet).
Just as we saw in the propositional-formal-language) case, every predicate is a formula of a predicative-formal-alphabet, but not every formula of a predicative-formal-alphabet is a predicate, since a lot of them are nonsensical combinations of symbols of the formal-alphabet. To differentiate them, we need a formal-grammar. The formal-grammar used to convert a predicative-formal-alphabet into a predicative-formal-language, is known as a predicative-formal-grammar, and the most commonly used consist of just the next three formation-rules:
- If is a predicate symbol of arity , and are variable symbols, then is a wff.
- If and are wffs, then and are wffs, and similarly for other connectives in the FCC, with parentheses enclosing each application.
- If is a wff and is a variable symbol, then is a wff.
The propositional-formal-language is a very elemental formal-language and it lacks the power to express ideas more complex than true or false statements. As we’ve said, the predicative-formal-language is a generalization that adds to it the power to talk about variables and existence. This seemingly simple addition might not seem to represent a big change, but incredibly, it ends up providing the formal-language with (as we’ll see a little later) the power to express all the mathematics known to the moment!!
additional-quantifiers
For a predicate that could be f.e. “Milan is the capital of the country ”, we saw that is a proposition (False in this case). We can apply the negation connective to make it a True proposition, i.e. is a True proposition read as “there exists no value of that makes a True proposition”. To represent this more concisely we use the symbol (known as the non-existential-quantifier) to write directly as .
We can also use the existential-quantifier to the negation of the predicate, i.e. read as “there exists (at least one) value of that makes a True proposition” or equivalently, “there exists (at least one) value of that makes a False proposition”. Note that if use the non-existential-quantifier to the negation of the predicate, i.e. , we are stating that “there exists no value of that makes a False proposition”, and this is equivalently to the statement “every value of makes a True proposition”. We can represent this last statement with the symbols (making use of the new symbol , known as the universal-quantifier).
The existential-quantifier in f.e. states that “there exists (at least one) value of that makes a True proposition”, but sometimes it is useful to clarify that “there exists exactly one value of that makes a True proposition”. This latter proposition is represented with the symbol (known as the existence-and-uniqueness-quantifier) to write . This proposition is True if there is one and only one value of the variable for which is True, and False otherwise.
Example: For the predicate ” is the capital of Spain”, the proposition is True because there is exactly one value of , namely “Madrid”, that makes True. In contrast, for the predicate ” is even”, the proposition is False because there are multiple values of (f.e. 2, 4, 6) that make True. Similarly, for the predicate “Rio de Janeiro is the capital of the country ”, is False because no value of makes True.
redundancy-of-quantifiers
The existence-and-uniqueness-quantifier can be expressed using the existential-quantifier and logical-connectives. Specifically, is equivalent to , which states that there exists an for which is True and there does not exist a different for which is True. This shows that , like and , is not strictly necessary for the predicative-formal-language, as all three can be written using and the functional-complete collection (FCC) of logical-connectives. However, including , , and in the predicative-formal-alphabet is convenient because they shorten formulas and make propositions more intuitive. Note that if we include the quantifiers , , and in the predicative-formal-alphabet (f.e., ), we must update the predicative-formal-grammar to account for them. The third formation-rule then becomes: 3. If is a wff and is a variable symbol, then , , , and are wffs.
Note that the predicative-formal-language remains fully expressive with only in the alphabet, but adding these quantifiers enhances readability and compactness. This is analogous to defining a propositional-formal-language with an FCC of logical-connectives that is not minimal (i.e. that contains redundant connectives that enhance readability and compactness).
Note that one can have a predicative-formal-language just connecting propositions with NAND and quantifying predicates with , i.e. by understanding just the concept of existence () and the concept of “two things not being true simultaneously” (NAND). If we use instead as FCC we can have a predicative-formal-language by understanding just the phrase “to exist or to not exist” (that is indeed the question :P).
partial-quantification
When applying quantifiers to multivariate-predicates (predicates of more than one variable), we can quantify some but not all variables. If we apply a quantifier to fewer than all variables, the result is not a proposition but a predicate with fewer variables. F.e., consider the predicate ” is greater than “. Applying the existential-quantifier to , we write , which becomes the unary-predicate “there exists an that is greater than “. This predicate is True f.e. for (since ) but False for “the largest number” (if such a concept is defined).
Example: For the binary-predicate ” is the capital of ”, the proposition is the unary-predicate “there exists an that is the capital of ”, which is True f.e. for “France” (since Paris, France is True) but False for “Antarctica” (since no makes True). Similarly, is the unary-predicate “for all , is the capital of ”, which is False for any since no single is the capital of all countries.
multiple-variables-quantifiers
When multiple quantifiers are applied consecutively to different variables of a predicate, we can collapse the notation for brevity. F.e., the proposition , read as “there exists an , a , and a such that is True”, can be written more concisely as . Similarly, can be written as . This collapsed notation is a shorthand that assumes the quantifiers apply to each variable in sequence but does not change the meaning of the proposition or predicate.
Example: For the predicate ” is a city of AND is a city of ”, the proposition can be written as , meaning “there exist , , and such that and are cities of “. This is True f.e. for “Rome”, “Milan”, and “Italy”. Similarly, for ” is greater than ” means “for all and , is greater than ”, which is False since not all satisfy .
Note: You may have noticed that the predicative-formal-grammar does not have a rule for the application of e.g. . The collapsed notation is a shorthand for , permitted in the predicative-formal-grammar only as a notational convenience, provided the quantifiers are applied sequentially to distinct variables (i.e., is just a notational tool that replaces the formal ).
order-of-quantification
When we apply multiple quantifiers of different types, the order in which we apply them can change the meaning of the resulting proposition.
Example: For the predicate ” is the capital of ”, both and are the same True proposition, namely “There exists a city that is the capital of some country”. However, and represent two completely different propositions, the False proposition “There exists a city that is the capital of every country”, and the True proposition “Every country has a capital” respectively.
Example: For the predicate ” is a book written by ”, both and are the same True proposition, namely “There exists a book that was written by some author”. However, represents the False proposition “There exists an author that has written every book”, and the True proposition “Every book has an author”.
For this reason, when we apply multiple quantifiers of different types, we must pay special attention to their order of application.