1929
Completeness of first-order logic
Gödel's doctoral work, published in 1930, shows that every valid first-order sentence has a proof. A systematic search will therefore find that proof eventually.
Read about the logic
Independent explainer / Logic / Automated reasoning
A plain-language guide to automated theorem proving: resolution, first-order logic, the TPTP format, the CASC competition, SAT and SMT solvers, and proof assistants. Scroll to watch a field of clauses cancel down to nothing.
The idea
Automated theorem proving is the study of programs that decide, without human steps, whether a statement follows from a set of assumptions. The best-known approach, resolution, does not build the proof directly. It adds the negation of the goal to the assumptions and searches for a contradiction.
When two clauses contain a literal and its negation, the rule cancels the pair and merges what is left. If the cancelling ends in a clause with nothing left, the assumptions and the negated goal cannot all be true, so the goal holds. The full explanation takes five minutes to read.
Step by step
The classic example: all humans are mortal, Socrates is human, so is Socrates mortal? Scroll to run the proof.
~human(X) | mortal(X)Premise: every human is mortalhuman(socrates)Premise: Socrates is human~mortal(socrates)Negated goal: assume Socrates is not mortalmortal(socrates)Resolve 1 and 2, with X replaced by socratesResolve 3 and 4: nothing is left, so the goal is provedContradiction reached. The goal follows from the premises.
Eight milestones
Scroll sideways through the dates that shaped the field. Each card links to a guide.
A shared language
Provers from different groups read one plain-text format, TPTP. Each line is an annotated formula: a language, a name, a role and the formula itself.
fof first-order formula, with cnf for clausesaxiom a premise, conjecture the goal to prove![X]: for all X, => implies, ~ not% Socrates, written in TPTP
fof(humans_are_mortal, axiom, ![X]: (human(X) => mortal(X))).
fof(socrates_is_human, axiom, human(socrates)).
fof(socrates_is_mortal, conjecture, mortal(socrates)).
% SZS status Theorem for socrates
How the ideas connect
Fourteen terms from this site, joined by relations the guides state. For example, Skolemization is one step of turning a formula into clauses, and TPTP is the format CASC problems are written in. Drag to turn the map, hover a point to read its name, click to open the guide.
The reading list
Quick answers