A bijection between finite sets requires equal cardinality. When , list the elements of and choose their distinct images in ways. Thus
The factorial convention includes the unique bijection from the empty set to itself.
The rule of product says that a sequence of choices, with possibilities at stage regardless of earlier choices, has possible outcomes. Applied to the Cartesian product of finite sets, it gives . Here independence means that the available choices do not restrict one another; no probability assumption is needed.
For finite sets, the inclusion-exclusion principle states
Thus single-set cardinalities are added, pairwise-intersection cardinalities subtracted, triple-intersection cardinalities added, and so on.
Permutation Created 2026-09-24 Updated 2026-10-13
A permutation of a set is a bijection : every element has exactly one image and every element appears exactly once as an image. For a finite set, a permutation can also be recorded as an ordering of all its elements, once a reference order has been chosen. For three distinct letters , the six orderings are
There are three choices for the first letter, two unused letters for the second, and one for the third. Every path in the tree gives one complete ordering, and every ordering has one such path, so the rule of product gives , a factorial.
Figure 1.
The full choice tree for the six permutations of three distinct letters: three first choices, two second choices, and one third choice
. Details.
Ordering versus mapping. Label the reference positions . An ordering tuple of these labels describes the function ; conversely, reading the images recovers the ordering. For example,
means , , , . Its ordered image list is , whereas its cycle decomposition of a permutation is : starting at , follow its successive images back to . Parentheses in the latter expression encode arrows around a permutation cycle, rather than an image list in reference order. [ref]
The two viewpoints answer different useful questions about the same object. An ordering tells us which object occupies each position; a bijection tells us where each label is sent and allows successive rearrangements through function composition. All permutations of labels form the symmetric group, whose subgroups are permutation groups. The counting viewpoint supplies possibilities, a factorial; the mapping viewpoint reveals how rearrangements combine.
Composition convention. Apply the rightmost permutation first:
For the displayed and the transposition , direct evaluation gives
For instance, , but . Thus function composition of permutations need not be commutative; the omitted labels in these permutation cycles are fixed points.
Permutation module Created 2026-10-14 Updated 2026-11-05
For a finite group action on a finite set , is the free -module with basis , with the group permuting that basis. For a transitive set it is . Disjoint unions of sets give direct sums of permutation modules.
Permutation wreath product Created 2026-10-06 Updated 2026-11-05
If a group acts on a finite set , it acts on the direct product of groups by permuting its factors. The resulting semidirect product is the permutation wreath product. For acting on two-point blocks and , it describes independent within-block swaps combined with a permutation of blocks, and has order . The action on is part of the definition; it need not be the regular action used in a regular wreath product.
Pigeonhole principle Created 2026-09-24 Updated 2026-10-18
Place objects into boxes, assigning each object to exactly one box. Here is a nonnegative integer and is a positive integer. The pigeonhole principle says that if , some box contains at least two objects. Equivalently, a function from an -element finite set to an -element finite set cannot be an injective function when . The boxes may stand for categories rather than physical containers. [ref]
For thirteen objects and twelve boxes, a box containing at least two is unavoidable. Thinking of thirteen people and their birth months gives the same conclusion: at least two share a birth month. Twelve people could occupy the twelve months one apiece, so thirteen is the smallest number that forces a shared month. The generalized pigeonhole principle quantifies how many objects must share a box when there are still more objects.
The useful surprise is that the pigeonhole principle proves existence without needing to locate the objects involved. Choosing a good assignment rule is often the creative step: equal labels can mean equal remainders, nearby points, or repeated states of an algorithm. Once the rule is chosen, a short count can force a relationship among a much larger collection of objects. The pigeonhole principle itself does not name the crowded box. When the objects and their assignments are explicitly available, a simple algorithm finds one: scan the objects, keep the first object seen in each box, and stop when a later object enters an occupied box. At most scanned objects are needed when .
A geometric example. Any five points in a square of side one contain two whose Euclidean distance is at most . Give each point Cartesian coordinates . Divide both ranges into the intervals and , making four cells. Thus belongs to the left half and to the right half; belongs to the lower half and to the upper half. This convention assigns every boundary point to exactly one cell.
The pigeonhole principle puts two of the five points in the same cell. Their differences in Cartesian coordinates have magnitude at most , so the Pythagorean theorem gives their Euclidean distance the bound
For the plotted points , , , and , the first two occupy the lower-left cell and have Euclidean distance . These Cartesian coordinates exhibit the forced pair; the argument applies to every placement of five points.
Figure 1.
The pigeonhole principle places two of five points in one of four cells of a square, bounding their Euclidean distance by
. Details.
An arithmetic example. Assign eight integers to their seven residue classes modulo the integer modulus . The pigeonhole principle gives two with the same residue class, so is an integer divisor of their difference. In , for example, and satisfy the integer congruence , and . Likewise, assigning fractional parts to short intervals gives the Dirichlet approximation theorem; its existing article explains the approximation bound.
Pisano period 2026-10-20
The Pisano period is the period of the Fibonacci number sequence in modular arithmetic modulo , with and . Consecutive residues evolve by the invertible update on a finite set, so the pair sequence returns to and is periodic from the start.
Pointwise periodic self-map Created 2026-10-07 Updated 2026-11-05
A pointwise periodic self-map is a self-map for which every satisfies for some positive integer depending on . Powers denote repeated function composition.
Such a self-map is a bijection. For surjectivity, is a preimage of . For injectivity, suppose and choose a common multiple of periods of and ; applying gives . Thus decomposes into disjoint finite permutation cycles.
There need not be one positive with on an infinite set. Take the disjoint union of one cycle of every positive length: any such would have to be divisible by every positive integer. On a finite set, in contrast, the least common multiple of the finitely many cycle lengths is a common period.
Polynomial evaluation map on a finite point set Created 2026-10-06 Updated 2026-11-05
Evaluation of bounded-degree multivariate polynomials on a finite set defines a linear map . Its rank is at most and its kernel is the space of polynomials vanishing on . The rank-nullity theorem gives for degree at most in variables. Dependent point constraints only enlarge the kernel.
A nonconvex primal problem can have a positive duality gap even when both optima are attained. Choose the finite set , the objective function values , , , and the equality optimization constraint . The only feasible point is , so .
With unrestricted equality Lagrange multiplier , the three possible optimization Lagrangian values and their minimum are
The concave Lagrange dual function has unique maximizer , with . Thus the duality gap is . At the optimal Lagrange multiplier, both inner minimizers and violate the equality; the dual optimum does not recover a primal optimizer.
Figure 1.
A feasible finite problem has a duality gap of 3 despite dual attainment
. Left: three allowed decisions shown as cost versus equality residual. For each indicated Lagrange multiplier, the line lies below every allowed cost. The dotted segment joining the two zero-cost points contains cost-residual pairs unavailable to any allowed decision. Right: maximizing gives 0, below the primal value 3. Details.
Why can no slope close the gap? Any affine function lying below the two endpoint costs obeys and . Adding gives , so its value at residual zero cannot reach the feasible cost . A convex combination of the endpoint cost-residual pairs with equal weights has residual zero and average cost zero. This averaged pair is unattainable: the actual decision costs . This geometry explains precisely what the dual bounds fail to distinguish. Nonconvexity does not force a positive duality gap: changing only to makes both optimal values zero on the same nonconvex domain.
Given a nonempty finite sequence of integers, return its maximum value. Represent the sequence by an array whose contents remain unchanged during execution. The precondition requires an integer length and exact, terminating integer comparisons and variable assignments. The postcondition for returned value is
Thus the output belongs to the finite set of entries and is at least every entry. The contract permits ties and negative integers; it asks for a value, not the position of a particular occurrence. There is no maximum of an empty set of integers, so empty input is deliberately outside this precondition. A service accepting empty inputs needs a different formal specification, such as a separate absent result.
This Python implementation makes the variable assignments explicit. Its index arithmetic models exact integer arithmetic; fixed-width implementations additionally need enough index range for :
def find_max(a):
    n = len(a)
    best = a[0]
    k = 1
    while k < n:
        if a[k] > best:
            best = a[k]
        k = k + 1
    return best
For the original input , initialization gives and . Reading keeps ; reading changes it to ; reading and keeps . At successive condition checks, the pairs are . The returned maximum is .
Figure 1.
Maximum values of successive prefixes in the original integer array
. Each row shows the processed prefix of immediately before checking . Blue cells have been processed; grey cells have not. The loop invariant records the maximum of the blue entries, while the loop variant counts remaining entries. These are exact constructed execution states. Details.
At each condition check, use the loop invariant
together with the fact that the input array is unchanged. The prefix is the first entries of the sequence, so its finite set of values is nonempty. The maximum need not be unique as an occurrence: the invariant concerns its value.
Initialization establishes : and , the maximum of a one-element set. For preservation, suppose and hold. Then is a valid array entry. Either the comparison replaces with the larger value , or it keeps a value at least . Before increasing , the resulting value is
The variable assignment restores the complete loop invariant. Between the two variable assignments, the old prefix formula may temporarily be false; the loop invariant is required at condition checks, not at every instruction.
At exit, , while gives . Hence , and gives exactly the required postcondition. This establishes partial correctness. The preservation argument is mathematical induction on the number of completed iterations, covering every permitted integer sequence, rather than just the pictured input.
For algorithm termination, the loop variant is a nonnegative integer whenever holds. If , then . Every body terminates under the precondition and changes to . Starting at , it reaches zero after exactly iterations. For , the initial value is already zero and the body is never entered. Together with partial correctness, this proves total correctness.
Starting at zero instead of fails on the original negative input : it returns zero, which is neither an entry nor the maximum . Keeping forever preserves the correct initial prefix claim but loops forever when ; a loop invariant alone does not ensure algorithm termination. Using >= instead of > still returns the same maximum value when entries tie, although a version returning a position would need an explicit tie rule.
The prime support of an integer is the finite set of its distinct prime factors. For example, , and is the empty set. Its cardinality is the prime omega function , and the product of its elements is the radical of an integer . These are two different ways to summarize the same finite set: a count and a product.
Ramsey theory Created 2026-09-24 Updated 2026-10-13
Ramsey theory studies configurations that every finite coloring of a sufficiently large structure must contain. Its striking message is that some order is unavoidable even when no organized construction was used. A basic example is the Ramsey number for triangles: color every edge of a complete graph on six vertices red or blue, in any way, and some triangle in a graph has all three edges the same color. Five vertices do not suffice.
The objects receiving colors matter. In the Ramsey number for triangles, colors belong to edges, which represent all unordered pairs of distinct vertices; the vertices themselves have no colors. In the finite Ramsey theorem, colors can instead belong to all -element subsets of a finite set. A monochromatic set or homogeneous set for a colouring expresses agreement among the appropriate colored objects.
Why is this useful? Ramsey theory provides existence guarantees in combinatorics that survive every possible assignment of a fixed finite number of colors. The Ramsey theorem turns this into a structural dichotomy: every sufficiently large graph contains a large clique or a large independent set. In arithmetic, the Van der Waerden theorem guarantees monochromatic arithmetic progressions. The beauty is the universal quantifier: an adversary can choose every color and still cannot prevent the promised configuration.
These guarantees concern precisely specified configurations under stated hypotheses. They do not justify selecting arbitrary patterns in empirical data after seeing the data, or attributing statistical significance to a selected pattern. A mathematical guarantee of some monochromatic configuration alone says nothing about the empirical meaning of that configuration.
The subject's name comes from F. P. Ramsey's [ref]. The [ref] records receipt on 28 November 1928 and presentation on 13 December 1928. Ramsey introduced the Ramsey theorem for r-sets and finite Ramsey theorem as tools for a problem in mathematical logic, while recognizing their independent interest in combinatorics. He also distinguished proving that a finite threshold exists from finding its smallest value, the quantitative question captured by a Ramsey number.
Let be a nonzero multivariate polynomial over a field , with total degree at most . Choose a nonempty finite set . For independent random variables , each with a uniform distribution on a finite set on , the Schwartz-Zippel lemma gives
Nonzeroness is essential; the zero polynomial always evaluates to zero. The total degree sums exponents within each monomial, rather than taking their maximum: has total degree five. The field need not be finite, but must be finite. The estimate reduces error only when .[ref]
The proof begins with the root bound for a polynomial. For several variables, write , with . The total degree of is at most . By induction, vanishes with probability at most . Otherwise the remaining univariate polynomial has at most polynomial roots. Adding the two contributions gives .[ref]
The algorithm samples a point, performs exact polynomial evaluation, rejects the identity if the value is nonzero, and otherwise accepts. The lemma bounds false acceptance for every fixed nonzero input. For the polynomial identity testing over a finite field example, has and , so its exact error attains the bound. Numerical near-zero values from floating-point arithmetic do not satisfy this exact algebraic contract. A polynomial-time algorithm claim additionally needs efficient sampling and evaluation, including the bit cost of representing and operating on field elements. Counting field operations alone does not establish that cost.
Real-valued function Created 2026-09-24 Updated 2026-11-05
A real-valued function takes each function input to a real number. Its codomain can be all of or a specified subset. Thus on the real line is a real-valued function and has image , whether the declared target is that interval or all of .
The inputs need not be real numbers: the cardinality of a finite set and the squared norm of a vector are also real-valued functions. The adjective describes outputs, while scalar-valued function allows outputs in other fields, notably the complex numbers.
If is an infinite Dedekind-finite set, then is another such set. Single-vertex rooted trees inject into it. A countable sequence of distinct rooted trees gives finite lists of labels by the depth-first traversal of a tree in the prescribed child order. By countable union of explicitly ordered finite lists without choice, an infinite union of labels contradicts Dedekind-finiteness. A finite union is equally impossible, since every rooted tree then lies in the finite set , by mathematical induction on using the recursive child rule. Thus no countably infinite subset of rooted trees exists.
Ridout theorem Created 2026-09-24 Updated 2026-11-05
Let be an algebraic irrational number, let be a finite set of primes, and let . There are only finitely many reduced fractions whose denominator is S-smooth number and which satisfy
This is the denominator-restricted consequence of the finite-place Schmidt subspace theorem.