Documentation

Mathlib.Data.Fintype.OfMap

Constructors for Fintype #

This file contains basic constructors for Fintype instances, given maps from/to finite types.

Main results #

def Fintype.ofMultiset {α : Type u_1} [DecidableEq α] (s : Multiset α) (H : ∀ (x : α), x s) :

Construct a proof of Fintype α from a universal multiset

Equations
def Fintype.ofList {α : Type u_1} [DecidableEq α] (l : List α) (H : ∀ (x : α), x l) :

Construct a proof of Fintype α from a universal list

Equations
def Fintype.ofBijective {α : Type u_1} {β : Type u_2} [Fintype α] (f : αβ) (H : Function.Bijective f) :

If f : α → β is a bijection and α is a fintype, then β is also a fintype.

Equations
def Fintype.ofSurjective {α : Type u_1} {β : Type u_2} [DecidableEq β] [Fintype α] (f : αβ) (H : Function.Surjective f) :

If f : α → β is a surjection and α is a fintype, then β is also a fintype.

Equations
noncomputable def Fintype.ofInjective {α : Type u_1} {β : Type u_2} [Fintype β] (f : αβ) (H : Function.Injective f) :

Given an injective function to a fintype, the domain is also a fintype. This is noncomputable because injectivity alone cannot be used to construct preimages.

Equations
def Fintype.ofEquiv {β : Type u_2} (α : Type u_4) [Fintype α] (f : α β) :

If f : α ≃ β and α is a fintype, then β is also a fintype.

Equations
def Fintype.ofSubsingleton {α : Type u_1} (a : α) [Subsingleton α] :

Any subsingleton type with a witness is a fintype (with one term).

Equations
def Fintype.ofIsEmpty {α : Type u_1} [IsEmpty α] :

An empty type is a fintype. Not registered as an instance, to make sure that there aren't two conflicting Fintype ι instances around when casing over whether a fintype ι is empty or not.

Equations

Note: this lemma is specifically about Fintype.ofIsEmpty. For a statement about arbitrary Fintype instances, use Finset.univ_eq_empty.