Convert between set-builder and roster notation, perform union/intersection/difference, test membership, and explore set theory interactively.
Set theory is the foundation of modern mathematics — every mathematical structure from numbers to functions to topological spaces is ultimately built on sets. Two fundamental ways to describe a set are roster notation (listing elements: {1, 2, 3}) and set-builder notation (defining by a rule: {x | x ∈ ℤ, 0 < x ≤ 3}). Converting between them, and performing operations like union, intersection, and difference, are core skills in discrete math, logic, and computer science.
This tool provides three modes: (1) convert set-builder rules to explicit rosters by evaluating the rule over a specified domain, (2) perform classic set operations (union A ∪ B, intersection A ∩ B, difference A \ B, symmetric difference A △ B) with visual breakdown, and (3) test element membership. Presets cover common cases — even numbers, primes, perfect squares — and you can write any JavaScript-style rule for custom sets.
Whether you are studying for a discrete mathematics exam, teaching set theory to beginners, or just need to quickly compute the intersection of two data sets, this tool makes set operations visual and immediate.
Set theory notation can be confusing for students encountering it for the first time. Converting between representations, performing operations, and testing membership by hand is tedious and error-prone. This tool automates the mechanical work so you can focus on understanding the concepts.
It is also useful for quick data-set comparisons: paste two comma-separated lists, and instantly see what's shared, what's unique to each, and the full combined set.
A ∪ B = {x | x ∈ A or x ∈ B}. A ∩ B = {x | x ∈ A and x ∈ B}. A \ B = {x | x ∈ A and x ∉ B}. A △ B = (A \ B) ∪ (B \ A). |A ∪ B| = |A| + |B| − |A ∩ B|.
Result: Union = {1,2,3,4,5,6,7}, Intersection = {3,4,5}, Difference = {1,2}
Union combines all elements. Intersection finds common elements. A\B removes B's elements from A.
Georg Cantor founded set theory in the 1870s–1880s. His work on infinite sets — showing that the reals are uncountable (the diagonal argument) while the rationals are countable — is one of the most profound results in mathematics. Modern set theory (ZFC: Zermelo–Fraenkel with Choice) provides the axiomatic foundation for virtually all of mathematics. Even numbers, functions, and relations are defined as sets: an ordered pair (a,b) is {{a},{a,b}}, a function is a set of ordered pairs satisfying the vertical line test, and so on.
Roster notation is concrete: {2, 4, 6, 8, 10}. Set-builder notation is abstract: {x ∈ ℤ | x is even, 0 < x ≤ 10}. Interval notation works for subsets of ℝ: (0, 10] is all reals between 0 (exclusive) and 10 (inclusive). Each notation has strengths — rosters are unambiguous for finite sets, set-builder works for infinite sets, and intervals are compact for contiguous real ranges.
Sets are ubiquitous in CS. SQL's UNION, INTERSECT, and EXCEPT mirror ∪, ∩, and \. Python's set type provides O(1) membership testing. In formal language theory, a language is a set of strings over an alphabet. Type systems use set-theoretic operations (union types, intersection types). And complexity classes like P, NP, and PSPACE are sets of decision problems. Understanding set theory is not optional — it is the language of computer science.
A way to define a set by a rule: {x | condition(x)} means "the set of all x satisfying the condition." For example, {x | x ∈ ℤ, x > 0} is the positive integers.
Listing all elements explicitly: {1, 2, 3, 4, 5}. This only works for finite (or small enough) sets — you cannot roster-list ℝ or even ℤ.
A △ B contains elements in A or B but not both: the XOR of sets. It equals (A \ B) ∪ (B \ A).
Yes — isPrime(x) checks primality, and you can use any JavaScript math: Math.sqrt(x), x ** 2, x % 3 === 0, etc.
To keep computation fast. For infinite sets (like all even numbers), roster notation necessarily truncates. The tool finds up to 100 matching elements.
Databases (SQL uses set operations), formal languages (alphabets and string sets), networking (IP address spaces), type systems, and algorithm analysis all rely on set theory. Use this as a practical reminder before finalizing the result.