lean2/library/library.md

1.5 KiB

The Lean Library

The Lean library is contained in the following modules and directories:

  • general_notation : commonly shared notation
  • logic : logical constructs and axioms
  • data : concrete datatypes and type constructors
  • algebra : algebraic structures
  • hott : homotopy type theory
  • tools : additional tools

Modules can be loaded individually, but they are also be loaded by importing the following packages:

  • standard : constructive logic and datatypes
  • classical : classical mathematics
  • hott : homotopy type theory

Lean's default logical framework is a version of the Calculus of Constructions with:

  • an impredicative, proof-irrelevant type Prop of propositions
  • univerve polymorphism
  • a non-cumulative hierarchy of universes, Type 1, Type 2, ... above Prop
  • inductively defined types

The standard library does not rely on any axioms beyond this framework, and is hence constructive. It includes theories of the natural numbers, integers, lists, and so on.

The classical library imports the law of the excluded middle, choice functions, and propositional extensionality. See logic/axioms for details.

The hott library is compatible with the standard library, but favors "proof relevant" versions of the logical connectives, based on Type rather than Prop. See hott for details.