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) 2018 Chris Hughes. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Chris Hughes

! This file was ported from Lean 3 source module group_theory.group_action.basic
! leanprover-community/mathlib commit f93c11933efbc3c2f0299e47b8ff83e9b539cbf6
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Data.Fintype.Card
import Mathlib.GroupTheory.GroupAction.Defs
import Mathlib.GroupTheory.GroupAction.Group
import Mathlib.Data.Setoid.Basic
import Mathlib.Data.Set.Pointwise.SMul
import Mathlib.GroupTheory.Subgroup.Basic

/-!
# Basic properties of group actions

This file primarily concerns itself with orbits, stabilizers, and other objects defined in terms of
actions. Despite this file being called `basic`, low-level helper lemmas for algebraic manipulation
of `•` belong elsewhere.

## Main definitions

* `MulAction.orbit`
* `MulAction.fixedPoints`
* `MulAction.fixedBy`
* `MulAction.stabilizer`

-/


universe u v w

variable {
α: Type u
α
:
Type u: Type (u+1)
Type u
} {
β: Type v
β
:
Type v: Type (v+1)
Type v
} {
γ: Type w
γ
:
Type w: Type (w+1)
Type w
} open Pointwise open Function namespace MulAction variable (
α: ?m.14
α
) [
Monoid: Type ?u.11628 → Type ?u.11628
Monoid
α: ?m.14
α
] [
MulAction: (α : Type ?u.2725) → Type ?u.2724 → [inst : Monoid α] → Type (max?u.2725?u.2724)
MulAction
α: Type u
α
β: Type v
β
] /-- The orbit of an element under an action. -/ @[
to_additive: (α : Type u) → {β : Type v} → [inst : AddMonoid α] → [inst : AddAction α β] → βSet β
to_additive
"The orbit of an element under an action."] def
orbit: (α : Type u) → {β : Type v} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
(
b: β
b
:
β: Type v
β
) :=
Set.range: {α : Type ?u.61} → {ι : Sort ?u.60} → (ια) → Set α
Set.range
fun
x: α
x
:
α: Type u
α
=>
x: α
x
b: β
b
#align mul_action.orbit
MulAction.orbit: (α : Type u) → {β : Type v} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
MulAction.orbit
#align add_action.orbit
AddAction.orbit: (α : Type u) → {β : Type v} → [inst : AddMonoid α] → [inst : AddAction α β] → βSet β
AddAction.orbit
variable {
α: ?m.884
α
} @[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] {b₁ b₂ : β}, b₂ AddAction.orbit α b₁ x, x +ᵥ b₁ = b₂
to_additive
] theorem
mem_orbit_iff: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] {b₁ b₂ : β}, b₂ orbit α b₁ x, x b₁ = b₂
mem_orbit_iff
{
b₁: β
b₁
b₂: β
b₂
:
β: Type v
β
} :
b₂: β
b₂
orbit: (α : Type ?u.919) → {β : Type ?u.918} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b₁: β
b₁
↔ ∃
x: α
x
:
α: Type u
α
,
x: α
x
b₁: β
b₁
=
b₂: β
b₂
:=
Iff.rfl: ∀ {a : Prop}, a a
Iff.rfl
#align mul_action.mem_orbit_iff
MulAction.mem_orbit_iff: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] {b₁ b₂ : β}, b₂ orbit α b₁ x, x b₁ = b₂
MulAction.mem_orbit_iff
#align add_action.mem_orbit_iff
AddAction.mem_orbit_iff: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] {b₁ b₂ : β}, b₂ AddAction.orbit α b₁ x, x +ᵥ b₁ = b₂
AddAction.mem_orbit_iff
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (b : β) (x : α), x +ᵥ b AddAction.orbit α b
to_additive
(attr := simp)] theorem
mem_orbit: ∀ (b : β) (x : α), x b orbit α b
mem_orbit
(
b: β
b
:
β: Type v
β
) (
x: α
x
:
α: Type u
α
) :
x: α
x
b: β
b
orbit: (α : Type ?u.2529) → {β : Type ?u.2528} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:= ⟨
x: α
x
,
rfl: ∀ {α : Sort ?u.2601} {a : α}, a = a
rfl
#align mul_action.mem_orbit
MulAction.mem_orbit: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] (b : β) (x : α), x b orbit α b
MulAction.mem_orbit
#align add_action.mem_orbit
AddAction.mem_orbit: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (b : β) (x : α), x +ᵥ b AddAction.orbit α b
AddAction.mem_orbit
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (b : β), b AddAction.orbit α b
to_additive
(attr := simp)] theorem
mem_orbit_self: ∀ (b : β), b orbit α b
mem_orbit_self
(
b: β
b
:
β: Type v
β
) :
b: β
b
orbit: (α : Type ?u.2759) → {β : Type ?u.2758} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:= ⟨
1: ?m.2838
1
,

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Monoid α

inst✝: MulAction α β

b: β


(fun x => x b) 1 = b

Goals accomplished! 🐙
#align mul_action.mem_orbit_self
MulAction.mem_orbit_self: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] (b : β), b orbit α b
MulAction.mem_orbit_self
#align add_action.mem_orbit_self
AddAction.mem_orbit_self: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (b : β), b AddAction.orbit α b
AddAction.mem_orbit_self
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (b : β), Set.Nonempty (AddAction.orbit α b)
to_additive
] theorem
orbit_nonempty: ∀ (b : β), Set.Nonempty (orbit α b)
orbit_nonempty
(
b: β
b
:
β: Type v
β
) :
Set.Nonempty: {α : Type ?u.3457} → Set αProp
Set.Nonempty
(
orbit: (α : Type ?u.3460) → {β : Type ?u.3459} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
) :=
Set.range_nonempty: ∀ {α : Type ?u.3517} {ι : Sort ?u.3516} [h : Nonempty ι] (f : ια), Set.Nonempty (Set.range f)
Set.range_nonempty
_: ?m.3519?m.3518
_
#align mul_action.orbit_nonempty
MulAction.orbit_nonempty: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] (b : β), Set.Nonempty (orbit α b)
MulAction.orbit_nonempty
#align add_action.orbit_nonempty
AddAction.orbit_nonempty: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (b : β), Set.Nonempty (AddAction.orbit α b)
AddAction.orbit_nonempty
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (a : α) (b : β), Set.MapsTo ((fun x x_1 => x +ᵥ x_1) a) (AddAction.orbit α b) (AddAction.orbit α b)
to_additive
] theorem
mapsTo_smul_orbit: ∀ (a : α) (b : β), Set.MapsTo ((fun x x_1 => x x_1) a) (orbit α b) (orbit α b)
mapsTo_smul_orbit
(
a: α
a
:
α: Type u
α
) (
b: β
b
:
β: Type v
β
) :
Set.MapsTo: {α : Type ?u.4487} → {β : Type ?u.4486} → (αβ) → Set αSet βProp
Set.MapsTo
(
(· • ·): αββ
(· • ·)
a: α
a
) (
orbit: (α : Type ?u.4715) → {β : Type ?u.4714} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
) (
orbit: (α : Type ?u.4772) → {β : Type ?u.4771} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
) :=
Set.range_subset_iff: ∀ {α : Type ?u.5519} {ι : Sort ?u.5520} {f : ια} {s : Set α}, Set.range f s ∀ (y : ι), f y s
Set.range_subset_iff
.
2: ∀ {a b : Prop}, (a b) → ba
2
fun
a': ?m.5553
a'
=> ⟨
a: α
a
*
a': ?m.5553
a'
,
mul_smul: ∀ {α : Type ?u.6288} {β : Type ?u.6287} [inst : Monoid α] [self : MulAction α β] (x y : α) (b : β), (x * y) b = x y b
mul_smul
_: ?m.6289
_
_: ?m.6289
_
_: ?m.6290
_
#align mul_action.maps_to_smul_orbit
MulAction.mapsTo_smul_orbit: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), Set.MapsTo ((fun x x_1 => x x_1) a) (orbit α b) (orbit α b)
MulAction.mapsTo_smul_orbit
#align add_action.maps_to_vadd_orbit
AddAction.mapsTo_vadd_orbit: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (a : α) (b : β), Set.MapsTo ((fun x x_1 => x +ᵥ x_1) a) (AddAction.orbit α b) (AddAction.orbit α b)
AddAction.mapsTo_vadd_orbit
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (a : α) (b : β), a +ᵥ AddAction.orbit α b AddAction.orbit α b
to_additive
] theorem
smul_orbit_subset: ∀ (a : α) (b : β), a orbit α b orbit α b
smul_orbit_subset
(
a: α
a
:
α: Type u
α
) (
b: β
b
:
β: Type v
β
) :
a: α
a
orbit: (α : Type ?u.6487) → {β : Type ?u.6486} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
orbit: (α : Type ?u.7262) → {β : Type ?u.7261} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:= (
mapsTo_smul_orbit: ∀ {α : Type ?u.7302} {β : Type ?u.7301} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), Set.MapsTo ((fun x x_1 => x x_1) a) (orbit α b) (orbit α b)
mapsTo_smul_orbit
a: α
a
b: β
b
).
image_subset: ∀ {α : Type ?u.7307} {β : Type ?u.7308} {s : Set α} {t : Set β} {f : αβ}, Set.MapsTo f s tf '' s t
image_subset
#align mul_action.smul_orbit_subset
MulAction.smul_orbit_subset: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), a orbit α b orbit α b
MulAction.smul_orbit_subset
#align add_action.vadd_orbit_subset
AddAction.vadd_orbit_subset: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (a : α) (b : β), a +ᵥ AddAction.orbit α b AddAction.orbit α b
AddAction.vadd_orbit_subset
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (a : α) (b : β), AddAction.orbit α (a +ᵥ b) AddAction.orbit α b
to_additive
] theorem
orbit_smul_subset: ∀ (a : α) (b : β), orbit α (a b) orbit α b
orbit_smul_subset
(
a: α
a
:
α: Type u
α
) (
b: β
b
:
β: Type v
β
) :
orbit: (α : Type ?u.7419) → {β : Type ?u.7418} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
(
a: α
a
b: β
b
) ⊆
orbit: (α : Type ?u.8191) → {β : Type ?u.8190} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:=
Set.range_subset_iff: ∀ {α : Type ?u.8231} {ι : Sort ?u.8232} {f : ια} {s : Set α}, Set.range f s ∀ (y : ι), f y s
Set.range_subset_iff
.
2: ∀ {a b : Prop}, (a b) → ba
2
fun
a': ?m.8256
a'
=>
mul_smul: ∀ {α : Type ?u.8259} {β : Type ?u.8258} [inst : Monoid α] [self : MulAction α β] (x y : α) (b : β), (x * y) b = x y b
mul_smul
a': ?m.8256
a'
a: α
a
b: β
b
mem_orbit: ∀ {α : Type ?u.8265} {β : Type ?u.8264} [inst : Monoid α] [inst_1 : MulAction α β] (b : β) (x : α), x b orbit α b
mem_orbit
_: ?m.8267
_
_: ?m.8266
_
#align mul_action.orbit_smul_subset
MulAction.orbit_smul_subset: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), orbit α (a b) orbit α b
MulAction.orbit_smul_subset
#align add_action.orbit_vadd_subset
AddAction.orbit_vadd_subset: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] (a : α) (b : β), AddAction.orbit α (a +ᵥ b) AddAction.orbit α b
AddAction.orbit_vadd_subset
@[
to_additive: {α : Type u} → {β : Type v} → [inst : AddMonoid α] → [inst_1 : AddAction α β] → {b : β} → AddAction α ↑(AddAction.orbit α b)
to_additive
]
instance: {α : Type u} → {β : Type v} → [inst : Monoid α] → [inst_1 : MulAction α β] → {b : β} → MulAction α ↑(orbit α b)
instance
{
b: β
b
:
β: Type v
β
} :
MulAction: (α : Type ?u.8446) → Type ?u.8445 → [inst : Monoid α] → Type (max?u.8446?u.8445)
MulAction
α: Type u
α
(
orbit: (α : Type ?u.8448) → {β : Type ?u.8447} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
) where smul
a: ?m.8646
a
:= (
mapsTo_smul_orbit: ∀ {α : Type ?u.8649} {β : Type ?u.8648} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), Set.MapsTo ((fun x x_1 => x x_1) a) (orbit α b) (orbit α b)
mapsTo_smul_orbit
a: ?m.8646
a
b: β
b
).
restrict: {α : Type ?u.8655} → {β : Type ?u.8654} → (f : αβ) → (s : Set α) → (t : Set β) → Set.MapsTo f s tst
restrict
_: ?m.8663?m.8664
_
_: Set ?m.8663
_
_: Set ?m.8664
_
one_smul
a: ?m.8690
a
:=
Subtype.ext: ∀ {α : Sort ?u.8692} {p : αProp} {a1 a2 : { x // p x }}, a1 = a2a1 = a2
Subtype.ext
(
one_smul: ∀ (M : Type ?u.8707) {α : Type ?u.8706} [inst : Monoid M] [inst_1 : MulAction M α] (b : α), 1 b = b
one_smul
α: Type u
α
(
a: ?m.8690
a
:
β: Type v
β
)) mul_smul
a: ?m.8793
a
a': ?m.8796
a'
b': ?m.8799
b'
:=
Subtype.ext: ∀ {α : Sort ?u.8801} {p : αProp} {a1 a2 : { x // p x }}, a1 = a2a1 = a2
Subtype.ext
(
mul_smul: ∀ {α : Type ?u.8812} {β : Type ?u.8811} [inst : Monoid α] [self : MulAction α β] (x y : α) (b : β), (x * y) b = x y b
mul_smul
a: ?m.8793
a
a': ?m.8796
a'
(
b': ?m.8799
b'
:
β: Type v
β
)) @[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] {b : β} {a : α} {b' : ↑(AddAction.orbit α b)}, ↑(a +ᵥ b') = a +ᵥ b'
to_additive
(attr := simp)] theorem
orbit.coe_smul: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] {b : β} {a : α} {b' : ↑(orbit α b)}, ↑(a b') = a b'
orbit.coe_smul
{
b: β
b
:
β: Type v
β
} {
a: α
a
:
α: Type u
α
} {
b': ↑(orbit α b)
b'
:
orbit: (α : Type ?u.9327) → {β : Type ?u.9326} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
} : ↑(
a: α
a
b': ↑(orbit α b)
b'
) =
a: α
a
• (
b': ↑(orbit α b)
b'
:
β: Type v
β
) :=
rfl: ∀ {α : Sort ?u.11531} {a : α}, a = a
rfl
#align mul_action.orbit.coe_smul
MulAction.orbit.coe_smul: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] {b : β} {a : α} {b' : ↑(orbit α b)}, ↑(a b') = a b'
MulAction.orbit.coe_smul
#align add_action.orbit.coe_vadd
AddAction.orbit.coe_vadd: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] {b : β} {a : α} {b' : ↑(AddAction.orbit α b)}, ↑(a +ᵥ b') = a +ᵥ b'
AddAction.orbit.coe_vadd
variable (
α: ?m.11644
α
) (
β: ?m.11647
β
) /-- The set of elements fixed under the whole action. -/ @[
to_additive: (α : Type u) → (β : Type v) → [inst : AddMonoid α] → [inst : AddAction α β] → Set β
to_additive
"The set of elements fixed under the whole action."] def
fixedPoints: (α : Type u) → (β : Type v) → [inst : Monoid α] → [inst : MulAction α β] → Set β
fixedPoints
:
Set: Type ?u.11672 → Type ?u.11672
Set
β: Type v
β
:= {
b: β
b
:
β: Type v
β
| ∀
x: α
x
:
α: Type u
α
,
x: α
x
b: β
b
=
b: β
b
} #align mul_action.fixed_points
MulAction.fixedPoints: (α : Type u) → (β : Type v) → [inst : Monoid α] → [inst : MulAction α β] → Set β
MulAction.fixedPoints
#align add_action.fixed_points
AddAction.fixedPoints: (α : Type u) → (β : Type v) → [inst : AddMonoid α] → [inst : AddAction α β] → Set β
AddAction.fixedPoints
/-- `fixedBy g` is the subfield of elements fixed by `g`. -/ @[
to_additive: (α : Type u) → (β : Type v) → [inst : AddMonoid α] → [inst : AddAction α β] → αSet β
to_additive
"`fixedBy g` is the subfield of elements fixed by `g`."] def
fixedBy: (α : Type u) → (β : Type v) → [inst : Monoid α] → [inst : MulAction α β] → αSet β
fixedBy
(
g: α
g
:
α: Type u
α
) :
Set: Type ?u.12491 → Type ?u.12491
Set
β: Type v
β
:= {
x: ?m.12500
x
|
g: α
g
x: ?m.12500
x
=
x: ?m.12500
x
} #align mul_action.fixed_by
MulAction.fixedBy: (α : Type u) → (β : Type v) → [inst : Monoid α] → [inst : MulAction α β] → αSet β
MulAction.fixedBy
#align add_action.fixed_by
AddAction.fixedBy: (α : Type u) → (β : Type v) → [inst : AddMonoid α] → [inst : AddAction α β] → αSet β
AddAction.fixedBy
@[
to_additive: ∀ (α : Type u) (β : Type v) [inst : AddMonoid α] [inst_1 : AddAction α β], AddAction.fixedPoints α β = Set.iInter fun g => AddAction.fixedBy α β g
to_additive
] theorem
fixed_eq_iInter_fixedBy: fixedPoints α β = Set.iInter fun g => fixedBy α β g
fixed_eq_iInter_fixedBy
:
fixedPoints: (α : Type ?u.13315) → (β : Type ?u.13314) → [inst : Monoid α] → [inst : MulAction α β] → Set β
fixedPoints
α: Type u
α
β: Type v
β
= ⋂
g: α
g
:
α: Type u
α
,
fixedBy: (α : Type ?u.13348) → (β : Type ?u.13347) → [inst : Monoid α] → [inst : MulAction α β] → αSet β
fixedBy
α: Type u
α
β: Type v
β
g: α
g
:=
Set.ext: ∀ {α : Type ?u.13360} {a b : Set α}, (∀ (x : α), x a x b) → a = b
Set.ext
fun
_: ?m.13369
_
=> ⟨fun
hx: ?m.13380
hx
=>
Set.mem_iInter: ∀ {α : Type ?u.13382} {ι : Sort ?u.13383} {x : α} {s : ιSet α}, (x Set.iInter fun i => s i) ∀ (i : ι), x s i
Set.mem_iInter
.
2: ∀ {a b : Prop}, (a b) → ba
2
fun
g: ?m.13409
g
=>
hx: ?m.13380
hx
g: ?m.13409
g
, fun
hx: ?m.13418
hx
g: ?m.13421
g
=> (
Set.mem_iInter: ∀ {α : Type ?u.13425} {ι : Sort ?u.13426} {x : α} {s : ιSet α}, (x Set.iInter fun i => s i) ∀ (i : ι), x s i
Set.mem_iInter
.
1: ∀ {a b : Prop}, (a b) → ab
1
hx: ?m.13418
hx
g: ?m.13421
g
:
_: Sort ?u.13423
_
)⟩ #align mul_action.fixed_eq_Inter_fixed_by
MulAction.fixed_eq_iInter_fixedBy: ∀ (α : Type u) (β : Type v) [inst : Monoid α] [inst_1 : MulAction α β], fixedPoints α β = Set.iInter fun g => fixedBy α β g
MulAction.fixed_eq_iInter_fixedBy
#align add_action.fixed_eq_Inter_fixed_by
AddAction.fixed_eq_iInter_fixedBy: ∀ (α : Type u) (β : Type v) [inst : AddMonoid α] [inst_1 : AddAction α β], AddAction.fixedPoints α β = Set.iInter fun g => AddAction.fixedBy α β g
AddAction.fixed_eq_iInter_fixedBy
variable {
α: ?m.13516
α
} @[
to_additive: ∀ {α : Type u} (β : Type v) [inst : AddMonoid α] [inst_1 : AddAction α β] {b : β}, b AddAction.fixedPoints α β ∀ (x : α), x +ᵥ b = b
to_additive
(attr := simp)] theorem
mem_fixedPoints: ∀ {b : β}, b fixedPoints α β ∀ (x : α), x b = b
mem_fixedPoints
{
b: β
b
:
β: Type v
β
} :
b: β
b
fixedPoints: (α : Type ?u.13549) → (β : Type ?u.13548) → [inst : Monoid α] → [inst : MulAction α β] → Set β
fixedPoints
α: Type u
α
β: Type v
β
↔ ∀
x: α
x
:
α: Type u
α
,
x: α
x
b: β
b
=
b: β
b
:=
Iff.rfl: ∀ {a : Prop}, a a
Iff.rfl
#align mul_action.mem_fixed_points
MulAction.mem_fixedPoints: ∀ {α : Type u} (β : Type v) [inst : Monoid α] [inst_1 : MulAction α β] {b : β}, b fixedPoints α β ∀ (x : α), x b = b
MulAction.mem_fixedPoints
#align add_action.mem_fixed_points
AddAction.mem_fixedPoints: ∀ {α : Type u} (β : Type v) [inst : AddMonoid α] [inst_1 : AddAction α β] {b : β}, b AddAction.fixedPoints α β ∀ (x : α), x +ᵥ b = b
AddAction.mem_fixedPoints
@[
to_additive: ∀ {α : Type u} (β : Type v) [inst : AddMonoid α] [inst_1 : AddAction α β] {g : α} {b : β}, b AddAction.fixedBy α β g g +ᵥ b = b
to_additive
(attr := simp)] theorem
mem_fixedBy: ∀ {α : Type u} (β : Type v) [inst : Monoid α] [inst_1 : MulAction α β] {g : α} {b : β}, b fixedBy α β g g b = b
mem_fixedBy
{
g: α
g
:
α: Type u
α
} {
b: β
b
:
β: Type v
β
} :
b: β
b
fixedBy: (α : Type ?u.14438) → (β : Type ?u.14437) → [inst : Monoid α] → [inst : MulAction α β] → αSet β
fixedBy
α: Type u
α
β: Type v
β
g: α
g
g: α
g
b: β
b
=
b: β
b
:=
Iff.rfl: ∀ {a : Prop}, a a
Iff.rfl
#align mul_action.mem_fixed_by
MulAction.mem_fixedBy: ∀ {α : Type u} (β : Type v) [inst : Monoid α] [inst_1 : MulAction α β] {g : α} {b : β}, b fixedBy α β g g b = b
MulAction.mem_fixedBy
#align add_action.mem_fixed_by
AddAction.mem_fixedBy: ∀ {α : Type u} (β : Type v) [inst : AddMonoid α] [inst_1 : AddAction α β] {g : α} {b : β}, b AddAction.fixedBy α β g g +ᵥ b = b
AddAction.mem_fixedBy
@[
to_additive: ∀ {α : Type u} (β : Type v) [inst : AddMonoid α] [inst_1 : AddAction α β] {b : β}, b AddAction.fixedPoints α β ∀ (b' : β), b' AddAction.orbit α bb' = b
to_additive
] theorem
mem_fixedPoints': ∀ {α : Type u} (β : Type v) [inst : Monoid α] [inst_1 : MulAction α β] {b : β}, b fixedPoints α β ∀ (b' : β), b' orbit α bb' = b
mem_fixedPoints'
{
b: β
b
:
β: Type v
β
} :
b: β
b
fixedPoints: (α : Type ?u.15331) → (β : Type ?u.15330) → [inst : Monoid α] → [inst : MulAction α β] → Set β
fixedPoints
α: Type u
α
β: Type v
β
↔ ∀
b': ?m.15370
b'
,
b': ?m.15370
b'
orbit: (α : Type ?u.15394) → {β : Type ?u.15393} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
b': ?m.15370
b'
=
b: β
b
:= ⟨fun
h: ?m.15453
h
_: ?m.15456
_
h₁: ?m.15459
h₁
=> let
x: α
x
,
hx: x b = x✝
hx
⟩ :=
mem_orbit_iff: ∀ {α : Type ?u.15462} {β : Type ?u.15461} [inst : Monoid α] [inst_1 : MulAction α β] {b₁ b₂ : β}, b₂ orbit α b₁ x, x b₁ = b₂
mem_orbit_iff
.
1: ∀ {a b : Prop}, (a b) → ab
1
h₁: ?m.15459
h₁
hx: x b = x✝
hx
h: ?m.15453
h
x: α
x
, fun
h: ?m.15660
h
_: ?m.15665
_
=>
h: ?m.15660
h
_: β
_
(
mem_orbit: ∀ {α : Type ?u.15672} {β : Type ?u.15671} [inst : Monoid α] [inst_1 : MulAction α β] (b : β) (x : α), x b orbit α b
mem_orbit
_: ?m.15674
_
_: ?m.15673
_
)⟩ #align mul_action.mem_fixed_points'
MulAction.mem_fixedPoints': ∀ {α : Type u} (β : Type v) [inst : Monoid α] [inst_1 : MulAction α β] {b : β}, b fixedPoints α β ∀ (b' : β), b' orbit α bb' = b
MulAction.mem_fixedPoints'
#align add_action.mem_fixed_points'
AddAction.mem_fixedPoints': ∀ {α : Type u} (β : Type v) [inst : AddMonoid α] [inst_1 : AddAction α β] {b : β}, b AddAction.fixedPoints α β ∀ (b' : β), b' AddAction.orbit α bb' = b
AddAction.mem_fixedPoints'
variable (
α: ?m.15926
α
) {
β: ?m.15929
β
} /-- The stabilizer of a point `b` as a submonoid of `α`. -/ @[
to_additive: (α : Type u) → {β : Type v} → [inst : AddMonoid α] → [inst_1 : AddAction α β] → βAddSubmonoid α
to_additive
"The stabilizer of a point `b` as an additive submonoid of `α`."] def
Stabilizer.submonoid: βSubmonoid α
Stabilizer.submonoid
(
b: β
b
:
β: Type v
β
) :
Submonoid: (M : Type ?u.15956) → [inst : MulOneClass M] → Type ?u.15956
Submonoid
α: Type u
α
where carrier := {
a: ?m.16592
a
|
a: ?m.16592
a
b: β
b
=
b: β
b
} one_mem' :=
one_smul: ∀ (M : Type ?u.19702) {α : Type ?u.19701} [inst : Monoid M] [inst_1 : MulAction M α] (b : α), 1 b = b
one_smul
_: Type ?u.19702
_
b: β
b
mul_mem' {
a: ?m.17324
a
a': ?m.17327
a'
} (
ha: a b = b
ha
:
a: ?m.17324
a
b: β
b
=
b: β
b
) (
hb: a' b = b
hb
:
a': ?m.17327
a'
b: β
b
=
b: β
b
) := show (
a: ?m.17324
a
*
a': ?m.17327
a'
) •
b: β
b
=
b: β
b
by
α: Type u

β: Type v

γ: Type w

inst✝¹: Monoid α

inst✝: MulAction α β

b: β

a, a': α

ha: a b = b

hb: a' b = b


(a * a') b = b
α: Type u

β: Type v

γ: Type w

inst✝¹: Monoid α

inst✝: MulAction α β

b: β

a, a': α

ha: a b = b

hb: a' b = b


a a' b = b
α: Type u

β: Type v

γ: Type w

inst✝¹: Monoid α

inst✝: MulAction α β

b: β

a, a': α

ha: a b = b

hb: a' b = b


(a * a') b = b
α: Type u

β: Type v

γ: Type w

inst✝¹: Monoid α

inst✝: MulAction α β

b: β

a, a': α

ha: a b = b

hb: a' b = b


a b = b
α: Type u

β: Type v

γ: Type w

inst✝¹: Monoid α

inst✝: MulAction α β

b: β

a, a': α

ha: a b = b

hb: a' b = b


(a * a') b = b
α: Type u

β: Type v

γ: Type w

inst✝¹: Monoid α

inst✝: MulAction α β

b: β

a, a': α

ha: a b = b

hb: a' b = b


b = b

Goals accomplished! 🐙
#align mul_action.stabilizer.submonoid
MulAction.Stabilizer.submonoid: (α : Type u) → {β : Type v} → [inst : Monoid α] → [inst_1 : MulAction α β] → βSubmonoid α
MulAction.Stabilizer.submonoid
#align add_action.stabilizer.add_submonoid
AddAction.Stabilizer.addSubmonoid: (α : Type u) → {β : Type v} → [inst : AddMonoid α] → [inst_1 : AddAction α β] → βAddSubmonoid α
AddAction.Stabilizer.addSubmonoid
@[
to_additive: ∀ (α : Type u) {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] {b : β} {a : α}, a AddAction.Stabilizer.addSubmonoid α b a +ᵥ b = b
to_additive
(attr := simp)] theorem
mem_stabilizer_submonoid_iff: ∀ {b : β} {a : α}, a Stabilizer.submonoid α b a b = b
mem_stabilizer_submonoid_iff
{
b: β
b
:
β: Type v
β
} {
a: α
a
:
α: Type u
α
} :
a: α
a
Stabilizer.submonoid: (α : Type ?u.20196) → {β : Type ?u.20195} → [inst : Monoid α] → [inst_1 : MulAction α β] → βSubmonoid α
Stabilizer.submonoid
α: Type u
α
b: β
b
a: α
a
b: β
b
=
b: β
b
:=
Iff.rfl: ∀ {a : Prop}, a a
Iff.rfl
#align mul_action.mem_stabilizer_submonoid_iff
MulAction.mem_stabilizer_submonoid_iff: ∀ (α : Type u) {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] {b : β} {a : α}, a Stabilizer.submonoid α b a b = b
MulAction.mem_stabilizer_submonoid_iff
#align add_action.mem_stabilizer_add_submonoid_iff
AddAction.mem_stabilizer_addSubmonoid_iff: ∀ (α : Type u) {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] {b : β} {a : α}, a AddAction.Stabilizer.addSubmonoid α b a +ᵥ b = b
AddAction.mem_stabilizer_addSubmonoid_iff
@[
to_additive: ∀ (α : Type u) {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] [inst_2 : AddAction.IsPretransitive α β] (x : β), AddAction.orbit α x = Set.univ
to_additive
] theorem
orbit_eq_univ: ∀ [inst : IsPretransitive α β] (x : β), orbit α x = Set.univ
orbit_eq_univ
[
IsPretransitive: (M : Type ?u.21119) → (α : Type ?u.21118) → [inst : SMul M α] → Prop
IsPretransitive
α: Type u
α
β: Type v
β
] (
x: β
x
:
β: Type v
β
) :
orbit: (α : Type ?u.21831) → {β : Type ?u.21830} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
x: β
x
=
Set.univ: {α : Type ?u.21850} → Set α
Set.univ
:= (
surjective_smul: ∀ (M : Type ?u.21886) {α : Type ?u.21887} [inst : SMul M α] [inst_1 : IsPretransitive M α] (x : α), Surjective fun c => c x
surjective_smul
α: Type u
α
x: β
x
).
range_eq: ∀ {α : Type ?u.22447} {ι : Sort ?u.22448} {f : ια}, Surjective fSet.range f = Set.univ
range_eq
#align mul_action.orbit_eq_univ
MulAction.orbit_eq_univ: ∀ (α : Type u) {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] [inst_2 : IsPretransitive α β] (x : β), orbit α x = Set.univ
MulAction.orbit_eq_univ
#align add_action.orbit_eq_univ
AddAction.orbit_eq_univ: ∀ (α : Type u) {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] [inst_2 : AddAction.IsPretransitive α β] (x : β), AddAction.orbit α x = Set.univ
AddAction.orbit_eq_univ
variable {
α: ?m.22523
α
} @[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] {a : β} [inst_2 : Fintype ↑(AddAction.orbit α a)], a AddAction.fixedPoints α β Fintype.card ↑(AddAction.orbit α a) = 1
to_additive
] theorem
mem_fixedPoints_iff_card_orbit_eq_one: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] {a : β} [inst_2 : Fintype ↑(orbit α a)], a fixedPoints α β Fintype.card ↑(orbit α a) = 1
mem_fixedPoints_iff_card_orbit_eq_one
{
a: β
a
:
β: Type v
β
} [
Fintype: Type ?u.22550 → Type ?u.22550
Fintype
(
orbit: (α : Type ?u.22552) → {β : Type ?u.22551} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
a: β
a
)] :
a: β
a
fixedPoints: (α : Type ?u.22745) → (β : Type ?u.22744) → [inst : Monoid α] → [inst : MulAction α β] → Set β
fixedPoints
α: Type u
α
β: Type v
β
Fintype.card: (α : Type ?u.22775) → [inst : Fintype α] →
Fintype.card
(
orbit: (α : Type ?u.22777) → {β : Type ?u.22776} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
a: β
a
) =
1: ?m.22944
1
:=

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


a fixedPoints α β Fintype.card ↑(orbit α a) = 1
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


a fixedPoints α β Fintype.card ↑(orbit α a) = 1
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


a fixedPoints α β x, ∀ (y : ↑(orbit α a)), y = x
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


a fixedPoints α β Fintype.card ↑(orbit α a) = 1
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


(∀ (x : α), x a = a) x, ∀ (y : ↑(orbit α a)), y = x
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


(∀ (x : α), x a = a) x, ∀ (y : ↑(orbit α a)), y = x
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


a fixedPoints α β Fintype.card ↑(orbit α a) = 1
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mp
(∀ (x : α), x a = a) → x, ∀ (y : ↑(orbit α a)), y = x
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mpr
(x, ∀ (y : ↑(orbit α a)), y = x) → ∀ (x : α), x a = a
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


a fixedPoints α β Fintype.card ↑(orbit α a) = 1
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mp
(∀ (x : α), x a = a) → x, ∀ (y : ↑(orbit α a)), y = x
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mp
(∀ (x : α), x a = a) → x, ∀ (y : ↑(orbit α a)), y = x
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mpr
(x, ∀ (y : ↑(orbit α a)), y = x) → ∀ (x : α), x a = a
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mp
(∀ (x : α), x a = a) → x, ∀ (y : ↑(orbit α a)), y = x

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)

h: ∀ (x : α), x a = a

x✝: ↑(orbit α a)

b: β

x: α

hx: (fun x => x a) x = b


{ val := b, property := (_ : y, (fun x => x a) y = b) } = { val := a, property := (_ : a orbit α a) }

Goals accomplished! 🐙

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


a fixedPoints α β Fintype.card ↑(orbit α a) = 1
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mpr
(x, ∀ (y : ↑(orbit α a)), y = x) → ∀ (x : α), x a = a
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mpr
(x, ∀ (y : ↑(orbit α a)), y = x) → ∀ (x : α), x a = a
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)

h: x, ∀ (y : ↑(orbit α a)), y = x

x: α


mpr
x a = a
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mpr
(x, ∀ (y : ↑(orbit α a)), y = x) → ∀ (x : α), x a = a
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)

x: α

z: β

hz: z orbit α a

hz₁: ∀ (y : ↑(orbit α a)), y = { val := z, property := hz }


mpr.intro.mk
x a = a
α: Type u

β: Type v

γ: Type w

inst✝²: Monoid α

inst✝¹: MulAction α β

a: β

inst✝: Fintype ↑(orbit α a)


mpr
(x, ∀ (y : ↑(orbit α a)), y = x) → ∀ (x : α), x a = a

Goals accomplished! 🐙
#align mul_action.mem_fixed_points_iff_card_orbit_eq_one
MulAction.mem_fixedPoints_iff_card_orbit_eq_one: ∀ {α : Type u} {β : Type v} [inst : Monoid α] [inst_1 : MulAction α β] {a : β} [inst_2 : Fintype ↑(orbit α a)], a fixedPoints α β Fintype.card ↑(orbit α a) = 1
MulAction.mem_fixedPoints_iff_card_orbit_eq_one
#align add_action.mem_fixed_points_iff_card_orbit_eq_zero
AddAction.mem_fixedPoints_iff_card_orbit_eq_zero: ∀ {α : Type u} {β : Type v} [inst : AddMonoid α] [inst_1 : AddAction α β] {a : β} [inst_2 : Fintype ↑(AddAction.orbit α a)], a AddAction.fixedPoints α β Fintype.card ↑(AddAction.orbit α a) = 1
AddAction.mem_fixedPoints_iff_card_orbit_eq_zero
end MulAction namespace MulAction variable (
α: ?m.25307
α
) variable [
Group: Type ?u.39776 → Type ?u.39776
Group
α: Type u
α
] [
MulAction: (α : Type ?u.52365) → Type ?u.52364 → [inst : Monoid α] → Type (max?u.52365?u.52364)
MulAction
α: Type u
α
β: Type v
β
] /-- The stabilizer of an element under an action, i.e. what sends the element to itself. A subgroup. -/ @[
to_additive: (α : Type u) → {β : Type v} → [inst : AddGroup α] → [inst_1 : AddAction α β] → βAddSubgroup α
to_additive
"The stabilizer of an element under an action, i.e. what sends the element to itself. An additive subgroup."] def
stabilizer: (α : Type u) → {β : Type v} → [inst : Group α] → [inst_1 : MulAction α β] → βSubgroup α
stabilizer
(
b: β
b
:
β: Type v
β
) :
Subgroup: (G : Type ?u.25910) → [inst : Group G] → Type ?u.25910
Subgroup
α: Type u
α
:= {
Stabilizer.submonoid: (α : Type ?u.25921) → {β : Type ?u.25920} → [inst : Monoid α] → [inst_1 : MulAction α β] → βSubmonoid α
Stabilizer.submonoid
α: Type u
α
b: β
b
with inv_mem' := fun {
a: ?m.26518
a
} (
ha: a b = b
ha
:
a: ?m.26518
a
b: β
b
=
b: β
b
) => show
a: ?m.26518
a
⁻¹ •
b: β
b
=
b: β
b
by
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

b: β

src✝:= Stabilizer.submonoid α b: Submonoid α

a: α

ha: a b = b


a⁻¹ b = b
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

b: β

src✝:= Stabilizer.submonoid α b: Submonoid α

a: α

ha: a b = b


b = a b
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

b: β

src✝:= Stabilizer.submonoid α b: Submonoid α

a: α

ha: a b = b


a⁻¹ b = b
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

b: β

src✝:= Stabilizer.submonoid α b: Submonoid α

a: α

ha: a b = b


b = b

Goals accomplished! 🐙
} #align mul_action.stabilizer
MulAction.stabilizer: (α : Type u) → {β : Type v} → [inst : Group α] → [inst_1 : MulAction α β] → βSubgroup α
MulAction.stabilizer
#align add_action.stabilizer
AddAction.stabilizer: (α : Type u) → {β : Type v} → [inst : AddGroup α] → [inst_1 : AddAction α β] → βAddSubgroup α
AddAction.stabilizer
variable {
α: ?m.29104
α
} @[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] {b : β} {a : α}, a AddAction.stabilizer α b a +ᵥ b = b
to_additive
(attr := simp)] theorem
mem_stabilizer_iff: ∀ {b : β} {a : α}, a stabilizer α b a b = b
mem_stabilizer_iff
{
b: β
b
:
β: Type v
β
} {
a: α
a
:
α: Type u
α
} :
a: α
a
stabilizer: (α : Type ?u.29416) → {β : Type ?u.29415} → [inst : Group α] → [inst_1 : MulAction α β] → βSubgroup α
stabilizer
α: Type u
α
b: β
b
a: α
a
b: β
b
=
b: β
b
:=
Iff.rfl: ∀ {a : Prop}, a a
Iff.rfl
#align mul_action.mem_stabilizer_iff
MulAction.mem_stabilizer_iff: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] {b : β} {a : α}, a stabilizer α b a b = b
MulAction.mem_stabilizer_iff
#align add_action.mem_stabilizer_iff
AddAction.mem_stabilizer_iff: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] {b : β} {a : α}, a AddAction.stabilizer α b a +ᵥ b = b
AddAction.mem_stabilizer_iff
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (a : α) (b : β), a +ᵥ AddAction.orbit α b = AddAction.orbit α b
to_additive
(attr := simp)] theorem
smul_orbit: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (a : α) (b : β), a orbit α b = orbit α b
smul_orbit
(
a: α
a
:
α: Type u
α
) (
b: β
b
:
β: Type v
β
) :
a: α
a
orbit: (α : Type ?u.30900) → {β : Type ?u.30899} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
=
orbit: (α : Type ?u.32169) → {β : Type ?u.32168} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:= (
smul_orbit_subset: ∀ {α : Type ?u.32179} {β : Type ?u.32178} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), a orbit α b orbit α b
smul_orbit_subset
a: α
a
b: β
b
).
antisymm: ∀ {α : Type ?u.32184} [inst : HasSubset α] {a b : α} [inst_1 : IsAntisymm α fun x x_1 => x x_1], a bb aa = b
antisymm
<| calc
orbit: (α : Type ?u.32230) → {β : Type ?u.32229} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
=
a: α
a
a: α
a
⁻¹ •
orbit: (α : Type ?u.32397) → {β : Type ?u.32396} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:= (
smul_inv_smul: ∀ {α : Type ?u.34006} {β : Type ?u.34005} [inst : Group α] [inst_1 : MulAction α β] (c : α) (x : β), c c⁻¹ x = x
smul_inv_smul
_: ?m.34007
_
_: ?m.34008
_
).
symm: ∀ {α : Sort ?u.34071} {a b : α}, a = bb = a
symm
_: ?m✝
_
a: α
a
orbit: (α : Type ?u.34154) → {β : Type ?u.34153} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:=
Set.image_subset: ∀ {α : Type ?u.34973} {β : Type ?u.34974} {a b : Set α} (f : αβ), a bf '' a f '' b
Set.image_subset
_: ?m.34975?m.34976
_
(
smul_orbit_subset: ∀ {α : Type ?u.34986} {β : Type ?u.34985} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), a orbit α b orbit α b
smul_orbit_subset
_: ?m.34987
_
_: ?m.34988
_
) #align mul_action.smul_orbit
MulAction.smul_orbit: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (a : α) (b : β), a orbit α b = orbit α b
MulAction.smul_orbit
#align add_action.vadd_orbit
AddAction.vadd_orbit: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (a : α) (b : β), a +ᵥ AddAction.orbit α b = AddAction.orbit α b
AddAction.vadd_orbit
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (a : α) (b : β), AddAction.orbit α (a +ᵥ b) = AddAction.orbit α b
to_additive
(attr := simp)] theorem
orbit_smul: ∀ (a : α) (b : β), orbit α (a b) = orbit α b
orbit_smul
(
a: α
a
:
α: Type u
α
) (
b: β
b
:
β: Type v
β
) :
orbit: (α : Type ?u.35522) → {β : Type ?u.35521} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
(
a: α
a
b: β
b
) =
orbit: (α : Type ?u.36761) → {β : Type ?u.36760} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:= (
orbit_smul_subset: ∀ {α : Type ?u.36772} {β : Type ?u.36771} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), orbit α (a b) orbit α b
orbit_smul_subset
a: α
a
b: β
b
).
antisymm: ∀ {α : Type ?u.36777} [inst : HasSubset α] {a b : α} [inst_1 : IsAntisymm α fun x x_1 => x x_1], a bb aa = b
antisymm
<| calc
orbit: (α : Type ?u.36824) → {β : Type ?u.36823} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
=
orbit: (α : Type ?u.36830) → {β : Type ?u.36829} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
(
a: α
a
⁻¹ •
a: α
a
b: β
b
) :=

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

a: α

b: β


orbit α b = orbit α (a⁻¹ a b)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

a: α

b: β


orbit α b = orbit α (a⁻¹ a b)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

a: α

b: β


orbit α b = orbit α b

Goals accomplished! 🐙
_: ?m✝
_
orbit: (α : Type ?u.38569) → {β : Type ?u.38568} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
(
a: α
a
b: β
b
) :=
orbit_smul_subset: ∀ {α : Type ?u.39387} {β : Type ?u.39386} [inst : Monoid α] [inst_1 : MulAction α β] (a : α) (b : β), orbit α (a b) orbit α b
orbit_smul_subset
_: ?m.39388
_
_: ?m.39389
_
#align mul_action.orbit_smul
MulAction.orbit_smul: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (a : α) (b : β), orbit α (a b) = orbit α b
MulAction.orbit_smul
#align add_action.orbit_vadd
AddAction.orbit_vadd: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (a : α) (b : β), AddAction.orbit α (a +ᵥ b) = AddAction.orbit α b
AddAction.orbit_vadd
/-- The action of a group on an orbit is transitive. -/ @[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (x : β), AddAction.IsPretransitive α ↑(AddAction.orbit α x)
to_additive
"The action of an additive group on an orbit is transitive."]
instance: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (x : β), IsPretransitive α ↑(orbit α x)
instance
(
x: β
x
:
β: Type v
β
) :
IsPretransitive: (M : Type ?u.40072) → (α : Type ?u.40071) → [inst : SMul M α] → Prop
IsPretransitive
α: Type u
α
(
orbit: (α : Type ?u.40074) → {β : Type ?u.40073} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
x: β
x
) := ⟨

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

x: β


∀ (x_1 y : ↑(orbit α x)), g, g x_1 = y
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

x: β

a, b: α


mk.intro.mk.intro
g, g { val := (fun x_1 => x_1 x) a, property := (_ : y, (fun x_1 => x_1 x) y = (fun x_1 => x_1 x) a) } = { val := (fun x_1 => x_1 x) b, property := (_ : y, (fun x_1 => x_1 x) y = (fun x_1 => x_1 x) b) }
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

x: β


∀ (x_1 y : ↑(orbit α x)), g, g x_1 = y
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

x: β

a, b: α


mk.intro.mk.intro
(b * a⁻¹) { val := (fun x_1 => x_1 x) a, property := (_ : y, (fun x_1 => x_1 x) y = (fun x_1 => x_1 x) a) } = { val := (fun x_1 => x_1 x) b, property := (_ : y, (fun x_1 => x_1 x) y = (fun x_1 => x_1 x) b) }
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

x: β


∀ (x_1 y : ↑(orbit α x)), g, g x_1 = y
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

x: β

a, b: α


mk.intro.mk.intro.a
↑((b * a⁻¹) { val := (fun x_1 => x_1 x) a, property := (_ : y, (fun x_1 => x_1 x) y = (fun x_1 => x_1 x) a) }) = { val := (fun x_1 => x_1 x) b, property := (_ : y, (fun x_1 => x_1 x) y = (fun x_1 => x_1 x) b) }
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

x: β


∀ (x_1 y : ↑(orbit α x)), g, g x_1 = y

Goals accomplished! 🐙
⟩ @[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] {a b : β}, AddAction.orbit α a = AddAction.orbit α b a AddAction.orbit α b
to_additive
] theorem
orbit_eq_iff: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] {a b : β}, orbit α a = orbit α b a orbit α b
orbit_eq_iff
{
a: β
a
b: β
b
:
β: Type v
β
} :
orbit: (α : Type ?u.46568) → {β : Type ?u.46567} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
a: β
a
=
orbit: (α : Type ?u.46873) → {β : Type ?u.46872} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
a: β
a
orbit: (α : Type ?u.46886) → {β : Type ?u.46885} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: β
b
:= ⟨fun
h: ?m.46940
h
=>
h: ?m.46940
h
mem_orbit_self: ∀ {α : Type ?u.46943} {β : Type ?u.46942} [inst : Monoid α] [inst_1 : MulAction α β] (b : β), b orbit α b
mem_orbit_self
_: ?m.46945
_
, fun ⟨_,
hc: (fun x => x b) w✝ = a
hc
⟩ =>
hc: (fun x => x b) w✝ = a
hc
orbit_smul: ∀ {α : Type ?u.47082} {β : Type ?u.47081} [inst : Group α] [inst_1 : MulAction α β] (a : α) (b : β), orbit α (a b) = orbit α b
orbit_smul
_: ?m.47083
_
_: ?m.47084
_
#align mul_action.orbit_eq_iff
MulAction.orbit_eq_iff: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] {a b : β}, orbit α a = orbit α b a orbit α b
MulAction.orbit_eq_iff
#align add_action.orbit_eq_iff
AddAction.orbit_eq_iff: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] {a b : β}, AddAction.orbit α a = AddAction.orbit α b a AddAction.orbit α b
AddAction.orbit_eq_iff
variable (
α: ?m.47645
α
) @[
to_additive: ∀ (α : Type u) {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (g : α) (a : β), a AddAction.orbit α (g +ᵥ a)
to_additive
] theorem
mem_orbit_smul: ∀ (α : Type u) {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (g : α) (a : β), a orbit α (g a)
mem_orbit_smul
(
g: α
g
:
α: Type u
α
) (
a: β
a
:
β: Type v
β
) :
a: β
a
orbit: (α : Type ?u.47971) → {β : Type ?u.47970} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
(
g: α
g
a: β
a
) :=

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

g: α

a: β


a orbit α (g a)

Goals accomplished! 🐙
#align mul_action.mem_orbit_smul
MulAction.mem_orbit_smul: ∀ (α : Type u) {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (g : α) (a : β), a orbit α (g a)
MulAction.mem_orbit_smul
#align add_action.mem_orbit_vadd
AddAction.mem_orbit_vadd: ∀ (α : Type u) {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (g : α) (a : β), a AddAction.orbit α (g +ᵥ a)
AddAction.mem_orbit_vadd
@[
to_additive: ∀ (α : Type u) {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (g h : α) (a : β), g +ᵥ a AddAction.orbit α (h +ᵥ a)
to_additive
] theorem
smul_mem_orbit_smul: ∀ (g h : α) (a : β), g a orbit α (h a)
smul_mem_orbit_smul
(
g: α
g
h: α
h
:
α: Type u
α
) (
a: β
a
:
β: Type v
β
) :
g: α
g
a: β
a
orbit: (α : Type ?u.50773) → {β : Type ?u.50772} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
(
h: α
h
a: β
a
) :=

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

g, h: α

a: β


g a orbit α (h a)

Goals accomplished! 🐙
#align mul_action.smul_mem_orbit_smul
MulAction.smul_mem_orbit_smul: ∀ (α : Type u) {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (g h : α) (a : β), g a orbit α (h a)
MulAction.smul_mem_orbit_smul
#align add_action.vadd_mem_orbit_vadd
AddAction.vadd_mem_orbit_vadd: ∀ (α : Type u) {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (g h : α) (a : β), g +ᵥ a AddAction.orbit α (h +ᵥ a)
AddAction.vadd_mem_orbit_vadd
variable (
β: ?m.52352
β
) /-- The relation 'in the same orbit'. -/ @[
to_additive: (α : Type u) → (β : Type v) → [inst : AddGroup α] → [inst : AddAction α β] → Setoid β
to_additive
"The relation 'in the same orbit'."] def
orbitRel: (α : Type u) → (β : Type v) → [inst : Group α] → [inst : MulAction α β] → Setoid β
orbitRel
:
Setoid: Sort ?u.52654 → Sort (max1?u.52654)
Setoid
β: Type v
β
where r
a: ?m.52660
a
b: ?m.52663
b
:=
a: ?m.52660
a
orbit: (α : Type ?u.52671) → {β : Type ?u.52670} → [inst : Monoid α] → [inst : MulAction α β] → βSet β
orbit
α: Type u
α
b: ?m.52663
b
iseqv := ⟨
mem_orbit_self: ∀ {α : Type ?u.53034} {β : Type ?u.53033} [inst : Monoid α] [inst_1 : MulAction α β] (b : β), b orbit α b
mem_orbit_self
, fun {
a: ?m.53120
a
b: ?m.53123
b
} =>

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

a, b: β


a orbit α bb orbit α a

Goals accomplished! 🐙
, fun {
a: ?m.53133
a
b: ?m.53136
b
} =>

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

a, b: β


∀ {z : β}, a orbit α bb orbit α za orbit α z

Goals accomplished! 🐙
#align mul_action.orbit_rel
MulAction.orbitRel: (α : Type u) → (β : Type v) → [inst : Group α] → [inst : MulAction α β] → Setoid β
MulAction.orbitRel
#align add_action.orbit_rel
AddAction.orbitRel: (α : Type u) → (β : Type v) → [inst : AddGroup α] → [inst : AddAction α β] → Setoid β
AddAction.orbitRel
variable {
α: ?m.57026
α
} {
β: ?m.57029
β
} /-- When you take a set `U` in `β`, push it down to the quotient, and pull back, you get the union of the orbit of `U` under `α`. -/ @[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (U : Set β), Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x +ᵥ x_1) a '' U
to_additive
"When you take a set `U` in `β`, push it down to the quotient, and pull back, you get the union of the orbit of `U` under `α`."] theorem
quotient_preimage_image_eq_union_mul: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (U : Set β), Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
quotient_preimage_image_eq_union_mul
(
U: Set β
U
:
Set: Type ?u.57331 → Type ?u.57331
Set
β: Type v
β
) : letI :=
orbitRel: (α : Type ?u.57337) → (β : Type ?u.57336) → [inst : Group α] → [inst : MulAction α β] → Setoid β
orbitRel
α: Type u
α
β: Type v
β
Quotient.mk': {α : Sort ?u.57365} → [s : Setoid α] → αQuotient s
Quotient.mk'
⁻¹' (
Quotient.mk': {α : Sort ?u.57391} → [s : Setoid α] → αQuotient s
Quotient.mk'
''
U: Set β
U
) = ⋃
a: α
a
:
α: Type u
α
,
(· • ·): αββ
(· • ·)
a: α
a
''
U: Set β
U
:=

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β


Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β


Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β


Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U


f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β


Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h
x f ⁻¹' (f '' U) x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β


Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mp
x f ⁻¹' (f '' U)x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β


Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mp
x f ⁻¹' (f '' U)x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mp
x f ⁻¹' (f '' U)x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x, y: β

hy: y U

hxy: f y = f x


h.mp.intro.intro
x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mp
x f ⁻¹' (f '' U)x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

hy: (fun x_1 => x_1 x) a U

hxy: f ((fun x_1 => x_1 x) a) = f x


h.mp.intro.intro.intro
x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mp
x f ⁻¹' (f '' U)x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

hy: (fun x_1 => x_1 x) a U

hxy: f ((fun x_1 => x_1 x) a) = f x


h.mp.intro.intro.intro
x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

hy: (fun x_1 => x_1 x) a U

hxy: f ((fun x_1 => x_1 x) a) = f x


h.mp.intro.intro.intro
i, x (fun x x_1 => x x_1) i '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

hy: (fun x_1 => x_1 x) a U

hxy: f ((fun x_1 => x_1 x) a) = f x


h.mp.intro.intro.intro
i, x (fun x x_1 => x x_1) i '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mp
x f ⁻¹' (f '' U)x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β


Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

hx: x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U


h.mpr
x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

hx: x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U


h.mpr
x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

hx: i, x (fun x x_1 => x x_1) i '' U


h.mpr
x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

hx: i, x (fun x x_1 => x x_1) i '' U


h.mpr
x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

hx: i, x (fun x x_1 => x x_1) i '' U


h.mpr
x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
f x f '' U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
x_1 x_2, f x_1 = f x
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
x_1 x_2, f x_1 = f x
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
x_1 x_2, f x_1 = f x

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


f (a⁻¹ x) = f x
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


f (a⁻¹ x) = f x

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
a⁻¹ (fun x x_1 => x x_1) a u U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.mpr.intro.intro.intro
a⁻¹ (fun x x_1 => x x_1) a u U
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β

a: α

u: β

hu₁: u U

hu₂: (fun x x_1 => x x_1) a u = x


h.e'_4
a⁻¹ (fun x x_1 => x x_1) a u = u
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

quotient_preimage_image_eq_union_mul: ∀ (U : Set β), f ⁻¹' (f '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U

x: β


h.mpr
(x Set.iUnion fun a => (fun x x_1 => x x_1) a '' U) → x f ⁻¹' (f '' U)

Goals accomplished! 🐙
#align mul_action.quotient_preimage_image_eq_union_mul
MulAction.quotient_preimage_image_eq_union_mul: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] (U : Set β), Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x x_1) a '' U
MulAction.quotient_preimage_image_eq_union_mul
#align add_action.quotient_preimage_image_eq_union_add
AddAction.quotient_preimage_image_eq_union_add: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] (U : Set β), Quotient.mk' ⁻¹' (Quotient.mk' '' U) = Set.iUnion fun a => (fun x x_1 => x +ᵥ x_1) a '' U
AddAction.quotient_preimage_image_eq_union_add
@[
to_additive: ∀ {α : Type u} {β : Type v} [inst : AddGroup α] [inst_1 : AddAction α β] {U V : Set β}, Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) ∀ (x : β), x U∀ (a : α), ¬a +ᵥ x V
to_additive
] theorem
disjoint_image_image_iff: ∀ {α : Type u} {β : Type v} [inst : Group α] [inst_1 : MulAction α β] {U V : Set β}, Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) ∀ (x : β), x U∀ (a : α), ¬a x V
disjoint_image_image_iff
{
U: Set β
U
V: Set β
V
:
Set: Type ?u.64183 → Type ?u.64183
Set
β: Type v
β
} : letI :=
orbitRel: (α : Type ?u.64189) → (β : Type ?u.64188) → [inst : Group α] → [inst : MulAction α β] → Setoid β
orbitRel
α: Type u
α
β: Type v
β
Disjoint: {α : Type ?u.64212} → [inst : PartialOrder α] → [inst : OrderBot α] → ααProp
Disjoint
(
Quotient.mk': {α : Sort ?u.64221} → [s : Setoid α] → αQuotient s
Quotient.mk'
''
U: Set β
U
) (
Quotient.mk': {α : Sort ?u.64250} → [s : Setoid α] → αQuotient s
Quotient.mk'
''
V: Set β
V
) ↔ ∀
x: ?m.64359
x
U: Set β
U
, ∀
a: α
a
:
α: Type u
α
,
a: α
a
x: ?m.64359
x
V: Set β
V
:=

Goals accomplished! 🐙
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β


Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) ∀ (x : β), x U∀ (a : α), ¬a x V
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β

this:= orbitRel α β: Setoid β


Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) ∀ (x : β), x U∀ (a : α), ¬a x V
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β


Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) ∀ (x : β), x U∀ (a : α), ¬a x V
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

disjoint_image_image_iff: ∀ {U V : Set β}, Disjoint (f '' U) (f '' V) ∀ (x : β), x U∀ (a : α), ¬a x V


Disjoint (f '' U) (f '' V) ∀ (x : β), x U∀ (a : α), ¬a x V
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β


Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) ∀ (x : β), x U∀ (a : α), ¬a x V
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

disjoint_image_image_iff: ∀ {U V : Set β}, Disjoint (f '' U) (f '' V) ∀ (x : β), x U∀ (a : α), ¬a x V

h: Disjoint (f '' U) (f '' V)

x: β

x_in_U: x U

a: α

a_in_V: a x V


refine'_1
(fun x_1 => x_1 a x) a⁻¹ = x
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

disjoint_image_image_iff: ∀ {U V : Set β}, Disjoint (f '' U) (f '' V) ∀ (x : β), x U∀ (a : α), ¬a x V


refine'_2
(∀ (x : β), x U∀ (a : α), ¬a x V) → Disjoint (f '' U) (f '' V)
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β


Disjoint (Quotient.mk' '' U) (Quotient.mk' '' V) ∀ (x : β), x U∀ (a : α), ¬a x V
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk': βQuotient (orbitRel α β)

disjoint_image_image_iff: ∀ {U V : Set β}, Disjoint (f '' U) (f '' V) ∀ (x : β), x U∀ (a : α), ¬a x V

h: Disjoint (f '' U) (f '' V)

x: β

x_in_U: x U

a: α

a_in_V: a x V


refine'_1
(fun x_1 => x_1 a x) a⁻¹ = x
α: Type u

β: Type v

γ: Type w

inst✝¹: Group α

inst✝: MulAction α β

U, V: Set β

this:= orbitRel α β: Setoid β

f:= Quotient.mk':