Skip to content

Empty type

A type with no inhabitants, representing falsehood under Curry–Howard and serving as the codomain from which negation and ex falso elimination are defined.

Core Idea

The empty type can be primitive, a nullary sum or an equivalent impredicative encoding depending on the type theory; uniqueness up to equivalence differs from definitional identity and from a bottom subtype. Because no constructor produces an inhabitant, elimination may derive a term of any target type from a hypothetical empty-type term; a function from P to the empty type therefore represents a proof of not-P. The abstraction is therefore identified by a declared carrier, a transformation or constraint over that carrier, and an invariant that tells an analyst whether the named structure is genuinely present.

How would you explain it like I'm…

The Never-Filled Box

Imagine a special kind of box that nothing can ever be put into. There is no way to make a thing that belongs in it. So if someone says, "Here's something from that box!", you know the story is make-believe, and in a make-believe story anything can follow.

The Impossible Type

In computer science, a type is a kind of value, like "numbers" or "true/false". The Empty type is a kind that has no values at all, because there is no recipe for building one. If you ever pretend you have a value of the Empty type, you can use that pretend value to get a value of any type you like, since the situation can never really happen. This is why it is used to mean "impossible". Saying "if P were true, I could build a value of the Empty type" is a way of proving that P is false.

Type With No Inhabitants

In type theory, the Empty type is a type with no constructors, so no closed program or proof can produce an inhabitant of it. Its elimination rule says that from a hypothetical term of the Empty type you may derive a term of any type at all, a principle often called "from falsehood, anything". Because of this, a function from P to the Empty type serves as a proof of "not P": it shows that P leads to the impossible. Depending on the system, the Empty type may be built in as a primitive, defined as a sum type with zero cases, or encoded some other way. It should not be confused with the empty set, or with a "bottom" subtype that sits below all other types in a subtyping order. These are related ideas, but they are not the same object.

 

The Empty type (often written ⊥ or 0) is a type formed with no introduction rules, so no constructor yields an inhabitant. Its eliminator, sometimes called absurd or ex falso, maps any hypothetical inhabitant to a term of an arbitrary target type. Since there are no constructors, there are no computation rules of the usual β kind to state. Under the propositions-as-types reading, negation ¬P is defined as P → 0, so constructing such a function refutes P. The system's consistency amounts to the Empty type having no closed inhabitant. Depending on the type theory and universe, the Empty type is introduced as a primitive, as the nullary coproduct (a sum with zero summands), or through an impredicative polymorphic encoding such as ∀X.X. Categorically, it behaves as an initial object: there is a unique map from it to every type. Different presentations are unique only up to equivalence, which is not the same as being definitionally identical. It is also distinct from a bottom subtype in subtyping systems and from the set-theoretic empty set.

Scope of Application

Empty type belongs to type theory and logic and is useful where the analyst can specify the typed type theory and logic carrier, defining objects and relations, parameters, conventions, evidence, boundary cases, and comparison targets, then evaluate the type theory and universe, empty-type notation, formation, absence of constructors, elimination rule, computation rule if any, consistency assumption, negation encoding, nullary coproduct or polymorphic encoding, initial-object property and distinction from bottom type and empty set are explicit.

Clarity

The abstraction clarifies a crowded vocabulary by making the type theory and universe, empty-type notation, formation, absence of constructors, elimination rule, computation rule if any, consistency assumption, negation encoding, nullary coproduct or polymorphic encoding, initial-object property and distinction from bottom type and empty set are explicit the center of the account. A claim should name the carrier, the governing operation or relation, the applicable assumptions, and the recognition test.

Manages Complexity

Without the abstraction, an analyst must reason directly over many local details: the carrier roles, admissibility assumptions, competing conventions, derived invariants, boundary cases, and proof or validation obligations specific to Empty type. Empty type compresses them into the roles in the structural signature. That compression permits comparison across instances without erasing the variables that determine validity. It also exposes which details may be varied safely and which are constitutive.

Abstract Reasoning

  1. Identify the carrier. State what the elements, states, objects, or observations are: the typed type theory and logic carrier, defining objects and relations, parameters, conventions, evidence, boundary cases, and comparison targets. Reject examples whose alleged carrier belongs to a different problem. 2.

Knowledge Transfer

Knowledge transfers strongly among subfields of type theory and logic because they reuse the typed type theory and logic carrier, defining objects and relations, parameters, conventions, evidence, boundary cases, and comparison targets, Because no constructor produces an inhabitant, elimination may derive a term of any target type from a hypothetical empty-type term; a function from P to the empty type therefore represents a proof of not-P., and type the carrier, state every parameter and convention in the definition, test that the type theory and universe, empty-type notation, formation, absence of constructors, elimination rule, computation rule if any, consistency assumption, negation encoding, nullary coproduct or polymorphic encoding, initial-object property and distinction from bottom type and empty set are explicit, compare the nearest accepted identity, and report counterexamples, uncertainty, and limiting cases.

Relationships to Other Abstractions

Local relationship map for Empty typeParents appear above the current abstraction, mutual partners to the right, and children below. Node labels state whether each abstraction is prime or domain-specific; colors identify relation types.Empty typeDOMAINPrime abstraction: Empty Set — is a kind ofEmpty SetPRIME

Current abstraction Empty type Domain-specific

Parents (1) — outgoing typed relations

  • Empty type is a kind of Empty Set Prime

    It remains its own entry because its identity is fixed by the type theory and universe, empty-type notation, formation, absence of constructors, elimination rule, computation rule if any, consistency assumption, negation encoding, nullary coproduct or polymorphic encoding, initial-object property and distinction from bottom type and empty set.

Hierarchy path (1) — routes to 1 parentless root

Neighborhood in Abstraction Space

Empty type sits in a crowded region of the domain-specific corpus (12th percentile for distinctiveness): several abstractions share nearly its structure, so a description that fits it tends to fit its neighbors too.

Family — Order, Type & Classification Foundations (49 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-10-25