Visual Tools
Calculators
Tables
Mathematical Keyboard
Converters
Other Tools


Indexed Union and Intersection Explorer


How to use
  1. Pick a family from the family picker. Each one is a rule giving the set AiA_i for every index ii, shown beside its name.
  2. The index control raises or lowers how many sets are in play. Push it up and watch the two accumulated results move.
  3. The member rows show A1,A2,A3,A_1, A_2, A_3, \ldots in order, faint at the start and solid at the current index.
  4. The two heavy bars underneath are the running union \bigcup in blue and the running intersection \bigcap in amber.
  5. On a number line, a hollow endpoint is excluded and a filled one is included. An arrowhead means the set runs to infinity.
  6. Discrete families are drawn as a grid instead, one row per set, with the members of that set highlighted.
  7. The Venn families show the finite case: two panels, one shading the union and one the intersection.
  8. The limits panel names what the two operators settle on over the whole infinite family, which is not always what a finite stage suggests.
  9. Play steps the index upward on its own, and pausing leaves it wherever it has reached.
  10. The explanation panel names the lesson of the family you are on — an empty limit, a decisive endpoint, an unbounded union, or a stalled operator.


Aᵢ = (0, 1/i]

n = 2
00.160.310.470.620.780.931.09A₁A₂
union so far
(0, 1]
unchanged — A₂ added nothing new
intersection so far
(0, 1/2]
shrank
As the index runs forever
i=1 Ai(0, 1]
i=1 Ai

Two operators, moving in opposite directions

The union of A1A_1 through A2A_{2} is (0,1](0, 1] and the intersection is (0,1/2](0, 1/2].

Both are monotone, and in opposite directions. Adding another set can only make the union bigger and the intersection smaller — never the reverse. Membership in a union survives any new term, and membership in an intersection is only ever at risk.

Keep adding. With 2 the pattern is not visible yet.
Monotonicity is not an observation about these families — it follows from the definitions, since union membership survives any new term and intersection membership is only ever at risk. Learn more about the forming pattern · Pushing the index

The family

The first two families differ by a single bracket, and that bracket decides whether the infinite intersection is empty or a point.







Getting Started

The tool takes an indexed family of sets — A1,A2,A3,A_1, A_2, A_3, \ldots — and accumulates the two big operators over it as you raise the index.

Choose a family, then push the index up. Three things move together:

• The member rows, one per set, showing A1A_1 through AnA_n.
• The union bar, in blue, holding everything in at least one of them.
• The intersection bar, in amber, holding everything in all of them.

The union can only grow as the index rises and the intersection can only shrink. Watching them move in opposite directions is the point of the display, and it is the first thing to look for.

At index 11 there is nothing to accumulate — both operators simply return A1A_1, which is where every family starts. Raise it and they begin to separate.

The panel underneath names what the current family is there to demonstrate, and the limits it reports are claims about the whole infinite family rather than about the finitely many rows on screen. That distinction does real work on this page: several families look settled long before they are, and one of them looks unsettled when it has already finished.

One Set Is Not a Family

At index 11 both operators return A1A_1 itself. The union bar and the intersection bar lie on top of the single member row, and neither has done any work.
00.160.310.470.620.780.931.09A₁
A single index, frozen

Both bars sit on the one member row. A union over one set is that set, and so is an intersection.

This is the degenerate case, and it is worth a look because it shows what the operators are before they have anything to accumulate. A union over one set is that set. An intersection over one set is that set. They differ only once there is a second term to disagree about.

The analogy with \sum holds here too: a sum of one number is that number, and the notation earns nothing until the family is genuinely a family.

Raise the index and the two bars separate immediately and permanently. From that point on the union is at least as large as any member and the intersection at most as small — see the pattern forming.

Choosing a Family

Each family in the picker is a rule that produces a set for every index, and each was chosen to make one specific thing happen.

• Shrinking intervals, Ai=(0,1/i]A_i = (0, 1/i] and its closed cousin [0,1/i][0, 1/i] — nearly identical rules with different limits.
• Growing intervals, Ai=[i,i]A_i = [-i, i], bounded at every stage.
• Sliding tails, Ai=[i,)A_i = [i, \infty), each one leaving the last behind.
• Prefixes, Ai={1,2,,i}A_i = \{1, 2, \ldots, i\}, each containing the one before.
• Discrete tails, Ai={i,i+1,}A_i = \{i, i+1, \ldots\}, each dropping its smallest member.
• Multiples of the index, where the intersection tracks a least common multiple.
• Two Venn families, which show the finite case rather than a limit.

The expression for the current family is printed beside the picker, so you can always see the rule generating the rows below.

The families are not variations on one idea. Each is a counterexample to a plausible guess about how unions and intersections behave in the limit.

Pushing the Index

The index control decides how many sets are being accumulated. It is the only control that matters for the mathematics; everything else chooses what is being accumulated.

Raising it adds a member row and updates both bars. Lowering it removes the row and rolls the bars back. Play raises the index on its own so you can watch the two bars converge without clicking.

Early on there is not much to see — with two or three sets the pattern is usually still forming. Push to five or six and the behaviour that distinguishes one family from another becomes visible.

Two habits make the tool more useful. Step one index at a time rather than jumping, so you can see which term caused a change. And when a bar stops moving, notice it: a term that changes nothing is telling you the family is nested, and nesting is what makes the limits predictable.

The Pattern Is Still Forming

Three sets in. The union has grown a little, the intersection has shrunk a little, and neither has arrived anywhere that tells you what the family will do.
00.160.310.470.620.780.931.09A₁A₂A₃
Three terms in, frozen

The blue bar has grown and the amber one has shrunk. Every family looks like this at three terms.

This is the honest middle of the process, and it is included because it is where most families look alike. Every family in the picker produces a growing union and a shrinking intersection at this stage. What distinguishes them only appears further along.

The monotonicity is already visible, though, and it is worth naming precisely. Both operators are monotone in the index, in opposite directions: adding a term can only enlarge the union and only reduce the intersection, never the reverse.

That is not an empirical observation about these families. It follows from the definitions — membership in a union survives any new term, and membership in an intersection is only ever at risk from one.

Keep going. By five or six terms each family has committed to its lesson.

Reading the Number Line

Interval families are drawn on a shared number line, so every set and both accumulated results are directly comparable.

The endpoint marks carry the detail that matters most here:

• A filled dot means the endpoint is included.
• A hollow dot means it is excluded.
• An arrowhead at either end means the set continues without bound.

The member rows fade with age — the earliest sets are faintest and the current one is solid — so the direction of travel is visible at a glance.

Below the dashed rule sit the two accumulated bars, drawn heavier than the members. When a bar shows the empty-set symbol instead of a segment, the accumulation has nothing in it at that stage.

The tick labels are the coordinates, and they rescale when a family needs a wider view. That is worth noticing when comparing two families: the same visual width can mean very different intervals.

Discrete and Venn Views

Not every family is a family of intervals, and the tool switches renderer to match.

Discrete families are drawn as a grid: one row per set, one cell per candidate number, with the members of that set highlighted. The two accumulated rows sit underneath in the same layout, so you can read down a column to see which sets contain a given number. That is the view used by the prefix, discrete-tail and multiples families — the last of which produces an intersection tracking the least common multiple.

Venn families are different in kind: they show a finite family rather than an infinite one, side by side, one panel shading the union and one the intersection. With only two or three sets the big operators are just \cup and \cap written once instead of repeatedly, which is the finite chain.

A Venn diagram can only ever show a small finite family, because it needs a separate region for every combination of memberships and there are 2n2^n of those.

The Running Intersection Is an LCM

The multiples family, where AiA_i holds the multiples of ii. The intersection row highlights the numbers divisible by every index so far — the multiples of lcm(1,,n)\mathrm{lcm}(1, \ldots, n).
A₁12345678910111213141516A₂12345678910111213141516A₃12345678910111213141516A₄12345678910111213141516A₅12345678910111213141516A₆123456789101112131415161234567891011121314151612345678910111213141516
Multiples of the index, frozen

Read down a column to see which sets contain a number. The amber row holds the multiples of lcm(1..6) = 60 — none within the grid.

That requirement climbs quickly. The least common multiples run 1,2,6,12,60,60,4201, 2, 6, 12, 60, 60, 420, so by six terms only multiples of 6060 survive, and none of them are inside the window the grid can show. Each new index either divides what came before, changing nothing, or multiplies the requirement.

Over the whole infinite family the intersection is \varnothing, because no natural number is a multiple of every natural number. The union is all of N\mathbb{N}, because every nn is a multiple of itself — and in fact the union settles at once, since A1A_1 is already everything.

A set operation producing the least common multiple is not a coincidence. Divisibility orders N\mathbb{N} the way \subseteq orders sets: the set of multiples of aa contains the set of multiples of bb exactly when aa divides bb. Intersection is the meet in that order, and the meet of divisibility is the lcm.

The Finite Chain

Three sets on a Venn diagram, with the union shaded on the left and the intersection on the right. This is the whole content of the big operators at finite size.
A₁A₂A₃A₁A₂A₃⋃ Aᵢ⋂ Aᵢ
Three sets on a Venn diagram, frozen

Union shades seven regions of eight; intersection shades only the centre. The big operators as an ordinary chain.

With finitely many sets the notation unpacks into something already familiar:

i=13Ai=A1A2A3i=13Ai=A1A2A3\bigcup_{i=1}^{3} A_i = A_1 \cup A_2 \cup A_3 \qquad \bigcap_{i=1}^{3} A_i = A_1 \cap A_2 \cap A_3


Union takes every region lying inside at least one circle — seven of the eight. Intersection takes only the region inside all three, which is why it shrinks to the centre. The same \cup and \cap, written once instead of twice.

Nothing is gained here but brevity, and that is the point of including the case. The reason for having the notation is not the finite chain; it is that the same definition keeps working when the chain has no end, as every other family on this page shows.

A Venn diagram cannot show more than a small finite family, because it needs a separate region for each of the 2n2^n combinations of memberships. That is a limit of the picture, not of the operators.

What the Big Operators Mean

For a family indexed by a set II, the two operators are defined by membership conditions:

iIAi={x:xAi for some i}\bigcup_{i \in I} A_i = \{x : x \in A_i \text{ for some } i\}


iIAi={x:xAi for every i}\bigcap_{i \in I} A_i = \{x : x \in A_i \text{ for every } i\}


They do to a family of sets what \sum does to a family of numbers: take the whole indexed collection and return a single object.

The index set can be anything — the naturals, the reals, an arbitrary set with no order at all. Nothing in the definitions refers to a first index or a next one, which is why the notation survives uncountable families where a step-by-step reading would not.

With finitely many sets the operators are exactly the chained \cup and \cap you already use, and nothing is gained but brevity. The reason for having them is that they keep working when the chain has no end. For the two-set operations, see set operations.

The General Case

A family nested in neither direction: the sliding tails Ai=[i,)A_i = [i, \infty), where each set drops part of the last and adds nothing. Both bars are still moving.
-1012345A₁A₂A₃A₄
Sliding tails, frozen

Nested in neither direction: the blue bar grows and the amber bar shrinks on the same step.

This is the state the explanation panel falls back to when no sharper description applies — union and intersection both changing, neither settled, and the reading of the notation carrying the explanation instead of any special feature of the family.

That reading is the quantifier one. xiAix \in \bigcup_i A_i says xx lies in some AiA_i; xiAix \in \bigcap_i A_i says xx lies in every AiA_i. Existence and universality, and the monotonicity in opposite directions falls straight out of them.

The same reading extends past countable families. The index set can be anything at all — the operators only ever ask whether an element is in some member, or in every member, and neither question needs the indices to be ordered or countable.

With the families this tool ships, the panel always finds a sharper description first, so this fallback is not one you will normally meet. It is documented here because it is the definition every other case is a special instance of.

Union Is There Exists, Intersection Is For All

The fastest way to stop memorising these operators is to read them as quantifiers.

xiAix \in \bigcup_i A_i says xx lies in some AiA_i — an existence claim. xiAix \in \bigcap_i A_i says xx lies in every AiA_i — a universal claim. That is the whole difference, and everything else follows from it.

Monotonicity follows immediately. Adding another set gives existence one more chance to succeed, so the union can only grow; and it gives universality one more chance to fail, so the intersection can only shrink.

De Morgan's laws follow too, as the quantifier duality:

(iAi)c=iAic(iAi)c=iAic\left(\bigcup_i A_i\right)^c = \bigcap_i A_i^c \qquad \left(\bigcap_i A_i\right)^c = \bigcup_i A_i^c


Failing to be in any set is being outside all of them. The two-set version is the same statement with II of size two.

The quantifier reading also explains why the operators need no order on the index set. Neither question — is xx in some member, is xx in every member — refers to a first index or a next one, so nothing breaks when the family is indexed by the reals rather than by the naturals. For the quantifiers themselves, see propositional logic.

Monotone Families

A family is nested when each set contains the next, or each is contained in the next, and nesting is what makes the limits easy to predict.

Nested downward — each Ai+1AiA_{i+1} \subseteq A_i — and the union settles immediately at A1A_1, because no later set can contribute anything new. All the interest is in the intersection, and that is a stalled union.

Nested upward — each AiAi+1A_i \subseteq A_{i+1} — and the mirror image happens: the intersection settles at A1A_1 and the union grows, which is a stalled intersection. The growing-intervals family is the clean case, and it also shows bounded sets with an unbounded union.

Neither stall is a failure. A union takes each element once however many sets contain it, so a term already covered contributes nothing, and the operator is behaving exactly as defined.

Families that are not nested in either direction do both things at once — the union grows and the intersection shrinks on the same step, which is the general case.

Bounded Sets, Unbounded Union

The growing family Ai=[i,i]A_i = [-i, i]. Every member is a bounded interval of finite length, and the union bar has already outrun the visible window.
-6-4-20246A₁A₂A₃A₄A₅
[−i, i] at five terms, frozen

Every member is bounded and the blue bar has already outrun the window. The amber bar has not moved since A₁.

Over the infinite family the union is all of R\mathbb{R}, even though not one member of the family is unbounded. Every real number is caught eventually: whatever xx you pick, some index reaches it, and from that index onward it stays in.

That is exactly what union membership asks for — belonging to at least one AiA_i, not to all of them, and not to any particular one. No single set has to contain everything for the union to.

The intersection meanwhile is stuck at A1=[1,1]A_1 = [-1, 1]. The family is nested upward, so the first set is the smallest and nothing after it can remove anything — which is a stalled intersection.

The pair is a good check on intuition. A property every member has — boundedness — is not inherited by the union, while a property of the first member alone determines the intersection entirely.

When the Union Stops Growing

A downward-nested family: each set is contained in the one before. The union bar has not moved since the first term, because every later set was already inside it.
00.160.310.470.620.780.931.09A₁A₂A₃A₄A₅
A downward-nested family, frozen

The blue bar has not moved since the first term. Each set sits inside the one before, so nothing later can add to the union.

A term that adds nothing to the union is not a malfunction. A union takes each element once however many sets contain it, so a set contained in what came before contributes exactly nothing.

Whenever a family is nested downward, the union is settled at A1A_1 from the start and the entire story is in the intersection. Recognising the nesting early tells you which of the two bars is worth watching.

The mirror case is a family nested upward, where the intersection is the one that settles — see when the intersection stops shrinking.

One implementation note. With the families the tool ships, the explanation panel announces the family's own lesson before it reaches this observation, so this exact message is not one you will normally see. The situation it describes is on screen the whole time you are on a shrinking family — the union bar simply never moves.

When the Intersection Stops Shrinking

An upward-nested family: each set contains the one before. The intersection bar has been fixed at A1A_1 since the second term, because every later set contains everything that had survived.
-4-2024A₁A₂A₃A₄
An upward-nested family, frozen

The amber bar is fixed at A₁. Each set contains the one before, so nothing later can remove anything.

In an upward-nested family the first set is the smallest, so the intersection settles immediately and stays there. Nothing later can remove an element, because every later set contains the first.

The union is where the action is, and on the growing-intervals family it never stops — which is bounded sets with an unbounded union.

The two stalls together make the general rule concrete. Nesting in either direction freezes one operator and leaves the other to do all the work; a family nested in neither direction leaves both moving, which is the general case.

As with the union stall, the shipped families announce their own lesson first, so this message does not normally surface. The behaviour it names is visible regardless: on any upward-nested family the amber bar simply stops moving.

When the Limit Surprises You

The two most valuable families are the ones whose limits are not what a finite stage suggests.

Take Ai=(0,1/i]A_i = (0, 1/i]. Every set in the family is non-empty — each holds infinitely many points, at every index, without exception. The intersection over the whole infinite family is nevertheless empty, because for any candidate x>0x > 0 there is an index with 1/i<x1/i < x that excludes it. Non-empty at every stage, empty in the limit — and that is an empty intersection of non-empty sets.

Two sets can never demonstrate this. It needs infinitely many, which is precisely why the notation exists.

The condition that rules it out is compactness. For closed bounded intervals nested downward the intersection is guaranteed non-empty, which is exactly why the closed variant of the same family behaves differently — see when one bracket decides.

The lesson generalises past intervals: a property holding at every finite stage need not hold in the limit, and set operations over infinite families are where that first bites.

An Empty Intersection of Non-Empty Sets

The shrinking family Ai=(0,1/i]A_i = (0, 1/i] at six terms. Every member row is a genuine interval holding infinitely many points, and the intersection bar has shrunk to (0,1/6](0, 1/6] — small, but not empty.
00.160.310.470.620.780.931.09A₁A₂A₃A₄A₅A₆
(0, 1/i] at six terms, frozen

Every member is a genuine interval and the intersection is still non-empty at (0, 1/6]. Emptiness is a statement about the limit, not this picture.

The frozen frame shows a finite stage, and at any finite stage the intersection is non-empty. The limit is where the surprise lives: over the whole infinite family the intersection is \varnothing.

The argument takes one line. Pick any x>0x > 0. Choose an index ii with 1/i<x1/i < x. Then xAix \notin A_i, so xx is not in the intersection. Since xx was arbitrary and 00 was never a member of any AiA_i, nothing at all survives.

So every set in the family is non-empty, and the intersection of all of them is empty. There is no contradiction — an element of the intersection would have to sit in every AiA_i at once, and no number manages it.

Two sets can never show this, nor can any finite family, where the intersection of non-empty nested sets is always non-empty. It needs infinitely many, and it is the most useful thing indexed intersection has to teach. The condition that rules it out is discussed at when one bracket decides.

When One Bracket Decides the Answer

The same family with the left endpoint included: Ai=[0,1/i]A_i = [0, 1/i]. The picture is almost identical to the open version, and the limit is not.
00.160.310.470.620.780.931.09A₁A₂A₃A₄A₅A₆
[0, 1/i] at six terms, frozen

Almost the same picture as the open family. The filled left endpoint is the entire difference, and it saves exactly one point.

Here 00 belongs to every set in the family. It is in [0,1][0, 1], in [0,1/2][0, 1/2], in [0,1/100][0, 1/100], and in every set after them, so it survives every stage and the infinite intersection is {0}\{0\} rather than \varnothing.

Everything else is dropped exactly as before — any x>0x > 0 still fails once 1/i<x1/i < x. One point survives, and it survives because of one bracket.

The general principle behind the difference is compactness. A downward-nested family of closed bounded intervals always has a non-empty intersection; drop closedness and the guarantee goes with it. The open family is the standard counterexample, and this pair is the cleanest way to see that the hypothesis is doing real work.

Open versus closed is not a formality of notation. Here it is the difference between an empty set and a point — the contrast is drawn out at open versus closed.

Open Versus Closed

Ai=(0,1/i]A_i = (0, 1/i] and Ai=[0,1/i]A_i = [0, 1/i] differ by a single character, and their infinite intersections differ by a whole point.

In the open version nothing survives. Every positive xx is dropped once 1/i<x1/i < x, and 00 was never a member of any set, so the intersection is \varnothing.

In the closed version 00 belongs to every set in the family, so it survives every stage and the intersection is exactly {0}\{0\} — a singleton rather than nothing.

i=1(0,1i]=i=1[0,1i]={0}\bigcap_{i=1}^{\infty} \left(0, \tfrac{1}{i}\right] = \varnothing \qquad \bigcap_{i=1}^{\infty} \left[0, \tfrac{1}{i}\right] = \{0\}


This is worth doing by hand once, because it is the cleanest demonstration that open and closed are not a formality of notation. The bracket is carrying real information, and here it is the difference between an empty set and a point.

The unions are worth comparing too, and they are less dramatic: (0,1](0, 1] against [0,1][0, 1], differing by the same single point. Union is the forgiving operator — one set containing an element is enough to keep it — while intersection demands unanimity, which is why it is the one that notices a bracket. For the underlying vocabulary, see interval notation.