45 lines
1.1 KiB
Markdown
45 lines
1.1 KiB
Markdown
|
init
|
||
|
====
|
||
|
|
||
|
The modules in this folder are required by low-level operations, and
|
||
|
are always imported by default. You can suppress this behavior by
|
||
|
beginning a file with the keyword "prelude".
|
||
|
|
||
|
Syntax declarations:
|
||
|
|
||
|
* [reserved_notation](reserved_notation.lean)
|
||
|
* [tactic](tactic.lean)
|
||
|
* [priority](priority.lean)
|
||
|
|
||
|
Datatypes and logic:
|
||
|
|
||
|
* [datatypes](datatypes.lean)
|
||
|
* [logic](logic.lean)
|
||
|
* [bool](bool.lean)
|
||
|
* [num](num.lean)
|
||
|
* [nat](nat.lean)
|
||
|
|
||
|
Support for well-founded recursion:
|
||
|
|
||
|
* [relation](relation.lean)
|
||
|
* [wf](wf.lean)
|
||
|
* [wf_k](wf_k.lean)
|
||
|
* [measurable](measurable.lean)
|
||
|
|
||
|
Additional datatypes:
|
||
|
|
||
|
* [prod](prod.lean)
|
||
|
* [sigma](sigma.lean)
|
||
|
|
||
|
The default import:
|
||
|
|
||
|
* [default](default.lean)
|
||
|
|
||
|
Module init.logic defines "inhabited" and "nonempty"
|
||
|
types. Constructively, inhabited types have a witness, while nonempty
|
||
|
types are proof irrelevant. Classically (assuming the axioms in
|
||
|
logic.axioms.hilbert) the two are equivalent. Type class inferences
|
||
|
are set up to use "inhabited" however, so users should use that to
|
||
|
declare that types have an element. Use "nonempty" in the hypothesis
|
||
|
of a theorem when the theorem does not depend on the witness chosen.
|