Negation Created 2026-09-24 Updated 2026-10-31
Logical negation exchanges zero and one: and . For a numerical bit , this is ; applying logical negation twice restores . It acts on the entire propositional formula in its scope. Parentheses therefore matter: says that neither condition holds, while also accepts every case where holds. At their values are zero and one.
On a set, logical negation becomes taking a complement in a fixed universal set. In Boolean operations on events, “not even” selects . “Not both even and at least four” selects ; it does not require both qualifications to fail. De Morgan's laws make the scope of these compound negations precise.
Keep as independent fair bits, introduce an independent Bernoulli random variable with , and set . The extra bit flips the integer parity rule with probability . For each even-integer parity triple the probability is ; for each odd-integer parity triple it is .
Every coordinate remains fair, and every pair remains independent for every . For example, after fixing , the fair independent makes fair regardless of . A pair's joint probability distribution therefore does not change as noise destroys the three-way relation.
Figure 1.
Noise changes the joint parity distribution without changing any pair's independence
. Calculated probability mass functions for the stipulated three-bit model at . Even-integer parity and odd-integer parity triples have different colors. The dashed line is the product of the three fair marginal probability distributions. These are theoretical probabilities, not measurements. Details.
Knowing , uncertainty in is exactly the uncertainty in . The chain rule for information entropy gives
where is binary entropy. Hence
At , the result is approximately bits, although all three pairwise mutual informations are zero. At , all eight triples have probability , giving joint independence and zero total correlation. At , the complementary integer parity rule is deterministic again, so total correlation returns to one bit.
Figure 2.
Total correlation detects a noisy three-way constraint missed by pairwise mutual information
. The exact formula for the stipulated noisy parity total correlation, plotted over . The mutual information of each pair is identically zero; joint independence occurs only at the right endpoint of this interval. Details.
The example distinguishes "there is a dependence" from "a pair reveals it." Once are known together, is predictable at zero noise; knowing either one alone leaves a fair bit. Total correlation detects the joint departure from independence, but does not by itself specify which variables cause which others.
Nonunique optimal prefix code Created 2026-09-24 Updated 2026-10-14
An optimal prefix code can be nonunique in several different senses. Exchanging the labels on the outgoing edges of an internal vertex changes codewords while preserving every symbol's codeword length, the code tree shape, and expected codeword length. This freedom exists even with strictly unequal probabilities. Exchanging equal-probability symbols between leaves also preserves expected codeword length; if their leaf depths in a code tree differ, their individual codeword lengths change, though the set of leaf depths does not. For example, three equiprobable symbols have optimal codeword lengths : any of the three can receive the one-bit codeword.[ref]
Ties between weights of entire subtrees during Huffman coding can go further and change the code tree shape and its collection of codeword lengths. Take and first merge , creating weight . Next, of weight can merge either with or with the subtree, both of weight . The two resulting prefix codes are
For the second prefix code, bits. Both merge sequences add weights , whose sum is . Enumerating the full binary trees with four leaves also proves optimality independently: costs , while the least cost of is again . The two code trees cannot be obtained from each other merely by relabelling leaves or exchanging edge labels: their collections of leaf depths in a code tree differ.
Figure 1.
A tie between a symbol and a merged subtree gives two optimal prefix trees, with depths 2,2,2,2 and 1,2,3,3
. Details.
The quantifier in the Huffman sibling property is visible here too. Choose as two least-probability symbols. In the displayed balanced optimal prefix code, they are not sibling leaves in a code tree. Exchanging , which have equal probabilities, produces another balanced optimal prefix code in which are deepest sibling leaves in a code tree. Thus the proof supplies an optimal representative with the chosen pair together. It does not force that labelling on every optimum. An implementation can make its tie choices and edge assignments deterministic when encoder and decoder need to reproduce the same codewords; optimal mean length alone does not specify them.
NOT gate 2026-10-24
A one-input logic gate that complements a bit.
Apply heralded remote preparation of an arbitrary qubit independently to shared singlet states. The sender reports one bit indicating whether every local outcome was successful. A positive flag certifies that the receiver's block is the desired product of pure states; its probability is . A negative flag need not identify which states failed, since the whole block can be discarded.
// Target: algebra.bigb
Optimal one-to-one binary code Created 2026-09-24 Updated 2026-09-24
Order source symbols by decreasing probability and assign the th symbol a binary word of length . This minimizes expected length among one-to-one binary codes because the available shortest words are assigned to the most probable symbols.
Optimal prefix code Created 2026-09-24 Updated 2026-10-14
An optimal prefix code minimizes expected codeword length for a fixed source probability distribution. Here the source alphabet is finite, has symbols, and has for every symbol; each source symbol receives one codeword over the binary output alphabet . Its code tree puts the symbols at leaves. Reading the edges along the graph path from the root of a tree to a leaf produces its codeword, so the leaf depth in a code tree is exactly its codeword length. Thus
For unnormalized positive weights, minimize instead; the corresponding expected codeword length is . This connects the abstract optimization to storage or transmission: counts the bits charged when symbol occurs. Huffman coding attains this minimum; the Huffman sibling property and Huffman sibling contraction explain why. [ref]
For , a balanced code tree charges every symbol two bits, giving . The codeword lengths charge the most frequent symbol only one bit, giving . The choice concerns weighted cost, not just the greatest codeword length: increasing that maximum from two to three can improve the average.
The search over prefix codes looks infinite, but positivity reduces it to finitely many full binary trees with leaves. A vertex with one child can be suppressed to improve cost, and a full binary tree with leaves has internal vertices. There are consequently finitely many such shapes and symbol assignments, so the minimum exists. For four leaves, the only possible sorted codeword lengths in a full binary tree are and . Probability monotonicity of optimal prefix-code lengths assigns larger probabilities to shallower leaves, giving respective minimum costs and in this example. This is an independent small-instance check of the Huffman code.
These hypotheses matter. With zero weights, suppressing a subtree carrying only zero weight need not strictly improve cost, so an optimal prefix code need not have a full binary tree. A one-symbol source raises the convention of whether an empty codeword is allowed. Both cases are outside the original statement here. Encoding groups of symbols changes the source alphabet and the optimization problem; the minimum here concerns one source symbol per codeword.
Packed restoring division 2026-10-25
For an -bit unsigned dividend and positive divisor , read the dividend bits from most to least significant. If the processed prefix is , maintain with . Appending bit gives trial remainder ; append quotient bit and replace the remainder by . This preserves the quotient–remainder identity.
The old dividend and new quotient can share one -bit processor register: after iterations its value is , where . The shifted dividend occupies the upper positions and the accumulated quotient occupies the lower positions, so no information is overwritten. The high processor register holds . For an -bit dividend the next trial remainder is no larger than the next prefix, hence fits in bits through the final iteration. This last bound is specific to the dividend width; it must not be assumed for unrestricted multiword dividends.
Page-reference trace 2026-10-14
A memory access trace reduced to the ordered sequence of accessed memory page identities, retaining repetitions. An address-only reduction loses read/write information, so annotate writes when studying dirty memory pages. Use the following classic Belady anomaly sequence, where the numbers label memory pages, not physical addresses:
Start with three empty, equal-sized page frames allocated to one operating-system process. Every memory page can occupy any page frame, and every resident memory page is eligible for eviction. Use demand paging: a hit finds the requested memory page in the resident set; a miss causes exactly one nonresident page fault and loads it before the next access. Fill the lowest-numbered empty page frame, then reuse the victim's page frame. Assume only reads, no fetching ahead of requests, no competing operating-system processes, and no external removal of memory pages. CLOCK page replacement uses its declared hand rule, which fills the same initial page frames here. The memory page labels alone do not determine the result without these assumptions.
Figure 1.
All twelve accesses with three page frames: FIFO page replacement, exact LRU replacement, offline optimal page replacement and the stated CLOCK page replacement variant
. Details.
Each column shows the state after servicing that access. Rows keep physical page frame positions fixed, rather than silently sorting the resident set. The CLOCK page replacement entries also show reference bits and the next hand position. The independently computed totals are:
PolicyMiss indices, counted from 1MissesHits
FIFO page replacement1, 2, 3, 4, 5, 6, 7, 10, 1193
LRU replacement1, 2, 3, 4, 5, 6, 7, 10, 11, 12102
Optimal page replacement1, 2, 3, 4, 7, 10, 1175
CLOCK page replacement1, 2, 3, 4, 5, 6, 7, 10, 1193
The first three misses fill unused page frames; the fourth miss needs eviction. At access 4, FIFO page replacement and LRU replacement evict memory page 1. Optimal page replacement instead evicts memory page 3: the next uses of resident memory pages 1, 2 and 3 are at indices 5, 6 and 10. At access 10, FIFO page replacement evicts memory page 1 while LRU replacement evicts memory page 5. Consequently the last access to memory page 5 hits under FIFO page replacement but misses under LRU replacement. Matching totals for FIFO page replacement and CLOCK page replacement on this sequence do not make the policies equivalent. The generators compute every displayed state; a separate search over all legal victims confirms the seven-miss optimal page replacement bound for three page frames.
Page writeback 2026-10-14
Preserving the modified contents of a dirty memory page in its backing storage. The reference model waits for successful page writeback before reusing the victim's page frame; failure cannot authorize losing its modifications. A reference bit records recent access, while the dirty flag records a write obligation: reading can set the first without setting the second. Buffer cache writeback concerns the analogous obligation for a buffered device block.
Paging 2026-10-13
Paging divides an address space into fixed-size memory pages and main computer memory into equally sized page frames. Here assume byte addressing, one memory page size bytes, and an unsigned virtual address . Its virtual page number and offset are
The brackets denote the floor function, and gives the remainder in Euclidean division. If the page table maps to physical frame number and permits the access, the physical address is
The low bits are unchanged; the other bits select the memory page or page frame. A bit shift and bit mask can extract these fields. [ref]
For a 16-bit virtual address and bytes, take in hexadecimal. Then and . A mapping to gives
Thus the eight high bits choose a mapping; the eight low bits choose the same position in the resulting page frame. The 256-byte size is for illustration, not a claim about an actual architecture's supported memory page sizes.
Figure 1.
Translating 0x1234 through an illustrative page table, with a separate offset and access check
. Details.
The useful freedom is that adjacent memory pages can occupy unrelated page frames. In the diagram, virtual pages 0x12 and 0x13 occupy page frames 0x07 and 0x02; virtual addresses 0x12ff and 0x1300 are consecutive, but translate to physical addresses 0x07ff and 0x0200. Uniform units simplify placement and page replacement, at the cost of page table storage and unused bytes within partly filled memory pages. For example, placing 300 bytes in exclusive 256-byte page frames requires two page frames, leaving bytes unused.
Let be independent fair bits, and let be their exclusive or: precisely when . The four possible triples are , each with probability . Each coordinate is a fair bit. Writing out all eight patterns gives
Every pair has all four cells with probability :
For , the four allowed triples project to ; for they project to . Each projection lists each pair exactly once, proving pairwise independence. But differs from the product , so the three are not independent random variables. Indeed, any two determine the third. A single coordinate reveals nothing about another, while two coordinates together reveal it completely.
Figure 1.
The XOR example hides joint dependence from every pairwise probability table
. The bars show all eight triple patterns against the reference for three independent fair bits. Below, all three pairwise joint probability mass functions have four equal cells of . Details.
The exclusive or example is the complementary-bit version of the two-toss exercise in Grinstead and Snell, Introduction to Probability, section 4.1, exercise 7, printed page 151. It is a compact reason to check the full product rule whenever a calculation uses three-way or higher events.
Pairwise independent events describe a subtle kind of uncertainty: learning that one event occurred leaves each other event's probability unchanged, yet learning that two occurred can reveal a third completely. Checking every pair therefore answers a weaker question than checking the whole collection. The parity construction of pairwise independent bits makes this distinction visible with just four equally likely outcomes.
A family of events is pairwise independent when
If , this is equivalent to the conditional probability identity . The product definition also handles events of probability zero. Independent events, meaning mutually independent events, require the same product rule for every finite subfamily, including triples. For three events, the three pair equations and the triple equation are four separate requirements. [ref].
For a worked example, take independent fair bits : the sample space is with probability per outcome. Set , , and , using exclusive or, which is one precisely when its inputs differ. The events , , and each contain two outcomes. Their pair intersections are
Thus each event has probability and each pair intersection has probability : these are pairwise independent events. But forces , so
The three are not independent events. This is the complementary-third-event version of the two-toss example in Tsitsiklis and Jaillet, MIT Introduction to Probability, Lecture 3, slides 7–8.
Figure 1.
Four outcomes give three pairwise independent bits with a joint parity constraint
. Each row has probability . Each pair's joint probability mass function contains all four value combinations with probability , although only four of the eight triple combinations can occur. Details.
Another useful diagnostic preserves a special common-intersection case. Suppose three events have common probability and every pair and triple intersect in the same event, of probability . Pairwise independence requires , while mutual independence additionally requires . Both hold only for or . For a concrete nontrivial instance, assign probability to each of four outcomes, let all three events contain the first outcome, and give each event one different additional outcome. Then and : the pair equations hold, while the triple equation fails. Unlike the exclusive or example above, this triple intersection is nonempty.
Let be independent fair bits and set , their exclusive or. The four possible triples are , each with probability . Every coordinate is fair, and every pair has all four outcomes with equal probability. Thus each pair's mutual information is zero, as in pairwise independence does not imply joint independence.
The full random vector has joint entropy bits, while the marginal information entropies sum to three bits. Consequently
The product of the marginals predicts probability for every triple, including the four impossible ones. On each possible triple, the ratio of true to product probability is ; averaging its base-two logarithm gives the same one bit of relative entropy.
The example gives a concrete use for joint information measures. A lossless source coding scheme that treats the three coordinates separately needs three bits here. If the decoder knows the integer parity rule, the encoder can send just and let the decoder reconstruct exactly. Pairwise independence does not reveal that saving. This is a stipulated source law and an explicit two-bit code, rather than a promise that arbitrary data can be shortened.
The parity construction of pairwise independent bits turns two independent fair bits into three pairwise independent random variables. With , , and , their allowed triples are , each of probability . Every coordinate has the Bernoulli distribution with parameter . Every pair has the same joint probability mass function:
All twelve pair cells equal the product of the corresponding probabilities in their marginal distributions. This establishes pairwise independent random variables, a requirement involving every pair of value-events, rather than merely one chosen event per coordinate. For general real-valued random variables , the requirement is
for every pair of Borel sets . For these binary random variables, checking all four cells of each pair suffices: any value-event is a union of the checked cells. In fact, for binary random variables, independence of their one-value events also gives the other cells by taking complements. Siegrist gives the all-set definition and its connection to indicator random variables in Random Services: independence of random variables.
The full joint probability mass function tells a different story:
The integer parity of is always even. Any two bits determine the third: , , and . Each coordinate is independent of either other coordinate individually, but is dependent on the pair together. For example, the conditional probabilities satisfy and . See also pairwise independence does not imply joint independence for the general distinction.
The constraint changes the sum's probability distribution without changing its expected value or variance. Let . Only gives ; each other allowed triple gives . Direct calculation gives
The same variance follows from the variance of a sum: each Bernoulli distribution has variance , and pairwise independent random variables have zero cross covariances. Linearity of expectation gives the expected value even without independence.
For comparison, the sum of three mutually independent fair bits has the binomial distribution :
Both sums have identical expected values and variances, but never takes the values one or three. Even their third moments differ: , whereas . Pairwise independence preserves these first two sum summaries while allowing a different joint probability distribution and a different sum law. The calculation is an exact finite example.
Figure 1.
Pairwise independence preserves the mean and variance but changes the sum distribution
. The parity construction of pairwise independent bits gives sum probabilities ; three mutually independent fair bits give the binomial distribution probabilities . Both expected values are and both variances are . Details.
For three bits, the Boolean function outputs one when is odd, where denotes exclusive or. Unlike the three-bit majority decision tree, an exact decision tree computing parity must inspect all three bits on every input. If any coordinate is unread, two completions differing only at that coordinate follow the same observed graph path but have opposite parity. A single leaf cannot correctly label both.
The same argument works for bits: parity needs all queries on every input, whatever their order. Thus its decision-tree depth is , its expected query cost is for every input probability distribution, and each coordinate revealment is one. The algorithm remains required to be correct on the whole Boolean cube, even if the chosen probability distribution assigns some inputs zero probability; a promise restricting permitted inputs would be a different computational problem.
For finite-valued random vectors, the conditional entropy is the average of the entropies of the conditional distributions:
Use and omit zero-probability conditioning events. Equivalently,
The base two makes all information quantities measured in bits; changing the logarithm base scales them by a positive constant and preserves the inequalities.
An instantaneous code can decode each symbol as soon as its final bit arrives, without waiting for later bits. Equivalently it is prefix-free: no codeword is a proper prefix of another, and different symbols receive different codewords.
For nonempty codewords, decoding greedily from the start of the bit string identifies the first codeword unambiguously; repeating identifies the whole sequence. Thus an instantaneous code is uniquely decodable under the ordinary nonempty-word convention.
A binary code assigns a finite binary word to each source symbol . In the ordinary unframed convention these codewords are nonempty. It is uniquely decodable when concatenation gives an injective map from finite symbol strings to bit strings:
The decoder can recover the entire symbol sequence without being told where codewords end. This is stronger than merely assigning distinct words to individual symbols.
Let and let be the probability cell of symbol . Its midpoint is . Use the binary expansion terminating in zeros at a dyadic rational, so truncation to bits gives
The chosen codeword corresponds to the dyadic interval . It contains , and its width satisfies . Consequently
Thus . The probability cells are disjoint, so the code intervals are disjoint. If one binary codeword were a prefix of another, its dyadic interval would contain the other's interval, contradicting this disjointness. Hence the code is instantaneous.
Finally, . Multiplying by and summing yields
This is the Shannon-Fano-Elias code: the extra bit makes the dyadic interval narrow enough to remain inside the cell around its midpoint.
Figure 1. . An original example with probabilities two fifths, three tenths, one fifth, and one tenth. Each orange dyadic code interval contains its black midpoint and lies inside its blue probability cell, proving that the displayed codewords cannot be prefixes of one another. Details.