---
date: '2026-05-26'
description: basic set theory, operations, cardinality, topology, and ZFC.
id: Sets
modified: 2026-06-06 23:06:14 GMT-04:00
seealso:
  - '[[thoughts/topology|topology]]'
  - '[[thoughts/pdfs/munkres-topology.pdf|Topology, by Munkres]]'
  - '[[thoughts/pdfs/armstrong-basic-topology.pdf|Basic Topology, Amstrong]]'
  - '[[courses/18.901-fall-2004/static_resources/0162d186ff55f17b25d9c57f6fd211cc_18901.pdf|notes a]]'
  - '[[courses/18.901-fall-2004|Introduction to Topology]]'
tags:
  - math/sets
  - math/topology
title: Sets
created: '2026-05-26'
published: '2026-05-26'
pageLayout: default
slug: thoughts/Sets
permalink: https://aarnphm.xyz/thoughts/Sets.md
generator:
  quartz: v4.6.0
  hostedProvider: Cloudflare
  baseUrl: aarnphm.xyz
full: https://aarnphm.xyz/llms-full.txt
---
A set is a collection of distinct objects, called its _elements_ or _members_.

Set theory studies which axiom systems make this idea behave; the working axiom system is [ZFC](https://en.wikipedia.org/wiki/Zermelo–Fraenkel_set_theory).

The field began with Cantor’s work on infinite cardinalities.

[[thoughts/Wittgenstein#Russell's paradox and the vicious circle principle|Russell's paradox]] is the canonical obstruction you hit when first studying naive set theory: the set $R = \{x \mid x \notin x\}$ both contains and excludes itself.

[[#Zermelo-Fraenkel set theory|ZFC]] addresses this via comprehension, where the axiom of separation only lets you carve a subset $\{x \in A \mid \dots\}$ out of an existing set $A$, so the unrestricted $R$ is never {{sidenotes[formed.]: The axiom of foundation additionally forbids $x \in x$ chains.}}

Sets are the substrate for [[thoughts/algebraic geometry|algebraic structures]] and the mathematical spaces studied in <ref slug="tags/math/topology">.

## notation

| symbol           | meaning                                                                   |
| ---------------- | ------------------------------------------------------------------------- |
| $x \in A$        | $x$ is an element of $A$                                                  |
| $x \not\in A$    | $x$ is not an element of $A$                                              |
| $A \subseteq B$  | every element of $A$ is in $B$                                            |
| $A \subsetneq B$ | $A$ is a _proper subset_ of $B$: $A \subseteq B$ and $A \neq B$           |
| $A \cup B$       | [[#($A cup B$)\|union]]: $\{x \mid x \in A \text{ or } x \in B\}$         |
| $A \cap B$       | [[#($A cap B$)\|intersection]]: $\{x \mid x \in A \text{ and } x \in B\}$ |
| $A \setminus B$  | [[#difference\|difference]]: $\{x \in A \mid x \notin B\}$                |
| $\emptyset$      | [[#empty\|empty set]]                                                     |
| $\mathcal{P}(A)$ | [[#power set\|power set]]: all subsets of $A$                             |
| $A \times B$     | [[#Cartesian products\|Cartesian products]]                               |
| $\neg P$         | negation                                                                  |

> \[!note\] inclusion
>
> $\subseteq$ and $\subsetneq$ are _inclusion_ and _proper inclusion_ respectively
>
> We can also express the notion that ”$A$ and $B$ have no {{sidenotes[common items]: We can also say that $A$ and $B$ are disjoint.}}” via the empty set, or $A \cap B = \emptyset$

## set-builder notation

The [set-builder notation](https://en.wikipedia.org/wiki/Set-builder_notation) {{sidenotes[expression]: this is domain-bound format, which is safe.}} $\{x \in A \mid P(x)\}$ means _start with an existing set $A$, then keep exactly the elements satisfying $P$_.

$$
\{x \in A \mid P(x)\} \subseteq A
$$

> naive form $\{x \mid P(x)\}$ _assumes that every predicate determines a set, where Russell’s paradox would then choose_ $P(x)$ _to be_ $x \notin x$

ZFC addresses this via separations:

$$
\forall\;A\;\exists\;B\;\forall x\;(x \in B \iff x \in A \land P(x))
$$

> \[!axiom\] Axiom 1. extensionality
>
> Sets are determined by their elements:
>
> $$
> \forall\;A\;\forall\;B\;(\forall x\;(x \in A \iff x \in B) \implies A = B)
> $$
>
> Order and repetition <span class="marker marker-h2">does not matter</span> when we consider members of {{sidenotes[a set.]: We will consider surjective, bijective, and [injective](https://en.wikipedia.org/wiki/Bijection,_injection_and_surjection#Injection) properties of sets [[#surjection, bijection, injection|below]].}}
>
> $$
> \{1,2,3\} = \{3,2,1,1\}\;\; \text{ (axiom of extensionality)}
> $$

### empty

_the set with no elements_, also see [[thoughts/Wittgenstein#Russell's paradox and the vicious circle principle|Russell's paradox]]

for union and intersection we can define

$$
\begin{aligned}
  A \cup \emptyset &= A \\
  A \cap \emptyset &= \emptyset
\end{aligned}
$$

### contrapositive and converse

“if…then” would often concern relation between _statement_, _contrapositive_ or _converse_

| logic           | notation                                   |
| --------------- | ------------------------------------------ |
| If $P$ then $Q$ | $P \implies Q$                             |
| contrapositive  | $(\text{not } Q) \implies (\text{not } P)$ |
| converse        | $Q \implies P$                             |

> A statement and its contrapositive are _logically equivalent_. The converse can have a different truth value.
>
> If the converse also holds, then $P \iff Q$.

The universal and existential quantifiers are the grammar behind most set statements:

| logic                         | notation           |
| ----------------------------- | ------------------ |
| for all elements              | $\forall x \in A$  |
| there exists an element       | $\exists x \in A$  |
| there exists a unique element | $\exists!x \in A$  |
| no element exists             | $\nexists x \in A$ |

Negation flips quantifiers:

$$
\neg(\forall x \in A,\;P(x)) \iff \exists x \in A,\;\neg P(x)
$$

$$
\neg(\exists x \in A,\;P(x)) \iff \forall x \in A,\;\neg P(x)
$$

## set operations

We can visualize the basic operations and rules of set theory via Venn diagrams

### ($A \cup B$)

The union contains all elements that are in $A$, or in $B$, or in both.

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\begin{document}\n\\begin{tikzpicture}[scale=1.5]\n  \\begin{scope}\n    \\clip (0,0) circle (1) (1.2,0) circle (1);\n    \\foreach \\x in {-2.95,-2.7,...,2.7} {\n      \\draw[line width=0.35pt] (\\x,-1.3) -- ++(2.6,2.6);\n    }\n  \\end{scope}\n  \\draw[thick] (0,0) circle (1) node[left=2] {$A$};\n  \\draw[thick] (1.2,0) circle (1) node[right=2] {$B$};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIxOTQuNzQ0NDZwdCIgaGVpZ2h0PSI4Ni4xNTgycHQiIHZpZXdCb3g9Ii03MiAtNzIgMTk0Ljc0NDQ2IDg2LjE1ODIiPjxnIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNzk4NTY4NzI1NTg1OTM3MywtMjkuMTkwOTAyNzA5OTYwOTMpIHNjYWxlKDEsLTEpIj48ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2Utd2lkdGg9IjAuNCI+IDxjbGlwUGF0aCBpZD0icGdmN2NhYWU5YzUyMDhhOTdmYjk5ZmRkYzAxNTU5MzllYWJjcDEiPjxwYXRoIGQ9IiBNIDAuMCAwLjAgTSA0Mi42NzkxMSAwLjAgQyA0Mi42NzkxMSAyMy41NzEzMiAyMy41NzEzMiA0Mi42NzkxMSAwLjAgNDIuNjc5MTEgQyAtMjMuNTcxMzIgNDIuNjc5MTEgLTQyLjY3OTExIDIzLjU3MTMyIC00Mi42NzkxMSAwLjAgQyAtNDIuNjc5MTEgLTIzLjU3MTMyIC0yMy41NzEzMiAtNDIuNjc5MTEgMC4wIC00Mi42NzkxMSBDIDIzLjU3MTMyIC00Mi42NzkxMSA0Mi42NzkxMSAtMjMuNTcxMzIgNDIuNjc5MTEgMC4wIFogTSAwLjAgMC4wIE0gNTEuMjE0OCAwLjAgTSA5My44OTM5IDAuMCBDIDkzLjg5MzkgMjMuNTcxMzIgNzQuNzg2MTIgNDIuNjc5MTEgNTEuMjE0OCA0Mi42NzkxMSBDIDI3LjY0MzQ4IDQyLjY3OTExIDguNTM1NjkgMjMuNTcxMzIgOC41MzU2OSAwLjAgQyA4LjUzNTY5IC0yMy41NzEzMiAyNy42NDM0OCAtNDIuNjc5MTEgNTEuMjE0OCAtNDIuNjc5MTEgQyA3NC43ODYxMiAtNDIuNjc5MTEgOTMuODkzOSAtMjMuNTcxMzIgOTMuODkzOSAwLjAgWiBNIDUxLjIxNDggMC4wICAiPjwvcGF0aD4gPC9jbGlwUGF0aD4gPGcgY2xpcC1wYXRoPSJ1cmwoI3BnZjdjYWFlOWM1MjA4YTk3ZmI5OWZkZGMwMTU1OTM5ZWFiY3AxKSI+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC0xMjUuOTAzMjQgLTU1LjQ4Mjk3IEwgLTE0LjkzNzMgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC0xMTUuMjMzNDYgLTU1LjQ4Mjk3IEwgLTQuMjY3NTIgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC0xMDQuNTYzNjcgLTU1LjQ4Mjk3IEwgNi40MDIyNSA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTkzLjg5MzkyIC01NS40ODI5NyBMIDE3LjA3MjAyIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtODMuMjI0MTQgLTU1LjQ4Mjk3IEwgMjcuNzQxOCA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTcyLjU1NDM1IC01NS40ODI5NyBMIDM4LjQxMTU5IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtNjEuODg0NTcgLTU1LjQ4Mjk3IEwgNDkuMDgxMzggNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC01MS4yMTQ4IC01NS40ODI5NyBMIDU5Ljc1MTEzIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtNDAuNTQ1MDEgLTU1LjQ4Mjk3IEwgNzAuNDIwOTEgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC0yOS44NzUyMyAtNTUuNDgyOTcgTCA4MS4wOTA3IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtMTkuMjA1NDQgLTU1LjQ4Mjk3IEwgOTEuNzYwNDggNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC04LjUzNTY5IC01NS40ODI5NyBMIDEwMi40MzAyNSA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gMi4xMzQwNiAtNTUuNDgyOTcgTCAxMTMuMSA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gMTIuODAzODUgLTU1LjQ4Mjk3IEwgMTIzLjc2OTc5IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAyMy40NzM2MyAtNTUuNDgyOTcgTCAxMzQuNDM5NTggNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIDM0LjE0MzQgLTU1LjQ4Mjk3IEwgMTQ1LjEwOTM0IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSA0NC44MTMxOSAtNTUuNDgyOTcgTCAxNTUuNzc5MTMgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIDU1LjQ4Mjk3IC01NS40ODI5NyBMIDE2Ni40NDg5MSA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gNjYuMTUyNzYgLTU1LjQ4Mjk3IEwgMTc3LjExODcgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIDc2LjgyMjUxIC01NS40ODI5NyBMIDE4Ny43ODg0NSA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gODcuNDkyMyAtNTUuNDgyOTcgTCAxOTguNDU4MjQgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIDk4LjE2MjA4IC01NS40ODI5NyBMIDIwOS4xMjgwMiA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gMTA4LjgzMTg2IC01NS40ODI5NyBMIDIxOS43OTc4IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPHBhdGggZD0iIE0gMC4wIDAuMCBNIDQyLjY3OTExIDAuMCBDIDQyLjY3OTExIDIzLjU3MTMyIDIzLjU3MTMyIDQyLjY3OTExIDAuMCA0Mi42NzkxMSBDIC0yMy41NzEzMiA0Mi42NzkxMSAtNDIuNjc5MTEgMjMuNTcxMzIgLTQyLjY3OTExIDAuMCBDIC00Mi42NzkxMSAtMjMuNTcxMzIgLTIzLjU3MTMyIC00Mi42NzkxMSAwLjAgLTQyLjY3OTExIEMgMjMuNTcxMzIgLTQyLjY3OTExIDQyLjY3OTExIC0yMy41NzEzMiA0Mi42NzkxMSAwLjAgWiBNIDAuMCAwLjAgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjguMTM4NDYsLTMuNDE2NjYpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMC43OTg1Njg3MjU1ODU5MzczLC0yOS4xOTA5MDI3MDk5NjA5Mykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTI5LjE5MDkwMjcwOTk2MDkzIiB4PSItMC43OTg1Njg3MjU1ODU5MzczIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPkE8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDUxLjIxNDggMC4wIE0gOTMuODkzOSAwLjAgQyA5My44OTM5IDIzLjU3MTMyIDc0Ljc4NjEyIDQyLjY3OTExIDUxLjIxNDggNDIuNjc5MTEgQyAyNy42NDM0OCA0Mi42NzkxMSA4LjUzNTY5IDIzLjU3MTMyIDguNTM1NjkgMC4wIEMgOC41MzU2OSAtMjMuNTcxMzIgMjcuNjQzNDggLTQyLjY3OTExIDUxLjIxNDggLTQyLjY3OTExIEMgNzQuNzg2MTIgLTQyLjY3OTExIDkzLjg5MzkgLTIzLjU3MTMyIDkzLjg5MzkgMC4wIFogTSA1MS4yMTQ4IDAuMCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMS44NTMyNiwtMy40MTY2NikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0wLjc5ODU2ODcyNTU4NTkzNzMsLTI5LjE5MDkwMjcwOTk2MDkzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMjkuMTkwOTAyNzA5OTYwOTMiIHg9Ii0wLjc5ODU2ODcyNTU4NTkzNzMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+PC9zdmc+" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

### ($A \cap B$)

The intersection contains all elements that are in both $A$ and $B$.

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\begin{document}\n\\begin{tikzpicture}[scale=1.5]\n  \\begin{scope}\n    \\clip (0,0) circle (1);\n    \\clip (1.2,0) circle (1);\n    \\foreach \\x in {-1.7,-1.45,...,2.7} {\n      \\draw[line width=0.35pt] (\\x,-1.3) -- ++(2.6,2.6);\n    }\n  \\end{scope}\n  \\draw[thick] (0,0) circle (1) node[left=2] {$A$};\n  \\draw[thick] (1.2,0) circle (1) node[right=2] {$B$};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIxOTQuNzQ0NDZwdCIgaGVpZ2h0PSI4Ni4xNTgycHQiIHZpZXdCb3g9Ii03MiAtNzIgMTk0Ljc0NDQ2IDg2LjE1ODIiPjxnIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuNzk4NTY4NzI1NTg1OTM3MywtMjkuMTkwOTAyNzA5OTYwOTMpIHNjYWxlKDEsLTEpIj48ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2Utd2lkdGg9IjAuNCI+IDxjbGlwUGF0aCBpZD0icGdmMTMxZmYxZWQwNGNlN2MzYjNjNzUyYWM3ZTczYzcxMGNjcDEiPjxwYXRoIGQ9IiBNIDAuMCAwLjAgTSA0Mi42NzkxMSAwLjAgQyA0Mi42NzkxMSAyMy41NzEzMiAyMy41NzEzMiA0Mi42NzkxMSAwLjAgNDIuNjc5MTEgQyAtMjMuNTcxMzIgNDIuNjc5MTEgLTQyLjY3OTExIDIzLjU3MTMyIC00Mi42NzkxMSAwLjAgQyAtNDIuNjc5MTEgLTIzLjU3MTMyIC0yMy41NzEzMiAtNDIuNjc5MTEgMC4wIC00Mi42NzkxMSBDIDIzLjU3MTMyIC00Mi42NzkxMSA0Mi42NzkxMSAtMjMuNTcxMzIgNDIuNjc5MTEgMC4wIFogTSAwLjAgMC4wICAiPjwvcGF0aD4gPC9jbGlwUGF0aD4gPGcgY2xpcC1wYXRoPSJ1cmwoI3BnZjEzMWZmMWVkMDRjZTdjM2IzYzc1MmFjN2U3M2M3MTBjY3AxKSI+IDxjbGlwUGF0aCBpZD0icGdmMTMxZmYxZWQwNGNlN2MzYjNjNzUyYWM3ZTczYzcxMGNjcDIiPjxwYXRoIGQ9IiBNIDUxLjIxNDggMC4wIE0gOTMuODkzOSAwLjAgQyA5My44OTM5IDIzLjU3MTMyIDc0Ljc4NjEyIDQyLjY3OTExIDUxLjIxNDggNDIuNjc5MTEgQyAyNy42NDM0OCA0Mi42NzkxMSA4LjUzNTY5IDIzLjU3MTMyIDguNTM1NjkgMC4wIEMgOC41MzU2OSAtMjMuNTcxMzIgMjcuNjQzNDggLTQyLjY3OTExIDUxLjIxNDggLTQyLjY3OTExIEMgNzQuNzg2MTIgLTQyLjY3OTExIDkzLjg5MzkgLTIzLjU3MTMyIDkzLjg5MzkgMC4wIFogTSA1MS4yMTQ4IDAuMCAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2YxMzFmZjFlZDA0Y2U3YzNiM2M3NTJhYzdlNzNjNzEwY2NwMikiPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtNzIuNTU0MzUgLTU1LjQ4Mjk3IEwgMzguNDExNTkgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC02MS44ODQ1NyAtNTUuNDgyOTcgTCA0OS4wODEzOCA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTUxLjIxNDggLTU1LjQ4Mjk3IEwgNTkuNzUxMTMgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC00MC41NDUwMSAtNTUuNDgyOTcgTCA3MC40MjA5MSA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTI5Ljg3NTIzIC01NS40ODI5NyBMIDgxLjA5MDcgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC0xOS4yMDU0NCAtNTUuNDgyOTcgTCA5MS43NjA0OCA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTguNTM1NjkgLTU1LjQ4Mjk3IEwgMTAyLjQzMDI1IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAyLjEzNDA2IC01NS40ODI5NyBMIDExMy4xIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAxMi44MDM4NSAtNTUuNDgyOTcgTCAxMjMuNzY5NzkgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIDIzLjQ3MzYzIC01NS40ODI5NyBMIDEzNC40Mzk1OCA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gMzQuMTQzNCAtNTUuNDgyOTcgTCAxNDUuMTA5MzQgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIDQ0LjgxMzE5IC01NS40ODI5NyBMIDE1NS43NzkxMyA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gNTUuNDgyOTcgLTU1LjQ4Mjk3IEwgMTY2LjQ0ODkxIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSA2Ni4xNTI3NiAtNTUuNDgyOTcgTCAxNzcuMTE4NyA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gNzYuODIyNTEgLTU1LjQ4Mjk3IEwgMTg3Ljc4ODQ1IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSA4Ny40OTIzIC01NS40ODI5NyBMIDE5OC40NTgyNCA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gOTguMTYyMDggLTU1LjQ4Mjk3IEwgMjA5LjEyODAyIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAxMDguODMxODYgLTU1LjQ4Mjk3IEwgMjE5Ljc5NzggNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDAuMCAwLjAgTSA0Mi42NzkxMSAwLjAgQyA0Mi42NzkxMSAyMy41NzEzMiAyMy41NzEzMiA0Mi42NzkxMSAwLjAgNDIuNjc5MTEgQyAtMjMuNTcxMzIgNDIuNjc5MTEgLTQyLjY3OTExIDIzLjU3MTMyIC00Mi42NzkxMSAwLjAgQyAtNDIuNjc5MTEgLTIzLjU3MTMyIC0yMy41NzEzMiAtNDIuNjc5MTEgMC4wIC00Mi42NzkxMSBDIDIzLjU3MTMyIC00Mi42NzkxMSA0Mi42NzkxMSAtMjMuNTcxMzIgNDIuNjc5MTEgMC4wIFogTSAwLjAgMC4wICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY4LjEzODQ2LC0zLjQxNjY2KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTAuNzk4NTY4NzI1NTg1OTM3MywtMjkuMTkwOTAyNzA5OTYwOTMpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ii0yOS4xOTA5MDI3MDk5NjA5MyIgeD0iLTAuNzk4NTY4NzI1NTg1OTM3MyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5BPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSA1MS4yMTQ4IDAuMCBNIDkzLjg5MzkgMC4wIEMgOTMuODkzOSAyMy41NzEzMiA3NC43ODYxMiA0Mi42NzkxMSA1MS4yMTQ4IDQyLjY3OTExIEMgMjcuNjQzNDggNDIuNjc5MTEgOC41MzU2OSAyMy41NzEzMiA4LjUzNTY5IDAuMCBDIDguNTM1NjkgLTIzLjU3MTMyIDI3LjY0MzQ4IC00Mi42NzkxMSA1MS4yMTQ4IC00Mi42NzkxMSBDIDc0Ljc4NjEyIC00Mi42NzkxMSA5My44OTM5IC0yMy41NzEzMiA5My44OTM5IDAuMCBaIE0gNTEuMjE0OCAwLjAgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTEuODUzMjYsLTMuNDE2NjYpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMC43OTg1Njg3MjU1ODU5MzczLC0yOS4xOTA5MDI3MDk5NjA5Mykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTI5LjE5MDkwMjcwOTk2MDkzIiB4PSItMC43OTg1Njg3MjU1ODU5MzczIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPkI8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

### ($A \setminus B$)

The difference (or relative complement) contains all elements that are in $A$ but not in $B$.

It is also known as the _complement_ of $B$ relative to $A$, or the complement of $B$ in $A$.

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\definecolor{flexokired}{HTML}{fdb2a2}\n\\begin{document}\n\\begin{tikzpicture}[scale=1.5]\n  \\begin{scope}\n    \\clip (0,0) circle (1);\n    \\begin{scope}[even odd rule]\n      \\clip (-1.3,-1.3) rectangle (2.5,1.3) (1.2,0) circle (1);\n      \\foreach \\x in {-2.95,-2.7,...,1.5} {\n        \\draw[line width=0.35pt] (\\x,-1.3) -- ++(2.6,2.6);\n      }\n    \\end{scope}\n  \\end{scope}\n  \\draw[thick] (0,0) circle (1) node[left=2] {$A$};\n  \\draw[thick] (1.2,0) circle (1) node[right=2] {$B$};\n  \\node[font=\\normalsize] at (0.34,-1.28) {$A$};\n  \\draw[line width=0.45pt] (0.56,-1.18) -- (0.66,-1.38);\n  \\node[font=\\normalsize] at (0.9,-1.28) {$B$};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIxOTQuNzQ0NDZwdCIgaGVpZ2h0PSIxMDQuNDU3OTNwdCIgdmlld0JveD0iLTcyIC03MiAxOTQuNzQ0NDYgMTA0LjQ1NzkzIj48ZyBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0wLjc5ODU2ODcyNTU4NTkzNzMsLTI5LjE5MDkwMjcwOTk2MDkzKSBzY2FsZSgxLC0xKSI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlLXdpZHRoPSIwLjQiPiA8Y2xpcFBhdGggaWQ9InBnZmJkMzU0NzZlNDEyMTcwZWY2NWE1NGI1MGQ5YmNjMWJmY3AxIj48cGF0aCBkPSIgTSAwLjAgMC4wIE0gNDIuNjc5MTEgMC4wIEMgNDIuNjc5MTEgMjMuNTcxMzIgMjMuNTcxMzIgNDIuNjc5MTEgMC4wIDQyLjY3OTExIEMgLTIzLjU3MTMyIDQyLjY3OTExIC00Mi42NzkxMSAyMy41NzEzMiAtNDIuNjc5MTEgMC4wIEMgLTQyLjY3OTExIC0yMy41NzEzMiAtMjMuNTcxMzIgLTQyLjY3OTExIDAuMCAtNDIuNjc5MTEgQyAyMy41NzEzMiAtNDIuNjc5MTEgNDIuNjc5MTEgLTIzLjU3MTMyIDQyLjY3OTExIDAuMCBaIE0gMC4wIDAuMCAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2ZiZDM1NDc2ZTQxMjE3MGVmNjVhNTRiNTBkOWJjYzFiZmNwMSkiPiA8ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiA8Y2xpcFBhdGggaWQ9InBnZmJkMzU0NzZlNDEyMTcwZWY2NWE1NGI1MGQ5YmNjMWJmY3AyIj48cGF0aCBkPSIgTSAtNTUuNDgyOTcgLTU1LjQ4Mjk3IE0gLTU1LjQ4Mjk3IC01NS40ODI5NyBMIC01NS40ODI5NyA1NS40ODI5NyBMIDEwNi42OTc3NyA1NS40ODI5NyBMIDEwNi42OTc3NyAtNTUuNDgyOTcgWiBNIDEwNi42OTc3NyA1NS40ODI5NyBNIDUxLjIxNDggMC4wIE0gOTMuODkzOSAwLjAgQyA5My44OTM5IDIzLjU3MTMyIDc0Ljc4NjEyIDQyLjY3OTExIDUxLjIxNDggNDIuNjc5MTEgQyAyNy42NDM0OCA0Mi42NzkxMSA4LjUzNTY5IDIzLjU3MTMyIDguNTM1NjkgMC4wIEMgOC41MzU2OSAtMjMuNTcxMzIgMjcuNjQzNDggLTQyLjY3OTExIDUxLjIxNDggLTQyLjY3OTExIEMgNzQuNzg2MTIgLTQyLjY3OTExIDkzLjg5MzkgLTIzLjU3MTMyIDkzLjg5MzkgMC4wIFogTSA1MS4yMTQ4IDAuMCAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2ZiZDM1NDc2ZTQxMjE3MGVmNjVhNTRiNTBkOWJjYzFiZmNwMikiPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtMTI1LjkwMzI0IC01NS40ODI5NyBMIC0xNC45MzczIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtMTE1LjIzMzQ2IC01NS40ODI5NyBMIC00LjI2NzUyIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtMTA0LjU2MzY3IC01NS40ODI5NyBMIDYuNDAyMjUgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC05My44OTM5MiAtNTUuNDgyOTcgTCAxNy4wNzIwMiA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTgzLjIyNDE0IC01NS40ODI5NyBMIDI3Ljc0MTggNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIC03Mi41NTQzNSAtNTUuNDgyOTcgTCAzOC40MTE1OSA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTYxLjg4NDU3IC01NS40ODI5NyBMIDQ5LjA4MTM4IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtNTEuMjE0OCAtNTUuNDgyOTcgTCA1OS43NTExMyA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTQwLjU0NTAxIC01NS40ODI5NyBMIDcwLjQyMDkxIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtMjkuODc1MjMgLTU1LjQ4Mjk3IEwgODEuMDkwNyA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gLTE5LjIwNTQ0IC01NS40ODI5NyBMIDkxLjc2MDQ4IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAtOC41MzU2OSAtNTUuNDgyOTcgTCAxMDIuNDMwMjUgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIDIuMTM0MDYgLTU1LjQ4Mjk3IEwgMTEzLjEgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC4zNSI+IDxwYXRoIGQ9IiBNIDEyLjgwMzg1IC01NS40ODI5NyBMIDEyMy43Njk3OSA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gMjMuNDczNjMgLTU1LjQ4Mjk3IEwgMTM0LjQzOTU4IDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSAzNC4xNDM0IC01NS40ODI5NyBMIDE0NS4xMDkzNCA1NS40ODI5NyAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjM1Ij4gPHBhdGggZD0iIE0gNDQuODEzMTkgLTU1LjQ4Mjk3IEwgMTU1Ljc3OTEzIDU1LjQ4Mjk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuMzUiPiA8cGF0aCBkPSIgTSA1NS40ODI5NyAtNTUuNDgyOTcgTCAxNjYuNDQ4OTEgNTUuNDgyOTcgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPHBhdGggZD0iIE0gMC4wIDAuMCBNIDQyLjY3OTExIDAuMCBDIDQyLjY3OTExIDIzLjU3MTMyIDIzLjU3MTMyIDQyLjY3OTExIDAuMCA0Mi42NzkxMSBDIC0yMy41NzEzMiA0Mi42NzkxMSAtNDIuNjc5MTEgMjMuNTcxMzIgLTQyLjY3OTExIDAuMCBDIC00Mi42NzkxMSAtMjMuNTcxMzIgLTIzLjU3MTMyIC00Mi42NzkxMSAwLjAgLTQyLjY3OTExIEMgMjMuNTcxMzIgLTQyLjY3OTExIDQyLjY3OTExIC0yMy41NzEzMiA0Mi42NzkxMSAwLjAgWiBNIDAuMCAwLjAgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjguMTM4NDYsLTMuNDE2NjYpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMC43OTg1Njg3MjU1ODU5MzczLC0yOS4xOTA5MDI3MDk5NjA5Mykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTI5LjE5MDkwMjcwOTk2MDkzIiB4PSItMC43OTg1Njg3MjU1ODU5MzczIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPkE8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDUxLjIxNDggMC4wIE0gOTMuODkzOSAwLjAgQyA5My44OTM5IDIzLjU3MTMyIDc0Ljc4NjEyIDQyLjY3OTExIDUxLjIxNDggNDIuNjc5MTEgQyAyNy42NDM0OCA0Mi42NzkxMSA4LjUzNTY5IDIzLjU3MTMyIDguNTM1NjkgMC4wIEMgOC41MzU2OSAtMjMuNTcxMzIgMjcuNjQzNDggLTQyLjY3OTExIDUxLjIxNDggLTQyLjY3OTExIEMgNzQuNzg2MTIgLTQyLjY3OTExIDkzLjg5MzkgLTIzLjU3MTMyIDkzLjg5MzkgMC4wIFogTSA1MS4yMTQ4IDAuMCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMS44NTMyNiwtMy40MTY2NikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0wLjc5ODU2ODcyNTU4NTkzNzMsLTI5LjE5MDkwMjcwOTk2MDkzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMjkuMTkwOTAyNzA5OTYwOTMiIHg9Ii0wLjc5ODU2ODcyNTU4NTkzNzMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLjc2MDc0LC01OC4wNDU4NSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0wLjc5ODU2ODcyNTU4NTkzNzMsLTI5LjE5MDkwMjcwOTk2MDkzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMjkuMTkwOTAyNzA5OTYwOTMiIHg9Ii0wLjc5ODU2ODcyNTU4NTkzNzMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuNDUiPiA8cGF0aCBkPSIgTSAyMy45MDAxOCAtNTAuMzYxMDIgTCAyOC4xNjgzNSAtNTguODk3MzggICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM0LjM2NzUyLC01OC4wNDU4NSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0wLjc5ODU2ODcyNTU4NTkzNzMsLTI5LjE5MDkwMjcwOTk2MDkzKSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMjkuMTkwOTAyNzA5OTYwOTMiIHg9Ii0wLjc5ODU2ODcyNTU4NTkzNzMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

### distributive

For sets $A,B,C$:

$A \cap (B \cup C) = (A \cap B) \cup (A \cap C)$

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\definecolor{flexokigreen}{HTML}{cdd597}\n\\begin{document}\n\\begin{tikzpicture}[scale=1.2]\n  \\begin{scope}\n    \\clip (90:0.8) circle (1);\n    \\begin{scope}\n      \\clip (210:0.8) circle (1);\n      \\fill[flexokigreen, opacity=0.8] (-3,-3) rectangle (3,3);\n    \\end{scope}\n    \\begin{scope}[even odd rule]\n      \\clip (210:0.8) circle (1) (-3,-3) rectangle (3,3);\n      \\begin{scope}\n        \\clip (330:0.8) circle (1);\n        \\fill[flexokigreen, opacity=0.8] (-3,-3) rectangle (3,3);\n      \\end{scope}\n    \\end{scope}\n  \\end{scope}\n  \\draw[thick] (90:0.8) circle (1) node[above=2] {$A$};\n  \\draw[thick] (210:0.8) circle (1) node[below left=2] {$B$};\n  \\draw[thick] (330:0.8) circle (1) node[below right=2] {$C$};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIxNTcuODY3MjVwdCIgaGVpZ2h0PSIxNjUuOTE0MDJwdCIgdmlld0JveD0iLTcyIC03MiAxNTcuODY3MjUgMTY1LjkxNDAyIj48ZyBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYuNzc1NzcyMDk0NzI2NTYxLDI1Ljg0OTM5NTc1MTk1MzExOCkgc2NhbGUoMSwtMSkiPjxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZS13aWR0aD0iMC40Ij4gPGNsaXBQYXRoIGlkPSJwZ2Y5YmI4Njk5OWY1ZTc1MzdkOGMyMDFlYWRkNjdhNWI5M2NwMSI+PHBhdGggZD0iIE0gMC4wIDI3LjMxNDY1IE0gMzQuMTQzMiAyNy4zMTQ2NSBDIDM0LjE0MzIgNDYuMTcxNjYgMTguODU3MDEgNjEuNDU3ODYgMC4wIDYxLjQ1Nzg2IEMgLTE4Ljg1NzAxIDYxLjQ1Nzg2IC0zNC4xNDMyIDQ2LjE3MTY2IC0zNC4xNDMyIDI3LjMxNDY1IEMgLTM0LjE0MzIgOC40NTc2NCAtMTguODU3MDEgLTYuODI4NTUgMC4wIC02LjgyODU1IEMgMTguODU3MDEgLTYuODI4NTUgMzQuMTQzMiA4LjQ1NzY0IDM0LjE0MzIgMjcuMzE0NjUgWiBNIDAuMCAyNy4zMTQ2NSAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2Y5YmI4Njk5OWY1ZTc1MzdkOGMyMDFlYWRkNjdhNWI5M2NwMSkiPiA8Y2xpcFBhdGggaWQ9InBnZjliYjg2OTk5ZjVlNzUzN2Q4YzIwMWVhZGQ2N2E1YjkzY3AyIj48cGF0aCBkPSIgTSAtMjMuNjU0NzQgLTEzLjY1NzA2IE0gMTAuNDg4NDYgLTEzLjY1NzA2IEMgMTAuNDg4NDYgNS4xOTk5NSAtNC43OTc3MyAyMC40ODYxNSAtMjMuNjU0NzQgMjAuNDg2MTUgQyAtNDIuNTExNzUgMjAuNDg2MTUgLTU3Ljc5Nzk0IDUuMTk5OTUgLTU3Ljc5Nzk0IC0xMy42NTcwNiBDIC01Ny43OTc5NCAtMzIuNTE0MDcgLTQyLjUxMTc1IC00Ny44MDAyNiAtMjMuNjU0NzQgLTQ3LjgwMDI2IEMgLTQuNzk3NzMgLTQ3LjgwMDI2IDEwLjQ4ODQ2IC0zMi41MTQwNyAxMC40ODg0NiAtMTMuNjU3MDYgWiBNIC0yMy42NTQ3NCAtMTMuNjU3MDYgICI+PC9wYXRoPiA8L2NsaXBQYXRoPiA8ZyBjbGlwLXBhdGg9InVybCgjcGdmOWJiODY5OTlmNWU3NTM3ZDhjMjAxZWFkZDY3YTViOTNjcDIpIj4gPGcgc3Ryb2tlPSIjY2RkNTk3IiBmaWxsPSIjY2RkNTk3Ij4gPGcgc3Ryb2tlLW9wYWNpdHk9IjAuOCI+IDxnIGZpbGwtb3BhY2l0eT0iMC44Ij4gPHBhdGggZD0iIE0gLTEwMi40Mjk2MSAtMTAyLjQyOTYxIE0gLTEwMi40Mjk2MSAtMTAyLjQyOTYxIEwgLTEwMi40Mjk2MSAxMDIuNDI5NjEgTCAxMDIuNDI5NjEgMTAyLjQyOTYxIEwgMTAyLjQyOTYxIC0xMDIuNDI5NjEgWiBNIDEwMi40Mjk2MSAxMDIuNDI5NjEgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgZmlsbC1ydWxlPSJldmVub2RkIj4gPGNsaXBQYXRoIGlkPSJwZ2Y5YmI4Njk5OWY1ZTc1MzdkOGMyMDFlYWRkNjdhNWI5M2NwMyI+PHBhdGggZD0iIE0gLTIzLjY1NDc0IC0xMy42NTcwNiBNIDEwLjQ4ODQ2IC0xMy42NTcwNiBDIDEwLjQ4ODQ2IDUuMTk5OTUgLTQuNzk3NzMgMjAuNDg2MTUgLTIzLjY1NDc0IDIwLjQ4NjE1IEMgLTQyLjUxMTc1IDIwLjQ4NjE1IC01Ny43OTc5NCA1LjE5OTk1IC01Ny43OTc5NCAtMTMuNjU3MDYgQyAtNTcuNzk3OTQgLTMyLjUxNDA3IC00Mi41MTE3NSAtNDcuODAwMjYgLTIzLjY1NDc0IC00Ny44MDAyNiBDIC00Ljc5NzczIC00Ny44MDAyNiAxMC40ODg0NiAtMzIuNTE0MDcgMTAuNDg4NDYgLTEzLjY1NzA2IFogTSAtMjMuNjU0NzQgLTEzLjY1NzA2IE0gLTEwMi40Mjk2MSAtMTAyLjQyOTYxIE0gLTEwMi40Mjk2MSAtMTAyLjQyOTYxIEwgLTEwMi40Mjk2MSAxMDIuNDI5NjEgTCAxMDIuNDI5NjEgMTAyLjQyOTYxIEwgMTAyLjQyOTYxIC0xMDIuNDI5NjEgWiBNIDEwMi40Mjk2MSAxMDIuNDI5NjEgICI+PC9wYXRoPiA8L2NsaXBQYXRoPiA8ZyBjbGlwLXBhdGg9InVybCgjcGdmOWJiODY5OTlmNWU3NTM3ZDhjMjAxZWFkZDY3YTViOTNjcDMpIj4gPGNsaXBQYXRoIGlkPSJwZ2Y5YmI4Njk5OWY1ZTc1MzdkOGMyMDFlYWRkNjdhNWI5M2NwNCI+PHBhdGggZD0iIE0gMjMuNjU0NzQgLTEzLjY1NzA2IE0gNTcuNzk3OTQgLTEzLjY1NzA2IEMgNTcuNzk3OTQgNS4xOTk5NSA0Mi41MTE3NSAyMC40ODYxNSAyMy42NTQ3NCAyMC40ODYxNSBDIDQuNzk3NzMgMjAuNDg2MTUgLTEwLjQ4ODQ2IDUuMTk5OTUgLTEwLjQ4ODQ2IC0xMy42NTcwNiBDIC0xMC40ODg0NiAtMzIuNTE0MDcgNC43OTc3MyAtNDcuODAwMjYgMjMuNjU0NzQgLTQ3LjgwMDI2IEMgNDIuNTExNzUgLTQ3LjgwMDI2IDU3Ljc5Nzk0IC0zMi41MTQwNyA1Ny43OTc5NCAtMTMuNjU3MDYgWiBNIDIzLjY1NDc0IC0xMy42NTcwNiAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2Y5YmI4Njk5OWY1ZTc1MzdkOGMyMDFlYWRkNjdhNWI5M2NwNCkiPiA8ZyBzdHJva2U9IiNjZGQ1OTciIGZpbGw9IiNjZGQ1OTciPiA8ZyBzdHJva2Utb3BhY2l0eT0iMC44Ij4gPGcgZmlsbC1vcGFjaXR5PSIwLjgiPiA8cGF0aCBkPSIgTSAtMTAyLjQyOTYxIC0xMDIuNDI5NjEgTSAtMTAyLjQyOTYxIC0xMDIuNDI5NjEgTCAtMTAyLjQyOTYxIDEwMi40Mjk2MSBMIDEwMi40Mjk2MSAxMDIuNDI5NjEgTCAxMDIuNDI5NjEgLTEwMi40Mjk2MSBaIE0gMTAyLjQyOTYxIDEwMi40Mjk2MSAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDAuMCAyNy4zMTQ2NSBNIDM0LjE0MzIgMjcuMzE0NjUgQyAzNC4xNDMyIDQ2LjE3MTY2IDE4Ljg1NzAxIDYxLjQ1Nzg2IDAuMCA2MS40NTc4NiBDIC0xOC44NTcwMSA2MS40NTc4NiAtMzQuMTQzMiA0Ni4xNzE2NiAtMzQuMTQzMiAyNy4zMTQ2NSBDIC0zNC4xNDMyIDguNDU3NjQgLTE4Ljg1NzAxIC02LjgyODU1IDAuMCAtNi44Mjg1NSBDIDE4Ljg1NzAxIC02LjgyODU1IDM0LjE0MzIgOC40NTc2NCAzNC4xNDMyIDI3LjMxNDY1IFogTSAwLjAgMjcuMzE0NjUgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMy43NSw4Ny45NTMxMSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDYuNzc1NzcyMDk0NzI2NTYxLDI1Ljg0OTM5NTc1MTk1MzExOCkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMjUuODQ5Mzk1NzUxOTUzMTE4IiB4PSI2Ljc3NTc3MjA5NDcyNjU2MSIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5BPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAtMjMuNjU0NzQgLTEzLjY1NzA2IE0gMTAuNDg4NDYgLTEzLjY1NzA2IEMgMTAuNDg4NDYgNS4xOTk5NSAtNC43OTc3MyAyMC40ODYxNSAtMjMuNjU0NzQgMjAuNDg2MTUgQyAtNDIuNTExNzUgMjAuNDg2MTUgLTU3Ljc5Nzk0IDUuMTk5OTUgLTU3Ljc5Nzk0IC0xMy42NTcwNiBDIC01Ny43OTc5NCAtMzIuNTE0MDcgLTQyLjUxMTc1IC00Ny44MDAyNiAtMjMuNjU0NzQgLTQ3LjgwMDI2IEMgLTQuNzk3NzMgLTQ3LjgwMDI2IDEwLjQ4ODQ2IC0zMi41MTQwNyAxMC40ODg0NiAtMTMuNjU3MDYgWiBNIC0yMy42NTQ3NCAtMTMuNjU3MDYgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzUuNzEyOCwtNjQuNDYxNjQpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg2Ljc3NTc3MjA5NDcyNjU2MSwyNS44NDkzOTU3NTE5NTMxMTgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjI1Ljg0OTM5NTc1MTk1MzExOCIgeD0iNi43NzU3NzIwOTQ3MjY1NjEiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPHBhdGggZD0iIE0gMjMuNjU0NzQgLTEzLjY1NzA2IE0gNTcuNzk3OTQgLTEzLjY1NzA2IEMgNTcuNzk3OTQgNS4xOTk5NSA0Mi41MTE3NSAyMC40ODYxNSAyMy42NTQ3NCAyMC40ODYxNSBDIDQuNzk3NzMgMjAuNDg2MTUgLTEwLjQ4ODQ2IDUuMTk5OTUgLTEwLjQ4ODQ2IC0xMy42NTcwNiBDIC0xMC40ODg0NiAtMzIuNTE0MDcgNC43OTc3MyAtNDcuODAwMjYgMjMuNjU0NzQgLTQ3LjgwMDI2IEMgNDIuNTExNzUgLTQ3LjgwMDI2IDU3Ljc5Nzk0IC0zMi41MTQwNyA1Ny43OTc5NCAtMTMuNjU3MDYgWiBNIDIzLjY1NDc0IC0xMy42NTcwNiAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY3LjYyNiwtNjQuNDYxNjQpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg2Ljc3NTc3MjA5NDcyNjU2MSwyNS44NDkzOTU3NTE5NTMxMTgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjI1Ljg0OTM5NTc1MTk1MzExOCIgeD0iNi43NzU3NzIwOTQ3MjY1NjEiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QzwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+PC9zdmc+" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

> \[!note\] order of operations
>
> neither commutative nor associative
>
> $A \cup (B \cap C)$ and $(A \cup B) \cap C$:
>
> <figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\definecolor{flexokigreen}{HTML}{cdd597}\n\\begin{document}\n\\begin{tikzpicture}[scale=0.9]\n  % Define circles\n  \\def\\circleA{(0,0) circle (1.3)}\n  \\def\\circleB{(1.3,0.9) circle (1.3)}\n  \\def\\circleC{(1.3,-0.9) circle (1.3)}\n\n  % Left diagram: A \\cup (B \\cap C)\n  \\begin{scope}[shift={(0,0)}]\n    % Shade A\n    \\fill[flexokigreen, opacity=0.8] \\circleA;\n    % Shade B \\cap C\n    \\begin{scope}\n      \\clip \\circleB;\n      \\fill[flexokigreen, opacity=0.8] \\circleC;\n    \\end{scope}\n\n    % Draw outlines\n    \\draw[thick] \\circleA;\n    \\draw[thick] \\circleB;\n    \\draw[thick] \\circleC;\n\n    % Labels\n    \\node at (-1.6, 0) {\\textbf{\\textsf{A}}};\n    \\node at (2.9, 0.9) {\\textbf{\\textsf{B}}};\n    \\node at (2.9, -0.9) {\\textbf{\\textsf{C}}};\n\n    \\node[below] at (0.65, -2.5) {\\textbf{\\textsf{\\textit{A} $\\cup$ (\\textit{B} $\\cap$ \\textit{C})}}};\n  \\end{scope}\n\n  % Right diagram: (A \\cup B) \\cap C\n  \\begin{scope}[shift={(7,0)}]\n    % Shade (A \\cup B) \\cap C\n    \\begin{scope}\n      \\clip \\circleC;\n      \\fill[flexokigreen, opacity=0.8] \\circleA;\n      \\fill[flexokigreen, opacity=0.8] \\circleB;\n    \\end{scope}\n\n    % Draw outlines\n    \\draw[thick] \\circleA;\n    \\draw[thick] \\circleB;\n    \\draw[thick] \\circleC;\n\n    % Labels\n    \\node at (-1.6, 0) {\\textbf{\\textsf{A}}};\n    \\node at (2.9, 0.9) {\\textbf{\\textsf{B}}};\n    \\node at (2.9, -0.9) {\\textbf{\\textsf{C}}};\n\n    \\node[below] at (0.65, -2.5) {\\textbf{\\textsf{(\\textit{A} $\\cup$ \\textit{B}) $\\cap$ \\textit{C}}}};\n  \\end{scope}\n\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzMDguNDgzMnB0IiBoZWlnaHQ9IjEzNy42MjAxcHQiIHZpZXdCb3g9Ii03MiAtNzIgMzA4LjQ4MzIgMTM3LjYyMDEiPjxnIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI0LjI5ODUyMjk0OTIxODc0MywtMTUuNTM0MDcyODc1OTc2NTU5KSBzY2FsZSgxLC0xKSI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlLXdpZHRoPSIwLjQiPiA8ZyBzdHJva2U9IiNjZGQ1OTciIGZpbGw9IiNjZGQ1OTciPiA8ZyBzdHJva2Utb3BhY2l0eT0iMC44Ij4gPGcgZmlsbC1vcGFjaXR5PSIwLjgiPiA8cGF0aCBkPSIgTSAwLjAgMC4wIE0gMzMuMjg5NTUgMC4wIEMgMzMuMjg5NTUgMTguMzg1NTQgMTguMzg1NTQgMzMuMjg5NTUgMC4wIDMzLjI4OTU1IEMgLTE4LjM4NTU0IDMzLjI4OTU1IC0zMy4yODk1NSAxOC4zODU1NCAtMzMuMjg5NTUgMC4wIEMgLTMzLjI4OTU1IC0xOC4zODU1NCAtMTguMzg1NTQgLTMzLjI4OTU1IDAuMCAtMzMuMjg5NTUgQyAxOC4zODU1NCAtMzMuMjg5NTUgMzMuMjg5NTUgLTE4LjM4NTU0IDMzLjI4OTU1IDAuMCBaIE0gMC4wIDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDwvZz4gPGNsaXBQYXRoIGlkPSJwZ2ZmYTlhOGMzNmMzZmJkOGY5MjViNTc4ZmY3YTk2ODk5YWNwMSI+PHBhdGggZD0iIE0gMzMuMjg5NTUgMjMuMDQ2MzkgTSA2Ni41NzkxIDIzLjA0NjM5IEMgNjYuNTc5MSA0MS40MzE5MyA1MS42NzUxIDU2LjMzNTk0IDMzLjI4OTU1IDU2LjMzNTk0IEMgMTQuOTA0IDU2LjMzNTk0IDAuMCA0MS40MzE5MyAwLjAgMjMuMDQ2MzkgQyAwLjAgNC42NjA4NCAxNC45MDQgLTEwLjI0MzE2IDMzLjI4OTU1IC0xMC4yNDMxNiBDIDUxLjY3NTEgLTEwLjI0MzE2IDY2LjU3OTEgNC42NjA4NCA2Ni41NzkxIDIzLjA0NjM5IFogTSAzMy4yODk1NSAyMy4wNDYzOSAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2ZmYTlhOGMzNmMzZmJkOGY5MjViNTc4ZmY3YTk2ODk5YWNwMSkiPiA8ZyBzdHJva2U9IiNjZGQ1OTciIGZpbGw9IiNjZGQ1OTciPiA8ZyBzdHJva2Utb3BhY2l0eT0iMC44Ij4gPGcgZmlsbC1vcGFjaXR5PSIwLjgiPiA8cGF0aCBkPSIgTSAzMy4yODk1NSAtMjMuMDQ2MzkgTSA2Ni41NzkxIC0yMy4wNDYzOSBDIDY2LjU3OTEgLTQuNjYwODQgNTEuNjc1MSAxMC4yNDMxNiAzMy4yODk1NSAxMC4yNDMxNiBDIDE0LjkwNCAxMC4yNDMxNiAwLjAgLTQuNjYwODQgMC4wIC0yMy4wNDYzOSBDIDAuMCAtNDEuNDMxOTMgMTQuOTA0IC01Ni4zMzU5NCAzMy4yODk1NSAtNTYuMzM1OTQgQyA1MS42NzUxIC01Ni4zMzU5NCA2Ni41NzkxIC00MS40MzE5MyA2Ni41NzkxIC0yMy4wNDYzOSBaIE0gMzMuMjg5NTUgLTIzLjA0NjM5ICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPHBhdGggZD0iIE0gMC4wIDAuMCBNIDMzLjI4OTU1IDAuMCBDIDMzLjI4OTU1IDE4LjM4NTU0IDE4LjM4NTU0IDMzLjI4OTU1IDAuMCAzMy4yODk1NSBDIC0xOC4zODU1NCAzMy4yODk1NSAtMzMuMjg5NTUgMTguMzg1NTQgLTMzLjI4OTU1IDAuMCBDIC0zMy4yODk1NSAtMTguMzg1NTQgLTE4LjM4NTU0IC0zMy4yODk1NSAwLjAgLTMzLjI4OTU1IEMgMTguMzg1NTQgLTMzLjI4OTU1IDMzLjI4OTU1IC0xOC4zODU1NCAzMy4yODk1NSAwLjAgWiBNIDAuMCAwLjAgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPHBhdGggZD0iIE0gMzMuMjg5NTUgMjMuMDQ2MzkgTSA2Ni41NzkxIDIzLjA0NjM5IEMgNjYuNTc5MSA0MS40MzE5MyA1MS42NzUxIDU2LjMzNTk0IDMzLjI4OTU1IDU2LjMzNTk0IEMgMTQuOTA0IDU2LjMzNTk0IDAuMCA0MS40MzE5MyAwLjAgMjMuMDQ2MzkgQyAwLjAgNC42NjA4NCAxNC45MDQgLTEwLjI0MzE2IDMzLjI4OTU1IC0xMC4yNDMxNiBDIDUxLjY3NTEgLTEwLjI0MzE2IDY2LjU3OTEgNC42NjA4NCA2Ni41NzkxIDIzLjA0NjM5IFogTSAzMy4yODk1NSAyMy4wNDYzOSAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAzMy4yODk1NSAtMjMuMDQ2MzkgTSA2Ni41NzkxIC0yMy4wNDYzOSBDIDY2LjU3OTEgLTQuNjYwODQgNTEuNjc1MSAxMC4yNDMxNiAzMy4yODk1NSAxMC4yNDMxNiBDIDE0LjkwNCAxMC4yNDMxNiAwLjAgLTQuNjYwODQgMC4wIC0yMy4wNDYzOSBDIDAuMCAtNDEuNDMxOTMgMTQuOTA0IC01Ni4zMzU5NCAzMy4yODk1NSAtNTYuMzM1OTQgQyA1MS42NzUxIC01Ni4zMzU5NCA2Ni41NzkxIC00MS40MzE5MyA2Ni41NzkxIC0yMy4wNDYzOSBaIE0gMzMuMjg5NTUgLTIzLjA0NjM5ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNDQuNjM4NSwtMy40NzIyMSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0yNC4yOTg1MjI5NDkyMTg3NDMsLTE1LjUzNDA3Mjg3NTk3NjU1OSkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTE1LjUzNDA3Mjg3NTk3NjU1OSIgeD0iLTI0LjI5ODUyMjk0OTIxODc0MyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayI+QTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3MC41OTQzLDE5LjU3NDE3KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTI0LjI5ODUyMjk0OTIxODc0MywtMTUuNTM0MDcyODc1OTc2NTU5KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMTUuNTM0MDcyODc1OTc2NTU5IiB4PSItMjQuMjk4NTIyOTQ5MjE4NzQzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIj5CPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcwLjc0NzA5LC0yNi41MTg2KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTI0LjI5ODUyMjk0OTIxODc0MywtMTUuNTM0MDcyODc1OTc2NTU5KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMTUuNTM0MDcyODc1OTc2NTU5IiB4PSItMjQuMjk4NTIyOTQ5MjE4NzQzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIj5DPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMi40ODA1OCwtNzUuMDUxMikiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0yNC4yOTg1MjI5NDkyMTg3NDMsLTE1LjUzNDA3Mjg3NTk3NjU1OSkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTE1LjUzNDA3Mjg3NTk3NjU1OSIgeD0iLTI0LjI5ODUyMjk0OTIxODc0MyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayI+QTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMTUuNTM0MDcyODc1OTc2NTU5IiB4PSItMTMuMjk4NDYxOTE0MDYyNDk2IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIj7iiKo8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTE1LjUzNDA3Mjg3NTk3NjU1OSIgeD0iLTIuOTY1MDg1OTgzMjc2MzY2NyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayI+KEI8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTE1LjUzNDA3Mjg3NTk3NjU1OSIgeD0iMTIuMzEyNzc2NTY1NTUxNzU0IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIj7iiKk8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTE1LjUzNDA3Mjg3NTk3NjU1OSIgeD0iMjIuNjQ2MTUyNDk2MzM3ODg3IiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIj5DKTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8Y2xpcFBhdGggaWQ9InBnZmZhOWE4YzM2YzNmYmQ4ZjkyNWI1NzhmZjdhOTY4OTlhY3AyIj48cGF0aCBkPSIgTSAyMTIuNTQwNjIgLTIzLjA0NjM5IE0gMjQ1LjgzMDE3IC0yMy4wNDYzOSBDIDI0NS44MzAxNyAtNC42NjA4NCAyMzAuOTI2MTYgMTAuMjQzMTYgMjEyLjU0MDYyIDEwLjI0MzE2IEMgMTk0LjE1NTA4IDEwLjI0MzE2IDE3OS4yNTEwNyAtNC42NjA4NCAxNzkuMjUxMDcgLTIzLjA0NjM5IEMgMTc5LjI1MTA3IC00MS40MzE5MyAxOTQuMTU1MDggLTU2LjMzNTk0IDIxMi41NDA2MiAtNTYuMzM1OTQgQyAyMzAuOTI2MTYgLTU2LjMzNTk0IDI0NS44MzAxNyAtNDEuNDMxOTMgMjQ1LjgzMDE3IC0yMy4wNDYzOSBaIE0gMjEyLjU0MDYyIC0yMy4wNDYzOSAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2ZmYTlhOGMzNmMzZmJkOGY5MjViNTc4ZmY3YTk2ODk5YWNwMikiPiA8ZyBzdHJva2U9IiNjZGQ1OTciIGZpbGw9IiNjZGQ1OTciPiA8ZyBzdHJva2Utb3BhY2l0eT0iMC44Ij4gPGcgZmlsbC1vcGFjaXR5PSIwLjgiPiA8cGF0aCBkPSIgTSAxNzkuMjUxMDcgMC4wIE0gMjEyLjU0MDYyIDAuMCBDIDIxMi41NDA2MiAxOC4zODU1NCAxOTcuNjM2NjEgMzMuMjg5NTUgMTc5LjI1MTA3IDMzLjI4OTU1IEMgMTYwLjg2NTUyIDMzLjI4OTU1IDE0NS45NjE1MiAxOC4zODU1NCAxNDUuOTYxNTIgMC4wIEMgMTQ1Ljk2MTUyIC0xOC4zODU1NCAxNjAuODY1NTIgLTMzLjI4OTU1IDE3OS4yNTEwNyAtMzMuMjg5NTUgQyAxOTcuNjM2NjEgLTMzLjI4OTU1IDIxMi41NDA2MiAtMTguMzg1NTQgMjEyLjU0MDYyIDAuMCBaIE0gMTc5LjI1MTA3IDAuMCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlPSIjY2RkNTk3IiBmaWxsPSIjY2RkNTk3Ij4gPGcgc3Ryb2tlLW9wYWNpdHk9IjAuOCI+IDxnIGZpbGwtb3BhY2l0eT0iMC44Ij4gPHBhdGggZD0iIE0gMjEyLjU0MDYyIDIzLjA0NjM5IE0gMjQ1LjgzMDE3IDIzLjA0NjM5IEMgMjQ1LjgzMDE3IDQxLjQzMTkzIDIzMC45MjYxNiA1Ni4zMzU5NCAyMTIuNTQwNjIgNTYuMzM1OTQgQyAxOTQuMTU1MDggNTYuMzM1OTQgMTc5LjI1MTA3IDQxLjQzMTkzIDE3OS4yNTEwNyAyMy4wNDYzOSBDIDE3OS4yNTEwNyA0LjY2MDg0IDE5NC4xNTUwOCAtMTAuMjQzMTYgMjEyLjU0MDYyIC0xMC4yNDMxNiBDIDIzMC45MjYxNiAtMTAuMjQzMTYgMjQ1LjgzMDE3IDQuNjYwODQgMjQ1LjgzMDE3IDIzLjA0NjM5IFogTSAyMTIuNTQwNjIgMjMuMDQ2MzkgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAxNzkuMjUxMDcgMC4wIE0gMjEyLjU0MDYyIDAuMCBDIDIxMi41NDA2MiAxOC4zODU1NCAxOTcuNjM2NjEgMzMuMjg5NTUgMTc5LjI1MTA3IDMzLjI4OTU1IEMgMTYwLjg2NTUyIDMzLjI4OTU1IDE0NS45NjE1MiAxOC4zODU1NCAxNDUuOTYxNTIgMC4wIEMgMTQ1Ljk2MTUyIC0xOC4zODU1NCAxNjAuODY1NTIgLTMzLjI4OTU1IDE3OS4yNTEwNyAtMzMuMjg5NTUgQyAxOTcuNjM2NjEgLTMzLjI4OTU1IDIxMi41NDA2MiAtMTguMzg1NTQgMjEyLjU0MDYyIDAuMCBaIE0gMTc5LjI1MTA3IDAuMCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAyMTIuNTQwNjIgMjMuMDQ2MzkgTSAyNDUuODMwMTcgMjMuMDQ2MzkgQyAyNDUuODMwMTcgNDEuNDMxOTMgMjMwLjkyNjE2IDU2LjMzNTk0IDIxMi41NDA2MiA1Ni4zMzU5NCBDIDE5NC4xNTUwOCA1Ni4zMzU5NCAxNzkuMjUxMDcgNDEuNDMxOTMgMTc5LjI1MTA3IDIzLjA0NjM5IEMgMTc5LjI1MTA3IDQuNjYwODQgMTk0LjE1NTA4IC0xMC4yNDMxNiAyMTIuNTQwNjIgLTEwLjI0MzE2IEMgMjMwLjkyNjE2IC0xMC4yNDMxNiAyNDUuODMwMTcgNC42NjA4NCAyNDUuODMwMTcgMjMuMDQ2MzkgWiBNIDIxMi41NDA2MiAyMy4wNDYzOSAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAyMTIuNTQwNjIgLTIzLjA0NjM5IE0gMjQ1LjgzMDE3IC0yMy4wNDYzOSBDIDI0NS44MzAxNyAtNC42NjA4NCAyMzAuOTI2MTYgMTAuMjQzMTYgMjEyLjU0MDYyIDEwLjI0MzE2IEMgMTk0LjE1NTA4IDEwLjI0MzE2IDE3OS4yNTEwNyAtNC42NjA4NCAxNzkuMjUxMDcgLTIzLjA0NjM5IEMgMTc5LjI1MTA3IC00MS40MzE5MyAxOTQuMTU1MDggLTU2LjMzNTk0IDIxMi41NDA2MiAtNTYuMzM1OTQgQyAyMzAuOTI2MTYgLTU2LjMzNTk0IDI0NS44MzAxNyAtNDEuNDMxOTMgMjQ1LjgzMDE3IC0yMy4wNDYzOSBaIE0gMjEyLjU0MDYyIC0yMy4wNDYzOSAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTM0LjYxMjU2LC0zLjQ3MjIxKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTI0LjI5ODUyMjk0OTIxODc0MywtMTUuNTM0MDcyODc1OTc2NTU5KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMTUuNTM0MDcyODc1OTc2NTU5IiB4PSItMjQuMjk4NTIyOTQ5MjE4NzQzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIj5BPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0OS44NDUzNywxOS41NzQxNykiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC0yNC4yOTg1MjI5NDkyMTg3NDMsLTE1LjUzNDA3Mjg3NTk3NjU1OSkgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTE1LjUzNDA3Mjg3NTk3NjU1OSIgeD0iLTI0LjI5ODUyMjk0OTIxODc0MyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayI+QjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDkuOTk4MTUsLTI2LjUxODYpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMjQuMjk4NTIyOTQ5MjE4NzQzLC0xNS41MzQwNzI4NzU5NzY1NTkpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ii0xNS41MzQwNzI4NzU5NzY1NTkiIHg9Ii0yNC4yOTg1MjI5NDkyMTg3NDMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siPkM8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY2Ljc3MDUsLTc1LjA1MTIpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMjQuMjk4NTIyOTQ5MjE4NzQzLC0xNS41MzQwNzI4NzU5NzY1NTkpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ii0xNS41MzQwNzI4NzU5NzY1NTkiIHg9Ii0yNC4yOTg1MjI5NDkyMTg3NDMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siPihBPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ii0xNS41MzQwNzI4NzU5NzY1NTkiIHg9Ii05LjAyMDY2MDQwMDM5MDYyMyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayI+4oiqPC90ZXh0Pjx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ii0xNS41MzQwNzI4NzU5NzY1NTkiIHg9IjEuMzEyNzE1NTMwMzk1NTA3NiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayI+Qik8L3RleHQ+PHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTE1LjUzNDA3Mjg3NTk3NjU1OSIgeD0iMTYuNTkwNTc4MDc5MjIzNjMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siPuKIqTwvdGV4dD48dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItMTUuNTM0MDcyODc1OTc2NTU5IiB4PSIyNi45MjM5NTQwMTAwMDk3NiIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayI+QzwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

### de Morgan’s laws

For sets $A,B,C$:

$$
A \setminus (B \cup C) = (A \setminus B) \cap (A \setminus C)
$$

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\definecolor{flexokired}{HTML}{fdb2a2}\n\\begin{document}\n\\begin{tikzpicture}[scale=1.2]\n  \\begin{scope}[even odd rule]\n    \\clip (210:0.8) circle (1) (-3,-3) rectangle (3,3);\n    \\begin{scope}\n      \\clip (330:0.8) circle (1) (-3,-3) rectangle (3,3);\n      \\fill[flexokired, opacity=0.5] (90:0.8) circle (1);\n    \\end{scope}\n  \\end{scope}\n  \\draw[thick] (90:0.8) circle (1) node[above=2] {$A$};\n  \\draw[thick] (210:0.8) circle (1) node[below left=2] {$B$};\n  \\draw[thick] (330:0.8) circle (1) node[below right=2] {$C$};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyMDQuODU5MjJwdCIgaGVpZ2h0PSIyMDQuODU5MjJwdCIgdmlld0JveD0iLTcyIC03MiAyMDQuODU5MjIgMjA0Ljg1OTIyIj48ZyBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwLjE1OTYwNjkzMzU5Mzc0MywzMC4xNTk2MDY5MzM1OTM3NDMpIHNjYWxlKDEsLTEpIj48ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2Utd2lkdGg9IjAuNCI+IDxnIGZpbGwtcnVsZT0iZXZlbm9kZCI+IDxjbGlwUGF0aCBpZD0icGdmOTdiNzNiMzA3NzNjM2JkOGIxMjNmYTQ1ODk5NDFmN2NjcDEiPjxwYXRoIGQ9IiBNIC0yMy42NTQ3NCAtMTMuNjU3MDYgTSAxMC40ODg0NiAtMTMuNjU3MDYgQyAxMC40ODg0NiA1LjE5OTk1IC00Ljc5NzczIDIwLjQ4NjE1IC0yMy42NTQ3NCAyMC40ODYxNSBDIC00Mi41MTE3NSAyMC40ODYxNSAtNTcuNzk3OTQgNS4xOTk5NSAtNTcuNzk3OTQgLTEzLjY1NzA2IEMgLTU3Ljc5Nzk0IC0zMi41MTQwNyAtNDIuNTExNzUgLTQ3LjgwMDI2IC0yMy42NTQ3NCAtNDcuODAwMjYgQyAtNC43OTc3MyAtNDcuODAwMjYgMTAuNDg4NDYgLTMyLjUxNDA3IDEwLjQ4ODQ2IC0xMy42NTcwNiBaIE0gLTIzLjY1NDc0IC0xMy42NTcwNiBNIC0xMDIuNDI5NjEgLTEwMi40Mjk2MSBNIC0xMDIuNDI5NjEgLTEwMi40Mjk2MSBMIC0xMDIuNDI5NjEgMTAyLjQyOTYxIEwgMTAyLjQyOTYxIDEwMi40Mjk2MSBMIDEwMi40Mjk2MSAtMTAyLjQyOTYxIFogTSAxMDIuNDI5NjEgMTAyLjQyOTYxICAiPjwvcGF0aD4gPC9jbGlwUGF0aD4gPGcgY2xpcC1wYXRoPSJ1cmwoI3BnZjk3YjczYjMwNzczYzNiZDhiMTIzZmE0NTg5OTQxZjdjY3AxKSI+IDxjbGlwUGF0aCBpZD0icGdmOTdiNzNiMzA3NzNjM2JkOGIxMjNmYTQ1ODk5NDFmN2NjcDIiPjxwYXRoIGQ9IiBNIDIzLjY1NDc0IC0xMy42NTcwNiBNIDU3Ljc5Nzk0IC0xMy42NTcwNiBDIDU3Ljc5Nzk0IDUuMTk5OTUgNDIuNTExNzUgMjAuNDg2MTUgMjMuNjU0NzQgMjAuNDg2MTUgQyA0Ljc5NzczIDIwLjQ4NjE1IC0xMC40ODg0NiA1LjE5OTk1IC0xMC40ODg0NiAtMTMuNjU3MDYgQyAtMTAuNDg4NDYgLTMyLjUxNDA3IDQuNzk3NzMgLTQ3LjgwMDI2IDIzLjY1NDc0IC00Ny44MDAyNiBDIDQyLjUxMTc1IC00Ny44MDAyNiA1Ny43OTc5NCAtMzIuNTE0MDcgNTcuNzk3OTQgLTEzLjY1NzA2IFogTSAyMy42NTQ3NCAtMTMuNjU3MDYgTSAtMTAyLjQyOTYxIC0xMDIuNDI5NjEgTSAtMTAyLjQyOTYxIC0xMDIuNDI5NjEgTCAtMTAyLjQyOTYxIDEwMi40Mjk2MSBMIDEwMi40Mjk2MSAxMDIuNDI5NjEgTCAxMDIuNDI5NjEgLTEwMi40Mjk2MSBaIE0gMTAyLjQyOTYxIDEwMi40Mjk2MSAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2Y5N2I3M2IzMDc3M2MzYmQ4YjEyM2ZhNDU4OTk0MWY3Y2NwMikiPiA8ZyBzdHJva2U9IiNmZGIyYTIiIGZpbGw9IiNmZGIyYTIiPiA8ZyBzdHJva2Utb3BhY2l0eT0iMC41Ij4gPGcgZmlsbC1vcGFjaXR5PSIwLjUiPiA8cGF0aCBkPSIgTSAwLjAgMjcuMzE0NjUgTSAzNC4xNDMyIDI3LjMxNDY1IEMgMzQuMTQzMiA0Ni4xNzE2NiAxOC44NTcwMSA2MS40NTc4NiAwLjAgNjEuNDU3ODYgQyAtMTguODU3MDEgNjEuNDU3ODYgLTM0LjE0MzIgNDYuMTcxNjYgLTM0LjE0MzIgMjcuMzE0NjUgQyAtMzQuMTQzMiA4LjQ1NzY0IC0xOC44NTcwMSAtNi44Mjg1NSAwLjAgLTYuODI4NTUgQyAxOC44NTcwMSAtNi44Mjg1NSAzNC4xNDMyIDguNDU3NjQgMzQuMTQzMiAyNy4zMTQ2NSBaIE0gMC4wIDI3LjMxNDY1ICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDAuMCAyNy4zMTQ2NSBNIDM0LjE0MzIgMjcuMzE0NjUgQyAzNC4xNDMyIDQ2LjE3MTY2IDE4Ljg1NzAxIDYxLjQ1Nzg2IDAuMCA2MS40NTc4NiBDIC0xOC44NTcwMSA2MS40NTc4NiAtMzQuMTQzMiA0Ni4xNzE2NiAtMzQuMTQzMiAyNy4zMTQ2NSBDIC0zNC4xNDMyIDguNDU3NjQgLTE4Ljg1NzAxIC02LjgyODU1IDAuMCAtNi44Mjg1NSBDIDE4Ljg1NzAxIC02LjgyODU1IDM0LjE0MzIgOC40NTc2NCAzNC4xNDMyIDI3LjMxNDY1IFogTSAwLjAgMjcuMzE0NjUgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMy43NSw4Ny45NTMxMSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDMwLjE1OTYwNjkzMzU5Mzc0MywzMC4xNTk2MDY5MzM1OTM3NDMpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjMwLjE1OTYwNjkzMzU5Mzc0MyIgeD0iMzAuMTU5NjA2OTMzNTkzNzQzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPkE8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIC0yMy42NTQ3NCAtMTMuNjU3MDYgTSAxMC40ODg0NiAtMTMuNjU3MDYgQyAxMC40ODg0NiA1LjE5OTk1IC00Ljc5NzczIDIwLjQ4NjE1IC0yMy42NTQ3NCAyMC40ODYxNSBDIC00Mi41MTE3NSAyMC40ODYxNSAtNTcuNzk3OTQgNS4xOTk5NSAtNTcuNzk3OTQgLTEzLjY1NzA2IEMgLTU3Ljc5Nzk0IC0zMi41MTQwNyAtNDIuNTExNzUgLTQ3LjgwMDI2IC0yMy42NTQ3NCAtNDcuODAwMjYgQyAtNC43OTc3MyAtNDcuODAwMjYgMTAuNDg4NDYgLTMyLjUxNDA3IDEwLjQ4ODQ2IC0xMy42NTcwNiBaIE0gLTIzLjY1NDc0IC0xMy42NTcwNiAgIiBmaWxsPSJub25lIj48L3BhdGg+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC03NS43MTI4LC02NC40NjE2NCkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKDMwLjE1OTYwNjkzMzU5Mzc0MywzMC4xNTk2MDY5MzM1OTM3NDMpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjMwLjE1OTYwNjkzMzU5Mzc0MyIgeD0iMzAuMTU5NjA2OTMzNTkzNzQzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPkI8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDIzLjY1NDc0IC0xMy42NTcwNiBNIDU3Ljc5Nzk0IC0xMy42NTcwNiBDIDU3Ljc5Nzk0IDUuMTk5OTUgNDIuNTExNzUgMjAuNDg2MTUgMjMuNjU0NzQgMjAuNDg2MTUgQyA0Ljc5NzczIDIwLjQ4NjE1IC0xMC40ODg0NiA1LjE5OTk1IC0xMC40ODg0NiAtMTMuNjU3MDYgQyAtMTAuNDg4NDYgLTMyLjUxNDA3IDQuNzk3NzMgLTQ3LjgwMDI2IDIzLjY1NDc0IC00Ny44MDAyNiBDIDQyLjUxMTc1IC00Ny44MDAyNiA1Ny43OTc5NCAtMzIuNTE0MDcgNTcuNzk3OTQgLTEzLjY1NzA2IFogTSAyMy42NTQ3NCAtMTMuNjU3MDYgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2Ny42MjYsLTY0LjQ2MTY0KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoMzAuMTU5NjA2OTMzNTkzNzQzLDMwLjE1OTYwNjkzMzU5Mzc0Mykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iMzAuMTU5NjA2OTMzNTkzNzQzIiB4PSIzMC4xNTk2MDY5MzM1OTM3NDMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QzwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+PC9zdmc+" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

$$
A \setminus (B\cap C) = (A \setminus B) \cup (A \setminus C)
$$

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\definecolor{flexokired}{HTML}{fdb2a2}\n\\begin{document}\n\\begin{tikzpicture}[scale=1.2]\n  \\begin{scope}\n    \\clip (90:0.8) circle (1);\n    \\begin{scope}[even odd rule]\n      \\clip (210:0.8) circle (1) (-3,-3) rectangle (3,3);\n      \\fill[flexokired, opacity=0.5] (-3,-3) rectangle (3,3);\n    \\end{scope}\n    \\begin{scope}\n      \\clip (210:0.8) circle (1);\n      \\begin{scope}[even odd rule]\n        \\clip (330:0.8) circle (1) (-3,-3) rectangle (3,3);\n        \\fill[flexokired, opacity=0.5] (-3,-3) rectangle (3,3);\n      \\end{scope}\n    \\end{scope}\n  \\end{scope}\n  \\draw[thick] (90:0.8) circle (1) node[above=2] {$A$};\n  \\draw[thick] (210:0.8) circle (1) node[below left=2] {$B$};\n  \\draw[thick] (330:0.8) circle (1) node[below right=2] {$C$};\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIxNTcuODY3MjVwdCIgaGVpZ2h0PSIxNjUuOTE0MDJwdCIgdmlld0JveD0iLTcyIC03MiAxNTcuODY3MjUgMTY1LjkxNDAyIj48ZyBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYuNzc1NzcyMDk0NzI2NTYxLDI1Ljg0OTM5NTc1MTk1MzExOCkgc2NhbGUoMSwtMSkiPjxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZS13aWR0aD0iMC40Ij4gPGNsaXBQYXRoIGlkPSJwZ2ZlMzVhMjNlZTlmOTc5YjFmOGNkN2JhNDdmZTZlYWU1MWNwMSI+PHBhdGggZD0iIE0gMC4wIDI3LjMxNDY1IE0gMzQuMTQzMiAyNy4zMTQ2NSBDIDM0LjE0MzIgNDYuMTcxNjYgMTguODU3MDEgNjEuNDU3ODYgMC4wIDYxLjQ1Nzg2IEMgLTE4Ljg1NzAxIDYxLjQ1Nzg2IC0zNC4xNDMyIDQ2LjE3MTY2IC0zNC4xNDMyIDI3LjMxNDY1IEMgLTM0LjE0MzIgOC40NTc2NCAtMTguODU3MDEgLTYuODI4NTUgMC4wIC02LjgyODU1IEMgMTguODU3MDEgLTYuODI4NTUgMzQuMTQzMiA4LjQ1NzY0IDM0LjE0MzIgMjcuMzE0NjUgWiBNIDAuMCAyNy4zMTQ2NSAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2ZlMzVhMjNlZTlmOTc5YjFmOGNkN2JhNDdmZTZlYWU1MWNwMSkiPiA8ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiA8Y2xpcFBhdGggaWQ9InBnZmUzNWEyM2VlOWY5NzliMWY4Y2Q3YmE0N2ZlNmVhZTUxY3AyIj48cGF0aCBkPSIgTSAtMjMuNjU0NzQgLTEzLjY1NzA2IE0gMTAuNDg4NDYgLTEzLjY1NzA2IEMgMTAuNDg4NDYgNS4xOTk5NSAtNC43OTc3MyAyMC40ODYxNSAtMjMuNjU0NzQgMjAuNDg2MTUgQyAtNDIuNTExNzUgMjAuNDg2MTUgLTU3Ljc5Nzk0IDUuMTk5OTUgLTU3Ljc5Nzk0IC0xMy42NTcwNiBDIC01Ny43OTc5NCAtMzIuNTE0MDcgLTQyLjUxMTc1IC00Ny44MDAyNiAtMjMuNjU0NzQgLTQ3LjgwMDI2IEMgLTQuNzk3NzMgLTQ3LjgwMDI2IDEwLjQ4ODQ2IC0zMi41MTQwNyAxMC40ODg0NiAtMTMuNjU3MDYgWiBNIC0yMy42NTQ3NCAtMTMuNjU3MDYgTSAtMTAyLjQyOTYxIC0xMDIuNDI5NjEgTSAtMTAyLjQyOTYxIC0xMDIuNDI5NjEgTCAtMTAyLjQyOTYxIDEwMi40Mjk2MSBMIDEwMi40Mjk2MSAxMDIuNDI5NjEgTCAxMDIuNDI5NjEgLTEwMi40Mjk2MSBaIE0gMTAyLjQyOTYxIDEwMi40Mjk2MSAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2ZlMzVhMjNlZTlmOTc5YjFmOGNkN2JhNDdmZTZlYWU1MWNwMikiPiA8ZyBzdHJva2U9IiNmZGIyYTIiIGZpbGw9IiNmZGIyYTIiPiA8ZyBzdHJva2Utb3BhY2l0eT0iMC41Ij4gPGcgZmlsbC1vcGFjaXR5PSIwLjUiPiA8cGF0aCBkPSIgTSAtMTAyLjQyOTYxIC0xMDIuNDI5NjEgTSAtMTAyLjQyOTYxIC0xMDIuNDI5NjEgTCAtMTAyLjQyOTYxIDEwMi40Mjk2MSBMIDEwMi40Mjk2MSAxMDIuNDI5NjEgTCAxMDIuNDI5NjEgLTEwMi40Mjk2MSBaIE0gMTAyLjQyOTYxIDEwMi40Mjk2MSAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+IDxjbGlwUGF0aCBpZD0icGdmZTM1YTIzZWU5Zjk3OWIxZjhjZDdiYTQ3ZmU2ZWFlNTFjcDMiPjxwYXRoIGQ9IiBNIC0yMy42NTQ3NCAtMTMuNjU3MDYgTSAxMC40ODg0NiAtMTMuNjU3MDYgQyAxMC40ODg0NiA1LjE5OTk1IC00Ljc5NzczIDIwLjQ4NjE1IC0yMy42NTQ3NCAyMC40ODYxNSBDIC00Mi41MTE3NSAyMC40ODYxNSAtNTcuNzk3OTQgNS4xOTk5NSAtNTcuNzk3OTQgLTEzLjY1NzA2IEMgLTU3Ljc5Nzk0IC0zMi41MTQwNyAtNDIuNTExNzUgLTQ3LjgwMDI2IC0yMy42NTQ3NCAtNDcuODAwMjYgQyAtNC43OTc3MyAtNDcuODAwMjYgMTAuNDg4NDYgLTMyLjUxNDA3IDEwLjQ4ODQ2IC0xMy42NTcwNiBaIE0gLTIzLjY1NDc0IC0xMy42NTcwNiAgIj48L3BhdGg+IDwvY2xpcFBhdGg+IDxnIGNsaXAtcGF0aD0idXJsKCNwZ2ZlMzVhMjNlZTlmOTc5YjFmOGNkN2JhNDdmZTZlYWU1MWNwMykiPiA8ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiA8Y2xpcFBhdGggaWQ9InBnZmUzNWEyM2VlOWY5NzliMWY4Y2Q3YmE0N2ZlNmVhZTUxY3A0Ij48cGF0aCBkPSIgTSAyMy42NTQ3NCAtMTMuNjU3MDYgTSA1Ny43OTc5NCAtMTMuNjU3MDYgQyA1Ny43OTc5NCA1LjE5OTk1IDQyLjUxMTc1IDIwLjQ4NjE1IDIzLjY1NDc0IDIwLjQ4NjE1IEMgNC43OTc3MyAyMC40ODYxNSAtMTAuNDg4NDYgNS4xOTk5NSAtMTAuNDg4NDYgLTEzLjY1NzA2IEMgLTEwLjQ4ODQ2IC0zMi41MTQwNyA0Ljc5NzczIC00Ny44MDAyNiAyMy42NTQ3NCAtNDcuODAwMjYgQyA0Mi41MTE3NSAtNDcuODAwMjYgNTcuNzk3OTQgLTMyLjUxNDA3IDU3Ljc5Nzk0IC0xMy42NTcwNiBaIE0gMjMuNjU0NzQgLTEzLjY1NzA2IE0gLTEwMi40Mjk2MSAtMTAyLjQyOTYxIE0gLTEwMi40Mjk2MSAtMTAyLjQyOTYxIEwgLTEwMi40Mjk2MSAxMDIuNDI5NjEgTCAxMDIuNDI5NjEgMTAyLjQyOTYxIEwgMTAyLjQyOTYxIC0xMDIuNDI5NjEgWiBNIDEwMi40Mjk2MSAxMDIuNDI5NjEgICI+PC9wYXRoPiA8L2NsaXBQYXRoPiA8ZyBjbGlwLXBhdGg9InVybCgjcGdmZTM1YTIzZWU5Zjk3OWIxZjhjZDdiYTQ3ZmU2ZWFlNTFjcDQpIj4gPGcgc3Ryb2tlPSIjZmRiMmEyIiBmaWxsPSIjZmRiMmEyIj4gPGcgc3Ryb2tlLW9wYWNpdHk9IjAuNSI+IDxnIGZpbGwtb3BhY2l0eT0iMC41Ij4gPHBhdGggZD0iIE0gLTEwMi40Mjk2MSAtMTAyLjQyOTYxIE0gLTEwMi40Mjk2MSAtMTAyLjQyOTYxIEwgLTEwMi40Mjk2MSAxMDIuNDI5NjEgTCAxMDIuNDI5NjEgMTAyLjQyOTYxIEwgMTAyLjQyOTYxIC0xMDIuNDI5NjEgWiBNIDEwMi40Mjk2MSAxMDIuNDI5NjEgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAwLjAgMjcuMzE0NjUgTSAzNC4xNDMyIDI3LjMxNDY1IEMgMzQuMTQzMiA0Ni4xNzE2NiAxOC44NTcwMSA2MS40NTc4NiAwLjAgNjEuNDU3ODYgQyAtMTguODU3MDEgNjEuNDU3ODYgLTM0LjE0MzIgNDYuMTcxNjYgLTM0LjE0MzIgMjcuMzE0NjUgQyAtMzQuMTQzMiA4LjQ1NzY0IC0xOC44NTcwMSAtNi44Mjg1NSAwLjAgLTYuODI4NTUgQyAxOC44NTcwMSAtNi44Mjg1NSAzNC4xNDMyIDguNDU3NjQgMzQuMTQzMiAyNy4zMTQ2NSBaIE0gMC4wIDI3LjMxNDY1ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTMuNzUsODcuOTUzMTEpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSg2Ljc3NTc3MjA5NDcyNjU2MSwyNS44NDkzOTU3NTE5NTMxMTgpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9IjI1Ljg0OTM5NTc1MTk1MzExOCIgeD0iNi43NzU3NzIwOTQ3MjY1NjEiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPHBhdGggZD0iIE0gLTIzLjY1NDc0IC0xMy42NTcwNiBNIDEwLjQ4ODQ2IC0xMy42NTcwNiBDIDEwLjQ4ODQ2IDUuMTk5OTUgLTQuNzk3NzMgMjAuNDg2MTUgLTIzLjY1NDc0IDIwLjQ4NjE1IEMgLTQyLjUxMTc1IDIwLjQ4NjE1IC01Ny43OTc5NCA1LjE5OTk1IC01Ny43OTc5NCAtMTMuNjU3MDYgQyAtNTcuNzk3OTQgLTMyLjUxNDA3IC00Mi41MTE3NSAtNDcuODAwMjYgLTIzLjY1NDc0IC00Ny44MDAyNiBDIC00Ljc5NzczIC00Ny44MDAyNiAxMC40ODg0NiAtMzIuNTE0MDcgMTAuNDg4NDYgLTEzLjY1NzA2IFogTSAtMjMuNjU0NzQgLTEzLjY1NzA2ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTc1LjcxMjgsLTY0LjQ2MTY0KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoNi43NzU3NzIwOTQ3MjY1NjEsMjUuODQ5Mzk1NzUxOTUzMTE4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIyNS44NDkzOTU3NTE5NTMxMTgiIHg9IjYuNzc1NzcyMDk0NzI2NTYxIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPkI8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDIzLjY1NDc0IC0xMy42NTcwNiBNIDU3Ljc5Nzk0IC0xMy42NTcwNiBDIDU3Ljc5Nzk0IDUuMTk5OTUgNDIuNTExNzUgMjAuNDg2MTUgMjMuNjU0NzQgMjAuNDg2MTUgQyA0Ljc5NzczIDIwLjQ4NjE1IC0xMC40ODg0NiA1LjE5OTk1IC0xMC40ODg0NiAtMTMuNjU3MDYgQyAtMTAuNDg4NDYgLTMyLjUxNDA3IDQuNzk3NzMgLTQ3LjgwMDI2IDIzLjY1NDc0IC00Ny44MDAyNiBDIDQyLjUxMTc1IC00Ny44MDAyNiA1Ny43OTc5NCAtMzIuNTE0MDcgNTcuNzk3OTQgLTEzLjY1NzA2IFogTSAyMy42NTQ3NCAtMTMuNjU3MDYgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2Ny42MjYsLTY0LjQ2MTY0KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoNi43NzU3NzIwOTQ3MjY1NjEsMjUuODQ5Mzk1NzUxOTUzMTE4KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSIyNS44NDkzOTU3NTE5NTMxMTgiIHg9IjYuNzc1NzcyMDk0NzI2NTYxIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPkM8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8L2c+IDwvZz4gPC9nPjwvc3ZnPg==" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

> \[!tip\] de Morgan's laws verbatim
>
> _The complement of the union equals the intersection of the complements_
>
> _The complement of the intersection equals the union of the complements_

### sets algebra

For a fixed universe $X$, we write $A^c = X \setminus A$.

| law             | union form                              | intersection form                       |
| --------------- | --------------------------------------- | --------------------------------------- |
| identity        | $A \cup \emptyset = A$                  | $A \cap X = A$                          |
| domination      | $A \cup X = X$                          | $A \cap \emptyset = \emptyset$          |
| idempotent      | $A \cup A = A$                          | $A \cap A = A$                          |
| commutative     | $A \cup B = B \cup A$                   | $A \cap B = B \cap A$                   |
| associative     | $(A \cup B) \cup C = A \cup (B \cup C)$ | $(A \cap B) \cap C = A \cap (B \cap C)$ |
| absorption      | $A \cup (A \cap B) = A$                 | $A \cap (A \cup B) = A$                 |
| complement      | $A \cup A^c = X$                        | $A \cap A^c = \emptyset$                |
| double negative | $(A^c)^c = A$                           | $(X \setminus A)^c = A$                 |

Set difference is intersection with a complement:

$$
A \setminus B = A \cap B^c
$$

> \[!proof\] Proof 1. set difference
>
> For arbitrary $x \in X$,
>
> $$
> \begin{aligned}
>   x \in A \setminus B
>     &\iff x \in A \land x \notin B \\
>     &\iff x \in A \land x \in B^c \\
>     &\iff x \in A \cap B^c
> \end{aligned}
> $$
>
> Hence $A \setminus B$ and $A \cap B^c$ have the same elements. By extensionality,
>
> $$
> A \setminus B = A \cap B^c.
> $$
>
> <div class="notebook-runtime" data-notebook-runtime="notebook-runtime-714ndg"></div>
>
> <div class="notebook-code-cell" data-notebook-cell-frame="code-cell-1" id="code-cell-1" data-notebook-language="lean">
>
> <div class="notebook-runtime-cell" data-notebook-cell="code-cell-1" data-notebook-execution-count=""><span class="notebook-execution-prompt" data-notebook-execution-label="code-cell-1" aria-live="polite">In [ ]:</span></div>
>
> <div class="notebook-cell-actions" data-notebook-cell-actions="code-cell-1">
> <span class="notebook-language-badge notebook-language-badge-lean" data-notebook-language="lean" title="lean cell"><span class="notebook-language-icon" aria-hidden="true"><span class="notebook-language-text">lean</span></span><span class="notebook-language-label">lean cell</span></span>
> <button type="button" class="notebook-icon-button" data-notebook-run-cell="code-cell-1" aria-label="Run code-cell-1" title="Run code-cell-1"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M8 5v14l11-7z"/></svg></button>
> <button type="button" class="notebook-icon-button" data-notebook-edit-cell="code-cell-1" aria-label="Edit code-cell-1" title="Edit code-cell-1"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="m4 16.5-.5 4 4-.5L19 8.5 15.5 5z"/><path d="m14 6.5 3.5 3.5"/></svg></button>
> <button type="button" class="notebook-icon-button" data-notebook-save-cell="code-cell-1" aria-label="Save code-cell-1 locally" title="Save code-cell-1 locally" hidden><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M5 4h11l3 3v13H5z"/><path d="M8 4v6h8V4"/><path d="M8 20v-6h8v6"/></svg></button>
> <button type="button" class="notebook-icon-button" data-notebook-revert-cell="code-cell-1" aria-label="Revert code-cell-1 local edit" title="Revert code-cell-1 local edit" hidden><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M9 14 4 9l5-5"/><path d="M4 9h10.5a5.5 5.5 0 0 1 0 11H11"/></svg></button>
> <button type="button" class="notebook-icon-button" data-notebook-vim-cell="code-cell-1" aria-label="Enable Vim mode" title="Enable Vim mode" hidden><svg class="notebook-vim-icon" viewBox="0 0 602 734" aria-hidden="true" focusable="false"><g transform="translate(2 3)"><path class="notebook-vim-icon-left" d="M0 155.5704 155-1l-.000003 728L0 572.237919z"/><path class="notebook-vim-icon-right" d="M443.060403 156.982405 600-1l-3.181208 728L442 572.219941z" transform="translate(521 363.5) scale(-1 1) translate(-521 -363.5)"/><path class="notebook-vim-icon-cross" d="M154.986294 0 558 615.189696 445.224605 728 42 114.172017z"/></g></svg></button>
> <span class="notebook-local-source-status" data-notebook-local-source-status="code-cell-1" hidden></span>
> </div>
>
> <div class="notebook-source-editor" data-notebook-source-editor="code-cell-1" hidden></div>
>
> ```lean shell
> import Mathlib
>
> example {α : Type*} (A B : Set α) : A \ B = A ∩ Bᶜ := by
>   rw [Set.diff_eq]
> ```
>
> <div class="notebook-runtime-output" data-notebook-output="code-cell-1" hidden></div>
>
> </div>

The symmetric difference keeps elements that appear in exactly one set:

$$
A\triangle B = (A \setminus B) \cup (B \setminus A)
$$

Equivalently, membership in $A \triangle B$ is exclusive-or:

$$
x \in A\triangle B \iff (x \in A \land x \notin B) \lor (x \notin A \land x \in B)
$$

### power set

> \[!tip\] correct notation
>
> a distinction between object $a$, which is an _element of the set_ $A$, and one-element set $\{a\}$, which is a _subset of_ $A$
>
> If $A$ is the set $\{a, b, c\}$ then
>
> $a \in A,\;\;\;\;\{a\} \subset A,\;\;\;\; \{a\} \in \mathcal{P}(A)$

The clean model is a subset as its characteristic function:

$$
S \subseteq A \quad\leftrightarrow\quad \chi_S: A \to \{0,1\}
$$

where $\chi_S(x)=1$ exactly when $x \in S$. Thus $\mathcal{P}(A)$ bijects with $\{0,1\}^A$, the set of all functions from $A$ to $\{0,1\}$.

For $A = \{a,b,c\}$, fix the coordinate order $(a,b,c)$. A subset is then a length-$3$ bit-vector:

$$
\{a,c\} \leftrightarrow 101
$$

Thus $\mathcal{P}(A)$ bijects with $\{0,1\}^3$:

$$
\mathcal{P}(\{a,b,c\}) \cong \{0,1\}^3
$$

If $A$ has $n$ elements, then each subset of $A$ is one binary string in $\{0,1\}^n$. Each coordinate answers one membership question, so $n$ yes/no questions give $2^n$ subsets.

> \[!theorem\] Theorem 1. Cantor's theorem
>
> For every set $A$, there is no surjection $f: A \to \mathcal{P}(A)$.
>
> _Proof_:
>
> > > > assume a surjection $f$ exists, and form the diagonal set $D = \{a \in A \mid a \notin f(a)\}$
> >
> > > > Since $f$ is surjective, $D = f(d)$ for some $d \in A$. Then $d \in D \iff d \notin f(d) \iff d \notin D$, contradiction.
> >
> > > > Therefore $\mathcal{P}(A)$ has strictly larger cardinality than $A$.

### arbitrary unions and intersection

_union of the elements of_ $\mathcal{A}$ is defined by

$$
\bigcup_{A \in \mathcal{A}}\; A = \{x \mid x \in A \text{ for at least one } A \in \mathcal{A}\}
$$

_intersection of the elements of_ $\mathcal{A}$ is defined by

$$
\bigcap_{A \in \mathcal{A}}\; A = \{x \mid x \in A \text{ for every } A \in \mathcal{A}\}
$$

> \[!tip\] universality of `\emptyset`
>
> If $\emptyset \in \mathcal{A}$, the union is not forced to be empty. The empty set contributes no elements, then the other members still contribute theirs.
>
> If $\mathcal{A} = \emptyset$, then $\bigcup_{A \in \mathcal{A}} A = \emptyset$.
>
> If $\mathcal{A} = \emptyset$ and we are working inside a universe $X$, then every $x \in X$ vacuously satisfies the defining property for intersection, so
>
> $$
> \bigcap_{A \in \emptyset} A = X
> $$

An _indexed family_ of sets is a function $I \to \mathcal{P}(X)$, usually written $\{A_i\}_{i \in I}$ instead of $i \mapsto A_i$.

$$
\bigcup_{i \in I} A_i = \{x \in X \mid \exists i \in I,\;x \in A_i\}
$$

$$
\bigcap_{i \in I} A_i = \{x \in X \mid \forall i \in I,\;x \in A_i\}
$$

The index set $I$ is bookkeeping; the sets $A_i$ are the mathematical objects. Different indices may name the same subset.

> \[!note\]+ repetition value within a family
>
> A family can have repeated values because it is a function out of $I$. A set cannot have repeated elements because extensionality deletes repetitions.

### Cartesian products

_notion of ordered pair_ over to general sets. We define a _Cartesian product_ $A \times B$ to be the set of all ordered pairs $(a,b)$ for which $a$ is an element of $A$ and $b$ is an element of $B$.

$$
A \times B = \{(a,b) \mid\;a \in A \text{ and } b \in B\}
$$

> This assumes that the concept of “ordered pair” is given. as in $(a,b) = \{\{a\}, \{a,b\}\}$ defines the <span class="marker marker-h2">ordered pair</span> $(a,b)$ as a {{sidenotes[collection of sets]: if $a \neq\; b$ then $(a,b)$ is a collection containing two sets, one of which is a one-element set and the other a two-element set.<br/><br/>if $a = b$ then $(a,b)$ is a collection containing only one set $\{a\}$ since $\{a,b\} =\{a,a\}=\{a\}$ in this case.}}.
>
> The _first coordinate_ of the ordered pair is defined to be the <mark>element belonging to both sets</mark>
>
> The _second coordinate_ is the element belonging to only **one of the sets**

## relations

A binary relation from $A$ to $B$ is a subset $R \subseteq A \times B$. If $(a,b) \in R$, write $aRb$.

On a set $A$, a relation $R \subseteq A \times A$ can have extra structure:

| property      | meaning                            |
| ------------- | ---------------------------------- |
| reflexive     | $\forall a \in A,\;aRa$            |
| symmetric     | $aRb \implies bRa$                 |
| antisymmetric | $(aRb \land bRa) \implies a = b$   |
| transitive    | $(aRb \land bRc) \implies aRc$     |
| total         | $\forall a,b \in A,\;aRb \lor bRa$ |

An _equivalence relation_ is reflexive, symmetric, and transitive. It partitions $A$ into equivalence classes:

$$
[a] = \{x \in A \mid x \sim a\}
$$

The quotient set $A/{\sim}$ is the set of all equivalence classes.

A _partial order_ is reflexive, antisymmetric, and transitive.

A _total order_ is a partial order where any two elements are comparable.

## functions

> \[!math\] 1. rule of assignment
>
> a subset $r$ of the [[#Cartesian products|cartesian product]] $C\;\times\;D$ of two sets, having the property that _each element of_ $C$ appears as the first coordinate of **at most one** ordered pair belonging to $r$
>
> $$
> [(c,d) \in r \text{ and } (c, d^{'}) \in r] \implies [d = d^{'}]
> $$
>
> for $r$ is assignment, to element $c \in C, d \in D$ for which $(c,d) \in r$

A function $f: A \to B$ is a relation $f \subseteq A \times B$ such that every $a \in A$ appears exactly once as a first coordinate.

$$
\forall a \in A\;\exists! b \in B\;(a,b) \in f
$$

The <span class="marker marker-h2">domain</span> is $A$, the codomain is $B$, and the image is

$$
f(A) = \{b \in B \mid \exists a \in A,\;f(a)=b\}
$$

For $S,U \subseteq A$ and $T,V \subseteq B$:

$$
f(S) = \{f(s) \mid s \in S\}
$$

$$
f^{-1}(T) = \{a \in A \mid f(a) \in T\}
$$

[[thoughts/preimages|Preimages]] preserve the Boolean operations exactly:

$$
f^{-1}(T \cup V) = f^{-1}(T) \cup f^{-1}(V)
$$

$$
f^{-1}(T \cap V) = f^{-1}(T) \cap f^{-1}(V)
$$

$$
f^{-1}(B \setminus T) = A \setminus f^{-1}(T)
$$

Images preserve unions:

$$
f(S \cup U) = f(S) \cup f(U)
$$

Images only preserve intersections one way in general:

$$
f(S \cap U) \subseteq f(S) \cap f(U)
$$

### surjection, bijection, injection

Equality holds when $f$ is injective.

| type       | condition                                   |
| ---------- | ------------------------------------------- |
| injective  | $f(a)=f(a') \implies a=a'$                  |
| surjective | $\forall b \in B\;\exists a \in A,\;f(a)=b$ |
| bijective  | injective and surjective                    |

<figure class="tikz" data-remark-tikz style=""><span class="tikz-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><annotation encoding="application/x-tex">"\\usepackage{tikz}\n\\usetikzlibrary{arrows.meta}\n\\definecolor{flexokired}{HTML}{fdb2a2}\n\\definecolor{flexokigreen}{HTML}{cdd597}\n\\begin{document}\n\\begin{tikzpicture}[\n    scale=0.9,\n    dot/.style={circle, fill=black, inner sep=1.5pt},\n    arrow/.style={-{Stealth[scale=1.2]}, thick, shorten >=2pt, shorten &#x3C;=2pt}\n  ]\n\n  % --- Injective ---\n  \\begin{scope}[shift={(0,0)}]\n    \\node[above] at (1, 2) {\\textbf{\\textsf{injective}}};\n    \\draw[thick, flexokigreen] (0,0) ellipse (0.8 and 1.5);\n    \\draw[thick, flexokired] (2,0) ellipse (0.8 and 1.5);\n    \\node[above] at (0, 1.6) {$A$};\n    \\node[above] at (2, 1.6) {$B$};\n\n    \\node[dot] (a1) at (0, 0.8) {};\n    \\node[dot] (a2) at (0, 0) {};\n    \\node[dot] (a3) at (0, -0.8) {};\n\n    \\node[dot] (b1) at (2, 1) {};\n    \\node[dot] (b2) at (2, 0.3) {};\n    \\node[dot] (b3) at (2, -0.4) {};\n    \\node[dot] (b4) at (2, -1.1) {};\n\n    \\draw[arrow] (a1) -- (b2);\n    \\draw[arrow] (a2) -- (b4);\n    \\draw[arrow] (a3) -- (b1);\n  \\end{scope}\n\n  % --- Surjective ---\n  \\begin{scope}[shift={(4.5,0)}]\n    \\node[above] at (1, 2) {\\textbf{\\textsf{surjective}}};\n    \\draw[thick, flexokigreen] (0,0) ellipse (0.8 and 1.5);\n    \\draw[thick, flexokired] (2,0) ellipse (0.8 and 1.5);\n    \\node[above] at (0, 1.6) {$A$};\n    \\node[above] at (2, 1.6) {$B$};\n\n    \\node[dot] (a1) at (0, 1) {};\n    \\node[dot] (a2) at (0, 0.3) {};\n    \\node[dot] (a3) at (0, -0.4) {};\n    \\node[dot] (a4) at (0, -1.1) {};\n\n    \\node[dot] (b1) at (2, 0.8) {};\n    \\node[dot] (b2) at (2, 0) {};\n    \\node[dot] (b3) at (2, -0.8) {};\n\n    \\draw[arrow] (a1) -- (b1);\n    \\draw[arrow] (a2) -- (b2);\n    \\draw[arrow] (a3) -- (b3);\n    \\draw[arrow] (a4) -- (b2);\n  \\end{scope}\n\n  % --- Bijective ---\n  \\begin{scope}[shift={(9,0)}]\n    \\node[above] at (1, 2) {\\textbf{\\textsf{bijective}}};\n    \\draw[thick, flexokigreen] (0,0) ellipse (0.8 and 1.5);\n    \\draw[thick, flexokired] (2,0) ellipse (0.8 and 1.5);\n    \\node[above] at (0, 1.6) {$A$};\n    \\node[above] at (2, 1.6) {$B$};\n\n    \\node[dot] (a1) at (0, 0.8) {};\n    \\node[dot] (a2) at (0, 0) {};\n    \\node[dot] (a3) at (0, -0.8) {};\n\n    \\node[dot] (b1) at (2, 0.8) {};\n    \\node[dot] (b2) at (2, 0) {};\n    \\node[dot] (b3) at (2, -0.8) {};\n\n    \\draw[arrow] (a1) -- (b2);\n    \\draw[arrow] (a2) -- (b1);\n    \\draw[arrow] (a3) -- (b3);\n  \\end{scope}\n\n\\end{tikzpicture}\n\\end{document}"</annotation></semantics></math></span><img src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIzMjMuNDUyMDNwdCIgaGVpZ2h0PSIxMDUuNzgwMzVwdCIgdmlld0JveD0iLTcyIC03MiAzMjMuNDUyMDMgMTA1Ljc4MDM1Ij48ZyBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01MS4zODQxMDk0OTcwNzAzLC01LjMwMDU4Mjg4NTc0MjE4Nykgc2NhbGUoMSwtMSkiPjxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZS13aWR0aD0iMC40Ij4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNi43MzkxNyw1Ni42OTIpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ii01LjMwMDU4Mjg4NTc0MjE4NyIgeD0iLTUxLjM4NDEwOTQ5NzA3MDMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siPmluamVjdGl2ZTwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iI2NkZDU5NyIgZmlsbD0iI2NkZDU5NyI+IDxwYXRoIGQ9IiBNIDAuMCAwLjAgTSAyMC40ODU5IDAuMCBDIDIwLjQ4NTkgMjEuMjE0MDQgMTEuMzE0MiAzOC40MTA5MyAwLjAgMzguNDEwOTMgQyAtMTEuMzE0MiAzOC40MTA5MyAtMjAuNDg1OSAyMS4yMTQwNCAtMjAuNDg1OSAwLjAgQyAtMjAuNDg1OSAtMjEuMjE0MDQgLTExLjMxNDIgLTM4LjQxMDkzIDAuMCAtMzguNDEwOTMgQyAxMS4zMTQyIC0zOC40MTA5MyAyMC40ODU5IC0yMS4yMTQwNCAyMC40ODU5IDAuMCBaIE0gMC4wIDAuMCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iI2ZkYjJhMiIgZmlsbD0iI2ZkYjJhMiI+IDxwYXRoIGQ9IiBNIDUxLjIxNDU4IDAuMCBNIDcxLjcwMDQ5IDAuMCBDIDcxLjcwMDQ5IDIxLjIxNDA0IDYyLjUyODc4IDM4LjQxMDkzIDUxLjIxNDU4IDM4LjQxMDkzIEMgMzkuOTAwMzkgMzguNDEwOTMgMzAuNzI4NjggMjEuMjE0MDQgMzAuNzI4NjggMC4wIEMgMzAuNzI4NjggLTIxLjIxNDA0IDM5LjkwMDM5IC0zOC40MTA5MyA1MS4yMTQ1OCAtMzguNDEwOTMgQyA2Mi41Mjg3OCAtMzguNDEwOTMgNzEuNzAwNDkgLTIxLjIxNDA0IDcxLjcwMDQ5IDAuMCBaIE0gNTEuMjE0NTggMC4wICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zLjc1LDQ0LjUwNDc5KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTUxLjM4NDEwOTQ5NzA3MDMsLTUuMzAwNTgyODg1NzQyMTg3KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItNS4zMDA1ODI4ODU3NDIxODciIHg9Ii01MS4zODQxMDk0OTcwNzAzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIiBmb250LXN0eWxlPSJpdGFsaWMiPkE8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDcuMTcxMTksNDQuNTA0NzkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ii01LjMwMDU4Mjg4NTc0MjE4NyIgeD0iLTUxLjM4NDEwOTQ5NzA3MDMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBmaWxsPSIjMDAwIj4gPGcgZmlsbD0iIzAwMCI+IDxwYXRoIGQ9IiBNIDIuMTIxMzQgMjAuNDg1OSBDIDIuMTIxMzQgMjEuNjU3NDkgMS4xNzE1OSAyMi42MDcyNCAwLjAgMjIuNjA3MjQgQyAtMS4xNzE1OSAyMi42MDcyNCAtMi4xMjEzNCAyMS42NTc0OSAtMi4xMjEzNCAyMC40ODU5IEMgLTIuMTIxMzQgMTkuMzE0MzIgLTEuMTcxNTkgMTguMzY0NTYgMC4wIDE4LjM2NDU2IEMgMS4xNzE1OSAxOC4zNjQ1NiAyLjEyMTM0IDE5LjMxNDMyIDIuMTIxMzQgMjAuNDg1OSBaIE0gMC4wIDIwLjQ4NTkgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wLDIwLjQ4NTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSAyLjEyMTM0IDAuMCBDIDIuMTIxMzQgMS4xNzE1OSAxLjE3MTU5IDIuMTIxMzQgMC4wIDIuMTIxMzQgQyAtMS4xNzE1OSAyLjEyMTM0IC0yLjEyMTM0IDEuMTcxNTkgLTIuMTIxMzQgMC4wIEMgLTIuMTIxMzQgLTEuMTcxNTkgLTEuMTcxNTkgLTIuMTIxMzQgMC4wIC0yLjEyMTM0IEMgMS4xNzE1OSAtMi4xMjEzNCAyLjEyMTM0IC0xLjE3MTU5IDIuMTIxMzQgMC4wIFogTSAwLjAgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTUxLjM4NDEwOTQ5NzA3MDMsLTUuMzAwNTgyODg1NzQyMTg3KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBmaWxsPSIjMDAwIj4gPGcgZmlsbD0iIzAwMCI+IDxwYXRoIGQ9IiBNIDIuMTIxMzQgLTIwLjQ4NTkgQyAyLjEyMTM0IC0xOS4zMTQzMiAxLjE3MTU5IC0xOC4zNjQ1NiAwLjAgLTE4LjM2NDU2IEMgLTEuMTcxNTkgLTE4LjM2NDU2IC0yLjEyMTM0IC0xOS4zMTQzMiAtMi4xMjEzNCAtMjAuNDg1OSBDIC0yLjEyMTM0IC0yMS42NTc0OSAtMS4xNzE1OSAtMjIuNjA3MjQgMC4wIC0yMi42MDcyNCBDIDEuMTcxNTkgLTIyLjYwNzI0IDIuMTIxMzQgLTIxLjY1NzQ5IDIuMTIxMzQgLTIwLjQ4NTkgWiBNIDAuMCAtMjAuNDg1OSAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAsLTIwLjQ4NTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSA1My4zMzU5MiAyNS42MDcyOCBDIDUzLjMzNTkyIDI2Ljc3ODg3IDUyLjM4NjE3IDI3LjcyODYyIDUxLjIxNDU4IDI3LjcyODYyIEMgNTAuMDQzIDI3LjcyODYyIDQ5LjA5MzI1IDI2Ljc3ODg3IDQ5LjA5MzI1IDI1LjYwNzI4IEMgNDkuMDkzMjUgMjQuNDM1NyA1MC4wNDMgMjMuNDg1OTUgNTEuMjE0NTggMjMuNDg1OTUgQyA1Mi4zODYxNyAyMy40ODU5NSA1My4zMzU5MiAyNC40MzU3IDUzLjMzNTkyIDI1LjYwNzI4IFogTSA1MS4yMTQ1OCAyNS42MDcyOCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MS4yMTQ1OCwyNS42MDcyOCkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC01MS4zODQxMDk0OTcwNzAzLC01LjMwMDU4Mjg4NTc0MjE4Nykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBmaWxsPSIjMDAwIj4gPGcgZmlsbD0iIzAwMCI+IDxwYXRoIGQ9IiBNIDUzLjMzNTkyIDcuNjgyMjUgQyA1My4zMzU5MiA4Ljg1Mzg0IDUyLjM4NjE3IDkuODAzNTkgNTEuMjE0NTggOS44MDM1OSBDIDUwLjA0MyA5LjgwMzU5IDQ5LjA5MzI1IDguODUzODQgNDkuMDkzMjUgNy42ODIyNSBDIDQ5LjA5MzI1IDYuNTEwNjcgNTAuMDQzIDUuNTYwOTEgNTEuMjE0NTggNS41NjA5MSBDIDUyLjM4NjE3IDUuNTYwOTEgNTMuMzM1OTIgNi41MTA2NyA1My4zMzU5MiA3LjY4MjI1IFogTSA1MS4yMTQ1OCA3LjY4MjI1ICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUxLjIxNDU4LDcuNjgyMjUpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSA1My4zMzU5MiAtMTAuMjQyNzUgQyA1My4zMzU5MiAtOS4wNzExNyA1Mi4zODYxNyAtOC4xMjE0MSA1MS4yMTQ1OCAtOC4xMjE0MSBDIDUwLjA0MyAtOC4xMjE0MSA0OS4wOTMyNSAtOS4wNzExNyA0OS4wOTMyNSAtMTAuMjQyNzUgQyA0OS4wOTMyNSAtMTEuNDE0MzQgNTAuMDQzIC0xMi4zNjQwOSA1MS4yMTQ1OCAtMTIuMzY0MDkgQyA1Mi4zODYxNyAtMTIuMzY0MDkgNTMuMzM1OTIgLTExLjQxNDM0IDUzLjMzNTkyIC0xMC4yNDI3NSBaIE0gNTEuMjE0NTggLTEwLjI0Mjc1ICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUxLjIxNDU4LC0xMC4yNDI3NSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC01MS4zODQxMDk0OTcwNzAzLC01LjMwMDU4Mjg4NTc0MjE4Nykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBmaWxsPSIjMDAwIj4gPGcgZmlsbD0iIzAwMCI+IDxwYXRoIGQ9IiBNIDUzLjMzNTkyIC0yOC4xNjgxNyBDIDUzLjMzNTkyIC0yNi45OTY1OCA1Mi4zODYxNyAtMjYuMDQ2ODMgNTEuMjE0NTggLTI2LjA0NjgzIEMgNTAuMDQzIC0yNi4wNDY4MyA0OS4wOTMyNSAtMjYuOTk2NTggNDkuMDkzMjUgLTI4LjE2ODE3IEMgNDkuMDkzMjUgLTI5LjMzOTc1IDUwLjA0MyAtMzAuMjg5NSA1MS4yMTQ1OCAtMzAuMjg5NSBDIDUyLjM4NjE3IC0zMC4yODk1IDUzLjMzNTkyIC0yOS4zMzk3NSA1My4zMzU5MiAtMjguMTY4MTcgWiBNIDUxLjIxNDU4IC0yOC4xNjgxNyAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MS4yMTQ1OCwtMjguMTY4MTcpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSA0LjE5MjI4IDE5LjQzNzg4IEwgNDIuMTU1MiA5Ljk0NjczICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC45NzAxNCwtMC4yNDI1MSwwLjI0MjUxLDAuOTcwMTQsMzkuMzM4NjIsMTAuNjUwOCkiPiA8ZyBzdHJva2UtZGFzaGFycmF5PSJub25lIiBzdHJva2UtZGFzaG9mZnNldD0iMC4wIj4gPGcgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+IDxwYXRoIGQ9IiBNIDYuNzgwNzkgMC4wIEwgMS4yOTE3NSAyLjA3MTUyIEwgMy4xMDMyNyAwLjAgTCAxLjI5MTc1IC0yLjA3MTUyIFogICI+PC9wYXRoPiA8L2c+IDwvZz4gIDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDMuNzg2MjEgLTIuMDgyNDQgTCA0My4wMzI2NCAtMjMuNjY4MDMgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjg3NjE3LC0wLjQ4MTksMC40ODE5LDAuODc2MTcsNDAuNDg4ODYsLTIyLjI2ODk0KSI+IDxnIHN0cm9rZS1kYXNoYXJyYXk9Im5vbmUiIHN0cm9rZS1kYXNob2Zmc2V0PSIwLjAiPiA8ZyBzdHJva2UtbGluZWpvaW49Im1pdGVyIj4gPHBhdGggZD0iIE0gNi43ODA3OSAwLjAgTCAxLjI5MTc1IDIuMDcxNTIgTCAzLjEwMzI3IDAuMCBMIDEuMjkxNzUgLTIuMDcxNTIgWiAgIj48L3BhdGg+IDwvZz4gPC9nPiAgPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPHBhdGggZD0iIE0gMy4yMTE5IC0xNy41OTUwOCBMIDQ0LjI3MzcxIDE5LjM2MDU1ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC43NDMyNywwLjY2ODk1LC0wLjY2ODk1LDAuNzQzMjcsNDIuMTE1NzgsMTcuNDE4NDEpIj4gPGcgc3Ryb2tlLWRhc2hhcnJheT0ibm9uZSIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAuMCI+IDxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPiA8cGF0aCBkPSIgTSA2Ljc4MDc5IDAuMCBMIDEuMjkxNzUgMi4wNzE1MiBMIDMuMTAzMjcgMC4wIEwgMS4yOTE3NSAtMi4wNzE1MiBaICAiPjwvcGF0aD4gPC9nPiA8L2c+ICA8L2c+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTE5LjI4MDMsNTYuNjkyKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTUxLjM4NDEwOTQ5NzA3MDMsLTUuMzAwNTgyODg1NzQyMTg3KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItNS4zMDA1ODI4ODU3NDIxODciIHg9Ii01MS4zODQxMDk0OTcwNzAzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIj5zdXJqZWN0aXZlPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPGcgc3Ryb2tlPSIjY2RkNTk3IiBmaWxsPSIjY2RkNTk3Ij4gPHBhdGggZD0iIE0gMTE1LjIzMjgyIDAuMCBNIDEzNS43MTg3MiAwLjAgQyAxMzUuNzE4NzIgMjEuMjE0MDQgMTI2LjU0NzAxIDM4LjQxMDkzIDExNS4yMzI4MiAzOC40MTA5MyBDIDEwMy45MTg2MiAzOC40MTA5MyA5NC43NDY5MiAyMS4yMTQwNCA5NC43NDY5MiAwLjAgQyA5NC43NDY5MiAtMjEuMjE0MDQgMTAzLjkxODYyIC0zOC40MTA5MyAxMTUuMjMyODIgLTM4LjQxMDkzIEMgMTI2LjU0NzAxIC0zOC40MTA5MyAxMzUuNzE4NzIgLTIxLjIxNDA0IDEzNS43MTg3MiAwLjAgWiBNIDExNS4yMzI4MiAwLjAgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiNmZGIyYTIiIGZpbGw9IiNmZGIyYTIiPiA8cGF0aCBkPSIgTSAxNjYuNDQ3NCAwLjAgTSAxODYuOTMzMyAwLjAgQyAxODYuOTMzMyAyMS4yMTQwNCAxNzcuNzYxNiAzOC40MTA5MyAxNjYuNDQ3NCAzOC40MTA5MyBDIDE1NS4xMzMyMSAzOC40MTA5MyAxNDUuOTYxNSAyMS4yMTQwNCAxNDUuOTYxNSAwLjAgQyAxNDUuOTYxNSAtMjEuMjE0MDQgMTU1LjEzMzIxIC0zOC40MTA5MyAxNjYuNDQ3NCAtMzguNDEwOTMgQyAxNzcuNzYxNiAtMzguNDEwOTMgMTg2LjkzMzMgLTIxLjIxNDA0IDE4Ni45MzMzIDAuMCBaIE0gMTY2LjQ0NzQgMC4wICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMS40ODI4Miw0NC41MDQ3OSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC01MS4zODQxMDk0OTcwNzAzLC01LjMwMDU4Mjg4NTc0MjE4Nykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTUuMzAwNTgyODg1NzQyMTg3IiB4PSItNTEuMzg0MTA5NDk3MDcwMyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5BPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2Mi40MDQsNDQuNTA0NzkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDx0ZXh0IGFsaWdubWVudC1iYXNlbGluZT0iYmFzZWxpbmUiIHk9Ii01LjMwMDU4Mjg4NTc0MjE4NyIgeD0iLTUxLjM4NDEwOTQ5NzA3MDMiIGZvbnQtZmFtaWx5PSJzZXJpZiIgZm9udC1zaXplPSIxMCIgZmlsbD0iYmxhY2siIGZvbnQtc3R5bGU9Iml0YWxpYyI+QjwvdGV4dD48L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8ZyBmaWxsPSIjMDAwIj4gPGcgZmlsbD0iIzAwMCI+IDxwYXRoIGQ9IiBNIDExNy4zNTQxNiAyNS42MDcyOCBDIDExNy4zNTQxNiAyNi43Nzg4NyAxMTYuNDA0NCAyNy43Mjg2MiAxMTUuMjMyODIgMjcuNzI4NjIgQyAxMTQuMDYxMjMgMjcuNzI4NjIgMTEzLjExMTQ4IDI2Ljc3ODg3IDExMy4xMTE0OCAyNS42MDcyOCBDIDExMy4xMTE0OCAyNC40MzU3IDExNC4wNjEyMyAyMy40ODU5NSAxMTUuMjMyODIgMjMuNDg1OTUgQyAxMTYuNDA0NCAyMy40ODU5NSAxMTcuMzU0MTYgMjQuNDM1NyAxMTcuMzU0MTYgMjUuNjA3MjggWiBNIDExNS4yMzI4MiAyNS42MDcyOCAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTUuMjMyODIsMjUuNjA3MjgpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSAxMTcuMzU0MTYgNy42ODIyNSBDIDExNy4zNTQxNiA4Ljg1Mzg0IDExNi40MDQ0IDkuODAzNTkgMTE1LjIzMjgyIDkuODAzNTkgQyAxMTQuMDYxMjMgOS44MDM1OSAxMTMuMTExNDggOC44NTM4NCAxMTMuMTExNDggNy42ODIyNSBDIDExMy4xMTE0OCA2LjUxMDY3IDExNC4wNjEyMyA1LjU2MDkxIDExNS4yMzI4MiA1LjU2MDkxIEMgMTE2LjQwNDQgNS41NjA5MSAxMTcuMzU0MTYgNi41MTA2NyAxMTcuMzU0MTYgNy42ODIyNSBaIE0gMTE1LjIzMjgyIDcuNjgyMjUgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTE1LjIzMjgyLDcuNjgyMjUpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSAxMTcuMzU0MTYgLTEwLjI0Mjc1IEMgMTE3LjM1NDE2IC05LjA3MTE3IDExNi40MDQ0IC04LjEyMTQxIDExNS4yMzI4MiAtOC4xMjE0MSBDIDExNC4wNjEyMyAtOC4xMjE0MSAxMTMuMTExNDggLTkuMDcxMTcgMTEzLjExMTQ4IC0xMC4yNDI3NSBDIDExMy4xMTE0OCAtMTEuNDE0MzQgMTE0LjA2MTIzIC0xMi4zNjQwOSAxMTUuMjMyODIgLTEyLjM2NDA5IEMgMTE2LjQwNDQgLTEyLjM2NDA5IDExNy4zNTQxNiAtMTEuNDE0MzQgMTE3LjM1NDE2IC0xMC4yNDI3NSBaIE0gMTE1LjIzMjgyIC0xMC4yNDI3NSAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTUuMjMyODIsLTEwLjI0Mjc1KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTUxLjM4NDEwOTQ5NzA3MDMsLTUuMzAwNTgyODg1NzQyMTg3KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDxnIGZpbGw9IiMwMDAiPiA8ZyBmaWxsPSIjMDAwIj4gPHBhdGggZD0iIE0gMTE3LjM1NDE2IC0yOC4xNjgxNyBDIDExNy4zNTQxNiAtMjYuOTk2NTggMTE2LjQwNDQgLTI2LjA0NjgzIDExNS4yMzI4MiAtMjYuMDQ2ODMgQyAxMTQuMDYxMjMgLTI2LjA0NjgzIDExMy4xMTE0OCAtMjYuOTk2NTggMTEzLjExMTQ4IC0yOC4xNjgxNyBDIDExMy4xMTE0OCAtMjkuMzM5NzUgMTE0LjA2MTIzIC0zMC4yODk1IDExNS4yMzI4MiAtMzAuMjg5NSBDIDExNi40MDQ0IC0zMC4yODk1IDExNy4zNTQxNiAtMjkuMzM5NzUgMTE3LjM1NDE2IC0yOC4xNjgxNyBaIE0gMTE1LjIzMjgyIC0yOC4xNjgxNyAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTUuMjMyODIsLTI4LjE2ODE3KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTUxLjM4NDEwOTQ5NzA3MDMsLTUuMzAwNTgyODg1NzQyMTg3KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDxnIGZpbGw9IiMwMDAiPiA8ZyBmaWxsPSIjMDAwIj4gPHBhdGggZD0iIE0gMTY4LjU2ODc0IDIwLjQ4NTkgQyAxNjguNTY4NzQgMjEuNjU3NDkgMTY3LjYxODk5IDIyLjYwNzI0IDE2Ni40NDc0IDIyLjYwNzI0IEMgMTY1LjI3NTgyIDIyLjYwNzI0IDE2NC4zMjYwNyAyMS42NTc0OSAxNjQuMzI2MDcgMjAuNDg1OSBDIDE2NC4zMjYwNyAxOS4zMTQzMiAxNjUuMjc1ODIgMTguMzY0NTYgMTY2LjQ0NzQgMTguMzY0NTYgQyAxNjcuNjE4OTkgMTguMzY0NTYgMTY4LjU2ODc0IDE5LjMxNDMyIDE2OC41Njg3NCAyMC40ODU5IFogTSAxNjYuNDQ3NCAyMC40ODU5ICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2Ni40NDc0LDIwLjQ4NTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSAxNjguNTY4NzQgMC4wIEMgMTY4LjU2ODc0IDEuMTcxNTkgMTY3LjYxODk5IDIuMTIxMzQgMTY2LjQ0NzQgMi4xMjEzNCBDIDE2NS4yNzU4MiAyLjEyMTM0IDE2NC4zMjYwNyAxLjE3MTU5IDE2NC4zMjYwNyAwLjAgQyAxNjQuMzI2MDcgLTEuMTcxNTkgMTY1LjI3NTgyIC0yLjEyMTM0IDE2Ni40NDc0IC0yLjEyMTM0IEMgMTY3LjYxODk5IC0yLjEyMTM0IDE2OC41Njg3NCAtMS4xNzE1OSAxNjguNTY4NzQgMC4wIFogTSAxNjYuNDQ3NCAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY2LjQ0NzQsMC4wKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTUxLjM4NDEwOTQ5NzA3MDMsLTUuMzAwNTgyODg1NzQyMTg3KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDxnIGZpbGw9IiMwMDAiPiA8ZyBmaWxsPSIjMDAwIj4gPHBhdGggZD0iIE0gMTY4LjU2ODc0IC0yMC40ODU5IEMgMTY4LjU2ODc0IC0xOS4zMTQzMiAxNjcuNjE4OTkgLTE4LjM2NDU2IDE2Ni40NDc0IC0xOC4zNjQ1NiBDIDE2NS4yNzU4MiAtMTguMzY0NTYgMTY0LjMyNjA3IC0xOS4zMTQzMiAxNjQuMzI2MDcgLTIwLjQ4NTkgQyAxNjQuMzI2MDcgLTIxLjY1NzQ5IDE2NS4yNzU4MiAtMjIuNjA3MjQgMTY2LjQ0NzQgLTIyLjYwNzI0IEMgMTY3LjYxODk5IC0yMi42MDcyNCAxNjguNTY4NzQgLTIxLjY1NzQ5IDE2OC41Njg3NCAtMjAuNDg1OSBaIE0gMTY2LjQ0NzQgLTIwLjQ4NTkgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTY2LjQ0NzQsLTIwLjQ4NTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAxMTkuNTMyNDQgMjUuMTc3MjYgTCAxNTcuMTU2MDIgMjEuNDE0NzYgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjk5NDk4LC0wLjA5OTQ5LDAuMDk5NDksMC45OTQ5OCwxNTQuMjY3MzIsMjEuNzAzNjEpIj4gPGcgc3Ryb2tlLWRhc2hhcnJheT0ibm9uZSIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAuMCI+IDxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPiA8cGF0aCBkPSIgTSA2Ljc4MDc5IDAuMCBMIDEuMjkxNzUgMi4wNzE1MiBMIDMuMTAzMjcgMC4wIEwgMS4yOTE3NSAtMi4wNzE1MiBaICAiPjwvcGF0aD4gPC9nPiA8L2c+ICA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAxMTkuNTA2MDYgNy4wNDEyMyBMIDE1Ny4yMTMwNyAxLjM4NTA2ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC45ODg4OCwtMC4xNDgzMywwLjE0ODMzLDAuOTg4ODgsMTU0LjM0MjA5LDEuODE1NykiPiA8ZyBzdHJva2UtZGFzaGFycmF5PSJub25lIiBzdHJva2UtZGFzaG9mZnNldD0iMC4wIj4gPGcgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+IDxwYXRoIGQ9IiBNIDYuNzgwNzkgMC4wIEwgMS4yOTE3NSAyLjA3MTUyIEwgMy4xMDMyNyAwLjAgTCAxLjI5MTc1IC0yLjA3MTUyIFogICI+PC9wYXRoPiA8L2c+IDwvZz4gIDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDExOS40NzAwMyAtMTEuMDkwMTIgTCAxNTcuMjkxMDIgLTE4LjY1NDU5ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC45ODA1MywtMC4xOTYxLDAuMTk2MSwwLjk4MDUzLDE1NC40NDQyNiwtMTguMDg1MjQpIj4gPGcgc3Ryb2tlLWRhc2hhcnJheT0ibm9uZSIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAuMCI+IDxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPiA8cGF0aCBkPSIgTSA2Ljc4MDc5IDAuMCBMIDEuMjkxNzUgMi4wNzE1MiBMIDMuMTAzMjcgMC4wIEwgMS4yOTE3NSAtMi4wNzE1MiBaICAiPjwvcGF0aD4gPC9nPiA8L2c+ICA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAxMTkuMDE5MDQgLTI2LjA4NTU5IEwgMTU4LjI2NTQ3IC00LjUgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjg3NjE3LDAuNDgxOSwtMC40ODE5LDAuODc2MTcsMTU1LjcyMTcsLTUuODk5MSkiPiA8ZyBzdHJva2UtZGFzaGFycmF5PSJub25lIiBzdHJva2UtZGFzaG9mZnNldD0iMC4wIj4gPGcgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciI+IDxwYXRoIGQ9IiBNIDYuNzgwNzkgMC4wIEwgMS4yOTE3NSAyLjA3MTUyIEwgMy4xMDMyNyAwLjAgTCAxLjI5MTc1IC0yLjA3MTUyIFogICI+PC9wYXRoPiA8L2c+IDwvZz4gIDwvZz4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzcuMjA0ODIsNTYuNjkyKSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTUxLjM4NDEwOTQ5NzA3MDMsLTUuMzAwNTgyODg1NzQyMTg3KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8dGV4dCBhbGlnbm1lbnQtYmFzZWxpbmU9ImJhc2VsaW5lIiB5PSItNS4zMDA1ODI4ODU3NDIxODciIHg9Ii01MS4zODQxMDk0OTcwNzAzIiBmb250LWZhbWlseT0ic2VyaWYiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9ImJsYWNrIj5iaWplY3RpdmU8L3RleHQ+PC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8ZyBzdHJva2U9IiNjZGQ1OTciIGZpbGw9IiNjZGQ1OTciPiA8cGF0aCBkPSIgTSAyMzAuNDY1NjUgMC4wIE0gMjUwLjk1MTU1IDAuMCBDIDI1MC45NTE1NSAyMS4yMTQwNCAyNDEuNzc5ODUgMzguNDEwOTMgMjMwLjQ2NTY1IDM4LjQxMDkzIEMgMjE5LjE1MTQ2IDM4LjQxMDkzIDIwOS45Nzk3NSAyMS4yMTQwNCAyMDkuOTc5NzUgMC4wIEMgMjA5Ljk3OTc1IC0yMS4yMTQwNCAyMTkuMTUxNDYgLTM4LjQxMDkzIDIzMC40NjU2NSAtMzguNDEwOTMgQyAyNDEuNzc5ODUgLTM4LjQxMDkzIDI1MC45NTE1NSAtMjEuMjE0MDQgMjUwLjk1MTU1IDAuMCBaIE0gMjMwLjQ2NTY1IDAuMCAgIiBmaWxsPSJub25lIj48L3BhdGg+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxnIHN0cm9rZT0iI2ZkYjJhMiIgZmlsbD0iI2ZkYjJhMiI+IDxwYXRoIGQ9IiBNIDI4MS42ODAyNCAwLjAgTSAzMDIuMTY2MTQgMC4wIEMgMzAyLjE2NjE0IDIxLjIxNDA0IDI5Mi45OTQ0MyAzOC40MTA5MyAyODEuNjgwMjQgMzguNDEwOTMgQyAyNzAuMzY2MDQgMzguNDEwOTMgMjYxLjE5NDM0IDIxLjIxNDA0IDI2MS4xOTQzNCAwLjAgQyAyNjEuMTk0MzQgLTIxLjIxNDA0IDI3MC4zNjYwNCAtMzguNDEwOTMgMjgxLjY4MDI0IC0zOC40MTA5MyBDIDI5Mi45OTQ0MyAtMzguNDEwOTMgMzAyLjE2NjE0IC0yMS4yMTQwNCAzMDIuMTY2MTQgMC4wIFogTSAyODEuNjgwMjQgMC4wICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyNi43MTU2NSw0NC41MDQ3OSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC01MS4zODQxMDk0OTcwNzAzLC01LjMwMDU4Mjg4NTc0MjE4Nykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTUuMzAwNTgyODg1NzQyMTg3IiB4PSItNTEuMzg0MTA5NDk3MDcwMyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5BPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI3Ny42MzY4NCw0NC41MDQ3OSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC01MS4zODQxMDk0OTcwNzAzLC01LjMwMDU4Mjg4NTc0MjE4Nykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPHRleHQgYWxpZ25tZW50LWJhc2VsaW5lPSJiYXNlbGluZSIgeT0iLTUuMzAwNTgyODg1NzQyMTg3IiB4PSItNTEuMzg0MTA5NDk3MDcwMyIgZm9udC1mYW1pbHk9InNlcmlmIiBmb250LXNpemU9IjEwIiBmaWxsPSJibGFjayIgZm9udC1zdHlsZT0iaXRhbGljIj5CPC90ZXh0PjwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDxnIGZpbGw9IiMwMDAiPiA8ZyBmaWxsPSIjMDAwIj4gPHBhdGggZD0iIE0gMjMyLjU4Njk5IDIwLjQ4NTkgQyAyMzIuNTg2OTkgMjEuNjU3NDkgMjMxLjYzNzI0IDIyLjYwNzI0IDIzMC40NjU2NSAyMi42MDcyNCBDIDIyOS4yOTQwNyAyMi42MDcyNCAyMjguMzQ0MzEgMjEuNjU3NDkgMjI4LjM0NDMxIDIwLjQ4NTkgQyAyMjguMzQ0MzEgMTkuMzE0MzIgMjI5LjI5NDA3IDE4LjM2NDU2IDIzMC40NjU2NSAxOC4zNjQ1NiBDIDIzMS42MzcyNCAxOC4zNjQ1NiAyMzIuNTg2OTkgMTkuMzE0MzIgMjMyLjU4Njk5IDIwLjQ4NTkgWiBNIDIzMC40NjU2NSAyMC40ODU5ICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzMC40NjU2NSwyMC40ODU5KSI+IDxnIHN0cm9rZT0iIzAwMCIgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSIgdHJhbnNmb3JtPSJzY2FsZSgtMSwxKSB0cmFuc2xhdGUoLTUxLjM4NDEwOTQ5NzA3MDMsLTUuMzAwNTgyODg1NzQyMTg3KSBzY2FsZSgtMSwtMSkiPjxnIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiPiA8L2c+IDwvZz4gPC9nPjwvZz4gPC9nPiA8L2c+IDxnIGZpbGw9IiMwMDAiPiA8ZyBmaWxsPSIjMDAwIj4gPHBhdGggZD0iIE0gMjMyLjU4Njk5IDAuMCBDIDIzMi41ODY5OSAxLjE3MTU5IDIzMS42MzcyNCAyLjEyMTM0IDIzMC40NjU2NSAyLjEyMTM0IEMgMjI5LjI5NDA3IDIuMTIxMzQgMjI4LjM0NDMxIDEuMTcxNTkgMjI4LjM0NDMxIDAuMCBDIDIyOC4zNDQzMSAtMS4xNzE1OSAyMjkuMjk0MDcgLTIuMTIxMzQgMjMwLjQ2NTY1IC0yLjEyMTM0IEMgMjMxLjYzNzI0IC0yLjEyMTM0IDIzMi41ODY5OSAtMS4xNzE1OSAyMzIuNTg2OTkgMC4wIFogTSAyMzAuNDY1NjUgMC4wICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzMC40NjU2NSwwLjApIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSAyMzIuNTg2OTkgLTIwLjQ4NTkgQyAyMzIuNTg2OTkgLTE5LjMxNDMyIDIzMS42MzcyNCAtMTguMzY0NTYgMjMwLjQ2NTY1IC0xOC4zNjQ1NiBDIDIyOS4yOTQwNyAtMTguMzY0NTYgMjI4LjM0NDMxIC0xOS4zMTQzMiAyMjguMzQ0MzEgLTIwLjQ4NTkgQyAyMjguMzQ0MzEgLTIxLjY1NzQ5IDIyOS4yOTQwNyAtMjIuNjA3MjQgMjMwLjQ2NTY1IC0yMi42MDcyNCBDIDIzMS42MzcyNCAtMjIuNjA3MjQgMjMyLjU4Njk5IC0yMS42NTc0OSAyMzIuNTg2OTkgLTIwLjQ4NTkgWiBNIDIzMC40NjU2NSAtMjAuNDg1OSAgIiBzdHJva2U9Im5vbmUiPjwvcGF0aD4gPC9nPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzAuNDY1NjUsLTIwLjQ4NTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSAyODMuODAxNTcgMjAuNDg1OSBDIDI4My44MDE1NyAyMS42NTc0OSAyODIuODUxODIgMjIuNjA3MjQgMjgxLjY4MDI0IDIyLjYwNzI0IEMgMjgwLjUwODY1IDIyLjYwNzI0IDI3OS41NTg5IDIxLjY1NzQ5IDI3OS41NTg5IDIwLjQ4NTkgQyAyNzkuNTU4OSAxOS4zMTQzMiAyODAuNTA4NjUgMTguMzY0NTYgMjgxLjY4MDI0IDE4LjM2NDU2IEMgMjgyLjg1MTgyIDE4LjM2NDU2IDI4My44MDE1NyAxOS4zMTQzMiAyODMuODAxNTcgMjAuNDg1OSBaIE0gMjgxLjY4MDI0IDIwLjQ4NTkgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgxLjY4MDI0LDIwLjQ4NTkpIj4gPGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtNTEuMzg0MTA5NDk3MDcwMywtNS4zMDA1ODI4ODU3NDIxODcpIHNjYWxlKC0xLC0xKSI+PGcgZmlsbD0iIzAwMCI+IDxnIHN0cm9rZT0ibm9uZSI+IDwvZz4gPC9nPiA8L2c+PC9nPiA8L2c+IDwvZz4gPGcgZmlsbD0iIzAwMCI+IDxnIGZpbGw9IiMwMDAiPiA8cGF0aCBkPSIgTSAyODMuODAxNTcgMC4wIEMgMjgzLjgwMTU3IDEuMTcxNTkgMjgyLjg1MTgyIDIuMTIxMzQgMjgxLjY4MDI0IDIuMTIxMzQgQyAyODAuNTA4NjUgMi4xMjEzNCAyNzkuNTU4OSAxLjE3MTU5IDI3OS41NTg5IDAuMCBDIDI3OS41NTg5IC0xLjE3MTU5IDI4MC41MDg2NSAtMi4xMjEzNCAyODEuNjgwMjQgLTIuMTIxMzQgQyAyODIuODUxODIgLTIuMTIxMzQgMjgzLjgwMTU3IC0xLjE3MTU5IDI4My44MDE1NyAwLjAgWiBNIDI4MS42ODAyNCAwLjAgICIgc3Ryb2tlPSJub25lIj48L3BhdGg+IDwvZz4gPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjgxLjY4MDI0LDAuMCkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC01MS4zODQxMDk0OTcwNzAzLC01LjMwMDU4Mjg4NTc0MjE4Nykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBmaWxsPSIjMDAwIj4gPGcgZmlsbD0iIzAwMCI+IDxwYXRoIGQ9IiBNIDI4My44MDE1NyAtMjAuNDg1OSBDIDI4My44MDE1NyAtMTkuMzE0MzIgMjgyLjg1MTgyIC0xOC4zNjQ1NiAyODEuNjgwMjQgLTE4LjM2NDU2IEMgMjgwLjUwODY1IC0xOC4zNjQ1NiAyNzkuNTU4OSAtMTkuMzE0MzIgMjc5LjU1ODkgLTIwLjQ4NTkgQyAyNzkuNTU4OSAtMjEuNjU3NDkgMjgwLjUwODY1IC0yMi42MDcyNCAyODEuNjgwMjQgLTIyLjYwNzI0IEMgMjgyLjg1MTgyIC0yMi42MDcyNCAyODMuODAxNTcgLTIxLjY1NzQ5IDI4My44MDE1NyAtMjAuNDg1OSBaIE0gMjgxLjY4MDI0IC0yMC40ODU5ICAiIHN0cm9rZT0ibm9uZSI+PC9wYXRoPiA8L2c+IDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI4MS42ODAyNCwtMjAuNDg1OSkiPiA8ZyBzdHJva2U9IiMwMDAiIGZpbGw9IiMwMDAiPiA8ZyBzdHJva2U9Im5vbmUiIHRyYW5zZm9ybT0ic2NhbGUoLTEsMSkgdHJhbnNsYXRlKC01MS4zODQxMDk0OTcwNzAzLC01LjMwMDU4Mjg4NTc0MjE4Nykgc2NhbGUoLTEsLTEpIj48ZyBmaWxsPSIjMDAwIj4gPGcgc3Ryb2tlPSJub25lIj4gPC9nPiA8L2c+IDwvZz48L2c+IDwvZz4gPC9nPiA8ZyBzdHJva2Utd2lkdGg9IjAuOCI+IDxwYXRoIGQ9IiBNIDIzNC40Nzc3MiAxOC44ODEwMSBMIDI3My4wMTAzIDMuNDY3ODIgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjkyODQ0LC0wLjM3MTM3LDAuMzcxMzcsMC45Mjg0NCwyNzAuMzE0NzksNC41NDYpIj4gPGcgc3Ryb2tlLWRhc2hhcnJheT0ibm9uZSIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAuMCI+IDxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPiA8cGF0aCBkPSIgTSA2Ljc4MDc5IDAuMCBMIDEuMjkxNzUgMi4wNzE1MiBMIDMuMTAzMjcgMC4wIEwgMS4yOTE3NSAtMi4wNzE1MiBaICAiPjwvcGF0aD4gPC9nPiA8L2c+ICA8L2c+IDwvZz4gPGcgc3Ryb2tlLXdpZHRoPSIwLjgiPiA8cGF0aCBkPSIgTSAyMzQuNDc3NzIgMS42MDQ3OCBMIDI3My4wMTAzIDE3LjAxNzk3ICAiIGZpbGw9Im5vbmUiPjwvcGF0aD4gPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC45Mjg0NCwwLjM3MTM3LC0wLjM3MTM3LDAuOTI4NDQsMjcwLjMxNDc5LDE1LjkzOTc5KSI+IDxnIHN0cm9rZS1kYXNoYXJyYXk9Im5vbmUiIHN0cm9rZS1kYXNob2Zmc2V0PSIwLjAiPiA8ZyBzdHJva2UtbGluZWpvaW49Im1pdGVyIj4gPHBhdGggZD0iIE0gNi43ODA3OSAwLjAgTCAxLjI5MTc1IDIuMDcxNTIgTCAzLjEwMzI3IDAuMCBMIDEuMjkxNzUgLTIuMDcxNTIgWiAgIj48L3BhdGg+IDwvZz4gPC9nPiAgPC9nPiA8L2c+IDxnIHN0cm9rZS13aWR0aD0iMC44Ij4gPHBhdGggZD0iIE0gMjM0Ljc4Njk3IC0yMC40ODU4MSBMIDI3Mi4zNDIwMSAtMjAuNDg1ODEgICIgZmlsbD0ibm9uZSI+PC9wYXRoPiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNjkuNDM4NzQsLTIwLjQ4NTgxKSI+IDxnIHN0cm9rZS1kYXNoYXJyYXk9Im5vbmUiIHN0cm9rZS1kYXNob2Zmc2V0PSIwLjAiPiA8ZyBzdHJva2UtbGluZWpvaW49Im1pdGVyIj4gPHBhdGggZD0iIE0gNi43ODA3OSAwLjAgTCAxLjI5MTc1IDIuMDcxNTIgTCAzLjEwMzI3IDAuMCBMIDEuMjkxNzUgLTIuMDcxNTIgWiAgIj48L3BhdGg+IDwvZz4gPC9nPiAgPC9nPiA8L2c+IDwvZz4gPC9nPiA8L2c+PC9zdmc+" alt="tikz diagram" loading="lazy" decoding="async"><figcaption><em>source code</em><button class="source-code-button" aria-label="copy source code for this tikz graph" title="copy source code for this tikz graph"><svg class="source-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#code-icon"></use></svg><svg class="check-icon" xmlns="http://www.w3.org/2000/svg" width="12" height="16" viewBox="0 -4 16 16" fill="currentColor" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round"><use href="#github-check"></use></svg></button></figcaption></figure>

## cardinality

Two sets have the same cardinality if there exists a bijection between them:

$$
|A| = |B| \iff \exists f: A \to B \text{ bijective}
$$

For finite sets:

$$
|A \cup B| = |A| + |B| - |A \cap B|
$$

For finite products:

$$
|A \times B| = |A||B|
$$

A set is _countably infinite_ if it bijects with $\mathbb{N}$. The integers and rationals are countable; the reals are uncountable.

> \[!math\] 2. diagonal argument
>
> The set $\{0,1\}^{\mathbb{N}}$ of infinite binary sequences is _uncountable_.
>
> If a list claimed to contain every such sequence, construct a new sequence $b$ by setting {{sidenotes[$b_n = 1 - a_{n,n}$]: where $a_{n,n}$ is the $n$th bit of the $n$th listed sequence}}. Then $b$ differs from row $n$ at bit $n$, so it is missing from the list.

## open

A _topology_ on a set $X$ is a collection $\tau \subseteq \mathcal{P}(X)$ whose members are called _open sets_, satisfying (munkres §12):

- $\emptyset, X \in \tau$
- arbitrary unions of open sets are open
- finite intersections of open sets are open

The pair $(X, \tau)$ is a _topological space_. The same $X$ can carry many topologies: the discrete topology ($\tau = \mathcal{P}(X)$), the indiscrete topology ($\tau = \{\emptyset, X\}$), and any topology in between.

For $X = \mathbb{R}$ with the standard topology, $U \subseteq \mathbb{R}$ is open iff every $x \in U$ has some $\varepsilon > 0$ with $(x - \varepsilon, x + \varepsilon) \subseteq U$.

## closed

A set $C \subseteq X$ is _closed_ if its complement $X \setminus C$ is open. Equivalently (munkres §17):

- $\emptyset, X$ are closed
- arbitrary intersections of closed sets are closed
- finite unions of closed sets are closed

Closed and open are not exclusive. In the discrete topology every set is both. In $\mathbb{R}$ with the standard topology, $[a, b]$ is closed, $(a, b)$ is open, and $[a, b)$ is neither. The half-open structure is what makes the lower limit topology distinct from the standard one.

The _closure_ $\overline{A}$ is the smallest closed set containing $A$; the _interior_ $\mathrm{int}(A)$ is the largest open set inside $A$. Their difference $\overline{A} \setminus \mathrm{int}(A)$ is the boundary $\partial A$.

Open and closed are properties of subsets relative to a topology on $X$, not absolute properties of the raw set.

## Zermelo-Fraenkel set theory

ZFC is an [axiomatic system](https://en.wikipedia.org/wiki/Axiomatic_system) that was proposed to formulate a paradox-free theory of sets to address [[thoughts/Wittgenstein#Russell's paradox and the vicious circle principle|Russell's paradox]]. Formally, it is intended to formalize a single primitive notion, that of a [hereditary](https://en.wikipedia.org/wiki/Hereditary_set) [well-founded](https://en.wikipedia.org/wiki/Well-founded_relation) set, so that all _entities_ in the universe of discourse are sets.

> These axioms of ZFC therefore refer only to [pure sets](https://en.wikipedia.org/wiki/Hereditary_set) and prevent its models from containing {{sidenotes[urelements]: elements that are not themselves sets.}}

Formally, ZFC is a one-sorted theory in [first-order logic](https://en.wikipedia.org/wiki/First-order_logic).

The only nonlogical primitive is membership $\in$. Equality is governed by extensionality, and every other construction gets encoded through sets.

| axiom              | job                                                                    |
| ------------------ | ---------------------------------------------------------------------- |
| extensionality     | same elements means same set                                           |
| empty set          | there exists a set with no elements                                    |
| pairing            | from $a,b$, form $\{a,b\}$                                             |
| union              | from a set of sets, form the set of their members                      |
| power set          | from $A$, form $\mathcal{P}(A)$                                        |
| infinity           | there exists an inductive set, giving enough material for $\mathbb{N}$ |
| separation schema  | carve subsets from existing sets by first-order predicates             |
| replacement schema | images of sets under definable functions are sets                      |
| foundation         | rules out infinite descending membership chains                        |
| choice             | for a set of nonempty sets, choose one element from each               |

Replacement is stronger than Separation.

- Separation says “filter this set.”
- Replacement says “send each element through a definable rule, then collect the outputs.”

> \[!note\] universality
>
> Complements need a universe. $A^c$ means $X \setminus A$ only after $X$ has been fixed.

$$
\forall x \in A\;\exists!y\;\varphi(x,y) \implies \exists B\;\forall y\;(y \in B \iff \exists x \in A\;\varphi(x,y))
$$

The axiom of choice has many equivalent forms:

- every surjection has a right inverse
- every vector space has a basis
- every product of nonempty sets is nonempty
- every set can be well-ordered

<script type="application/json" data-notebook-runtime-data>{"id":"notebook-runtime-714ndg","sourcePath":"thoughts/Sets.md","language":"lean","indexUrl":"/api/lean/verify","cells":[{"id":"code-cell-1","source":"import Mathlib\n\nexample {α : Type*} (A B : Set α) : A \\ B = A ∩ Bᶜ := by\n  rw [Set.diff_eq]","language":"lean","executionIndex":null}],"toolbar":false,"debug":true,"vimMode":true}</script>

