Built with
doc-gen4, running Lean4.
Bubbles (
) indicate interactive fragments: hover for details, tap to reveal contents.
Use
Ctrl+↑Ctrl+↓to navigate,
Ctrl+🖱️to focus.
On Mac, use
Cmdinstead of
Ctrl.
/-
Copyright (c) 2015 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Leonardo de Moura, Mario Carneiro
! This file was ported from Lean 3 source module group_theory.perm.via_embedding
! leanprover-community/mathlib commit 9116dd6709f303dcf781632e15fdef382b0fc579
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.GroupTheory.Perm.Basic
import Mathlib.Logic.Equiv.Set
/-!
# `Equiv.Perm.viaEmbedding`, a noncomputable analogue of `Equiv.Perm.viaFintypeEmbedding`.
-/
variable {α β : Type _}
namespace Equiv
namespace Perm
variable (e : Perm α) (ι : α ↪ β)
open Classical
/-- Noncomputable version of `Equiv.Perm.viaFintypeEmbedding` that does not assume `Fintype` -/
noncomputable def viaEmbedding : Perm β :=
extendDomain e (ofInjective ι.1: {α : Sort ?u.50} → {β : Sort ?u.49} → (α ↪ β) → α → β
1 ι.2)
#align equiv.perm.via_embedding Equiv.Perm.viaEmbedding
theorem viaEmbedding_apply (x : α) : e.viaEmbedding ι (ι x) = ι (e x) :=
extendDomain_apply_image e (ofInjective ι.1: {α : Sort ?u.574} → {β : Sort ?u.573} → (α ↪ β) → α → β
1 ι.2) x
#align equiv.perm.via_embedding_apply Equiv.Perm.viaEmbedding_apply: ∀ {α : Type u_2} {β : Type u_1} (e : Perm α) (ι : α ↪ β) (x : α), ↑(viaEmbedding e ι) (↑ι x) = ↑ι (↑e x)
Equiv.Perm.viaEmbedding_apply
theorem viaEmbedding_apply_of_not_mem (x : β) (hx : x ∉ Set.range: {α : Type ?u.652} → {ι : Sort ?u.651} → (ι → α) → Set α
Set.range ι) : e.viaEmbedding ι x = x :=
extendDomain_apply_not_subtype e (ofInjective ι.1: {α : Sort ?u.919} → {β : Sort ?u.918} → (α ↪ β) → α → β
1 ι.2) hx
#align equiv.perm.via_embedding_apply_of_not_mem Equiv.Perm.viaEmbedding_apply_of_not_mem
/-- `viaEmbedding` as a group homomorphism -/
noncomputable def viaEmbeddingHom : Perm α →* Perm β :=
extendDomainHom (ofInjective ι.1: {α : Sort ?u.1643} → {β : Sort ?u.1642} → (α ↪ β) → α → β
1 ι.2)
#align equiv.perm.via_embedding_hom Equiv.Perm.viaEmbeddingHom
theorem viaEmbeddingHom_apply : viaEmbeddingHom ι e = viaEmbedding e ι :=
rfl: ∀ {α : Sort ?u.2249} {a : α}, a = a
rfl
#align equiv.perm.via_embedding_hom_apply Equiv.Perm.viaEmbeddingHom_apply
theorem viaEmbeddingHom_injective : Function.Injective: {α : Sort ?u.2294} → {β : Sort ?u.2293} → (α → β) → Prop
Function.Injective (viaEmbeddingHom ι) :=
extendDomainHom_injective (ofInjective ι.1: {α : Sort ?u.2840} → {β : Sort ?u.2839} → (α ↪ β) → α → β
1 ι.2)
#align equiv.perm.via_embedding_hom_injective Equiv.Perm.viaEmbeddingHom_injective
end Perm
end Equiv