Complement (set Theory)
If A is the area colored red in this image...
... then the complement of A is everything else.

In set theory, the complement of a set A refers to elements not in A.

When all sets under consideration are considered to be subsets of a given set U, the absolute complement of A is the set of elements in U but not in A.

The relative complement of A with respect to a set B, also termed the difference of sets A and B, written B \ A, is the set of elements in B but not in A.

## Absolute complement

The absolute complement of A in U: ${\displaystyle A^{\complement }=U\setminus A}$

### Definition

If A is a set, then the absolute complement of A (or simply the complement of A) is the set of elements not in A. In other words, if U is the universe that contains all the elements under study, and there is no need to mention it because it is obvious and unique, then the absolute complement of A is the relative complement of A in U:[1]

${\displaystyle A^{\complement }=U\setminus A}$.

Formally:

${\displaystyle A^{\complement }=\{x\in U\mid x\notin A\}.}$

The absolute complement of A is usually denoted by ${\displaystyle A^{\complement }}$. Other notations include ${\displaystyle A^{\text{c}}}$, ${\displaystyle {\overline {A}}}$, ${\displaystyle A'}$, ${\displaystyle \complement _{U}A}$, and ${\displaystyle \complement A}$.[2]

### Examples

• Assume that the universe is the set of integers. If A is the set of odd numbers, then the complement of A is the set of even numbers. If B is the set of multiples of 3, then the complement of B is the set of numbers congruent to 1 or 2 modulo 3.
• Assume that the universe is the standard 52-card deck. If the set A is the suit of spades, then the complement of A is the union of the suits of clubs, diamonds, and hearts. If the set B is the union of the suits of clubs and diamonds, then the complement of B is the union of the suits of hearts and spades.

### Properties

Let A and B be two sets in a universe U. The following identities capture important properties of absolute complements:

De Morgan's laws:[3]
• ${\displaystyle \left(A\cup B\right)^{\complement }=A^{\complement }\cap B^{\complement }.}$
• ${\displaystyle \left(A\cap B\right)^{\complement }=A^{\complement }\cup B^{\complement }.}$
Complement laws:[3]
• ${\displaystyle A\cup A^{\complement }=U.}$
• ${\displaystyle A\cap A^{\complement }=\varnothing .}$
• ${\displaystyle \varnothing ^{\complement }=U.}$
• ${\displaystyle U^{\complement }=\varnothing .}$
• ${\displaystyle {\text{If }}A\subset B{\text{, then }}B^{\complement }\subset A^{\complement }.}$
(this follows from the equivalence of a conditional with its contrapositive).
Involution or double complement law:
• ${\displaystyle (A^{\complement })^{\complement }=A.}$
Relationships between relative and absolute complements:
• ${\displaystyle A\setminus B=A\cap B^{\complement }.}$
• ${\displaystyle (A\setminus B)^{\complement }=A^{\complement }\cup B.}$
Relationship with set difference:
• ${\displaystyle A^{\complement }\setminus B^{\complement }=B\setminus A.}$

The first two complement laws above show that if A is a non-empty, proper subset of U, then {A, A?} is a partition of U.

## Relative complement

### Definition

If A and B are sets, then the relative complement of A in B,[3] also termed the set-theoretic difference of B and A,[4] is the set of elements in B but not in A.

The relative complement of A (left circle) in B (right circle): ${\displaystyle B\cap A^{\complement }=B\setminus A}$

The relative complement of A in B is denoted according to the ISO 31-11 standard. It is sometimes written , but this notation is ambiguous, as in some contexts it can be interpreted as the set of all elements , where b is taken from B and a from A.

Formally:

${\displaystyle B\setminus A=\{x\in B\mid x\notin A\}.}$

### Examples

• ${\displaystyle \{1,2,3\}\setminus \{2,3,4\}=\{1\}}$.
• ${\displaystyle \{2,3,4\}\setminus \{1,2,3\}=\{4\}}$.
• If ${\displaystyle \mathbb {R} }$ is the set of real numbers and ${\displaystyle \mathbb {Q} }$ is the set of rational numbers, then ${\displaystyle \mathbb {R} \setminus \mathbb {Q} }$ is the set of irrational numbers.

### Properties

Let A, B, and C be three sets. The following identities capture notable properties of relative complements:

• ${\displaystyle C\setminus (A\cap B)=(C\setminus A)\cup (C\setminus B)}$.
• ${\displaystyle C\setminus (A\cup B)=(C\setminus A)\cap (C\setminus B)}$.
• ${\displaystyle C\setminus (B\setminus A)=(C\cap A)\cup (C\setminus B)}$,
with the important special case ${\displaystyle C\setminus (C\setminus A)=(C\cap A)}$ demonstrating that intersection can be expressed using only the relative complement operation.
• ${\displaystyle (B\setminus A)\cap C=(B\cap C)\setminus A=B\cap (C\setminus A)}$.
• ${\displaystyle (B\setminus A)\cup C=(B\cup C)\setminus (A\setminus C)}$.
• ${\displaystyle A\setminus A=\emptyset }$.
• ${\displaystyle \emptyset \setminus A=\emptyset }$.
• ${\displaystyle A\setminus \emptyset =A}$.
• ${\displaystyle A\setminus U=\emptyset }$.

## LaTeX notation

In the LaTeX typesetting language, the command \setminus[5] is usually used for rendering a set difference symbol, which is similar to a backslash symbol. When rendered, the \setminus command looks identical to \backslash except that it has a little more space in front and behind the slash, akin to the LaTeX sequence \mathbin{\backslash}. A variant \smallsetminus is available in the amssymb package.

## Complements in various programming languages

Some programming languages allow for manipulation of sets as data structures, using these operators or functions to construct the difference of sets a and b:

.NET Framework
a.Except(b);
C++
set_difference(a.begin, a.end, b.begin, b.end, result.begin);
Clojure
(clojure.set/difference a b)[6]
Common Lisp
set-difference, nset-difference[7]
F#
Set.difference a b[8]
a - b[9]
Falcon
diff = a - b[10]
difference a b
a \\ b[11]
Java
diff = a.clone;
diff.removeAll(b);[12]
Julia
setdiff[13]
Mathematica
Complement[14]
MATLAB
setdiff[15]
OCaml
Set.S.diff[16]
Octave
setdiff[17]
PARI/GP
setminus[18]
Pascal
SetDifference := a - b;
Perl 5
# for perl version >= 5.10
@a = grep {not $_ ~~ @b} @a;  Perl 6 $A \ $B$A (-) $B # texas version  PHP array_diff($a, $b);[19] Prolog a(X),\+ b(X). Python diff = a.difference(b)[20] diff = a - b[20] R setdiff[21] Racket (set-subtract a b)[22] Ruby diff = a - b[23] Rust let diff = std::collections::HashSet::difference(&hashset_a, &hashset_b);[24] Scala a.diff(b)[25] a -- b[25] Smalltalk (Pharo) a difference: b SQL SELECT * FROM A EXCEPT SELECT * FROM B  Unix shell comm -23 a b[26] grep -vf b a # less efficient, but works with small unsorted sets XQuery (and XPath starting from version 2.0) $a except $b[27] ## See also ## Notes 1. ^ The set other than A is thus implicitly mentioned in an absolute complement, and explicitly mentioned in a relative complement. 2. ^ Bourbaki 1970, p. E II.6. 3. ^ a b c Halmos 1960, p. 17. 4. ^ Devlin 1979, p. 6. 5. ^ [1] The Comprehensive LaTeX Symbol List 6. ^ [2] clojure.set API reference 7. ^ Common Lisp HyperSpec, Function set-difference, nset-difference. Accessed on September 8, 2009. 8. ^ Set.difference<'T> Function (F#). Accessed on July 12, 2015. 9. ^ Set.( - )<'T> Method (F#). Accessed on July 12, 2015. 10. ^ Array subtraction, data structures. Accessed on July 28, 2014. 11. ^ Data.Set (Haskell) Archived 2009-05-28 at the Wayback Machine. 12. ^ Set (Java 2 Platform SE 5.0). JavaTM 2 Platform Standard Edition 5.0 API Specification, updated in 2004. Accessed on February 13, 2008. 13. ^ [3]. The Standard Library--Julia Language documentation. Accessed on September 24, 2014 14. ^ Complement. Mathematica Documentation Center for version 6.0, updated in 2008. Accessed on March 7, 2008. 15. ^ Setdiff. MATLAB Function Reference for version 7.6, updated in 2008. Accessed on May 19, 2008. 16. ^ 17. ^ [4]. GNU Octave Reference Manual 18. ^ PARI/GP User's Manual Archived September 11, 2015, at the Wayback Machine. 19. ^ PHP: array_diff, PHP Manual 20. ^ a b [5]. Python v2.7.3 documentation. Accessed on January 17, 2013. 21. ^ 22. ^ [6]. The Racket Reference. Accessed on May 19, 2015. 23. ^ Class: Array Ruby Documentation 24. ^ [7] The Rust Standard Library Documentation. Accessed on March 7, 2017. 25. ^ a b scala.collection.Set. Scala Standard Library 2.11.7, Accessed on July 12, 2015. 26. ^ comm(1) Archived 2008-10-19 at the Wayback Machine., Unix Seventh Edition Manual, 1979. 27. ^ "XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition)". W3C. 13 April 2015. ## References This article uses material from the Wikipedia page available here. It is released under the Creative Commons Attribution-Share-Alike License 3.0. Connect with defaultLogic What We've Done Led Digital Marketing Efforts of Top 500 e-Retailers. Worked with Top Brands at Leading Agencies. Successfully Managed Over$50 million in Digital Ad Spend.
Developed Strategies and Processes that Enabled Brands to Grow During an Economic Downturn.