Home

propositionsastypes

Propositions-as-types is a principle in logic and type theory that interprets logical propositions as types and proofs as programs. In this view, a proof of a proposition is a value of the corresponding type, and constructing a proof is the same as writing a program that inhabits the type. The approach is closely associated with the Curry–Howard correspondence, particularly in its intuitionistic form.

Historically, the idea arose from work by Haskell Curry and William Alvin Howard in the mid-20th century

Core correspondences include: a unit type corresponds to the proposition true; the empty type to false; product

In practice, propositions-as-types underpins modern proof assistants and languages with expressive type systems, such as Coq,

Limitations include the emphasis on constructive logic, as many classical results require additional axioms or non-constructive

and
was
later
developed
within
dependent
type
theories
and
proof
assistants.
It
provides
a
bridge
between
logic
and
computation,
showing
that
proving
a
statement
is
akin
to
building
a
program
with
guaranteed
type
correctness.
types
to
logical
conjunction;
sum
types
to
logical
disjunction;
function
types
to
implication;
and
dependent
types
to
universal
and
existential
quantification
(Pi
and
Sigma
types).
The
correspondence
yields
constructive
content:
a
proof
must
actually
construct
a
witness,
hence
a
program
that
runs
to
produce
a
result.
Agda,
Lean,
and
languages
like
Haskell
with
advanced
features.
Proofs
are
written
as
programs;
verified
properties
are
encoded
as
types;
and
it
is
possible
to
extract
executable
code
from
verified
proofs.
reasoning.
Despite
this,
the
paradigm
remains
central
to
formal
verification
and
constructive
mathematics.