foundational types
Some of Lean's types are not defined in any Lean source files (even the prelude
) since they come from its foundational type theory. This page provides basic documentation for these types.
For a more in-depth explanation of Lean's type theory, refer to TPiL.
Sort u
#
Sort u
is the type of types in Lean, and Sort u : Sort (u + 1)
.
Instances for Sort u
Type u
#
Type u
is notation for Sort (u + 1)
.
Instances for Type u
- set_like.has_coe_to_sort
- set.has_coe_to_sort
- finset.has_coe_to_sort
- cardinal.is_equivalent
- cardinal.can_lift_cardinal_Type
- wide_subquiver_has_coe_to_sort
- category_theory.types
- category_theory.sort.split_epi_category
- category_theory.bundled.has_coe_to_sort
- category_theory.Cat.has_coe_to_sort
- category_theory.concrete_category.types
- Mon.has_coe_to_sort
- AddMon.has_coe_to_sort
- CommMon.has_coe_to_sort
- AddCommMon.has_coe_to_sort
- Group.has_coe_to_sort
- AddGroup.has_coe_to_sort
- CommGroup.has_coe_to_sort
- AddCommGroup.has_coe_to_sort
- SemiRing.has_coe_to_sort
- Ring.has_coe_to_sort
- CommSemiRing.has_coe_to_sort
- CommRing.has_coe_to_sort
- Module.has_coe_to_sort
- Algebra.has_coe_to_sort
- QuadraticModule.has_coe_to_sort
Prop
#
Prop
is notation for Sort 0
.
Instances for Prop
- is_symm_op_of_is_symm
- prop.inhabited
- coe_bool_to_Prop
- coe_sort_bool
- iff.is_refl
- iff.is_trans
- xor.is_commutative
- sort.nontrivial
- Prop.has_compl
- Prop.has_le
- Prop.partial_order
- Prop.distrib_lattice
- Prop.bounded_order
- Prop.le_is_total
- Prop.linear_order
- Prop.heyting_algebra
- Prop.boolean_algebra
- Prop.complete_lattice
- Prop.complete_linear_order
- Prop.complete_boolean_algebra
- Prop.fintype
- Prop.countable'
- Prop.encodable
- sierpinski_space
- Prop.has_variable_names
Pi types, Π a : α, β a
#
The type of dependent functions is known as a pi type. Non-dependent functions and implications are a special case.
Note that these can also be written with the alternative notations:
∀ a : α, β a
, conventionally used whereβ a : Prop
.α → γ
, possible only ifβ a = γ
for alla
.
Lean also permits ASCII-only spellings of the three variants:
Pi a : A, B a
forΠ a : α, β a
forall a : A, B a
for∀ a : α, β a
A -> B
, forα → β
Note that despite not itself being a function, (→)
is available as infix notation for
λ α β, α → β
.
Instances for Π a : α, β a
- fun_like.has_coe_to_fun
- pi.inhabited
- pi.subsingleton
- lift_pi_range
- pi.nonempty
- pi.can_lift
- pi_subtype.can_lift
- applicative_transformation.has_coe_to_fun
- pi_setoid
- pi.is_empty
- pi.unique
- pi.unique_of_is_empty
- pi.nontrivial
- pi.has_compl
- pi.has_le
- pi.preorder
- pi.partial_order
- pi.has_sdiff
- pi.densely_ordered
- pi.no_max_order
- pi.no_min_order
- pi.has_one
- pi.has_zero
- pi.has_mul
- pi.has_add
- pi.has_smul
- pi.has_vadd
- pi.has_pow
- pi.has_inv
- pi.has_neg
- pi.has_div
- pi.has_sub
- pi.has_sup
- pi.has_inf
- pi.semilattice_sup
- pi.semilattice_inf
- pi.lattice
- pi.distrib_lattice
- pi.has_bot
- pi.has_top
- pi.order_top
- pi.order_bot
- pi.bounded_order
- pi.has_himp
- pi.has_hnot
- pi.generalized_heyting_algebra
- pi.generalized_coheyting_algebra
- pi.heyting_algebra
- pi.coheyting_algebra
- pi.boolean_algebra
- set.pi_set_coe.can_lift
- pi.semigroup
- pi.add_semigroup
- pi.semigroup_with_zero
- pi.comm_semigroup
- pi.add_comm_semigroup
- pi.mul_one_class
- pi.add_zero_class
- pi.monoid
- pi.add_monoid
- pi.comm_monoid
- pi.add_comm_monoid
- pi.div_inv_monoid
- pi.sub_neg_monoid
- pi.has_involutive_inv
- pi.has_involutive_neg
- pi.division_monoid
- pi.subtraction_monoid
- pi.division_comm_monoid
- pi.subtraction_comm_monoid
- pi.group
- pi.add_group
- pi.comm_group
- pi.add_comm_group
- pi.left_cancel_semigroup
- pi.add_left_cancel_semigroup
- pi.right_cancel_semigroup
- pi.add_right_cancel_semigroup
- pi.left_cancel_monoid
- pi.add_left_cancel_monoid
- pi.right_cancel_monoid
- pi.add_right_cancel_monoid
- pi.cancel_monoid
- pi.add_cancel_monoid
- pi.cancel_comm_monoid
- pi.add_cancel_comm_monoid
- pi.mul_zero_class
- pi.mul_zero_one_class
- pi.monoid_with_zero
- pi.comm_monoid_with_zero
- pi.has_nat_cast
- pi.add_monoid_with_one
- pi.has_int_cast
- pi.add_group_with_one
- pi.distrib
- pi.non_unital_non_assoc_semiring
- pi.non_unital_semiring
- pi.non_assoc_semiring
- pi.semiring
- pi.non_unital_comm_semiring
- pi.comm_semiring
- pi.non_unital_non_assoc_ring
- pi.non_unital_ring
- pi.non_assoc_ring
- pi.ring
- pi.non_unital_comm_ring
- pi.comm_ring
- pi.has_smul'
- pi.has_vadd'
- pi.is_scalar_tower
- pi.vadd_assoc_class
- pi.is_scalar_tower'
- pi.vadd_assoc_class'
- pi.is_scalar_tower''
- pi.vadd_assoc_class''
- pi.smul_comm_class
- pi.vadd_comm_class
- pi.smul_comm_class'
- pi.vadd_comm_class'
- pi.smul_comm_class''
- pi.vadd_comm_class''
- pi.is_central_scalar
- pi.is_central_vadd
- pi.has_faithful_smul
- pi.has_faithful_vadd
- pi.mul_action
- pi.add_action
- pi.mul_action'
- pi.add_action'
- pi.smul_zero_class
- pi.smul_zero_class'
- pi.distrib_smul
- pi.distrib_smul'
- pi.distrib_mul_action
- pi.distrib_mul_action'
- pi.mul_distrib_mul_action
- pi.mul_distrib_mul_action'
- pi.smul_with_zero
- pi.smul_with_zero'
- pi.mul_action_with_zero
- pi.mul_action_with_zero'
- pi.module
- pi.module'
- pi.no_zero_smul_divisors
- pi.has_Sup
- pi.has_Inf
- pi.complete_lattice
- pi.frame
- pi.coframe
- pi.complete_distrib_lattice
- pi.complete_boolean_algebra
- finset.pi_finset_coe.can_lift
- pfun_fintype
- pi.countable
- pi.infinite_of_left
- pi.infinite_of_right
- pi.fintype
- pi.finite
- dfinsupp.has_coe_to_fun
- pi.conditionally_complete_lattice
- pi.omega_complete_partial_order
- pi.idem_semiring
- pi.idem_comm_semiring
- pi.kleene_algebra
- encodable.fin_pi
- small_Pi
- module.finite.pi
- direct_sum.has_coe_to_fun
- pi.algebra
- pi.has_star
- pi.has_trivial_star
- pi.has_involutive_star
- pi.star_semigroup
- pi.star_add_monoid
- pi.star_ring
- pi.star_module
- module.free.pi
- is_noetherian_pi
- finite_dimensional.finite_dimensional_pi'
- Pi.topological_space
- Pi.discrete_topology
- topological_space.pi.first_countable_topology
- topological_space.pi.second_countable_topology
- pi.compact_space
- pi.locally_compact_space_of_finite
- pi.locally_compact_space
- pi.sigma_compact_space
- pi.preconnected_space
- pi.connected_space
- pi.totally_disconnected_space
- pi.t0_space
- pi.t1_space
- Pi.t2_space
- pi.regular_space
- pi.t3_space
- pi.order_closed_topology
- Pi.uniform_space
- Pi.complete
- Pi.separated
- pi.add_torsor
- pi.has_continuous_const_smul
- pi.has_continuous_const_vadd
- pi.has_continuous_smul
- pi.has_continuous_vadd
- pi.has_continuous_mul
- pi.has_continuous_add
- pi.has_continuous_inv
- pi.has_continuous_neg
- pi.topological_group
- pi.topological_add_group
- pi.has_continuous_star
- pi.topological_semiring
- pi.topological_ring
- pi.Sup_convergence_class
- pi.Inf_convergence_class
- pi.compact_Icc_space
- pi.ordered_comm_monoid
- pi.ordered_add_comm_monoid
- pi.has_exists_mul_of_le
- pi.has_exists_add_of_le
- pi.canonically_ordered_monoid
- pi.canonically_ordered_add_monoid
- pi.ordered_cancel_comm_monoid
- pi.ordered_cancel_add_comm_monoid
- pi.ordered_comm_group
- pi.ordered_add_comm_group
- pi.ordered_semiring
- pi.ordered_comm_semiring
- pi.ordered_ring
- pi.ordered_comm_ring
- pi.ordered_smul
- pseudo_emetric_space_pi
- emetric_space_pi
- pi.bornology
- pi.bounded_space
- pseudo_metric_space_pi
- pi_proper_space
- metric_space_pi
- pi.has_isometric_smul
- pi.has_isometric_vadd
- pi.has_isometric_smul'
- pi.has_isometric_vadd'
- pi.has_isometric_smul''
- pi.has_isometric_vadd''
- pi.seminormed_group
- pi.seminormed_add_group
- pi.seminormed_comm_group
- pi.seminormed_add_comm_group
- pi.normed_group
- pi.normed_add_group
- pi.normed_comm_group
- pi.normed_add_comm_group
- pi.norm_one_class
- pi.non_unital_semi_normed_ring
- pi.semi_normed_ring
- pi.non_unital_normed_ring
- pi.normed_ring
- pi.normed_space
- pi.normed_algebra
- pi.star_ring'
- pi.cstar_ring
- path.has_uncurry_path
- continuous_multilinear_map.continuous_map_class
- category_theory.pi
- category_theory.pi'
- category_theory.groupoid_pi
- pi.has_variable_names
Instances for ∀ a : α, β a
- forall_prop_decidable
- list.decidable_ball
- option.decidable_forall_mem
- bool.decidable_forall_bool
- pi.can_lift
- nat.decidable_ball_lt
- nat.decidable_forall_fin
- nat.decidable_ball_le
- set.can_lift
- nat.decidable_lo_hi
- nat.decidable_lo_hi_le
- list.can_lift
- multiset.can_lift
- multiset.decidable_dforall_multiset
- finset.decidable_dforall_finset
- finset.can_lift
- fintype.decidable_forall_fintype
- fintype.decidable_surjective_fintype
- finset.decidable_forall_of_decidable_subsets
- finset.decidable_forall_of_decidable_ssubsets
- nnreal.continuous_map.can_lift
Instances for α → β
- lift_fn
- lift_fn_range
- lift_fn_dom
- expr.has_coe_to_fun
- interaction_monad.monad
- interaction_monad.monad_fail
- tactic.alternative
- interactive.executor_tactic
- tactic.opt_to_tac
- tactic.ex_to_tac
- tactic.andthen_seq
- tactic.andthen_seq_focus
- lean.parser.alternative
- lean.parser.has_coe
- state_t.monad_run
- reader_t.monad_run
- smt_tactic.has_monad_lift
- smt_tactic.has_coe
- widget.component.has_coe_to_fun
- widget.tc.has_coe_to_fun
- thunk.has_reflect
- tactic.tactic.has_to_tactic_format
- function.has_uncurry_base
- function.has_uncurry_induction
- pi_subtype.can_lift'
- function.nontrivial
- one_hom.has_coe_to_fun
- zero_hom.has_coe_to_fun
- mul_hom.has_coe_to_fun
- add_hom.has_coe_to_fun
- monoid_hom.has_coe_to_fun
- add_monoid_hom.has_coe_to_fun
- monoid_with_zero_hom.has_coe_to_fun
- equiv.has_coe_to_fun
- equiv.function.bijective.can_lift
- mul_equiv.has_coe_to_fun
- add_equiv.has_coe_to_fun
- pi.generalized_boolean_algebra
- set.pi_set_coe.can_lift'
- non_unital_ring_hom.has_coe_to_fun
- ring_hom.has_coe_to_fun
- function.embedding.has_coe_to_fun
- function.injective.can_lift
- rel_hom.has_coe_to_fun
- rel_embedding.has_coe_to_fun
- rel_iso.has_coe_to_fun
- order_hom.has_coe_to_fun
- order_hom.monotone.can_lift
- tactic.abel.normal_expr.has_coe_to_fun
- ring_equiv.has_coe_to_fun
- mul_action_hom.has_coe_to_fun
- distrib_mul_action_hom.has_coe_to_fun
- mul_semiring_action_hom.has_coe_to_fun
- function.has_smul
- function.has_vadd
- function.smul_comm_class
- function.vadd_comm_class
- function.module
- function.no_zero_smul_divisors
- linear_map.has_coe_to_fun
- linear_equiv.has_coe_to_fun
- finset.pi_finset_coe.can_lift'
- top_hom.has_coe_to_fun
- bot_hom.has_coe_to_fun
- bounded_order_hom.has_coe_to_fun
- sup_hom.has_coe_to_fun
- inf_hom.has_coe_to_fun
- sup_bot_hom.has_coe_to_fun
- inf_top_hom.has_coe_to_fun
- lattice_hom.has_coe_to_fun
- bounded_lattice_hom.has_coe_to_fun
- pi_fin.has_repr
- pi_fin.reflect
- function.infinite_of_left
- function.infinite_of_right
- finsupp.has_coe_to_fun
- finsupp.can_lift
- absolute_value.has_coe_to_fun
- alg_hom.has_coe_to_fun
- alg_equiv.has_coe_to_fun
- non_unital_alg_hom.has_coe_to_fun
- con.has_coe_to_fun
- add_con.has_coe_to_fun
- omega_complete_partial_order.chain.has_coe_to_fun
- omega_complete_partial_order.continuous_hom.has_coe_to_fun
- Sup_hom.has_coe_to_fun
- Inf_hom.has_coe_to_fun
- frame_hom.has_coe_to_fun
- complete_lattice_hom.has_coe_to_fun
- tactic.ring.horner_expr.has_coe_to_fun
- encodable.fin_arrow
- encodable.fintype_arrow_of_encodable
- linear_pmap.has_coe_to_fun
- algebra.filtration.has_coe_to_fun
- monoid_algebra.has_coe_to_fun
- add_monoid_algebra.has_coe_to_fun
- ring_con.has_coe_to_fun
- function.algebra
- module.free.function
- is_noetherian_pi'
- valuation.has_coe_to_fun
- add_valuation.has_coe_to_fun
- principal_seg.has_coe_to_fun
- finite_dimensional.finite_dimensional_pi
- module.dual.has_coe_to_fun
- bilin_form.has_coe_to_fun
- multilinear_map.has_coe_to_fun
- alternating_map.fun_like
- alternating_map.has_coe_to_fun
- linear_map.general_linear_group.has_coe_to_fun
- matrix.special_linear_group.has_coe_to_fun
- matrix.general_linear_group.has_coe_to_fun
- quadratic_form.has_coe_to_fun
- function.compact_space
- function.locally_compact_space_of_finite
- function.locally_compact_space
- compact_exhaustion.has_coe_to_fun
- pi.order_closed_topology'
- homeomorph.has_coe_to_fun
- uniform_equiv.has_coe_to_fun
- continuous_map.has_coe_to_fun
- pi.has_continuous_mul'
- pi.has_continuous_add'
- pi.has_continuous_inv'
- pi.has_continuous_neg'
- pi.Sup_convergence_class'
- pi.Inf_convergence_class'
- pi.compact_Icc_space'
- pi.ordered_smul'
- pi.ordered_smul''
- cau_seq.has_coe_to_fun
- group_seminorm.has_coe_to_fun
- add_group_seminorm.has_coe_to_fun
- nonarch_add_group_seminorm.has_coe_to_fun
- group_norm.has_coe_to_fun
- add_group_norm.has_coe_to_fun
- nonarch_add_group_norm.has_coe_to_fun
- locally_bounded_map.has_coe_to_fun
- isometry_equiv.has_coe_to_fun
- normed_add_group_hom.has_coe_to_fun
- continuous_linear_map.to_fun
- continuous_linear_equiv.has_coe_to_fun
- linear_isometry.has_coe_to_fun
- linear_isometry_equiv.has_coe_to_fun
- non_unital_star_alg_hom.has_coe_to_fun
- star_alg_hom.has_coe_to_fun
- star_alg_equiv.has_coe_to_fun
- pi.cstar_ring'
- quadratic_form.isometry.has_coe_to_fun
- affine_map.has_coe_to_fun
- affine_equiv.has_coe_to_fun
- closure_operator.has_coe_to_fun
- lower_adjoint.has_coe_to_fun
- path.has_coe_to_fun
- affine_isometry.has_coe_to_fun
- affine_isometry_equiv.has_coe_to_fun
- local_equiv.has_coe_to_fun
- local_homeomorph.has_coe_to_fun
- seminorm.has_coe_to_fun
- continuous_multilinear_map.has_coe_to_fun
- thunk.has_variable_names
- tactic.has_variable_names
- char_p.pi
- char_p.pi'
- tactic.norm_fin.eval_fin_m.has_coe