Identity Element¶
Core Idea¶
An identity element is a distinguished member of a carrier that leaves every other member unchanged under one stated operation: e • x = x • e = x, for every x with which e composes. [1] The relation holds among three things — a carrier, an operation, and an element — never between an element and the world. Asking whether 1 is an identity is not well formed; asking whether it is an identity for multiplication on the rationals is. The same object routinely plays the role under one operation and a quite different role under another: 0 is neutral for addition and absorbing for multiplication, and the empty set is neutral for union and absorbing for intersection. [2]
Two-sidedness is the load-bearing clause and the one most often skipped. A left identity satisfies e • x = x for every x; a right identity satisfies x • e = x. Neither implies the other, and neither is unique: the operation x • y = y makes every member a left identity while admitting no right identity at all on a carrier with more than one element. [3] Two-sidedness forces uniqueness at once. If e is neutral on the left and e′ on the right, the product e • e′ equals e′ by the first fact and e by the second, so they coincide — an argument invoking no associativity and no closure beyond the single product it forms, which is why the definite article is licensed in structures far weaker than any algebraic tier. [3]
What the element buys is the do-nothing case. A composition of zero factors acquires a value, so an empty batch, patch, or rule set becomes an ordinary input rather than an exception, and every iteration gains a base case that is a value rather than a branch.
The final clause — wherever composition is defined — carries more weight than it looks. Where composition is partial — arrows matching at their endpoints, matrices at their dimensions — no single element can be neutral for everything, and the identity becomes a family indexed by type: one neutral arrow per object. That is why identity arrows are stipulated in the axioms of a category rather than derived from them, and why the prime is not confined to the algebraic tier that made it famous.
Structural Signature¶
A carrier or typed family + one stated composition operation + a distinguished e with e • x = x • e = x wherever composition is defined → a valued empty composition, invisibility under insertion, and a member no second candidate can duplicate.
Recurring features:
- Relativity to a named operation. The property belongs to an element-and-operation pair; move to a second operation on the same carrier and the neutral member changes or vanishes. A ring exhibits two.
- Two sides, tested separately. Left and right neutrality are logically independent conditions over the whole carrier, and an operation may satisfy one universally while failing the other everywhere.
- Uniqueness as consequence, not stipulation. Nothing in the axiom says "exactly one"; the two-sided form yields it, so a structure may host many one-sided identities and never two two-sided ones.
- Type indexing under partial composition. Where the operation is not total, the role is filled by an indexed family — one neutral element per object, dimension, or schema — rather than a single value. [4]
- A valued empty composition. The zero-length product is defined and equal to e, the same statement as x⁰ = e for iterated composition.
- Invisibility under splicing. Inserting or deleting copies at any position leaves the composite untouched, making length and alignment irrelevant to the value.
- Independence from every other law. Neutrality neither requires nor supplies associativity, commutativity, idempotence, or invertibility, and invertibility is defined by reference to it.
What It Is Not¶
It is not a synonym for nothing, zero, or emptiness. The identity is a full member of the carrier with the same standing as any other, and it is frequently the largest object in sight rather than the smallest: under maximum on the extended reals it is negative infinity, under minimum positive infinity, under intersection on a powerset the entire universe. Reaching for whichever value looks emptiest is wrong roughly half the time. [5]
It is not a claim that the element is inert in general. Something that does nothing under one operation is usually consequential under others: 1 is neutral for multiplication and generative for addition, every natural number being a sum of copies of it.
It is not a guarantee of existence, nor much of an accomplishment where it holds. The positive integers under addition have no neutral member; the reals under maximum have none until negative infinity is admitted. Where one is absent it can usually be manufactured by extending the carrier, so "has an identity" is a thin formal claim and a substantive one only when the element already denotes something in the subject matter.
It is not a chosen default or a convenient initial value. A default expresses a preference and shows up in the answer; a neutral element is the one value the operation cannot distinguish from having combined nothing. Starting a running total at 100 is a policy decision; starting it at 0 is the refusal to make one. [6]
And it is not a claim about work done: the equation constrains the resulting value and says nothing about elapsed time, memory, side effects, or the trace the step leaves behind.
Broad Use¶
Arithmetic and algebra. Zero for addition, one for multiplication, the identity matrix, the identity permutation, the zero vector, the trivial subgroup. A ring is the tidiest demonstration of relativity: two distinct elements of one carrier, each neutral for a different operation, one of them absorbing for the other.
Typed and categorical composition. An identity arrow for each object, identity functors, identity natural transformations, the identity function on a set. In type theory the unit type is the identity for the product and the empty type for the sum — the same pattern with isomorphism standing in for equality. [7]
Logic. True is neutral for conjunction; false for disjunction and for exclusive-or. Because the empty conjunction takes the value of its unit, a universally quantified claim over an empty domain comes out true and an existential false — vacuous truth is the empty-composition clause wearing a logician's vocabulary. [8]
Programming and systems. The seed of a fold, the NOP instruction, skip in the guarded-command and Hoare-logic treatments of imperative programs, the null object pattern, pass-through middleware, the empty diff, unity gain in a signal chain.
Data, configuration, and coordination. The empty override in layered configuration merge, the bottom element of the join-semilattice underlying a state-based CRDT, the identity operation in an operational-transform sequence, the empty query filter that constrains nothing.
Institutions and everyday practice. An abstention that leaves a tally where it was, a zero-rate levy, an amendment that changes no text — each neutral relative to one stated aggregation rule and no longer neutral the moment a second is applied to the same act. Abstention is neutral for the tally of votes cast and not for a quorum test, which counts participation rather than preference.
Clarity¶
The prime's clarifying work is to separate absence from the value that behaves like absence. Systems constantly meet a question of the form "what happens when there is nothing to combine?", and without a neutral member every answer is bad: raise, return null, return a magic constant, or leave the case undefined. A two-sided identity turns the question into a lookup — the empty composition has a value, and that value is e — so absence enters the model as data rather than as a control-flow event. [9]
It also disciplines the word. In ordinary usage "identity" names sameness of a thing with itself; here it names neutrality relative to an operation, and the two senses have nothing in common. An entity's identity criteria answer is this the same one?; an identity element answers what leaves the others alone?
Most usefully, it separates "changed nothing on this occasion" from "changes nothing on every occasion." Observing that a step left the state where it was licenses almost nothing, because neutrality is quantified over the whole carrier: one unchanged outcome is equally consistent with an absorbing element that met its own kind, with an argument that happens to be a fixed point of that step, and with coincidence. That is what makes the property testable rather than anecdotal — one adversarial argument falsifies neutrality, and a hundred friendly ones do not confirm it.
Manages Complexity¶
Once an operation carries a two-sided unit, an entire register of emptiness bookkeeping can be deleted rather than handled. You stop tracking whether an accumulator has yet been written to, whether a batch arrived non-empty, whether a list has a first element available to serve as a seed, whether a recursion needs a base case written separately from its step, and whether some partition, window, shard, or tenant happened to contain nothing. [9] Each is a question about the shape of the input, and the unit makes the shape irrelevant to the value.
A second saving lands at interfaces. Without a unit, "no value yet" must be encoded — an optional wrapper, a nullable column, a sentinel constant, a flag beside the accumulator — and every consumer must unwrap it, each site free to guess differently. With one, the accumulator holds the same type throughout, so a single signature serves the empty, the singleton, and the billion-element case.
Invisibility under splicing removes a third. Because a copy of the unit can be inserted anywhere without effect, length and alignment stop being correctness concerns: a ragged input can be padded to a power of two for a segment tree or to a lane width for a vectorized reduction, and none of the padding needs masking out afterwards.
Abstract Reasoning¶
The prime licenses a compact diagnostic that runs identically in every substrate. Name the operation before naming the candidate, since the question is ill-posed otherwise. Fix the carrier and decide deliberately whether the candidate belongs to it, because admitting negative infinity, the empty string, or a "no events" record is usually the entire content of the decision. Then test the two sides separately and adversarially: quantify over x and choose x to break the claim — the candidate composed with itself, the absorbing element if there is one, boundary values. A left-only check passes trivially on operations that discard their left argument, so one side establishes nothing about the other. [3]
When both sides pass, conclusions follow with no further argument about the substrate. Uniqueness is immediate, so the definite article is warranted and rival candidates can be rejected untested. The empty composition acquires its value, which makes every empty-case branch in the surrounding code over-specified. And the induced translation is pinned: the map sending x to e • x is the identity map exactly when e is neutral on the left.
The diagnostic also runs backwards, which is where most of its field value sits. If a reduction returns different answers under different partitionings only when some part is empty, the seed is not neutral; if a total drifts as the worker count changes, suspect the same. If the supposed unit surfaces where the subject matter has no reading for it — a shipment with no contents, a decision that neither permits nor denies — then something was adjoined to satisfy a signature rather than discovered in the domain, and the repair belongs in the model. And if the candidate returns itself instead of its argument, it is absorbing rather than neutral.
Knowledge Transfer¶
What travels is the equation and everything derivable from it alone, a more complete package than its size suggests: two-sidedness forcing uniqueness, the empty composition acquiring a value, invisibility under insertion and deletion, indexing by type wherever composition is partial, and the obligation on any structure-preserving map to send the unit to the unit rather than merely respect the operation. [3] Someone who has understood why the empty string is neutral for concatenation already knows why an empty override is neutral for a configuration merge.
What does not travel is which element fills the role. Neutrality is a joint fact about a carrier and an operation, so it must be rediscovered in each setting, and schoolroom arithmetic actively misleads: the unit for maximum is not zero, for intersection not the empty set, for composition whichever function the type determines.
Exactness does not travel either. Substrates that only approximate their own algebra only approximate the equation. Under IEEE-754 arithmetic positive zero fails two-sided neutrality on signed zero, since adding it to negative zero yields positive zero; a lossy codec's identity transform re-encodes; a normalizing serializer's empty patch reorders keys. Wherever equality has been replaced by a tolerance or a normal form, the do-nothing element must be re-qualified against the equivalence in force.
Nor does neutrality with respect to unmodelled channels: a no-op still consumes a cycle, an audit line, or a rate-limit token, and is an identity only modulo an equivalence on outcomes that some person chose.
Examples¶
Formal/abstract¶
Where composition is partial, "the identity" becomes a family. Read matrices over a field as arrows: the objects are the natural numbers, an arrow m → n is an n×m matrix, and composition is matrix product, defined only when the inner dimensions agree. Ask for an identity in the literal, single-object sense: one matrix E with EA = A = AE for every matrix A. There is none, and the failure is structural: EA requires E to have as many columns as A has rows, AE as many rows as A has columns, and A ranges over every shape.
The axiom that does the work is indexed instead. For each object n there is an arrow I_n, the n×n matrix with ones on the diagonal, and neutrality is asserted only over compositions that exist: for A an arrow m → n, I_n A = A and A I_m = A. Each I_n is the only candidate for its object, by the left-meets-right argument run inside the square matrices of that size. [4]
The complementary failure shows what a half-check certifies. On any carrier with at least two members define x • y = y. The operation is closed and associative, since both bracketings of x • y • z reduce to z. Every member is a left identity, since e • x = x holds for every choice of e; none is a right identity, since x • e = e, which equals x only when e is x. Here is an associative structure with as many left identities as elements, no two-sided identity, and no empty composition.
Mapped back: the two halves exercise the clauses that casual statements of the definition discard. "Wherever composition is defined" is not a hedge but what turns a distinguished value into an object-indexed family; "both sides" is not redundancy but the sole source of uniqueness, and the right-projection carrier shows what a one-sided check buys — left identities of any number, none supplying a value for the empty product.
Applied/industry¶
The unit of a policy-combining layer, and the three ways it goes wrong. An authorization service evaluates rules against a request and folds the decisions into one using a stated combining algorithm. The design question the prime settles is the one nobody asks until production: what does the service return when the applicable rule set is empty — a tenant not yet configured, a list filtered to nothing, a bundle that failed to load?
There is no answer from the subject matter; there is one from the algebra, and — so long as the decision set holds just permit and deny — it depends on the combining algorithm. Under deny-overrides, a permit only if every rule permits, the operation is conjunction and its unit is permit, so an empty rule set must evaluate to allow. Under permit-overrides, where one permit suffices, the operation is disjunction and its unit is deny, so an empty rule set must deny. Both values are forced by the algebra and they are opposites, so selecting the combining algorithm silently selects fail-open or fail-closed behaviour — two decisions usually made by different people months apart — unless the design enlarges the value set so the empty case has a unit of its own, as XACML does by returning NotApplicable when no rule applies, which relocates the fail-open/fail-closed choice to the enforcement point rather than removing it. [10]
The second failure lives at the interface. If "no applicable rule" is modelled as a null and every caller branches on it, the empty case is not neutral but a control-flow event, handled inconsistently: one path denies, another skips the check, a third logs and proceeds. Model the unit as a real object instead — an explicit permit-everything or deny-everything rule composing like any other — and the branch disappears while ordinary tests exercise the empty case. The honest price is that the unit is now a value in the domain, appearing in rule listings, audit trails, and diffs.
The third is quieter. A pass-through rule is not actually inert: it still consults an attribute store, emits an audit record, costs a millisecond. It is an identity for the decision and nothing of the kind for latency, spend, or log volume, as a team that scatters no-op placeholders discovers when the audit bill arrives.
Mapped back: each clause of the signature is doing visible work. Relativity to an operation is the entire first failure: within a two-valued decision set the same empty input has opposite correct answers under conjunction and under disjunction, because the unit belongs to the operation rather than to the input. Two-sidedness is what lets a placeholder be dropped anywhere in the rule order without shifting the outcome. The valued empty composition deletes the null branch; the third failure is the reminder that neutrality is asserted with respect to a chosen observable.
Structural Tensions¶
T1 — One-sided neutrality and the uniqueness it does not confer. A left identity is a real thing with real uses, and a structure may hold arbitrarily many. Nothing about a left-only check licenses the definite article, the empty composition, or the deletion of an empty-case branch, yet all three habitually follow from it, because the arithmetic that trained the intuition is commutative and the two sides coincide there. The cheap check is the one people run, and the guarantee they cash it for is the one only the expensive check buys.
T2 — A unit at the interface versus a nullable accumulator. Making absence a first-class value removes a branch and adds a member to the domain. The neutral policy, the empty patch, the zero-item shipment now appear in listings, audit trails, and API responses, and consumers must decide what they mean. A nullable accumulator keeps the domain small and pushes the case into each caller. Neither is free, and the balance tips differently at an internal boundary than at a published one, where the extra member is forever.
T3 — Neutral under one operation, absorbing under another. Roles attach to element-and-operation pairs, not to elements. Zero is neutral for addition and absorbing for multiplication; the empty set is neutral for union and absorbing for intersection, with the universal set holding the opposite pair. Because one object wears both hats, an observation that a step left the state alone underdetermines which hat it wore, and a substitution harmless under one rule quietly destroys data under another. Natural language attaches the property to the object; the mathematics attaches it to the pair.
T4 — The do-nothing step that costs something. Neutrality is asserted modulo an equivalence on outcomes, and real systems are measured on more channels than that equivalence names. A NOP consumes a cycle and is often inserted for exactly that reason; a pass-through handler emits a span and a log line; an identity transform still allocates. Each is neutral for the value and not for time, spend, or the record left behind, and the algebra is silent about the channels operators are judged on, so "does nothing" needs qualification rather than assumption.
T5 — The value the empty case must take, when the algebra and the risk model disagree. Fix the combining rule and the empty composition's value is forced rather than chosen: conjunction demands permit, disjunction demands deny, maximum demands negative infinity. Safety engineering frequently wants the opposite, since a rule set that failed to load should probably deny and a threshold that failed to load should probably not read as unbounded. Overriding the unit restores the safe default and destroys neutrality, after which results depend on how the input was partitioned. The choice is between a lawful reduction and a safe one.
T6 — Exact neutrality versus neutrality up to tolerance. The defining condition asks for identity of values, and many substrates support only identity up to an equivalence somebody selected. Floating-point addition has a unit that fails on signed zero; a lossy codec's identity transform re-encodes; a normalizing serializer's empty patch reorders keys. In each case the element is neutral under the intended reading and not under bitwise comparison, and the weaker the equivalence, the more elements qualify as units and the less the certificate is worth.
Structural–Framed Character¶
Identity Element sits at the structural pole of the structural–framed spectrum — aggregate 0.0, with all five criteria at zero. What travels is one formal role: a typed carrier or family, a compositional operation, a distinguished element or arrow compatible with it, and left and right neutrality wherever composition is defined — the do-nothing case that makes empty composition and folding possible. Algebraic units, identity morphisms, empty strings under concatenation, and fold seeds are that one role under different names.
Nothing lifts the prime off zero. Human-practice-bound, the diagnostic that usually does, reads 0.0 because the definition is exhausted by a carrier, an operation, and an element: truth is neutral for conjunction whether or not anyone conjoins anything. Institutional origin is 0.0 for the matching reason: neutrality holds or fails wherever the operation is defined, and no convention sustains it. The one condition it carries is not a frame effect — identity is always relative to an operation.
Vocabulary travels at 0.0 because the defining statement is an equation, e * x = x * e = x, and each field's word for it — unit, identity morphism, fold seed — renames one formal role rather than translating a register. Evaluative weight is 0.0: neutrality is descriptive, with no normative load. Import-versus-recognize is 0.0, since spotting a fold seed recognizes a neutrality the operation already has.
The grade means the prime lifts into any setting with a composition operation. The work is checking both sides wherever composition is defined, and keeping it apart from fixed point, idempotence, and absorbing element.
Substrate Independence¶
Identity Element is about as substrate-independent as a prime can be — composite 5 / 5 on the substrate-independence scale. What travels is a three-place relation and nothing more: a carrier, one named operation, and a distinguished member that leaves every other unchanged from both sides. The statement imports no subject matter at all, which is why the two-sided uniqueness argument runs in structures far weaker than the algebraic tier that made the notion famous, including typed settings where composition is partial and the neutral element becomes one arrow per object. Arithmetic units, identity morphisms, identity functions, the empty string under concatenation, truth under conjunction, and the seed of a fold are one role in different notation. Abstraction, spread, and literal rather than analogical instances all coincide.
- Composite substrate independence — 5 / 5
- Domain breadth — 5 / 5
- Structural abstraction — 5 / 5
- Transfer evidence — 4 / 5
Relationships to Other Abstractions¶
Current abstraction Identity Element Prime
Foundational — no parent edges in the catalog.
Children (3) — more specific cases that build on this
-
Loop (Algebra) Domain-specific presupposes Identity Element
An algebraic loop composes Identity Element with unique left and right division.It relates to Binary Operation, Reversibility, and Symmetry, but none alone subsumes it. Identity Element is proposed as the minimal accepted parent because the identity distinguishes loops from general quasigroups; the placement memo records that this is compositional rather than a subtype claim.
-
Reflexive closure Domain-specific presupposes Identity Element
The accepted reference-grade review places Reflexive closure under Identity Element because the child instantiates or depends on the parent's broader structure while retaining its own constitutive identity.The smallest reflexive binary relation containing a given relation, obtained by adjoining every identity pair on the underlying set. The parent is defined more broadly: A distinguished input leaves every compatible element unchanged under a stated operation, supplying the do-nothing case that makes empty composition possible.
-
Monoid Prime is part of Identity Element
A two-sided Identity Element is a constitutive part of every Monoid.A Monoid is not merely associative and closed: it must contain one element that leaves every carrier element unchanged on both sides and supplies the empty product. Identity Element can occur relative to operations outside this algebraic tier, but removing it reduces the structure to a Semigroup, establishing strict part-of composition.
Neighborhood in Abstraction Space¶
Identity Element sits in a sparse region of abstraction space (69th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely rather than landing on a neighbor.
Family — Sets, Order & Foundational Structure (19 primes)
Nearest neighbors
- Monoid — 0.75
- Group — 0.71
- Identity (philosophy) — 0.71
- Basis — 0.69
- Abstract Work — 0.69
Computed from structural-signature embeddings · 2026-09-10
Not to Be Confused With¶
Identity Element is most often confused with Monoid. A monoid is a carrier together with a closed associative operation and a two-sided neutral element; this prime is that last clause alone. Because the clause can be satisfied where the others are not, the neutral member turns up in settings no monoid describes: a unital magma has one and lacks associativity, a category has one per object where composition is merely partial, and a non-closed operation can still possess an element that changes nothing. Pointing at the neutral member therefore never establishes membership in the algebraic tier. Read the other way, the tier supplies results the neutral member cannot underwrite alone: parenthesization independence, the free construction, the embedding into endofunctions.
Semigroup and Group flank the prime and are both defined by their relation to it. A semigroup is what remains once it is withdrawn: closed, associative, and carrying no value for the empty composition. A group is built on top of it, and the dependency deserves noticing: the inverse axiom cannot even be stated until a neutral element is in hand, an inverse of x being an element composing with x to give e. Neutrality is logically prior to invertibility.
Fixed Point is the nearest genuinely different idea. A fixed point is a point of a map: some a with f(a) = a, one transformation and one argument. The neutral element is not a point some map holds still; it is the operand whose induced translation holds everything still. The two connect exactly: e is neutral on the left precisely when the map taking x to e • x is the identity function on the carrier, so neutrality is a claim about an entire map where a fixed point is a claim about one argument.
Idempotence is a condition on one element combined with itself, x • x = x. Every neutral element is idempotent and almost no idempotent element is neutral: under intersection every set is idempotent while only the universe is neutral. The engineering versions come apart as sharply — an idempotent endpoint is safe to call twice, while a neutral one changes nothing on the first call either. Retry-safety and do-nothing-ness are separate guarantees.
Invariance points the opposite way. It names a property that survives a family of transformations — a conserved quantity, a preserved shape, an unbroken symmetry — and is silent about which element does the preserving; this prime names the element and is silent about which properties survive, since under neutrality all of them do.
Empty Set is a particular object routinely mistaken for the general pattern. It is neutral for union and symmetric difference, absorbing for intersection and Cartesian product, and neither for complement. It is one element of one carrier wearing several hats, with the operation named alongside it deciding which.
Absorbing State Under Restricted Modality captures the opposite element under a dynamic reading: a configuration one can enter and cannot leave with the moves available. Combining anything with an absorber yields the absorber; combining anything with a unit yields the anything. Under a single observation the two are hard to separate, but the counterfactual is decisive: after a neutral step the system sits where it would otherwise have sat, and after an absorbing one nothing further will move it. Multiplication carries both roles, one neutral and zero absorbing.
Finally, the word collides with unrelated neighbours. Identity Test concerns criteria of sameness and shares nothing with neutrality beyond a syllable. Canonical Form picks a distinguished representative of each equivalence class so equality can be decided by comparison — an element selected by a normalization procedure rather than by an equation over the carrier. And Associativity and Closure are sibling clauses rather than rivals: each is a portable property of an operation, and none entails the others.
Solution Archetypes¶
No catalogued solution archetypes reference this prime yet.
Notes¶
The prime is small enough to look trivial and is among the more reliable sources of production defects, for a structural reason: its failures are silent. A broken associativity produces answers that visibly vary with grouping, while a mis-chosen unit produces a plausible number, a defensible-looking permit, or an empty result nobody queries — and it is exercised only on inputs that happen to be empty, the rarest during development and among the commonest in a running system.
The corpus records this prime as a constitutive part of Monoid, and the entry is written to that shape: the neutral element is treated in its own right, including its typed, categorical, logical, and engineering occurrences, with the algebraic tier as one setting among several. Where the two entries meet, Monoid takes the structure's view and this one the element's.
References¶
[1] Dummit, David S., and Richard M. Foote. Abstract Algebra. 3rd ed., Wiley, 2004. Gives the standard definition of an identity element relative to a set and one stated binary operation. registry ↩
[2] Mac Lane, Saunders, and Garrett Birkhoff. Algebra. Macmillan, 1967. Covers both the ring case, where 0 is neutral for addition and annihilating for multiplication, and lattices, where each universal bound is neutral for one operation and absorbing for the other, so the role attaches to an element-and-operation pair. registry ↩
[3] Howie, John M. Fundamentals of Semigroup Theory. Clarendon Press / Oxford University Press, 1995. Treats left and right identities as logically independent conditions, gives the left-meets-right uniqueness argument, the right-zero semigroup in which every element is a left identity and none a right identity, the adjunction of an identity to a semigroup, and the monoid-homomorphism obligation to preserve the unit. registry ↩a ↩b ↩c ↩d
[4] Mac Lane, Saunders. Categories for the Working Mathematician. 2nd ed., Springer Graduate Texts in Mathematics 5, 1998. States the category axioms with an identity arrow assigned to each object and a unit law, and gives Matr_K - objects the positive integers, arrows the rectangular matrices, composition the matrix product - as a category in which each object carries its own identity. registry ↩a ↩b
[5] Birkhoff, Garrett. Lattice Theory. 3rd ed., American Mathematical Society Colloquium Publications 25, 1967. Establishes the universal bounds of a bounded lattice, where the top element is neutral for meet and the bottom for join, so the neutral element need not be the smallest object in sight. registry ↩
[6] Oracle. java.util.stream.Stream - Java SE API Specification. Oracle, 2023. Requires the seed of a reduction to satisfy the neutrality equation rather than be any convenient starting value: "the identity value must be an identity for the accumulator function", so that for all t, accumulator.apply(identity, t) equals t. registry ↩
[7] Abramsky, Samson, and Nikos Tzevelekos. "Introduction to Categories and Categorical Logic". In New Structures for Physics, Lecture Notes in Physics 813, Springer, 2011. Gives the natural isomorphisms 1 × A ≅ A and A × 1 ≅ A that make the terminal object the unit for products, with the dual construction for coproducts and the initial object, so the unit law holds up to isomorphism rather than equality. registry ↩
[8] Quine, W. V. "Quantification and the Empty Domain". The Journal of Symbolic Logic 19(3), 177-179, 1954. States the empty-domain convention directly - mark the universal quantifications true and the existential ones false, then apply truth-table considerations. registry ↩
[9] Hutton, Graham. "A tutorial on the universality and expressiveness of fold". Journal of Functional Programming 9(4), 355-372, 1999. Shows that the seed argument of a fold supplies the value for the empty input, so base cases and emptiness tests need not be written separately from the step. registry ↩a ↩b
[10] OASIS. eXtensible Access Control Markup Language (XACML) Version 3.0. OASIS Standard, 22 January 2013. Defines the deny-overrides and permit-overrides rule-combining algorithms with opposite polarities, and returns NotApplicable - a third value rather than either algebraic unit - when no rule is applicable. registry ↩