
Em teoria dos conjuntos, o complementar de um subconjunto se refere a elementos que não estão no conjunto . Normalmente, o complementar se trata de maneira relativa à um conjunto universo , sendo o conjunto o complementar de formado pelos elementos de que não pertencem a . De maneira mais geral, define-se o complementar de em relação a , também chamado de diferença de conjuntos, como o conjunto dos elementos de que não estão em .
Se A e B são conjuntos, então o complemento relativo de A em relação a B , também conhecido como diferença de B e A , é o conjunto de elementos de B que não estão em A.
A diferença de B para A é geralmente denotada . Às vezes é escrito , mas esta notação é ambígua, já que, em alguns contextos, pode ser interpretada como o conjunto de todos os elementos de b - a, onde b é tomado a partir de B e a a partir de A.
Formalmente:
Sejam A, B e C três conjuntos. As seguintes identidades mostram propriedades importantes da diferença de conjuntos, que podem ser demonstradas com poucos passos usando a própria definição de diferença de conjuntos, junto com as Leis de De Morgan:

Se A é um conjunto, então o complementar de A é o conjunto de elementos que não estão em A. Em outras palavras, se U é o universo que contém todos os conjuntos que estão sendo estudados no problema de modo que não é necessário mencioná-lo quando ele é óbvio e único, então o complementar de A é a diferença entre os conjuntos U e A, sendo representado normalmente como:
Formalmente:
Outras notações incluem , , , , e .
Sejam A e B dois conjuntos no universo U. As seguintes identidades mostram propriedades importantes de complementares:
As duas primeiras leis acima mostram que se A é não-vazio, subconjunto próprio de U, então {A, Ac} é uma partição de U.
Na linguagem de diagramação de textos LaTeX, o comando \setminus é normalmente o utilizado para representar o símbolo de diferença de conjuntos, similar ao comando backslash. Existe também um variante \smallsetminus disponível no pacote amssymb.
Algumas linguagens de programação permitem a manipulação de conjuntos como estruturas de dados, usar estes operadores como função para construir a diferença entre dois conjuntos a e b:
a.Except(b);set_difference(a.begin(), a.end(), b.begin(), b.end(), result.begin());(clojure.set/difference a b)set-difference, nset-differenceSet.difference a bor
a - bdiff = a - bdifference a ba \\ bdiff = a.clone(); diff.removeAll(b);setdiffComplementsetdiffSet.S.diffsetdiffsetminusSetDifference := a - b;# for perl version >= 5.10
@a = grep {not $_ ~~ @b} @a;
$A ∖ $B
$A (-) $B # texas version
array_diff($a, $b);a(X),\+ b(X).diff = a.difference(b)diff = a - bsetdiff(set-subtract a b)diff = a - ba.diff(b)or
a -- ba difference: bSELECT * FROM A
EXCEPT
SELECT * FROM B
comm -23 a b