Let be a nilpotent thickening defined by . If is an affine scheme, its closed subscheme is an affine scheme. Conversely, suppose is an affine scheme. The underlying topological spaces are identical, so is a quasi-compact scheme. For any quasi-coherent sheaf , each subquotient is naturally a quasi-coherent sheaf on . By sheaf cohomology under a closed inclusion and vanishing of quasi-coherent cohomology on an affine scheme, its first sheaf cohomology on vanishes. The long exact sequence in sheaf cohomology and descending mathematical induction through this finite filtration prove . The Serre criterion for affineness now makes an affine scheme.
Arc-consistency closure 2026-10-25
The greatest componentwise subdomains of given finite initial constraint domains satisfying every directed arc consistency condition, allowing empty subdomains. Repeated sound revisions to a fixed point produce this same closure regardless of revision order, provided every affected arc is eventually reconsidered.
For the proof, fix subdomains of the initial satisfying arc consistency. If all current contain , every value in has a support in , so revising preserves . Mathematical induction shows that every revision preserves every such family . At termination the current domains themselves satisfy arc consistency, so they are the greatest such family. Algorithms that stop immediately on the first empty constraint domain need not finish computing the closure, but correctly establish that no complete solution exists.
Keep an array unchanged, and sum entries in the half-open integer interval of array indices . The precondition requires integers and exact, terminating integer addition. An empty range returns the empty sum zero; a one-entry range returns that entry. Every longer range splits at its middle array index:
S(A, l, r):
    require integer indices with 0 <= l <= r <= length(A)
    size = r - l
    if size == 0:
        return 0
    if size == 1:
        return A[l]
    middle = l + floor(size / 2)
    left_sum = S(A, l, middle)
    right_sum = S(A, middle, r)
    return left_sum + right_sum
For the original array , call . The left half returns , the right half returns , and the original invocation returns . The right half's left endpoint increases from zero to two: what decreases is range length , not every argument. Negative entries affect the answer but do not affect algorithm termination.
Figure 1.
Seven calls compute an array sum with only three frames active at once
. Original binary tree of invocations for , with integer intervals labeling ranges and upward arrows labeling returned sums. Small numbers give the order in which invocations begin when the left child runs first. The highlighted graph path contains the three active stack frames while the entry is read; the result from the completed left sibling is retained by its parent. Details.
For range length , the children have lengths and , both positive and strictly less than . The floor function chooses the split; the ceiling function gives the other length. Algorithm termination follows by this natural number measure. For algorithm correctness, apply mathematical induction on : the two base cases return the specified sum; for a larger range, the two disjoint child ranges cover every original array index exactly once, so addition of their correct sums gives the required sum.
For , the invocation tree is a full binary tree with leaves, one per array entry. If is its number of nonleaf vertices, counting edges gives , so . Thus the total invocation count is , and there are combining additions. Here gives seven calls and three combining additions. For , there is one call and no combining addition; for , there is also one call and no combining addition, but no entry leaf, so the formula does not apply.
The call stack holds the active branch, rather than the entire invocation tree. Execute the left child completely before the right child, retaining the left result in the parent stack frame. The maximum number of active stack frames is for , and one for . Balanced splitting therefore needs frames for , compared with the frames of the factorial recursive process. Assuming constant-cost array access, index operations and addition, its time complexity is and its auxiliary space complexity is machine words for , excluding the stored input. Pass the same array with different endpoints, rather than copying slices. These bounds require all stored indices and partial sums to fit in a constant number of machine words; exact unbounded integer addition and storage require a separate bit cost analysis.
Among families of a given size in the Boolean hypercube, a binary initial segment maximizes the number of contained two-dimensional cube faces. Under section compression in binary order, faces crossing the selected coordinate correspond to internal edges in the intersection of its two sections. The edge extremal theorem and mathematical induction control that contribution and the faces within the sections.
Binary search tree Created 2026-10-13 Updated 2026-10-14
A binary search tree stores key-value entries in a binary tree, with distinct keys drawn from a total order. At every vertex, all keys in its left subtree must be smaller than its own key, and all keys in its right subtree must be larger. Thus the entries represent a partial function from keys to values: a key has at most one associated value and may be absent. [ref]
Lookup starts at the root of a tree. Compare the target with the current key: equality returns its value, a smaller target continues into the left subtree, and a larger target continues into the right subtree. Reaching an empty subtree reports absence. The ordering rule justifies discarding the other subtree at every step; this is the algorithm correctness argument for lookup. It applies to the entire subtree, even if that subtree contains many vertices. [ref]
In the seven-key example, search for . At , the comparison selects the right subtree; at , selects the left subtree; at , equality ends the search. The visited keys are , three key comparisons. The right-child chain stores exactly the same keys and satisfies the same binary search tree rule, but lookup of visits , five comparisons. Searching for absent key visits in the first binary search tree and all seven keys in the chain before reaching an empty right subtree.
Figure 1.
Lookup of key in two binary search trees containing the same seven keys
. Orange highlights visited keys and edges; green marks the match. The balanced shape has height of a binary tree and requires three visits, while the chain has height of a binary tree and requires five visits for this target. Details.
For a nonempty binary search tree of height of a binary tree , lookup inspects at most vertices. Under constant-cost key comparisons and child-reference access, its time complexity is in Big O notation, usually written for . With entries, , giving worst-case lookup. If the shape is kept balanced so that , lookup takes for . The empty and one-entry cases take constant work. The worst-case linear bound also appears in Sedgewick and Wayne's ordinary, unbalanced implementation. [ref]
In a shape with every level full, there are vertices, a geometric series. This explains how a small height of a binary tree can accommodate many entries. The binary search tree ordering rule alone does not guarantee this shape or logarithmic time complexity. Breadth-first search also gains no logarithmic key-lookup guarantee merely from having a binary tree: in the displayed balanced example, its left-to-right level order is , so it inspects six keys before finding , and an absent target requires all seven. Directed lookup uses the total order to choose one branch.
The ordering requirement includes every ancestor on the graph path from the root of a tree. Consider the smaller binary tree with root key , left child , right child , and right child under . Key must satisfy both , from its immediate parent in a rooted tree, and , from its position in the root's left subtree. Replacing by preserves all immediate parent-child comparisons, including , but violates . Lookup for would incorrectly go from to and then to an empty left subtree, overlooking the stored key.
Figure 2.
The binary search tree ordering rule constrains an entire subtree
. The valid example has . The invalid example passes immediate parent-child comparisons, but key lies in the left subtree of key and violates its inherited upper bound. Details.
An inorder traversal visits a left subtree, then its own vertex, then a right subtree. On the valid small example its output is ; on the invalid example it is , exposing the descent from to . Both seven-key binary search trees yield . The theorem is that an inorder traversal of a finite binary search tree with distinct keys lists every key once in strictly increasing total order. For a short proof outline, use mathematical induction on the number of vertices: each smaller subtree produces its own sorted list, and the full ordering rule places every left key before the current key and every right key after it. Concatenating these three parts preserves strict order. Sedgewick and Wayne's keys method uses this left-current-right order. [ref]
This combination is useful and attractive: one data structure supports directed lookup and ordered enumeration. An inorder traversal costs time complexity for entries, since it visits every vertex; balance accelerates lookup but cannot eliminate the work of outputting all keys.
// Destination: computer-science.bigb
If the members of a possibly infinite set family have size at most , there is a finite subset of size at most with exactly the same hitting sets of size at most . Use mathematical induction on . For nonempty , choose . When this one member suffices. Otherwise, for each , retain an inductive kernel for at parameter , and take their set union together with . Its size is at most . A hitting set for this kernel meets at some ; meets the kernel for , hence all of , while meets the other members of . If is empty no hitting set exists, and if is empty its kernel is empty. Only finite branching is used, so no finiteness assumption on is needed.
Brauer progression theorem Created 2026-10-05 Updated 2026-10-14
For positive integers , some ensures that every -color finite coloring of contains a monochromatic set
It follows from the Van der Waerden theorem by mathematical induction on the number of colors. If is a bound for colors, take a long one-color arithmetic progression of length and step . Either one of has its color, giving the result immediately, or these multiples use only colors. Pull back their finite coloring to and use mathematical induction, then multiply the resulting configuration by . Enlarge the ambient finite integer interval to include all these multiples. The cases and are immediate. The parameter makes this useful for positive monochromatic solutions of a partition regular equation with arbitrary integer coefficients.
Breadth-first search Created 2026-09-24 Updated 2026-10-14
Breadth-first search is a graph search that explores successive layers of graph distance from a starting vertex . Here the graph is an undirected graph on a finite set of vertices, and distance counts edges, with no differing edge weights. Mark as discovered, assign , and place it in a FIFO queue. Repeatedly remove the front vertex and scan its adjacency list. Whenever a graph neighbour is still undiscovered, mark it immediately, record as its parent in a rooted tree in the discovery tree, assign , and enqueue at the rear. Marking on insertion ensures that another edge cannot enqueue the same vertex again. [ref]
Use the same undirected graph as depth-first search, with vertex set and edges
where denotes the unordered pair . Start at and scan graph neighbours in lexicographic order of their one-letter labels. The diagram's generator computes the following layers and the parent in a rooted tree assigned to each discovered vertex; the source is the root of a tree and has no parent in a rooted tree.
Graph distance from Vertices in discovery orderParent in a rooted tree in the same order
none
Figure 1.
Breadth-first search: graph distance layers and two ordered FIFO queue snapshots
. Solid edges record first discovery; dashed edges are still present in the original graph. The FIFO queue contains after processing and after processing , with its front on the left. Colors encode graph distance in the graph without edge weights. Details.
The discovery and removal orders both happen to be . After processing , the FIFO queue is : must be processed before the newer . Processing then skips the already discovered and enqueues , giving . Processing adds nothing. Processing discovers , giving ; later sees already marked and leaves its parent in a rooted tree unchanged. The discovery edges are , forming a rooted tree on all seven vertices even though the original graph contains graph cycles. The discovery tree contains six edges; it need not contain every examined edge.
First arrival is shortest because the FIFO queue keeps assigned distances in nondecreasing order, with entries from at most two consecutive layers. While processing distance , newly discovered vertices receive distance and join the rear. If an undiscovered vertex had a shorter graph path, its preceding vertex on that graph path would lie in an earlier layer and would already have discovered it. Thus is the minimum number of edges from to . This is a mathematical induction over the layers, not an assumption about the drawing. Following the parent in a rooted tree backwards at each step gives ; reverse that sequence to obtain the three-edge graph path . is another shortest graph path, but the specified graph neighbour order makes discover first. Changing that order can change the parent in a rooted tree without changing graph distances. [ref]
The shortest-route guarantee concerns the shortest path problem measured by edge count. It also minimizes total cost when every edge has the same positive cost. With unequal edge weights, first discovery need not minimize total cost; nonnegative costs can instead be handled by the Dijkstra algorithm. Breadth-first search is useful for minimum-hop routes and for finding all vertices within a specified graph distance. Its FIFO queue finishes an older layer before the next one, whereas depth-first search uses a call stack or explicit LIFO stack to pursue one branch immediately.
With adjacency lists and constant-cost discovery checks, together with constant worst-case or amortized analysis cost for FIFO queue insertion and removal, the time complexity is in Big O notation. Every reached vertex is enqueued and removed once, each incident edge is scanned at most twice in an undirected graph, and initializing all marks and distances takes . The FIFO queue contains at most vertices; the example's maximum is three. Discovery marks, distances and the recorded parent in a rooted tree for each nonroot vertex also give auxiliary space complexity, excluding the graph. An array that shifts every entry on front removal can lose the linear time complexity; the FIFO queue abstraction alone does not make removal constant-cost. Ordering the adjacency lists is a separate preprocessing cost.
A single start reaches only its connected component of a graph. Unreached vertices retain distance and have no recorded parent in a rooted tree. Restarting at each still-undiscovered vertex, while preserving all discovery marks, produces a forest covering the graph; each new root of a tree gets distance zero, so these distances refer to that root of a tree, not to the original .
For a cycle graph of length , the chromatic polynomial is . The graph triangle gives the base case . For , the deletion-contraction recurrence for the chromatic polynomial gives , since deleting an edge leaves a path graph and contracting it gives the shorter cycle graph. Substitution proves the formula by mathematical induction.
For connected components of a graph of a finite graph , choices of proper vertex colourings on different connected components of a graph are independent. The multiplication principle gives . Each nonempty factor is divisible by , hence divides the chromatic polynomial. The vanishing constant term follows by mathematical induction from the deletion-contraction recurrence for the chromatic polynomial, starting with for a nonempty graph without edges.
For positive , let bound the interval needed to force a monochromatic length- arithmetic progression in every finite colouring using at most colours. The colour-focusing proof of Van der Waerden theorem inducts on , simultaneously for every number of colours, and then creates progressions of distinct colours with a common next point.
Assume exists for every . For fixed , construct such that a finite colouring of using at most colours contains either a monochromatic length- arithmetic progression, or length- arithmetic progressions of pairwise distinct colours of the form , , with a common focus . Take : a length- arithmetic progression in its first half has its next point inside the whole interval. For , give a singleton step .
Given , put and . Regard the first length- blocks as coloured by their full colour profiles. Some block indices share a profile. If there is no monochromatic length- arithmetic progression, this profile supplies focused progressions with focus position , steps , and distinct colours . The colour of position differs from every . In the later block , put . For each , the points have colour : they lie in the selected block at position . The points have colour . Thus distinct colours focus at . For , its own colour completes one of the focused progressions. The base case completes the mathematical induction.
Suppose , , and . Starting at , the Newton root-finding iteration remains below and increases strictly to it. To prove this, assume . Strict increase of gives , so the Newton step is positive. Taylor's theorem between and gives, with ,
Its coefficient is negative and at least , proving both the stated error bound and . Mathematical induction establishes the invariant. The increasing bounded iterates have a limit ; continuity in forces , hence . The error bound supplies local quadratic convergence.
For increasing events under a finite Bernoulli distribution product measure, first assume all parameters are at most . Write and for last-coordinate sections. The zero-section of their disjoint occurrence of increasing events is ; its one-section is . The intersection in this union contains . If , and the last parameter is , mathematical induction bounds disjoint occurrence by . The product of the two marginal probabilities exceeds this bound by . For a larger parameter , replace that coordinate by the logical disjunction of independent bits with parameter . Disjoint original witnesses lift to disjoint bit witnesses. Apply the small-parameter inequality and then pass to degenerate parameters by continuity.
Deterministic finite automaton Created 2026-09-24 Updated 2026-10-14
A deterministic finite automaton has exactly one automaton transition for every automaton state and input symbol. Formally, a DFA is a tuple : is a nonempty finite set of automaton states, a finite alphabet, a function, the initial automaton state, and the accepting automaton states. Its unique path on a word accepts if it ends in after consuming the entire input. Visiting earlier does not suffice.
For a concrete binary divisibility automaton, recognize the words whose values in the binary numeral system are divisible by three. Choose , , , and . Each automaton state names the congruence class of the integer read so far. Appending a binary digit changes its value to , so the automaton transition is
The modular arithmetic therefore needs only three automaton states, whatever the input length. The full function is , , , , , and .
Figure 1.
A three-state DFA for binary digits representing integers divisible by three, with accepted and rejected traces
. Details.
For , the successive automaton states are , so the word is accepted. For , they are , so it is rejected. Leading zeros are allowed: they leave the initial automaton state unchanged. We explicitly assign value zero to the empty word, which is accepted because the initial automaton state is accepting. This is a convention for a formal language, rather than a claim that ordinary written numerals include a blank numeral.
The generator checks every word of up to eight binary digits, comparing the final automaton state with the integer value modulo three. Each length includes all words, preserving leading zeros as distinct inputs:
Length Words checkedAccepted by the DFAValues divisible by three
0111
1211
2422
3833
41666
5321111
6642222
71284343
82568686
All 511 checks agree. They are useful for catching a reversed arrow or mistaken label, but the reason the DFA works at every length is its invariant: after reading any word of value , its automaton state is . The update preserves that statement by mathematical induction. Through the extended transition function of a deterministic finite automaton, this becomes .
A directed system of first-order structures and coherent elementary embeddings has a direct limit into which every member embeds elementarily. Represent an element by a pair consisting of a stage and an element at that stage; identify two representatives when their images agree at a common later stage. Interpret functions and relations at a common stage. Mathematical induction on first-order formulas proves elementarity: for an existential first-order formula true at the limit, its witness and parameters occur at a common stage, and elementarity pulls truth back to the stage containing the original parameters. This generalizes the elementary chain theorem beyond linearly ordered diagrams.
Display for lexical scope 2026-10-31
A table of pointers supporting direct access to active lexical environments without traversing a static chain. A conventional display is indexed by lexical level; a procedure-indexed alternative keeps the newest activation of each procedure and saves and restores the previous table entry on entry and return.
For direct calls under lexical scope, the executing activation's static chain contains the newest surviving activations of its enclosing procedures. This follows by mathematical induction on calls and returns: a direct call inherits a suffix of the caller's chain, and a return restores the previous chain after intervening activations finish. With procedural parameters, a passed programming closure can instead refer to an older still-active enclosing activation, so simply consulting the newest-activation table is insufficient.
Extend a finite coloring of the positive integers to a point of a two-sided full shift. A minimal subsystem of its forward orbit closure, together with the proximal-minimal existence theorem, supplies a minimal point proximal to . Put . If all sums in , the augmented finite-sums set, have color in , their coordinate constraints define a cylinder set containing . The joint return lemma for a proximal minimal pair chooses a new positive term so that all new sums have color in both and . Mathematical induction gives an infinite monochromatic finite-sums set. The new term can exceed the sum of all previous terms, giving unique representations. The proximal-minimal existence theorem is a substantive input to this proof.
Use the Malthusian delay differential equation with time measured in units of its constant delay:
Here is a real constant. On the first interval , hence . On the next interval the delayed input is , already known, so the method of steps for a delay differential equation gives
Each polynomial integrates the preceding interval's delayed polynomial, and its integration constant ensures continuity. At , the step endpoints are , , and . At , the value is , but its derivative is the earlier value . This is the geometric distinction from the ordinary differential equation , whose derivative would equal its current value.
Figure 1.
A prescribed past becomes successive exact polynomial steps
. The history function of a delay differential equation is and . Each colored interval supplies the delayed input for the next one; the lower panel gives that next interval's derivative. The marked tangent line at has slope . All curves are evaluated from exact polynomials. Details.
More generally, for any integer ,
At an integer join the newly introduced term vanishes. Inside a step, differentiation lowers each power by one and gives exactly times the preceding step evaluated at . Together with , this verifies the formula by mathematical induction; it is an exact construction, not a truncated power series.
The history and the new equation need not prescribe matching derivatives at the starting time; their mismatch can reappear later in higher derivatives.[ref] In this example, and . For , is continuous at but jumps there by ; at , the first jump is in , of size . The solution of a differential equation is therefore continuously differentiable for positive time, although it need not have continuous derivatives of every order at step boundaries.
Factorial estimate for Picard iteration Created 2026-10-25 Updated 2026-10-31
For Picard iteration , , assume and a Lipschitz constant on a rectangle containing every iterate. The first difference is at most . Integrating the preceding bound multiplied by proves the displayed estimate by mathematical induction. Its uniform bounds sum to a convergent exponential series for every finite , so the Weierstrass M-test gives uniform convergence without requiring .
For two arbitrary initial functions in a function set preserved by the Picard iteration operator , the same induction gives
Thus some iterate is a contraction mapping on any fixed finite interval for which every iterate stays in that set. The iterated contraction argument gives a unique fixed point of on a nonempty complete metric space, without requiring . For a rectangle with field bound and vertical radius , supplies the required self-mapping property.
For a natural number , the factorial satisfies and for . The following description includes the zero base case explicitly; a negative or nonintegral input is outside its precondition:
F(n):
    require n is an integer and n >= 0
    if n == 0:
        return 1
    child_result = F(n - 1)
    return n * child_result
For , the arguments on descent are . Each positive-argument invocation postpones one multiplication until its recursive call returns. At the deepest point, the call stack has five stack frames: four suspended callers and the active zero base case. The invocation at zero returns to the invocation at one, rather than finishing the entire computation. Returns then give
A stack frame retains the caller's argument and where to resume. When the invocation at three receives , it uses its own , obtains , and returns that value to the invocation at four. The recursive calls share a definition, but their local variables belong to separate invocations.
Figure 1.
Factorial descent builds pending work; returning frames complete it
. Original trace of with base case . The central snapshot shows all five stack frames at maximum depth. Downward arrows create recursive calls; upward arrows carry completed answers to suspended callers. A return removes only the completed invocation's stack frame. Details.
The natural number measure decreases by one on every recursive call, so algorithm termination follows. For algorithm correctness, use mathematical induction: the zero base case returns ; assuming the child's answer is , the caller returns . This also explains why keeping the caller's matters.
There are exactly invocations and multiplications, including one invocation and no multiplications when . Ordinary execution of this recursive process uses at most active stack frames, hence frames for in Big O notation. If each test, call, subtraction and multiplication is counted as constant cost, its time complexity is . That is an arithmetic-operation model: exact arbitrary-length integer multiplication has growing cost, and neither the factorial output nor every stack frame's numeric contents occupies a universally fixed number of bits.