To find the vertices of a solution set for a system of inequalities, graph each boundary line, identify the feasible region where all constraints overlap, then solve each pair of boundary equations simultaneously; every intersection point that satisfies all inequalities is a vertex. In two variables, the vertices are the corner points of the shaded feasible polygon, and each one sits at the crossing of two constraint lines.
This works because linear inequalities carve out convex regions. A convex polygon's extreme points all lie at boundary intersections, which is why those crossings carry the name vertices. The procedure is mechanical, but the judgment calls inside it decide whether your answer is right.
Why Vertices Sit at Boundary Intersections
A linear inequality like 3x + 2y ≤ 12 divides the plane into two half-planes separated by the line 3x + 2y = 12. Each added inequality slices the feasible region further, and intersecting half-planes always produce a convex set. Convexity is the key property here. Inside a convex region, any segment connecting two points stays inside the region, so no interior point can be an extreme point. Only boundary points can be extreme, and of those, only corners survive.
Here is the mechanism one level deeper. A vertex is where two boundary lines cross and the feasible region occupies less than a full half-plane around that crossing. At a genuine corner, the region opens into a wedge of angle less than 180 degrees. At a spurious crossing, the region opens into more than 180 degrees, or the crossing lies outside the region entirely. Testing a point slightly inside each candidate wedge settles the question quickly.
This geometric fact has an algebraic twin. When you solve two boundary equations simultaneously, you find where both constraints are tight at once. Corner points of the feasible region are exactly the points where two or more constraints are binding. A point where only one constraint is tight lies in the middle of an edge, not at a corner. That correspondence between tight constraints and corners is what makes the pairing method exhaustive rather than merely convenient.
The convexity also guarantees something practical. If the feasible region is bounded, it has finitely many vertices, at most one per pair of boundary lines. With n boundary lines, you check at most n(n−1)/2 pairings, which stays manageable even for textbook problems with six or seven constraints.
The Pairwise Intersection Procedure, Quantified
The standard algorithm runs in four stages, and each stage has a concrete checkpoint.
Stage one: convert every inequality to its boundary equation by swapping the inequality sign for an equals sign. A system with 5 inequalities yields 5 lines. Stage two: solve every pair of lines for their intersection. Five lines produce 10 pairs, so expect up to 10 candidate points. Stage three: substitute each candidate into all original inequalities. A candidate survives only if every inequality holds. Stage four: plot or order the surviving points around the region to confirm they form a closed polygon.
A worked mini-example makes the arithmetic concrete. Take x ≥ 0, y ≥ 0, x + y ≤ 4, and 2x + y ≤ 6. The pairs (0,0), (0,4), (4,0), (0,6), (3,0), and (2,2) are the crossings you compute. Testing each against all four inequalities eliminates (0,6), (3,0), and (4,0). The surviving vertices are (0,0), (2,2), and (0,4), and the region is a triangle. Note that only 3 of 6 candidate crossings survived, a 50 percent attrition rate that is typical when constraints are tight.
The table below contrasts the main methods students and practitioners use, with honest tradeoffs.
| Method | Best for | Vertex accuracy | Effort scaling | Main failure mode |
|---|---|---|---|---|
| Graphing by hand | 2 variables, 2–4 constraints | Approximate unless lines cross on grid points | Grows with shading complexity | Misreading a shaded overlap |
| Pairwise algebra | Any 2-variable system | Exact | Grows as n(n−1)/2 pairs | Forgetting to test candidates |
| Corner-point enumeration with software | 3+ variables, linear programming | Exact to solver tolerance | Fast even at dozens of constraints | Trusting a stale or mis-typed matrix |
| Substitution after isolating one variable | Systems with an obvious easy variable | Exact | Moderate | Sign errors in substitution |
| Linear programming solver (simplex) | Large real-world models | Exact at basic feasible solutions | Polynomial in practice | Degenerate vertices reported oddly |
The counterintuitive detail sits in the last column. Solvers sometimes return degenerate vertices where three or more boundary lines meet at one point. Hand methods often miss that a single crossing can be the meeting place of three constraints, which inflates your candidate list with duplicate points. Counting distinct vertices, not distinct pairs, is the professional habit.
Degenerate Cases, Unbounded Regions, and Red Flags
Not every system has a tidy polygon. Three edge cases account for most wrong answers.
An unbounded feasible region has vertices but no closing edges. The system x ≥ 0, y ≥ 0, x + y ≥ 3 produces a region extending infinitely, with vertices at (0,3) and (3,0) and no others. Textbooks sometimes call such a region a polyhedron with a missing face, and the vertex count drops because some pairings fall outside the feasible side.
Parallel boundary lines never intersect, so their pair contributes no candidate. Two constraints like x + y ≤ 4 and x + y ≤ 7 share a direction, and the tighter one makes the looser one redundant. Redundancy is harmless but wastes pairings, and it can tempt you to report a vertex that lies on the discarded line.
Infeasible systems have no solution set at all, so no vertices exist. If every candidate fails the inequality test, the system is inconsistent, and the correct answer is that the feasible region is empty.
Watch for these specific red flags while you work:
A candidate point that satisfies all but one inequality, usually because a sign flipped during solving. Boundary lines drawn with wrong inequality direction, which shades the complement of the intended region. A region that looks closed on paper but extends past the visible graphing window. Vertices that coincide because three constraints intersect at one point, which inflates the count. Substituting candidate points back into the boundary equations instead of the original inequalities.
Each red flag maps to one arithmetic or interpretive slip, and checking them in order catches nearly every error before it reaches your final answer.
Common Misconceptions About Vertices
The most persistent misconception is that the origin is always a vertex or never one. Neither is true. Whether (0,0) belongs depends entirely on whether the constraints admit nonnegative values, and many real problems explicitly exclude it.
A second misconception treats every intersection of two boundary lines as a vertex. In the four-constraint example above, three of the six crossings were not vertices. The test against all inequalities is not optional bookkeeping; it is the definition of feasible, and feasible is the definition of vertex membership.
A third mistake confuses the vertex of a quadratic, meaning its turning point, with the vertex of a polygonal region. The word is shared, the objects are unrelated. When a problem asks for vertices of an inequality system, it wants corner points, full stop.
A fourth error assumes the region must be bounded. Unbounded regions have legitimate vertices, and optimization problems on them can still have finite answers. A fifth error appears in three or more variables. The feasible region becomes a polytope, and vertices are still points where at least as many constraints are tight as there are variables. Counting pairings no longer suffices, and the algebraic check becomes the primary tool.
Here is the plain-language version. A vertex is a corner where the region actually exists, not merely a spot where two lines cross somewhere on the page.
Vertices in Higher Dimensions and Optimization Context
The same logic scales to three variables, where boundary equations become planes and their intersections become lines or points, and to n variables, where each boundary is a hyperplane. In three variables, a vertex is the meeting point of at least three planes, and the algebra becomes a 3×3 linear system per candidate. For four or more variables, hand enumeration is impractical, and the simplex method takes over.
Simplex exploits exactly the theorem this article has been building. For a linear objective function, the optimum over a convex feasible region occurs at a vertex, or along an entire edge between two vertices in the degenerate case. That fact, established by the fundamental theorem of linear programming, is why vertex enumeration answers optimization questions rather than just diagramming them. If a linear program has an optimal solution, at least one optimal solution is a vertex.
Quantitatively, the scaling matters. Two variables with 6 constraints gives 15 candidate pairings. Three variables with 6 constraints requires solving 3×3 systems for each triple, which is 20 candidates. Four variables with 8 constraints yields 70 candidate sets. The counts climb steeply, which explains why production solvers examine basic feasible solutions smartly rather than enumerating everything.
One professional caveat deserves emphasis. Rounded input numbers can place a true vertex just barely outside or inside a region, and hand checking at three decimal places can misclassify it. When a problem states constraints in integers, integer vertices are exact, and you should preserve them as fractions until the final step.
Practical Steps and Thresholds
Use this sequence whenever you need vertices of a feasible region.
Rewrite all constraints in slope-intercept or standard form and mark which side is feasible, using a test point such as the origin when it is not on the boundary. Count the distinct boundary lines. If the count exceeds 7 in two variables, consider software to reduce arithmetic risk. Solve each nonparallel pair. Keep exact fractions; convert to decimals only at the end. Test every candidate in all original inequalities at full precision. A candidate passes only if all hold, with zero exceptions. List surviving points, remove duplicates caused by multi-line crossings, and order them around the boundary to confirm closure. If optimizing, evaluate the objective at each surviving vertex and compare, rather than guessing a visual maximum.
For a quick sanity check, count vertices against constraints. In a nondegenerate bounded two-variable problem with plenty of slack, the vertex count equals the constraint count once redundant lines are removed, a reflection of the edge-vertex relationship in convex polygons.
Limits of the Method
The pairwise approach answers exactly one question: where are the corners. It does not tell you the region's area, its shape class beyond the vertex list, or whether the region is connected. Linear systems in two variables always give connected regions, so connectivity is guaranteed, but area and interior structure need separate work.
The method also assumes lines, not curves. A system containing y ≥ x² has a curved boundary, and the feasible region can have a single smooth extreme point that no line pairing will find. Nonlinear constraints require calculus or numerical solvers, and the pairwise procedure simply does not apply.
Finally, the method is exact only when the arithmetic is. Spreadsheet and calculator rounding can move a vertex classification at the margins, which is why professional practice keeps symbolic fractions and tests at high precision. The geometry is exact, and the arithmetic should imitate it. For classroom and routine technical work, the pairwise procedure with full testing is reliable, and software is the appropriate check whenever the constraint count grows or the inputs carry decimals.