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) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Floris van Doorn

! This file was ported from Lean 3 source module data.set.pointwise.finite
! leanprover-community/mathlib commit c941bb9426d62e266612b6d99e6c9fc93e7a1d07
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Data.Set.Finite
import Mathlib.Data.Set.Pointwise.SMul

/-! # Finiteness lemmas for pointwise operations on sets -/


open Pointwise

variable {
F: Type ?u.31000
F
Ξ±: Type ?u.5
Ξ±
Ξ²: Type ?u.31006
Ξ²
Ξ³: Type ?u.31009
Ξ³
:
Type _: Type (?u.11+1)
Type _
} namespace Set section One variable [
One: Type ?u.41 β†’ Type ?u.41
One
Ξ±: Type ?u.17
Ξ±
] @[
to_additive: βˆ€ {Ξ± : Type u_1} [inst : Zero Ξ±], Set.Finite 0
to_additive
(attr := simp)] theorem
finite_one: βˆ€ {Ξ± : Type u_1} [inst : One Ξ±], Set.Finite 1
finite_one
: (
1: ?m.47
1
:
Set: Type ?u.45 β†’ Type ?u.45
Set
Ξ±: Type ?u.32
Ξ±
).
Finite: {Ξ± : Type ?u.90} β†’ Set Ξ± β†’ Prop
Finite
:=
finite_singleton: βˆ€ {Ξ± : Type ?u.95} (a : Ξ±), Set.Finite {a}
finite_singleton
_: ?m.96
_
#align set.finite_one
Set.finite_one: βˆ€ {Ξ± : Type u_1} [inst : One Ξ±], Set.Finite 1
Set.finite_one
#align set.finite_zero
Set.finite_zero: βˆ€ {Ξ± : Type u_1} [inst : Zero Ξ±], Set.Finite 0
Set.finite_zero
end One section InvolutiveInv variable [
InvolutiveInv: Type ?u.156 β†’ Type ?u.156
InvolutiveInv
Ξ±: Type ?u.147
Ξ±
] {
s: Set Ξ±
s
:
Set: Type ?u.177 β†’ Type ?u.177
Set
Ξ±: Type ?u.147
Ξ±
} @[
to_additive: βˆ€ {Ξ± : Type u_1} [inst : InvolutiveNeg Ξ±] {s : Set Ξ±}, Set.Finite s β†’ Set.Finite (-s)
to_additive
] theorem
Finite.inv: Set.Finite s β†’ Set.Finite s⁻¹
Finite.inv
(hs :
s: Set Ξ±
s
.
Finite: {Ξ± : Type ?u.180} β†’ Set Ξ± β†’ Prop
Finite
) :
s: Set Ξ±
s
⁻¹.
Finite: {Ξ± : Type ?u.359} β†’ Set Ξ± β†’ Prop
Finite
:= hs.
preimage: βˆ€ {Ξ± : Type ?u.366} {Ξ² : Type ?u.365} {s : Set Ξ²} {f : Ξ± β†’ Ξ²}, InjOn f (f ⁻¹' s) β†’ Set.Finite s β†’ Set.Finite (f ⁻¹' s)
preimage
<|
inv_injective: βˆ€ {G : Type ?u.388} [inst : InvolutiveInv G], Function.Injective Inv.inv
inv_injective
.
injOn: βˆ€ {Ξ± : Type ?u.406} {Ξ² : Type ?u.407} {f : Ξ± β†’ Ξ²}, Function.Injective f β†’ βˆ€ (s : Set Ξ±), InjOn f s
injOn
_: Set ?m.418
_
#align set.finite.inv
Set.Finite.inv: βˆ€ {Ξ± : Type u_1} [inst : InvolutiveInv Ξ±] {s : Set Ξ±}, Set.Finite s β†’ Set.Finite s⁻¹
Set.Finite.inv
#align set.finite.neg
Set.Finite.neg: βˆ€ {Ξ± : Type u_1} [inst : InvolutiveNeg Ξ±] {s : Set Ξ±}, Set.Finite s β†’ Set.Finite (-s)
Set.Finite.neg
end InvolutiveInv section Mul variable [
Mul: Type ?u.494 β†’ Type ?u.494
Mul
Ξ±: Type ?u.485
Ξ±
] {
s: Set Ξ±
s
t: Set Ξ±
t
:
Set: Type ?u.479 β†’ Type ?u.479
Set
Ξ±: Type ?u.464
Ξ±
} @[
to_additive: βˆ€ {Ξ± : Type u_1} [inst : Add Ξ±] {s t : Set Ξ±}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s + t)
to_additive
] theorem
Finite.mul: βˆ€ {Ξ± : Type u_1} [inst : Mul Ξ±] {s t : Set Ξ±}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s * t)
Finite.mul
:
s: Set Ξ±
s
.
Finite: {Ξ± : Type ?u.504} β†’ Set Ξ± β†’ Prop
Finite
β†’
t: Set Ξ±
t
.
Finite: {Ξ± : Type ?u.511} β†’ Set Ξ± β†’ Prop
Finite
β†’ (
s: Set Ξ±
s
*
t: Set Ξ±
t
).
Finite: {Ξ± : Type ?u.588} β†’ Set Ξ± β†’ Prop
Finite
:=
Finite.image2: βˆ€ {Ξ± : Type ?u.595} {Ξ² : Type ?u.594} {Ξ³ : Type ?u.593} {s : Set Ξ±} {t : Set Ξ²} (f : Ξ± β†’ Ξ² β†’ Ξ³), Set.Finite s β†’ Set.Finite t β†’ Set.Finite (image2 f s t)
Finite.image2
_: ?m.596 β†’ ?m.597 β†’ ?m.598
_
#align set.finite.mul
Set.Finite.mul: βˆ€ {Ξ± : Type u_1} [inst : Mul Ξ±] {s t : Set Ξ±}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s * t)
Set.Finite.mul
#align set.finite.add
Set.Finite.add: βˆ€ {Ξ± : Type u_1} [inst : Add Ξ±] {s t : Set Ξ±}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s + t)
Set.Finite.add
/-- Multiplication preserves finiteness. -/ @[
to_additive: {Ξ± : Type u_1} β†’ [inst : Add Ξ±] β†’ [inst_1 : DecidableEq Ξ±] β†’ (s t : Set Ξ±) β†’ [inst_2 : Fintype ↑s] β†’ [inst_3 : Fintype ↑t] β†’ Fintype ↑(s + t)
to_additive
"Addition preserves finiteness."] def
fintypeMul: [inst : DecidableEq Ξ±] β†’ (s t : Set Ξ±) β†’ [inst : Fintype ↑s] β†’ [inst : Fintype ↑t] β†’ Fintype ↑(s * t)
fintypeMul
[
DecidableEq: Sort ?u.678 β†’ Sort (max1?u.678)
DecidableEq
Ξ±: Type ?u.660
Ξ±
] (
s: Set Ξ±
s
t: Set Ξ±
t
:
Set: Type ?u.687 β†’ Type ?u.687
Set
Ξ±: Type ?u.660
Ξ±
) [
Fintype: Type ?u.693 β†’ Type ?u.693
Fintype
s: Set Ξ±
s
] [
Fintype: Type ?u.825 β†’ Type ?u.825
Fintype
t: Set Ξ±
t
] :
Fintype: Type ?u.950 β†’ Type ?u.950
Fintype
(
s: Set Ξ±
s
*
t: Set Ξ±
t
:
Set: Type ?u.952 β†’ Type ?u.952
Set
Ξ±: Type ?u.660
Ξ±
) :=
Set.fintypeImage2: {Ξ± : Type ?u.1155} β†’ {Ξ² : Type ?u.1154} β†’ {Ξ³ : Type ?u.1153} β†’ [inst : DecidableEq Ξ³] β†’ (f : Ξ± β†’ Ξ² β†’ Ξ³) β†’ (s : Set Ξ±) β†’ (t : Set Ξ²) β†’ [hs : Fintype ↑s] β†’ [ht : Fintype ↑t] β†’ Fintype ↑(image2 f s t)
Set.fintypeImage2
_: ?m.1156 β†’ ?m.1157 β†’ ?m.1158
_
_: Set ?m.1156
_
_: Set ?m.1157
_
#align set.fintype_mul
Set.fintypeMul: {Ξ± : Type u_1} β†’ [inst : Mul Ξ±] β†’ [inst_1 : DecidableEq Ξ±] β†’ (s t : Set Ξ±) β†’ [inst_2 : Fintype ↑s] β†’ [inst_3 : Fintype ↑t] β†’ Fintype ↑(s * t)
Set.fintypeMul
#align set.fintype_add
Set.fintypeAdd: {Ξ± : Type u_1} β†’ [inst : Add Ξ±] β†’ [inst_1 : DecidableEq Ξ±] β†’ (s t : Set Ξ±) β†’ [inst_2 : Fintype ↑s] β†’ [inst_3 : Fintype ↑t] β†’ Fintype ↑(s + t)
Set.fintypeAdd
end Mul section Monoid variable [
Monoid: Type ?u.1829 β†’ Type ?u.1829
Monoid
Ξ±: Type ?u.1820
Ξ±
] {
s: Set Ξ±
s
t: Set Ξ±
t
:
Set: Type ?u.1811 β†’ Type ?u.1811
Set
Ξ±: Type ?u.1820
Ξ±
} @[
to_additive: {Ξ± : Type u_1} β†’ [inst : AddMonoid Ξ±] β†’ {s t : Set Ξ±} β†’ [inst_1 : Fintype Ξ±] β†’ [inst_2 : DecidableEq Ξ±] β†’ [inst_3 : DecidablePred fun x => x ∈ s] β†’ [inst_4 : DecidablePred fun x => x ∈ t] β†’ DecidablePred fun x => x ∈ s + t
to_additive
] instance
decidableMemMul: {Ξ± : Type u_1} β†’ [inst : Monoid Ξ±] β†’ {s t : Set Ξ±} β†’ [inst_1 : Fintype Ξ±] β†’ [inst_2 : DecidableEq Ξ±] β†’ [inst_3 : DecidablePred fun x => x ∈ s] β†’ [inst_4 : DecidablePred fun x => x ∈ t] β†’ DecidablePred fun x => x ∈ s * t
decidableMemMul
[
Fintype: Type ?u.1838 β†’ Type ?u.1838
Fintype
Ξ±: Type ?u.1820
Ξ±
] [
DecidableEq: Sort ?u.1841 β†’ Sort (max1?u.1841)
DecidableEq
Ξ±: Type ?u.1820
Ξ±
] [
DecidablePred: {Ξ± : Sort ?u.1850} β†’ (Ξ± β†’ Prop) β†’ Sort (max1?u.1850)
DecidablePred
(· ∈
s: Set Ξ±
s
)] [
DecidablePred: {Ξ± : Sort ?u.1880} β†’ (Ξ± β†’ Prop) β†’ Sort (max1?u.1880)
DecidablePred
(· ∈
t: Set Ξ±
t
)] :
DecidablePred: {Ξ± : Sort ?u.1906} β†’ (Ξ± β†’ Prop) β†’ Sort (max1?u.1906)
DecidablePred
(· ∈
s: Set Ξ±
s
*
t: Set Ξ±
t
) := fun
_: ?m.2691
_
↦
decidable_of_iff: {b : Prop} β†’ (a : Prop) β†’ (a ↔ b) β†’ [inst : Decidable a] β†’ Decidable b
decidable_of_iff
_: Prop
_
mem_mul: βˆ€ {Ξ± : Type ?u.2697} [inst : Mul Ξ±] {s t : Set Ξ±} {a : Ξ±}, a ∈ s * t ↔ βˆƒ x y, x ∈ s ∧ y ∈ t ∧ x * y = a
mem_mul
.
symm: βˆ€ {a b : Prop}, (a ↔ b) β†’ (b ↔ a)
symm
#align set.decidable_mem_mul
Set.decidableMemMul: {Ξ± : Type u_1} β†’ [inst : Monoid Ξ±] β†’ {s t : Set Ξ±} β†’ [inst_1 : Fintype Ξ±] β†’ [inst_2 : DecidableEq Ξ±] β†’ [inst_3 : DecidablePred fun x => x ∈ s] β†’ [inst_4 : DecidablePred fun x => x ∈ t] β†’ DecidablePred fun x => x ∈ s * t
Set.decidableMemMul
#align set.decidable_mem_add
Set.decidableMemAdd: {Ξ± : Type u_1} β†’ [inst : AddMonoid Ξ±] β†’ {s t : Set Ξ±} β†’ [inst_1 : Fintype Ξ±] β†’ [inst_2 : DecidableEq Ξ±] β†’ [inst_3 : DecidablePred fun x => x ∈ s] β†’ [inst_4 : DecidablePred fun x => x ∈ t] β†’ DecidablePred fun x => x ∈ s + t
Set.decidableMemAdd
@[
to_additive: {Ξ± : Type u_1} β†’ [inst : AddMonoid Ξ±] β†’ {s : Set Ξ±} β†’ [inst_1 : Fintype Ξ±] β†’ [inst_2 : DecidableEq Ξ±] β†’ [inst_3 : DecidablePred fun x => x ∈ s] β†’ (n : β„•) β†’ DecidablePred fun x => x ∈ n β€’ s
to_additive
] instance
decidableMemPow: [inst : Fintype Ξ±] β†’ [inst : DecidableEq Ξ±] β†’ [inst : DecidablePred fun x => x ∈ s] β†’ (n : β„•) β†’ DecidablePred fun x => x ∈ s ^ n
decidableMemPow
[
Fintype: Type ?u.4466 β†’ Type ?u.4466
Fintype
Ξ±: Type ?u.4448
Ξ±
] [
DecidableEq: Sort ?u.4469 β†’ Sort (max1?u.4469)
DecidableEq
Ξ±: Type ?u.4448
Ξ±
] [
DecidablePred: {Ξ± : Sort ?u.4478} β†’ (Ξ± β†’ Prop) β†’ Sort (max1?u.4478)
DecidablePred
(· ∈
s: Set Ξ±
s
)] (n :
β„•: Type
β„•
) :
DecidablePred: {Ξ± : Sort ?u.4510} β†’ (Ξ± β†’ Prop) β†’ Sort (max1?u.4510)
DecidablePred
(· ∈
s: Set Ξ±
s
^ n) :=

Goals accomplished! πŸ™
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•


DecidablePred fun x => x ∈ s ^ n
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s


zero
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n


succ
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•


DecidablePred fun x => x ∈ s ^ n
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s


zero
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s


zero
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n


succ
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s


zero
DecidablePred fun x => x = 1
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s


zero

Goals accomplished! πŸ™
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•


DecidablePred fun x => x ∈ s ^ n
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n


succ
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n


succ
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n

this:= ih: DecidablePred fun x => x ∈ s ^ n


succ
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n


succ
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n

this:= ih: DecidablePred fun x => x ∈ s ^ n


succ
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n

this:= ih: DecidablePred fun x => x ∈ s ^ n


succ
DecidablePred fun x => x ∈ s * s ^ n
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n

this:= ih: DecidablePred fun x => x ∈ s ^ n


succ
DecidablePred fun x => x ∈ s * s ^ n
F: Type ?u.4445

Ξ±: Type ?u.4448

Ξ²: Type ?u.4451

Ξ³: Type ?u.4454

inst✝³: Monoid α

s, t: Set Ξ±

inst✝²: Fintype α

inst✝¹: DecidableEq α

inst✝: DecidablePred fun x => x ∈ s

n: β„•

ih: DecidablePred fun x => x ∈ s ^ n


succ

Goals accomplished! πŸ™
#align set.decidable_mem_pow
Set.decidableMemPow: {Ξ± : Type u_1} β†’ [inst : Monoid Ξ±] β†’ {s : Set Ξ±} β†’ [inst_1 : Fintype Ξ±] β†’ [inst_2 : DecidableEq Ξ±] β†’ [inst_3 : DecidablePred fun x => x ∈ s] β†’ (n : β„•) β†’ DecidablePred fun x => x ∈ s ^ n
Set.decidableMemPow
#align set.decidable_mem_nsmul
Set.decidableMemNSMul: {Ξ± : Type u_1} β†’ [inst : AddMonoid Ξ±] β†’ {s : Set Ξ±} β†’ [inst_1 : Fintype Ξ±] β†’ [inst_2 : DecidableEq Ξ±] β†’ [inst_3 : DecidablePred fun x => x ∈ s] β†’ (n : β„•) β†’ DecidablePred fun x => x ∈ n β€’ s
Set.decidableMemNSMul
end Monoid section SMul variable [
SMul: Type ?u.31013 β†’ Type ?u.31012 β†’ Type (max?u.31013?u.31012)
SMul
Ξ±: Type ?u.30981
Ξ±
Ξ²: Type ?u.31006
Ξ²
] {
s: Set Ξ±
s
:
Set: Type ?u.31016 β†’ Type ?u.31016
Set
Ξ±: Type ?u.30981
Ξ±
} {
t: Set Ξ²
t
:
Set: Type ?u.31019 β†’ Type ?u.31019
Set
Ξ²: Type ?u.30984
Ξ²
} @[
to_additive: βˆ€ {Ξ± : Type u_1} {Ξ² : Type u_2} [inst : VAdd Ξ± Ξ²] {s : Set Ξ±} {t : Set Ξ²}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s +α΅₯ t)
to_additive
] theorem
Finite.smul: βˆ€ {Ξ± : Type u_1} {Ξ² : Type u_2} [inst : SMul Ξ± Ξ²] {s : Set Ξ±} {t : Set Ξ²}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s β€’ t)
Finite.smul
:
s: Set Ξ±
s
.
Finite: {Ξ± : Type ?u.31023} β†’ Set Ξ± β†’ Prop
Finite
β†’
t: Set Ξ²
t
.
Finite: {Ξ± : Type ?u.31030} β†’ Set Ξ± β†’ Prop
Finite
β†’ (
s: Set Ξ±
s
β€’
t: Set Ξ²
t
).
Finite: {Ξ± : Type ?u.31087} β†’ Set Ξ± β†’ Prop
Finite
:=
Finite.image2: βˆ€ {Ξ± : Type ?u.31094} {Ξ² : Type ?u.31093} {Ξ³ : Type ?u.31092} {s : Set Ξ±} {t : Set Ξ²} (f : Ξ± β†’ Ξ² β†’ Ξ³), Set.Finite s β†’ Set.Finite t β†’ Set.Finite (image2 f s t)
Finite.image2
_: ?m.31095 β†’ ?m.31096 β†’ ?m.31097
_
#align set.finite.smul
Set.Finite.smul: βˆ€ {Ξ± : Type u_1} {Ξ² : Type u_2} [inst : SMul Ξ± Ξ²] {s : Set Ξ±} {t : Set Ξ²}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s β€’ t)
Set.Finite.smul
#align set.finite.vadd
Set.Finite.vadd: βˆ€ {Ξ± : Type u_1} {Ξ² : Type u_2} [inst : VAdd Ξ± Ξ²] {s : Set Ξ±} {t : Set Ξ²}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s +α΅₯ t)
Set.Finite.vadd
end SMul section HasSmulSet variable [
SMul: Type ?u.31331 β†’ Type ?u.31330 β†’ Type (max?u.31331?u.31330)
SMul
Ξ±: Type ?u.31168
Ξ±
Ξ²: Type ?u.31324
Ξ²
] {
s: Set Ξ²
s
:
Set: Type ?u.31202 β†’ Type ?u.31202
Set
Ξ²: Type ?u.31171
Ξ²
} {
a: Ξ±
a
:
Ξ±: Type ?u.31168
Ξ±
} @[
to_additive: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VAdd Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Finite s β†’ Set.Finite (a +α΅₯ s)
to_additive
] theorem
Finite.smul_set: Set.Finite s β†’ Set.Finite (a β€’ s)
Finite.smul_set
:
s: Set Ξ²
s
.
Finite: {Ξ± : Type ?u.31208} β†’ Set Ξ± β†’ Prop
Finite
β†’ (
a: Ξ±
a
β€’
s: Set Ξ²
s
).
Finite: {Ξ± : Type ?u.31261} β†’ Set Ξ± β†’ Prop
Finite
:=
Finite.image: βˆ€ {Ξ± : Type ?u.31267} {Ξ² : Type ?u.31266} {s : Set Ξ±} (f : Ξ± β†’ Ξ²), Set.Finite s β†’ Set.Finite (f '' s)
Finite.image
_: ?m.31268 β†’ ?m.31269
_
#align set.finite.smul_set
Set.Finite.smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : SMul Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Finite s β†’ Set.Finite (a β€’ s)
Set.Finite.smul_set
#align set.finite.vadd_set
Set.Finite.vadd_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VAdd Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Finite s β†’ Set.Finite (a +α΅₯ s)
Set.Finite.vadd_set
@[
to_additive: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VAdd Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Infinite (a +α΅₯ s) β†’ Set.Infinite s
to_additive
] theorem
Infinite.of_smul_set: Set.Infinite (a β€’ s) β†’ Set.Infinite s
Infinite.of_smul_set
: (
a: Ξ±
a
β€’
s: Set Ξ²
s
).
Infinite: {Ξ± : Type ?u.31388} β†’ Set Ξ± β†’ Prop
Infinite
β†’
s: Set Ξ²
s
.
Infinite: {Ξ± : Type ?u.31393} β†’ Set Ξ± β†’ Prop
Infinite
:=
Infinite.of_image: βˆ€ {Ξ± : Type ?u.31400} {Ξ² : Type ?u.31399} (f : Ξ± β†’ Ξ²) {s : Set Ξ±}, Set.Infinite (f '' s) β†’ Set.Infinite s
Infinite.of_image
_: ?m.31401 β†’ ?m.31402
_
#align set.infinite.of_smul_set
Set.Infinite.of_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : SMul Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Infinite (a β€’ s) β†’ Set.Infinite s
Set.Infinite.of_smul_set
#align set.infinite.of_vadd_set
Set.Infinite.of_vadd_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VAdd Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Infinite (a +α΅₯ s) β†’ Set.Infinite s
Set.Infinite.of_vadd_set
end HasSmulSet section Vsub variable [
VSub: outParam (Type ?u.31467) β†’ Type ?u.31466 β†’ Type (max?u.31467?u.31466)
VSub
Ξ±: Type ?u.31479
Ξ±
Ξ²: Type ?u.31460
Ξ²
] {
s: Set Ξ²
s
t: Set Ξ²
t
:
Set: Type ?u.31495 β†’ Type ?u.31495
Set
Ξ²: Type ?u.31460
Ξ²
} theorem
Finite.vsub: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VSub Ξ± Ξ²] {s t : Set Ξ²}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s -α΅₯ t)
Finite.vsub
(hs :
s: Set Ξ²
s
.
Finite: {Ξ± : Type ?u.31498} β†’ Set Ξ± β†’ Prop
Finite
) (ht :
t: Set Ξ²
t
.
Finite: {Ξ± : Type ?u.31505} β†’ Set Ξ± β†’ Prop
Finite
) :
Set.Finite: {Ξ± : Type ?u.31511} β†’ Set Ξ± β†’ Prop
Set.Finite
(
s: Set Ξ²
s
-α΅₯
t: Set Ξ²
t
) := hs.
image2: βˆ€ {Ξ± : Type ?u.31543} {Ξ² : Type ?u.31542} {Ξ³ : Type ?u.31541} {s : Set Ξ±} {t : Set Ξ²} (f : Ξ± β†’ Ξ² β†’ Ξ³), Set.Finite s β†’ Set.Finite t β†’ Set.Finite (image2 f s t)
image2
_: ?m.31552 β†’ ?m.31553 β†’ ?m.31554
_
ht #align set.finite.vsub
Set.Finite.vsub: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VSub Ξ± Ξ²] {s t : Set Ξ²}, Set.Finite s β†’ Set.Finite t β†’ Set.Finite (s -α΅₯ t)
Set.Finite.vsub
end Vsub section Cancel variable [
Mul: Type ?u.31648 β†’ Type ?u.31648
Mul
Ξ±: Type ?u.31592
Ξ±
] [
IsLeftCancelMul: (G : Type ?u.31651) β†’ [inst : Mul G] β†’ Prop
IsLeftCancelMul
Ξ±: Type ?u.31639
Ξ±
] [
IsRightCancelMul: (G : Type ?u.31618) β†’ [inst : Mul G] β†’ Prop
IsRightCancelMul
Ξ±: Type ?u.31639
Ξ±
] {
s: Set Ξ±
s
t: Set Ξ±
t
:
Set: Type ?u.31630 β†’ Type ?u.31630
Set
Ξ±: Type ?u.31592
Ξ±
} @[
to_additive: βˆ€ {Ξ± : Type u_1} [inst : Add Ξ±] [inst_1 : IsLeftCancelAdd Ξ±] [inst_2 : IsRightCancelAdd Ξ±] {s t : Set Ξ±}, Set.Infinite (s + t) ↔ Set.Infinite s ∧ Set.Nonempty t ∨ Set.Infinite t ∧ Set.Nonempty s
to_additive
] theorem infinite_mul : (
s: Set Ξ±
s
*
t: Set Ξ±
t
).
Infinite: {Ξ± : Type ?u.31755} β†’ Set Ξ± β†’ Prop
Infinite
↔
s: Set Ξ±
s
.
Infinite: {Ξ± : Type ?u.31760} β†’ Set Ξ± β†’ Prop
Infinite
∧
t: Set Ξ±
t
.
Nonempty: {Ξ± : Type ?u.31764} β†’ Set Ξ± β†’ Prop
Nonempty
∨
t: Set Ξ±
t
.
Infinite: {Ξ± : Type ?u.31768} β†’ Set Ξ± β†’ Prop
Infinite
∧
s: Set Ξ±
s
.
Nonempty: {Ξ± : Type ?u.31772} β†’ Set Ξ± β†’ Prop
Nonempty
:=
infinite_image2: βˆ€ {Ξ± : Type ?u.31779} {Ξ² : Type ?u.31778} {Ξ³ : Type ?u.31777} {f : Ξ± β†’ Ξ² β†’ Ξ³} {s : Set Ξ±} {t : Set Ξ²}, (βˆ€ (b : Ξ²), b ∈ t β†’ InjOn (fun a => f a b) s) β†’ (βˆ€ (a : Ξ±), a ∈ s β†’ InjOn (f a) t) β†’ (Set.Infinite (image2 f s t) ↔ Set.Infinite s ∧ Set.Nonempty t ∨ Set.Infinite t ∧ Set.Nonempty s)
infinite_image2
(fun
_: ?m.31809
_
_: ?m.31812
_
=> (
mul_left_injective: βˆ€ {G : Type ?u.31814} [inst : Mul G] [inst_1 : IsRightCancelMul G] (a : G), Function.Injective fun x => x * a
mul_left_injective
_: ?m.31815
_
).
injOn: βˆ€ {Ξ± : Type ?u.31851} {Ξ² : Type ?u.31852} {f : Ξ± β†’ Ξ²}, Function.Injective f β†’ βˆ€ (s : Set Ξ±), InjOn f s
injOn
_: Set ?m.31863
_
) fun
_: ?m.31895
_
_: ?m.31898
_
=> (
mul_right_injective: βˆ€ {G : Type ?u.31900} [inst : Mul G] [inst_1 : IsLeftCancelMul G] (a : G), Function.Injective ((fun x x_1 => x * x_1) a)
mul_right_injective
_: ?m.31901
_
).
injOn: βˆ€ {Ξ± : Type ?u.31937} {Ξ² : Type ?u.31938} {f : Ξ± β†’ Ξ²}, Function.Injective f β†’ βˆ€ (s : Set Ξ±), InjOn f s
injOn
_: Set ?m.31949
_
#align set.infinite_mul
Set.infinite_mul: βˆ€ {Ξ± : Type u_1} [inst : Mul Ξ±] [inst_1 : IsLeftCancelMul Ξ±] [inst_2 : IsRightCancelMul Ξ±] {s t : Set Ξ±}, Set.Infinite (s * t) ↔ Set.Infinite s ∧ Set.Nonempty t ∨ Set.Infinite t ∧ Set.Nonempty s
Set.infinite_mul
#align set.infinite_add
Set.infinite_add: βˆ€ {Ξ± : Type u_1} [inst : Add Ξ±] [inst_1 : IsLeftCancelAdd Ξ±] [inst_2 : IsRightCancelAdd Ξ±] {s t : Set Ξ±}, Set.Infinite (s + t) ↔ Set.Infinite s ∧ Set.Nonempty t ∨ Set.Infinite t ∧ Set.Nonempty s
Set.infinite_add
end Cancel section Group variable [
Group: Type ?u.32373 β†’ Type ?u.32373
Group
Ξ±: Type ?u.32364
Ξ±
] [
MulAction: (Ξ± : Type ?u.32377) β†’ Type ?u.32376 β†’ [inst : Monoid Ξ±] β†’ Type (max?u.32377?u.32376)
MulAction
Ξ±: Type ?u.32364
Ξ±
Ξ²: Type ?u.32057
Ξ²
] {
a: Ξ±
a
:
Ξ±: Type ?u.32054
Ξ±
} {
s: Set Ξ²
s
:
Set: Type ?u.32358 β†’ Type ?u.32358
Set
Ξ²: Type ?u.32057
Ξ²
} @[
to_additive: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a +α΅₯ s) ↔ Set.Finite s
to_additive
(attr := simp)] theorem
finite_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β€’ s) ↔ Set.Finite s
finite_smul_set
: (
a: Ξ±
a
β€’
s: Set Ξ²
s
).
Finite: {Ξ± : Type ?u.33687} β†’ Set Ξ± β†’ Prop
Finite
↔
s: Set Ξ²
s
.
Finite: {Ξ± : Type ?u.33691} β†’ Set Ξ± β†’ Prop
Finite
:=
finite_image_iff: βˆ€ {Ξ± : Type ?u.33697} {Ξ² : Type ?u.33696} {s : Set Ξ±} {f : Ξ± β†’ Ξ²}, InjOn f s β†’ (Set.Finite (f '' s) ↔ Set.Finite s)
finite_image_iff
<| (
MulAction.injective: βˆ€ {Ξ± : Type ?u.33717} {Ξ² : Type ?u.33716} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] (g : Ξ±), Function.Injective ((fun x x_1 => x β€’ x_1) g)
MulAction.injective
_: ?m.33718
_
).
injOn: βˆ€ {Ξ± : Type ?u.33768} {Ξ² : Type ?u.33769} {f : Ξ± β†’ Ξ²}, Function.Injective f β†’ βˆ€ (s : Set Ξ±), InjOn f s
injOn
_: Set ?m.33780
_
#align set.finite_smul_set
Set.finite_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β€’ s) ↔ Set.Finite s
Set.finite_smul_set
#align set.finite_vadd_set
Set.finite_vadd_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a +α΅₯ s) ↔ Set.Finite s
Set.finite_vadd_set
@[
to_additive: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite (a +α΅₯ s) ↔ Set.Infinite s
to_additive
(attr := simp)] theorem
infinite_smul_set: Set.Infinite (a β€’ s) ↔ Set.Infinite s
infinite_smul_set
: (
a: Ξ±
a
β€’
s: Set Ξ²
s
).
Infinite: {Ξ± : Type ?u.35263} β†’ Set Ξ± β†’ Prop
Infinite
↔
s: Set Ξ²
s
.
Infinite: {Ξ± : Type ?u.35267} β†’ Set Ξ± β†’ Prop
Infinite
:=
infinite_image_iff: βˆ€ {Ξ± : Type ?u.35273} {Ξ² : Type ?u.35272} {s : Set Ξ±} {f : Ξ± β†’ Ξ²}, InjOn f s β†’ (Set.Infinite (f '' s) ↔ Set.Infinite s)
infinite_image_iff
<| (
MulAction.injective: βˆ€ {Ξ± : Type ?u.35293} {Ξ² : Type ?u.35292} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] (g : Ξ±), Function.Injective ((fun x x_1 => x β€’ x_1) g)
MulAction.injective
_: ?m.35294
_
).
injOn: βˆ€ {Ξ± : Type ?u.35344} {Ξ² : Type ?u.35345} {f : Ξ± β†’ Ξ²}, Function.Injective f β†’ βˆ€ (s : Set Ξ±), InjOn f s
injOn
_: Set ?m.35356
_
#align set.infinite_smul_set
Set.infinite_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite (a β€’ s) ↔ Set.Infinite s
Set.infinite_smul_set
#align set.infinite_vadd_set
Set.infinite_vadd_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite (a +α΅₯ s) ↔ Set.Infinite s
Set.infinite_vadd_set
alias
finite_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β€’ s) ↔ Set.Finite s
finite_smul_set
↔
Finite.of_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β€’ s) β†’ Set.Finite s
Finite.of_smul_set
_ #align set.finite.of_smul_set
Set.Finite.of_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β€’ s) β†’ Set.Finite s
Set.Finite.of_smul_set
alias
infinite_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite (a β€’ s) ↔ Set.Infinite s
infinite_smul_set
↔ _
Infinite.smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite s β†’ Set.Infinite (a β€’ s)
Infinite.smul_set
#align set.infinite.smul_set
Set.Infinite.smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite s β†’ Set.Infinite (a β€’ s)
Set.Infinite.smul_set
attribute [
to_additive: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite s β†’ Set.Infinite (a +α΅₯ s)
to_additive
]
Finite.of_smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β€’ s) β†’ Set.Finite s
Finite.of_smul_set
Infinite.smul_set: βˆ€ {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite s β†’ Set.Infinite (a β€’ s)
Infinite.smul_set
end Group end Set open Set namespace Group variable {
G: Type ?u.35647
G
:
Type _: Type (?u.35647+1)
Type _
} [
Group: Type ?u.35626 β†’ Type ?u.35626
Group
G: Type ?u.35647
G
] [
Fintype: Type ?u.35653 β†’ Type ?u.35653
Fintype
G: Type ?u.35623
G
] (
S: Set G
S
:
Set: Type ?u.35632 β†’ Type ?u.35632
Set
G: Type ?u.35623
G
) @[
to_additive: βˆ€ {G : Type u_1} [inst : AddGroup G] [inst_1 : Fintype G] (S : Set G) [inst_2 : (k : β„•) β†’ DecidablePred fun x => x ∈ k β€’ S] (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(k β€’ S) = Fintype.card ↑(Fintype.card G β€’ S)
to_additive
] theorem
card_pow_eq_card_pow_card_univ: βˆ€ [inst : (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k] (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
card_pow_eq_card_pow_card_univ
[βˆ€ k :
β„•: Type
β„•
,
DecidablePred: {Ξ± : Sort ?u.35662} β†’ (Ξ± β†’ Prop) β†’ Sort (max1?u.35662)
DecidablePred
(· ∈
S: Set G
S
^ k)] : βˆ€
k: ?m.60061
k
,
Fintype.card: (Ξ± : Type ?u.60066) β†’ [inst : Fintype Ξ±] β†’ β„•
Fintype.card
G: Type ?u.35647
G
≀
k: ?m.60061
k
β†’
Fintype.card: (Ξ± : Type ?u.60080) β†’ [inst : Fintype Ξ±] β†’ β„•
Fintype.card
(β†₯(
S: Set G
S
^
k: ?m.60061
k
)) =
Fintype.card: (Ξ± : Type ?u.85650) β†’ [inst : Fintype Ξ±] β†’ β„•
Fintype.card
(β†₯(
S: Set G
S
^
Fintype.card: (Ξ± : Type ?u.85655) β†’ [inst : Fintype Ξ±] β†’ β„•
Fintype.card
G: Type ?u.35647
G
)) :=

Goals accomplished! πŸ™
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…


pos
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…


neg
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…


pos
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…


pos
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…


neg
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…

k: β„•

hk: Fintype.card G ≀ k


pos
↑(S ^ k) ≃ ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…


pos
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…

k: β„•

hk: Fintype.card G ≀ k


pos
↑(S ^ k) ≃ ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…

k: β„•

hk: Fintype.card G ≀ k


pos
↑(βˆ… ^ k) ≃ ↑(βˆ… ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…

k: β„•

hk: Fintype.card G ≀ k


pos
↑(S ^ k) ≃ ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…

k: β„•

hk: Fintype.card G ≀ k


pos
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…

k: β„•

hk: Fintype.card G ≀ k


pos
↑(S ^ k) ≃ ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: S = βˆ…

k: β„•

hk: Fintype.card G ≀ k


pos
β†‘βˆ… ≃ β†‘βˆ…

Goals accomplished! πŸ™
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S


neg.intro
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S


neg.intro
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)

Goals accomplished! πŸ™
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S


βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a✝: G

ha: a✝ ∈ S

a: G

s, t: Set G

x✝¹: Fintype ↑s

x✝: Fintype ↑t

h: βˆ€ (b : G), b ∈ s β†’ a * b ∈ t


Function.Injective fun x => match x with | { val := b, property := hb } => { val := a * b, property := (_ : a * b ∈ t) }
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S


βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a✝: G

ha: a✝ ∈ S

a: G

s, t: Set G

x✝¹: Fintype ↑s

x✝: Fintype ↑t

h: βˆ€ (b : G), b ∈ s β†’ a * b ∈ t

b: G

hb: b ∈ s

c: G

hc: c ∈ s

hbc: (fun x => match x with | { val := b, property := hb } => { val := a * b, property := (_ : a * b ∈ t) }) { val := b, property := hb } = (fun x => match x with | { val := b, property := hb } => { val := a * b, property := (_ : a * b ∈ t) }) { val := c, property := hc }


mk.mk
{ val := b, property := hb } = { val := c, property := hc }
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S


βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

Goals accomplished! πŸ™
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)


neg.intro
βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 2) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


hβ‚‚
{a} * S ^ n = S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 2) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


hβ‚‚
{a} * S ^ n = S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


hβ‚‚
{a} * S ^ n = S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 2) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


hβ‚‚
{a} * S ^ n = S ^ (n + 1)

Goals accomplished! πŸ™
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


Fintype ↑(Set.singleton a * S ^ n)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

em✝: (a : Prop) β†’ Decidable a


Fintype ↑(Set.singleton a * S ^ n)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


Fintype ↑(Set.singleton a * S ^ n)

Goals accomplished! πŸ™
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


hβ‚‚
{a} * S ^ n = S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

this: Fintype ↑(Set.singleton a * S ^ n)


hβ‚‚.refine'_1
{a} * S ^ n βŠ† S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

this: Fintype ↑(Set.singleton a * S ^ n)


hβ‚‚.refine'_2
Fintype.card ↑(S ^ n) ≀ Fintype.card ↑({a} * S ^ n)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


hβ‚‚
{a} * S ^ n = S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

this: Fintype ↑(Set.singleton a * S ^ n)


hβ‚‚.refine'_1
{a} * S ^ n βŠ† S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

this: Fintype ↑(Set.singleton a * S ^ n)


hβ‚‚.refine'_1
{a} * S ^ n βŠ† S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

this: Fintype ↑(Set.singleton a * S ^ n)


hβ‚‚.refine'_2
Fintype.card ↑(S ^ n) ≀ Fintype.card ↑({a} * S ^ n)

Goals accomplished! πŸ™
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))


hβ‚‚
{a} * S ^ n = S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

this: Fintype ↑(Set.singleton a * S ^ n)


hβ‚‚.refine'_2
Fintype.card ↑(S ^ n) ≀ Fintype.card ↑({a} * S ^ n)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

this: Fintype ↑(Set.singleton a * S ^ n)


hβ‚‚.refine'_2
Fintype.card ↑(S ^ n) ≀ Fintype.card ↑({a} * S ^ n)

Goals accomplished! πŸ™
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 2) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 1) * S β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 2) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ {a} * S ^ n * S β†’ a⁻¹ * b ∈ {a} * S ^ n
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 2) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ {a} * (S ^ n * S) β†’ a⁻¹ * b ∈ {a} * S ^ n
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 2) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ {a} * S ^ (n + 1) β†’ a⁻¹ * b ∈ {a} * S ^ n
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ S ^ (n + 2) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ {a} * S ^ (n + 1) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)


neg.intro
βˆ€ (b : G), b ∈ {a} * S ^ (n + 1) β†’ a⁻¹ * b ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)

b, c: G

hb: b ∈ {a}

hc: c ∈ S ^ (n + 1)


neg.intro.intro.intro.intro.intro
a⁻¹ * (fun x x_1 => x * x_1) b c ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k


βˆ€ (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)

b, c: G

hb: b ∈ {a}

hc: c ∈ S ^ (n + 1)


neg.intro.intro.intro.intro.intro
a⁻¹ * (fun x x_1 => x * x_1) b c ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)

b, c: G

hb: b ∈ {a}

hc: c ∈ S ^ (n + 1)


neg.intro.intro.intro.intro.intro
a⁻¹ * (fun x x_1 => x * x_1) a c ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)

b, c: G

hb: b ∈ {a}

hc: c ∈ S ^ (n + 1)


neg.intro.intro.intro.intro.intro
a⁻¹ * (fun x x_1 => x * x_1) b c ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)

b, c: G

hb: b ∈ {a}

hc: c ∈ S ^ (n + 1)


neg.intro.intro.intro.intro.intro
c ∈ S ^ (n + 1)
F: Type ?u.35635

Ξ±: Type ?u.35638

Ξ²: Type ?u.35641

Ξ³: Type ?u.35644

G: Type u_1

inst✝²: Group G

inst✝¹: Fintype G

S: Set G

inst✝: (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k

hG: 0 < Fintype.card G

hS: Β¬S = βˆ…

a: G

ha: a ∈ S

key: βˆ€ (a : G) (s t : Set G) [inst : Fintype ↑s] [inst_1 : Fintype ↑t], (βˆ€ (b : G), b ∈ s β†’ a * b ∈ t) β†’ Fintype.card ↑s ≀ Fintype.card ↑t

mono: Monotone fun n => Fintype.card ↑(S ^ n)

n: β„•

h: Fintype.card ↑(S ^ n) = Fintype.card ↑(S ^ (n + 1))

hβ‚‚: {a} * S ^ n = S ^ (n + 1)

b, c: G

hb: b ∈ {a}

hc: c ∈ S ^ (n + 1)


neg.intro.intro.intro.intro.intro
c ∈ S ^ (n + 1)
#align group.card_pow_eq_card_pow_card_univ
Group.card_pow_eq_card_pow_card_univ: βˆ€ {G : Type u_1} [inst : Group G] [inst_1 : Fintype G] (S : Set G) [inst_2 : (k : β„•) β†’ DecidablePred fun x => x ∈ S ^ k] (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(S ^ k) = Fintype.card ↑(S ^ Fintype.card G)
Group.card_pow_eq_card_pow_card_univ
#align add_group.card_nsmul_eq_card_nsmul_card_univ
AddGroup.card_nsmul_eq_card_nsmul_card_univ: βˆ€ {G : Type u_1} [inst : AddGroup G] [inst_1 : Fintype G] (S : Set G) [inst_2 : (k : β„•) β†’ DecidablePred fun x => x ∈ k β€’ S] (k : β„•), Fintype.card G ≀ k β†’ Fintype.card ↑(k β€’ S) = Fintype.card ↑(Fintype.card G β€’ S)
AddGroup.card_nsmul_eq_card_nsmul_card_univ
end Group