In mathematics and related technical fields, a mathematical object is complete if nothing needs to be added to it.
This is made precise in various ways, several of which have a related notion of completion.
- In graph theory, a complete graph is an undirected graph where every pair of vertices has exactly one edge connecting them.
- In logic, a formal calculus (often just specified by a set of additional axioms used to formalize some theory within the underlying logic) is said to be complete if, for any statement P, a proof exists for P or for not P. A system is consistent if a proof never exists for both P and not P. Gödel's incompleteness theorem proved that no system as powerful as the Peano axioms can be both consistent and complete. See also below for another notion of completeness in logic.
- In proof theory and related fields of mathematical logic, a formal calculus is said to be complete with respect to a certain logic (i.e. wrt its semantics), if every statement P, that follows sematically from a set of premisses G, can be derived syntactically from these premisses within the calculus. Formally, G|=P implies G|-P. Especially, all tautologies of the logic can be proven. Even when working with classical logic, this is not equivalent to the notion of completeness introduced above (both a statement and its negation might not be tautologies wrt the logic). The reverse implication is called soundness.
- In complexity theory, a problem P is said to be complete for a complexity class C, under a given type of reduction, if P is in C, and every problem in C reduces to P using that reduction. For example, each problem in the class NP-Complete is complete for the class NP, under polynomial-time, many-one reduction.