# Union and Intersection of intervals

I have two sets $A = \{1 \leq x \leq 5\}$ and $B = \{5 \leq x \leq 8\}$. Now I want to find the Union and Intersection of $A$ and $B$.

I tried Union[A, B], I got {1 <= x <= 5, 5 <= x <= 8} and for Intersection[A, B], I got {}. The correct answer for $A \cup B$ is [1, 8] and $A \cap B$ is {5}. How do I tell Mathematica to do that?

And if $A = \{1 < x < 5\}$ and $B = \{x > 5\}$. Now I want to find the Union and Intersection of $A$ and $B$. How do I tell Mathematica to do that?

• You will want to use Interval. Oct 1, 2012 at 1:13

a = Interval[{1, 5}];
b = Interval[{5, 8}];
IntervalUnion[a, b]


Interval[{1, 8}]

IntervalIntersection[a, b]


Interval[{5, 5}]

• Interval[{1,5},{5,8}] also gives IntervalUnion[a,b] (+1)
– kglr
Oct 1, 2012 at 1:28
• Nice. I wasn't aware of that. Oct 1, 2012 at 1:30
• If A = {1 < x < 5} and B = {x > 1}. How must I do? Oct 1, 2012 at 1:45
• @minthao: B = Interval[{1, ∞}]. Oct 1, 2012 at 1:52
• @minthao. Mathematica seems to work only with closed intervals. Interval[{1,5] includes the numbers 1 and 5, and therefore does not match your original inequality, 1<x<5. I don't know whether there is a way to not include the end points. Perhaps this is a question worth asking. Oct 1, 2012 at 2:31

Open/closed intervals compatible with regions:

OpenInterval[a_, b_] := ImplicitRegion[a < x && x < b, {x}];
ClosedInterval[a_, b_] := ImplicitRegion[a <= x && x <= b, {x}];


Semi-open intervals and infinity intervals are similar.

Need some typing to transform region to an expression:

• open intervals:
RegionMember[RegionUnion[OpenInterval[0, 5], OpenInterval[5, 8]], {x}] // FullSimplify

gives:
x \[Element] Reals && (0 < x < 5 || 5 < x < 8)

• closed intervals:
RegionMember[RegionUnion[ClosedInterval[0, 5], ClosedInterval[5, 8]], {x}] // FullSimplify

gives:
0 <= x <= 8

• +1. That approach works in higher dimensions. Apr 28, 2020 at 18:43
• And also works for Integers instead of Reals. Jan 12 at 20:15