General operations on functions #
@[reducible]
def
function.swap
{α : Sort u₁}
{β : Sort u₂}
{φ : α → β → Sort u₃}
(f : Π (x : α) (y : β), φ x y)
(y : β)
(x : α) :
φ x y
Equations
- function.swap f = λ (y : β) (x : α), f x y
@[reducible]
Equations
- function.app f x = f x
theorem
function.comp_const_right
{α : Sort u₁}
{β : Sort u₂}
{φ : Sort u₃}
(f : β → φ)
(b : β) :
f ∘ function.const α b = function.const α (f b)
A function f : α → β
is called injective if f x = f y
implies x = y
.
Instances for function.injective
theorem
function.injective.comp
{α : Sort u₁}
{β : Sort u₂}
{φ : Sort u₃}
{g : β → φ}
{f : α → β}
(hg : function.injective g)
(hf : function.injective f) :
function.injective (g ∘ f)
theorem
function.surjective.comp
{α : Sort u₁}
{β : Sort u₂}
{φ : Sort u₃}
{g : β → φ}
{f : α → β}
(hg : function.surjective g)
(hf : function.surjective f) :
function.surjective (g ∘ f)
A function is called bijective if it is both injective and surjective.
Equations
Instances for function.bijective
theorem
function.bijective.comp
{α : Sort u₁}
{β : Sort u₂}
{φ : Sort u₃}
{g : β → φ}
{f : α → β} :
function.bijective g → function.bijective f → function.bijective (g ∘ f)
left_inverse g f
means that g is a left inverse to f. That is, g ∘ f = id
.
Equations
- function.left_inverse g f = ∀ (x : α), g (f x) = x
Instances for function.left_inverse
has_left_inverse f
means that f
has an unspecified left inverse.
Equations
- function.has_left_inverse f = ∃ (finv : β → α), function.left_inverse finv f
right_inverse g f
means that g is a right inverse to f. That is, f ∘ g = id
.
Equations
Instances for function.right_inverse
has_right_inverse f
means that f
has an unspecified right inverse.
Equations
- function.has_right_inverse f = ∃ (finv : β → α), function.right_inverse finv f
theorem
function.right_inverse_of_injective_of_left_inverse
{α : Sort u₁}
{β : Sort u₂}
{f : α → β}
{g : β → α}
(injf : function.injective f)
(lfg : function.left_inverse f g) :
theorem
function.right_inverse.surjective
{α : Sort u₁}
{β : Sort u₂}
{f : α → β}
{g : β → α}
(h : function.right_inverse g f) :
theorem
function.left_inverse_of_surjective_of_right_inverse
{α : Sort u₁}
{β : Sort u₂}
{f : α → β}
{g : β → α}
(surjf : function.surjective f)
(rfg : function.right_inverse f g) :
@[simp]
theorem
function.curry_uncurry
{α : Type u₁}
{β : Type u₂}
{φ : Type u₃}
(f : α → β → φ) :
function.curry (function.uncurry f) = f
@[simp]
theorem
function.uncurry_curry
{α : Type u₁}
{β : Type u₂}
{φ : Type u₃}
(f : α × β → φ) :
function.uncurry (function.curry f) = f
@[protected]
theorem
function.left_inverse.id
{α : Type u₁}
{β : Type u₂}
{g : β → α}
{f : α → β}
(h : function.left_inverse g f) :
@[protected]
theorem
function.right_inverse.id
{α : Type u₁}
{β : Type u₂}
{g : β → α}
{f : α → β}
(h : function.right_inverse g f) :