Complementar

Origem: Wikipédia, a enciclopédia livre.
A área em vermelho é o complementar de A em U, .
No exemplo, o conjunto A está representado pela circunferência em branco enquanto que o conjunto universo U é representado por todo o retângulo.

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 .

Diferença de conjuntos[editar | editar código-fonte]

Definição[editar | editar código-fonte]

Se A e B são conjuntos, então o complemento relativo de A em relação a B [1], também conhecido como diferença de B e A [2], é 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:

Exemplos[editar | editar código-fonte]

  • .
  • .

Propriedades[editar | editar código-fonte]

Sejam AB 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:

  • ;
  • ;
  • ;
  • ;
  • Com o caso especialmente importante de que  demonstrando que a interseção pode ser expressa usando apenas a operação de diferença de conjuntos;
  • ;
  • ;
  • ;
  • ;
  • .
Em vermelho, a diferença de B (círculo da direita) e A (círculo da esquerda):

Complementar do conjunto[editar | editar código-fonte]

Definição[editar | editar código-fonte]

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 .[3]

Exemplos[editar | editar código-fonte]

  • Assuma que o universo é o conjunto dos inteiros. Se A é o conjunto dos números ímpares, então o complementar de A é o conjunto de números pares. Se B é o conjunto de múltiplos de 3, então o complementar de B é o conjunto de números congruentes a 1 ou 2 módulo 3.
  • Assuma que o universo é um baralho padrão de 52 cartas. Se o conjunto A é o naipe de espadas, então o complementar de A é a união do naipe de copas, paus, e ouros.

Propriedades[editar | editar código-fonte]

Sejam A e B dois conjuntos no universo U. As seguintes identidades mostram propriedades importantes de complementares:

Teoremas de De Morgan:[1]
Leis de complementar:[1]
Involução ou lei do duplo complementar:
Relações entre o complementar e a diferença de conjuntos:

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.

Notação em LaTeX[editar | editar código-fonte]

Na linguagem de diagramação de textos LaTeX, o comando \setminus[4] é 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.

Complementar em várias linguagens de programação[editar | editar código-fonte]

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:


.NET Framework
a.Except(b);
C++
set_difference(a.begin(), a.end(), b.begin(), b.end(), result.begin());
Clojure
(clojure.set/difference a b)[5]
Common Lisp
set-difference, nset-difference[6]
F#
Set.difference a b[7]

or

a - b[8]
Falcon
diff = a - b[9]
Haskell
difference a b
a \\ b[10]
Java
diff = a.clone();
diff.removeAll(b);[11]
Julia
setdiff[12]
Mathematica
Complement[13]
MATLAB
setdiff[14]
OCaml
Set.S.diff[15]
Octave
setdiff[16]
PARI/GP
setminus[17]
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);[18]
Prolog
a(X),\+ b(X).
Python
diff = a.difference(b)[19]
diff = a - b[19]
R
setdiff[20]
Racket
(set-subtract a b)[21]
Ruby
diff = a - b[22]
Scala
a.diff(b)[23]

or

a -- b[23]
Smalltalk (Pharo)
a difference: b
SQL
SELECT * FROM A
EXCEPT
SELECT * FROM B
Unix shell
comm -23 a b[24]

Ver também[editar | editar código-fonte]

Referências

  1. a b c Halmos 1960, p. 17.
  2. Devlin 1979, p. 6.
  3. Bourbaki 1970, p. E II.6.
  4. [1] The Comprehensive LaTeX Symbol List
  5. [2] clojure.set API reference
  6. Common Lisp HyperSpec, Function set-difference, nset-difference. Accessed on September 8, 2009.
  7. Set.difference<'T> Function (F#)[ligação inativa]. Accessed on July 12, 2015.
  8. Set.( - )<'T> Method (F#)[ligação inativa]. Accessed on July 12, 2015.
  9. Array subtraction, data structures. Accessed on July 28, 2014.
  10. «Data.Set (Haskell)». Consultado em 29 de agosto de 2016. Arquivado do original em 28 de maio de 2009 
  11. Set (Java 2 Platform SE 5.0). JavaTM 2 Platform Standard Edition 5.0 API Specification, updated in 2004. Accessed on February 13, 2008.
  12. [3] Arquivado em 15 de outubro de 2014, no Wayback Machine.. The Standard Library--Julia Language documentation. Accessed on September 24, 2014
  13. Complement. Mathematica Documentation Center for version 6.0, updated in 2008. Accessed on March 7, 2008.
  14. Setdiff. MATLAB Function Reference for version 7.6, updated in 2008. Accessed on May 19, 2008.
  15. Set.S (OCaml).
  16. [4]. GNU Octave Reference Manual
  17. «PARI/GP User's Manual» (PDF). Consultado em 29 de agosto de 2016. Arquivado do original (PDF) em 11 de setembro de 2015 
  18. PHP: array_diff, PHP Manual
  19. a b [5]. Python v2.7.3 documentation. Accessed on January 17, 2013.
  20. R Reference manual p. 410.
  21. [6]. The Racket Reference. Accessed on May 19, 2015.
  22. Class: Array Ruby Documentation
  23. a b scala.collection.Set. Scala Standard Library 2.11.7, Accessed on July 12, 2015.
  24. comm(1), Unix Seventh Edition Manual, 1979.

Ligações externas[editar | editar código-fonte]