lean2/library/logic/logic.md
2014-10-05 10:50:13 -07:00

1.2 KiB

logic

Logical constructions and axioms. By default, import logic does not import any additional axioms.

Logical operations and connectives.

  • prop : the type Prop
  • eq : equality and disequality
  • connectives : propositional connectives
  • cast : casts and heterogeneous equality
  • quantifiers : existential and universal quantifiers
  • if : if-then-else
  • identities : some useful identities

Type classes for general logical manipulations:

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.