In mathematics, specifically order theory, the Dedekind–MacNeille completion of a partially ordered set is the smallest complete lattice that contains it. It is named after Holbrook Mann MacNeille whose 1937 paper first defined and constructed it, and after Richard Dedekind because its construction generalizes the Dedekind cuts used by Dedekind to construct the real numbers from the rational numbers. It is also called the completion by cuts or normal completion.
 A partially ordered set (poset) consists of a set of elements together with a binary relation x ≤ y on pairs of elements that is reflexive (x ≤ x for every x), transitive (if x ≤ y and y ≤ z then x ≤ z), and antisymmetric (if both x ≤ y and y ≤ x hold, then x = y). The usual numeric orderings on the integers or real numbers satisfy these properties; however, unlike the orderings on the numbers, a partial order may have two elements that are incomparable: neither x ≤ y nor y ≤ x holds. Another familiar example of a partial ordering is the inclusion ordering ⊆ on pairs of sets.
 If S is a partially ordered set, a completion of S means a complete lattice L with an order-embedding of S into L. The notion of a complete lattice means that every subset of elements of L has an infimum and supremum; this generalizes the analogous properties of the real numbers. The notion of an order-embedding enforces the requirements that distinct elements of S must be mapped to distinct elements of L, and that each pair of elements in S has the same ordering in L as they do in S. The extended real number line (real numbers together with +∞ and −∞) is a completion in this sense of the rational numbers: the set of rational numbers {3, 3.1, 3.14, 3.141, 3.1415, 3.14159, ...} does not have a rational least upper bound, but in the real numbers it has the least upper bound π.
 A given partially ordered set may have several different completions. For instance, one completion of any partially ordered set S is the set of its downwardly closed subsets ordered by inclusion. S is embedded in this (complete) lattice by mapping each element x to the lower set of elements that are less than or equal to x. The result is a distributive lattice and is used in Birkhoff's representation theorem. However, it may have many more elements than are needed to form a completion of S. Among all possible lattice completions, the Dedekind–MacNeille completion is the smallest complete lattice with S embedded in it.
 For each subset A of a partially ordered set S, let Au denote the set of upper bounds of A; that is, an element x of S belongs to Au whenever x is greater than or equal to every element in A. Symmetrically, let Al denote the set of lower bounds of A, the elements that are less than or equal to every element in A. Then the Dedekind–MacNeille completion of S consists of all subsets A for which 
 it is ordered by inclusion: A ≤ B in the completion if and only if A ⊆ B as sets.
 An element x of S embeds into the completion as its principal ideal, the set ↓x of elements less than or equal to x. Then (↓x)u is the set of elements greater than or equal to x, and ((↓x)u)l = ↓x, showing that ↓x is indeed a member of the completion. The mapping from x to ↓x is an order-embedding.
 An alternative definition of the Dedekind–MacNeille completion that more closely resembles the definition of a Dedekind cut is sometimes used. In a partially ordered set S, define a cut to be a pair of sets (A,B) for which Au = B and A = Bl. If (A,B) is a cut then A satisfies the equation (Au)l = A, and conversely if (Au)l = A then (A,Au) is a cut. Therefore, the set of cuts, partially ordered by inclusion on the lower set of the cut (or the reverse of the inclusion relation on the upper set), gives an equivalent definition of the Dedekind–MacNeille completion.
 With the alternative definition, both the join and the meet operations of the complete lattice have symmetric descriptions: if (Ai,Bi) are the cuts in any family of cuts, then the meet of these cuts is the cut (L,Lu) where L = ∩iAi, and the join is the cut (Ul,U) where U = ∩iBi.
 If 
  
    
      
        
          Q
        
      
    
    {\displaystyle \mathbb {Q} }
  
 is the set of rational numbers, viewed as a totally ordered set with the usual numerical order, then each element of the Dedekind–MacNeille completion of 
  
    
      
        
          Q
        
      
    
    {\displaystyle \mathbb {Q} }
  
 may be viewed as a Dedekind cut, and the Dedekind–MacNeille completion of 
  
    
      
        
          Q
        
      
    
    {\displaystyle \mathbb {Q} }
  
 is the total ordering on the real numbers, together with the two additional values 
  
    
      
        ±
        ∞
      
    
    {\displaystyle \pm \infty }
  
.
 If S is an antichain (a set of elements no two of which are comparable) then the Dedekind–MacNeille completion of S consists of S itself together with two additional elements, a bottom element that is below every element in S and a top element that is above every element in S.
 If O is any finite set of objects, and A is any finite set of unary attributes for the objects in O, then one may form a partial order of height two in which the elements of the partial order are the objects and attributes, and in which x ≤ y when x is an object that has attribute y. For a partial order defined in this way, the Dedekind–MacNeille completion of S is known as a concept lattice, and it plays a central role in the field of formal concept analysis.
 The Dedekind–MacNeille completion of a partially ordered set S is the smallest complete lattice with S embedded in it, in the sense that, if L is any lattice completion of S, then the Dedekind–MacNeille completion is a partially ordered subset of L. When S is finite, its completion is also finite, and has the smallest number of elements among all finite complete lattices containing S.
 The partially ordered set S is join-dense and meet-dense in the Dedekind–MacNeille completion; that is, every element of the completion is a join of some set of elements of S, and is also the meet of some set of elements in S. The Dedekind–MacNeille completion is characterized among completions of S by this property.
 The Dedekind–MacNeille completion of a Boolean algebra is a complete Boolean algebra; this result is known as the Glivenko–Stone theorem, after Valery Ivanovich Glivenko and Marshall Stone. Similarly, the Dedekind–MacNeille completion of a residuated lattice is a complete residuated lattice. However, the completion of a distributive lattice need not itself be distributive, and the completion of a modular lattice may not remain modular.
 The Dedekind–MacNeille completion is self-dual: the completion of the dual of a partial order is the same as the dual of the completion.
 The Dedekind–MacNeille completion of S has the same order dimension as does S itself.
 In the category of partially ordered sets and monotonic functions between partially ordered sets, the complete lattices form the injective objects for order-embeddings, and the Dedekind–MacNeille completion of S is the injective hull of S.
 Several researchers have investigated algorithms for constructing the Dedekind–MacNeille completion of a finite partially ordered set. The Dedekind–MacNeille completion may be exponentially larger than the partial order it comes from, and the time bounds for such algorithms are generally stated in an output-sensitive way, depending both on the number n of elements of the input partial order, and on the number c of elements of its completion.
 Ganter & Kuznetsov (1998) describe an incremental algorithm, in which the input partial order is built up by adding one element at a time; at each step, the completion of the smaller partial order is expanded to form the completion of the larger partial order. In their method, the completion is represented by an explicit list of cuts. Each cut of the augmented partial order, except for the one whose two sets intersect in the new element, is either a cut from the previous partial order or is formed by adding the new element to one or the other side of a cut from the previous partial order, so their algorithm need only test pairs of sets of this form to determine which ones are cuts. The time for using their method to add a single element to the completion of a partial order is O(cnw) where w is the width of the partial order, that is, the size of its largest antichain. Therefore, the time to compute the completion of a given partial order is O(cn2w) = O(cn3).
 As Jourdan, Rampon & Jard (1994) observe, the problem of listing all cuts in a partially ordered set can be formulated as a special case of a simpler problem, of listing all maximal antichains in a different partially ordered set. If P is any partially ordered set, let Q be a partial order whose elements contain two copies of P: for each element x of P, Q contains two elements x0 and x1, with xi < yj if and only if x < y and i < j. Then the cuts in P correspond one-for-one with the maximal antichains in Q: the elements in the lower set of a cut correspond to the elements with subscript 0 in an antichain, and the elements in the upper set of a cut correspond to the elements with subscript 1 in an antichain. Jourdan et al. describe an algorithm for finding maximal antichains that, when applied to the problem of listing all cuts in P, takes time O(c(nw + w3)), an improvement on the algorithm of Ganter & Kuznetsov (1998) when the width w is small. Alternatively, a maximal antichain in Q is the same as a maximal independent set in the comparability graph of Q, or a maximal clique in the complement of the comparability graph, so algorithms for the clique problem or the independent set problem can also be applied to this version of the Dedekind–MacNeille completion problem.
 The transitive reduction or covering graph of the Dedekind–MacNeille completion describes the order relation between its elements in a concise way:
each neighbor of a cut must remove an element of the original partial order from either the upper or lower set of the cut, so each vertex has at most n neighbors. Thus, the covering graph has c vertices and at most cn/2 neighbors, a number that may be much smaller than the c2 entries in a matrix that specifies all pairwise comparisons between elements. Nourine & Raynaud (1999) show how to compute this covering graph efficiently; more generally, if B is any family of sets, they show how to compute the covering graph of the lattice of unions of subsets of B. In the case of the Dedekind–MacNeille lattice, B may be taken as the family of complement sets of principal ideals, and the unions of subsets of B are complements of the lower sets of cuts. The main idea for their algorithm is to generate unions of subsets of B incrementally (for each set in B, forming its union with all previously generated unions), represent the resulting family of sets in a trie, and use the trie representation to test certain candidate pairs of sets for adjacency in the covering relation; it takes time O(cn2). In later work, the same authors showed that the algorithm could be made fully incremental (capable of adding elements to the partial order one at a time) with the same total time bound.