Ore's theorem
Ore's theorem is a result in graph theory proved in 1960 by Norwegian mathematician Øystein Ore. It gives a sufficient condition for a graph to be Hamiltonian, essentially stating that a graph with sufficiently many edges must contain a Hamilton cycle. Specifically, the theorem considers the sum of the degrees of pairs of nonadjacent vertices: if every such pair has a sum that at least equals the total number of vertices in the graph, then the graph is Hamiltonian.
Formal statement
Let G be a (finite and simple) graph with n ≥ 3 vertices. We denote by deg v the degree of a vertex v in G, i.e. the number of incident edges in G to v. Then, Ore's theorem states that if

deg v + deg w ≥ n for every pair of distinct nonadjacent vertices v and w of G
(∗)
then G is Hamiltonian.
Proof
It is equivalent to show that every nonHamiltonian graph G does not obey condition (∗). Accordingly, let G be a graph on n ≥ 3 vertices that is not Hamiltonian, and let H be formed from G by adding edges one at a time that do not create a Hamiltonian cycle, until no more edges can be added. Let x and y be any two nonadjacent vertices in H. Then adding edge xy to H would create at least one new Hamiltonian cycle, and the edges other than xy in such a cycle must form a Hamiltonian path v_{1}v_{2}...v_{n} in H with x = v_{1} and y = v_{n}. For each index i in the range 2 ≤ i ≤ n, consider the two possible edges in H from v_{1} to v_{i} and from v_{i − 1} to v_{n}. At most one of these two edges can be present in H, for otherwise the cycle v_{1}v_{2}...v_{i − 1}v_{n}v_{n − 1}...v_{i} would be a Hamiltonian cycle. Thus, the total number of edges incident to either v_{1} or v_{n} is at most equal to the number of choices of i, which is n − 1. Therefore, H does not obey property (∗), which requires that this total number of edges (deg v_{1} + deg v_{n}) be greater than or equal to n. Since the vertex degrees in G are at most equal to the degrees in H, it follows that G also does not obey property (∗).
Algorithm
Palmer (1997) describes the following simple algorithm for constructing a Hamiltonian cycle in a graph meeting Ore's condition.
 Arrange the vertices arbitrarily into a cycle, ignoring adjacencies in the graph.
 While the cycle contains two consecutive vertices v_{i} and v_{i + 1} that are not adjacent in the graph, perform the following two steps:
 Search for an index j such that the four vertices v_{i}, v_{i + 1}, v_{j}, and v_{j + 1} are all distinct and such that the graph contains edges from v_{i} to v_{j} and from v_{j + 1} to v_{i + 1}
 Reverse the part of the cycle between v_{i + 1} and v_{j} (inclusive).
Each step increases the number of consecutive pairs in the cycle that are adjacent in the graph, by one or two pairs (depending on whether v_{j} and v_{j + 1} are already adjacent), so the outer loop can only happen at most n times before the algorithm terminates, where n is the number of vertices in the given graph. By an argument similar to the one in the proof of the theorem, the desired index j must exist, or else the nonadjacent vertices v_{i} and v_{i + 1} would have too small a total degree. Finding i and j, and reversing part of the cycle, can all be accomplished in time O(n). Therefore, the total time for the algorithm is O(n^{2}), matching the number of edges in the input graph.
Related results
Ore's theorem is a generalization of Dirac's theorem that, when each vertex has degree at least n/2, the graph is Hamiltonian. For, if a graph meets Dirac's condition, then clearly each pair of vertices has degrees adding to at least n.
In turn Ore's theorem is generalized by the Bondy–Chvátal theorem. One may define a closure operation on a graph in which, whenever two nonadjacent vertices have degrees adding to at least n, one adds an edge connecting them; if a graph meets the conditions of Ore's theorem, its closure is a complete graph. The Bondy–Chvátal theorem states that a graph is Hamiltonian if and only if its closure is Hamiltonian; since the complete graph is Hamiltonian, Ore's theorem is an immediate consequence.
Woodall (1972) found a version of Ore's theorem that applies to directed graphs. Suppose a digraph G has the property that, for every two vertices u and v, either there is an edge from u to v or the outdegree of u plus the indegree of v equals or exceeds the number of vertices in G. Then, according to Woodall's theorem, G contains a directed Hamiltonian cycle. Ore's theorem may be obtained from Woodall by replacing every edge in a given undirected graph by a pair of directed edges. A closely related theorem by Meyniel (1973) states that an nvertex strongly connected digraph with the property that, for every two nonadjacent vertices u and v, the total number of edges incident to u or v is at least 2n − 1 must be Hamiltonian.
Ore's theorem may also be strengthened to give a stronger conclusion than Hamiltonicity as a consequence of the degree condition in the theorem. Specifically, every graph satisfying the conditions of Ore's theorem is either a regular complete bipartite graph or is pancyclic (Bondy 1971).
References
 Bondy, J. A. (1971), "Pancyclic graphs I", Journal of Combinatorial Theory, Series B, 11 (1): 80–84, doi:10.1016/00958956(71)900165.
 Meyniel, M. (1973), "Une condition suffisante d'existence d'un circuit hamiltonien dans un graphe orienté", Journal of Combinatorial Theory, Series B (in French), 14 (2): 137–147, doi:10.1016/00958956(73)900579.
 Ore, Ø. (1960), "Note on Hamilton circuits", American Mathematical Monthly, 67 (1): 55, doi:10.2307/2308928, JSTOR 2308928.
 Palmer, E. M. (1997), "The hidden algorithm of Ore's theorem on Hamiltonian cycles", Computers & Mathematics with Applications, 34 (11): 113–119, doi:10.1016/S08981221(97)002253, MR 1486890.
 Woodall, D. R. (1972), "Sufficient conditions for circuits in graphs", Proceedings of the London Mathematical Society, Third Series, 24: 739–755, doi:10.1112/plms/s324.4.739, MR 0318000.