Logic is traditionally divided into deductive reasoning, concerned with what follows logically from given premises, and inductive reasoning, concerned with how we can go from some number of observed events to a reliable generalization.

As a science, logic defines the structure of statement and argument and devises formulae by which these are codified. Implicit in a study of logic is the understanding of what makes a good argument and what arguments are fallacious.

Philosophical logic deals with formal descriptions of natural language. Most philosophers assume that the bulk of "normal" proper reasoning can be captured by logic, if one can find the right method for translating ordinary language into that logic.

Following are more specific discussions of some systems of logic. See also: list of topics in logic.

Aristotelian logic was pioneered by Aristotle. Although it is possible that Aristotle was taught by someone else, the earliest study of reasoning can be attributed to Aristotle. Aristotle and his followers held that two of the most important principles of logic are the law of non-contradiction and the law of excluded middle. This kind of logic is now given various names to distinguish it from more recent systems of logic, e.g., *Aristotelian logic* or *classical two-valued logic*.

The law of non-contradiction states that no proposition is both true and false and law of excluded middle states that a proposition must either be true or false. In combination, these laws require two truth values that are mutually exclusive. A proposition can be either true or false, but cannot be both at the same time.

Some have considered classical logic to be just like a mathematical theory, and in particular the laws of non-contradiction and the excluded middle to be simply axioms of the theory, which have to be assumed without proof. In fact this is not so:

- Assume the law of non-contradiction is false. This means it can still be true, so therefore it is true (it is only the law of non-contradiction that prevents " can be" from necessarily becoming "is"). Therefore classical logic still remains valid.
- Assume the law of the excluded middle is not true. It does not follow that the law of the excluded middle is false, or indeed that any other proposition of classical logic which was true is now false.
- More generally, consider the proposition: "The validity of Rule X is fundamental to the validity of logic. Unless you assume the validity of Rule X, logic is not valid". Now assume that Rule X (whatever it might be) is false. The conclusion that logic is not valid has to follow by logical reasoning. But if logic is not valid, this reasoning is also invalid, and the conclusion cannot be drawn. Thus, the validity of logic is independent of the assumption of validity of any of its supposed laws. (This is an argument by self-reference.)

Formal logic, also called symbolic logic, is concerned primarily with the structure of reasoning. Formal logic deals with the relationships between concepts and provides a way to compose proofs of statements. In formal logic, concepts are rigorously defined, and sentences are translated into a precise, compact, and unambiguous symbolic notation.

Some examples of symbolic notation are:

*p*: 1 + 2 = 3

Two propositions can be combined using the operations of *conjunction*, *disjunction or conditional*. These are called *binary logical operators*. Such combined propositions are called '\*compound proposition*'s. For example,

- p: 1 + 1 = 2
*and**"logic is the study of reasoning."*

In mathematics and computer science, one may want to state a proposition depending on some variables:

*p*:*n*is an odd integer.

A proposition with free variables is called **propositional function** with **domain of discourse** *D*. To form an actual proposition, one uses **quantifiers**. For every *n*, or for some *n*, can be specified by quantifiers: either the *universal quantifier* or the *existential quantifier*. For example,

- for all
*n*in*D*,*P*(*n*).

Mathematical logic is the use of formal logic to study mathematical reasoning. At the beginning of the twentieth century, philosophical logicians including (Frege, Russell) attempted to prove that mathematics could be entirely reduced to logic. They held that in discovering the "logical form" of a sentence, you were somehow revealing the "right" way to say it, or uncovering some previously hidden essence. The reduction failed, but in the process, logic took on much of the notation and methodology of mathematics, and nowadays logic is accepted as an accurate way to describe mathematical reasoning.

Philosophical logic is essentially a continuation of the traditional discipline that was called "Logic" before it was supplanted by the invention of Mathematical logic. It is concerned with the elucidation of ideas such as reference, predication, identity, truth, quantification, existence, and others. Philosophical logic has a much greater concern with the connection between natural language and logic. See Philosophical logic.

Gottlob Frege, in his *Begriffsschrift*, discovered a way to rearrange many sentences to make their logical form clear, to show how sentences relate to one another in certain respects. Prior to Frege, formal logic had not been successful beyond the level of sentential logic: it could represent the structure of sentences composed of other sentences using such words as "and", "or", and "not," but it could not break sentences down into smaller parts. It could not show how "Cows are animals" entails "Parts of cows are parts of animals."

Sentential logic explains the workings of words such as "and", "but", "or", "not", "if-then", "if and only if", and "neither-nor". Frege expanded logic to include words such as "all", "some", and "none". He showed how we can introduce variables and "quantifiers" to rearrange sentences.

- "All humans are mortal" becomes "All things x are such that, if x is a human then x is mortal." which may be written symbolically

- "Some humans are vegetarian" becomes "There exists some (at least one) thing x such that x is human and x is vegetarian" which may be written symbolically

Frege treats simple sentences without subject nouns as predicates and applies them to "dummy objects" (x). The logical structure in discourse about objects can then be operated on according to the rules of sentential logic, with some additional details for adding and removing quantifiers. Frege's work started contemporary formal logic.

Frege adds to sentential logic (1) the vocabulary of quantifiers (upside-down A, backward E) and variables, (2) a semantics that explains that the variables denote individual objects and the quantifiers have something like the force of "all" "some" in relation to those objects, and (3) methods for using these in language. To introduce an "All" quantifier, you assume an arbitrary variable, prove something that must hold true of it, and then prove that it didn't *matter* which variable you chose, that would have held true. An "All" quantifier can be removed by applying the sentence to any particular object at all. A "Some" (exists) quantifier can be added to a sentence true of any object at all; it can be removed in favor of a term about which you are not already presupposing any information.

The logics discussed above are all "bivalent" or "two-valued"; that is, the semantics for each of these languages will assign to every sentence either the value "True" or the value "False."

Systems which do not always make this distinction are known as non-Aristotelian logics, or multi-valued logics.

In the early 20th century Jan Łukasiewicz investigated the extension of the traditional true/false values to include a third value, "possible".

Logics such as fuzzy logic have since been devised with an infinite number of "degrees of truth", e.g., represented by a real number between 0 and 1. Bayesian probability can be interpreted as a system of logic where probability is the subjective truth value.

Logic is extensively used in the fields of artificial intelligence, and computer science.

In the 1950s and 1960s, researchers predicted that when human knowledge could be expressed using logic with mathematical notation, it would be possible to create a machine that reasons, or artificial intelligence. This turned out to be more difficult than expected because of the complexity of human reasoning. Logic programming is an attempt to make computers do logical reasoning and Prolog programming language is commonly used for it.

In symbolic logic and mathematical logic, proofs by humans can be computer-assisted. Using automated theorem proving the machines can find and check proofs, as well as work with proofs too lengthy to be written out by hand.

In computer science, Boolean algebra is the basis of hardware design, as well as much software design.

A large class of elementary logical puzzles can be solved using the laws of boolean algebra and logic truth tables. Familiarity with boolean algebra and its simplification process is a prerequisite to understand the following examples.

John and Bill are residents of the Keikie Island.

Who is who?

Bill: We are different.

Who is who?

Who is who?

Let *J* be true if John is a knight and let *B* be true if Bill is a knight. Now, either John is a knight and what he said was true, or John is not a knight and what he said was false. Translating that into Boolean algebra, we get:

- by de Morgan's theorem.

See also analytic proposition; college logic; argument form; validity; soundness; cogency; deduction and induction; lambda calculus; modus ponens; affirming the consequent; modus tollens; disjunctive syllogism, faith, Scientific method; fuzzy logic; history of logic; set theory