structure
StrictBijectiveOn
{α : Type u_1}
{β : Type u_2}
(pa : α → Prop)
(pb : β → Prop)
(f : α → β)
(f' : β → α)
extends BijectiveOn pa pb f f' :
- cnd_of_right {x : α} : pb (f x) → pa x
- cnd_of_left {y : β} : pa (f' y) → pb y
Instances For
Equations
- Function.fixNCnd f x k = Function.IsFixedPt f (f^[k] x)
Instances For
Equations
- Function.fixN f x = Classical.epsilon fun (y : ℕ) => Function.fixNCnd f x y
Instances For
Equations
- Function.fix f x = f^[Function.fixN f x] x
Instances For
Equations
- Function.fixCnd f x k = (Function.fix f x = f^[k] x ∧ f (Function.fix f x) = Function.fix f x)
Instances For
@[simp]
@[simp]
Equations
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
fn_swap_eq_of_eq_right
{α : Type u_1}
{β : Type u_2}
[DecidableEq α]
{a b : α}
{f : α → β}
:
theorem
fn_set_eq_of_ne
{α : Type u_1}
{β : Type u_2}
[DecidableEq α]
{a : α}
{b : β}
{f : α → β}
{x : α}
(hx : x ≠ a)
:
theorem
fn_set_fn_set_eq_fn_swap
{α : Type u_1}
{β : Type u_2}
[DecidableEq α]
{a b : α}
{f : α → β}
:
theorem
fn_set_twice_same
{α : Type u_1}
{β : Type u_2}
[DecidableEq α]
{f : α → β}
{a : α}
{b₁ b₂ : β}
:
theorem
BijectiveOn.cnd_right
{α : Type u_1}
{β : Type u_2}
{pa : α → Prop}
{pb : β → Prop}
{f : α → β}
{f' : β → α}
{H : BijectiveOn pa pb f f'}
{x : α}
(h : pa x)
:
pb (f x)
theorem
BijectiveOn.cnd_left
{α : Type u_1}
{β : Type u_2}
{pa : α → Prop}
{pb : β → Prop}
{f : α → β}
{f' : β → α}
{H : BijectiveOn pa pb f f'}
{y : β}
(h : pb y)
:
pa (f' y)
theorem
BijectiveOn.cancel_left
{α : Type u_1}
{β : Type u_2}
{pa : α → Prop}
{pb : β → Prop}
{f : α → β}
{f' : β → α}
{H : BijectiveOn pa pb f f'}
{x : α}
(h : pa x)
:
theorem
BijectiveOn.cancel_right
{α : Type u_1}
{β : Type u_2}
{pa : α → Prop}
{pb : β → Prop}
{f : α → β}
{f' : β → α}
{H : BijectiveOn pa pb f f'}
{y : β}
(h : pb y)
:
theorem
BijectiveOn.symm
{α : Type u_1}
{β : Type u_2}
{pa : α → Prop}
{pb : β → Prop}
{f : α → β}
{f' : β → α}
{H : BijectiveOn pa pb f f'}
:
BijectiveOn pb pa f' f
@[simp]
theorem
StrictBijectiveOn.symm
{α : Type u_1}
{β : Type u_2}
{pa : α → Prop}
{pb : β → Prop}
{f : α → β}
{f' : β → α}
{H : StrictBijectiveOn pa pb f f'}
:
StrictBijectiveOn pb pa f' f
@[simp]
theorem
Equiv.mk_symm
{α : Type u_1}
{β : Type u_2}
{f : α → β}
{g : β → α}
{h₁ : Function.LeftInverse g f}
{h₂ : Function.RightInverse g f}
:
Equations
- mkFinFn f = Nat.recAux (motive := fun {n : ℕ} => {α : Fin n → Type ?u.2} → (((n : Fin n) → α n) → β) → FinFn α β) (fun {α : Fin 0 → Type ?u.2} (f : ((n : Fin 0) → α n) → β) => { down := f fun (a : Fin 0) => nomatch a }) (fun (n : ℕ) (a : {α : Fin n → Type ?u.2} → (((n : Fin n) → α n) → β) → FinFn α β) {α : Fin (n + 1) → Type ?u.2} (f : ((n : Fin (n + 1)) → α n) → β) (x : α 0) => a fun (ps : (n_1 : Fin n) → Fin.casesOn n_1 fun (k : ℕ) (hk : k < n) => α ⟨k + 1, ⋯⟩) => f fun (n_1 : Fin (n + 1)) => Fin.casesOn n_1 fun (k : ℕ) (hk : k < n + 1) => Nat.casesAuxOn (motive := fun (a : ℕ) => k = a → α ⟨k, hk⟩) k (fun (h : k = 0) => Eq.ndrec (motive := fun (k : ℕ) => (hk : k < n + 1) → α ⟨k, hk⟩) (fun (hk : 0 < n + 1) => x) ⋯ hk) (fun (n_2 : ℕ) (h : k = n_2 + 1) => Eq.ndrec (motive := fun (k : ℕ) => (hk : k < n + 1) → α ⟨k, hk⟩) (fun (hk : n_2 + 1 < n + 1) => ⋯.mpr (ps ⟨n_2, ⋯⟩)) ⋯ hk) ⋯) n f