/- 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 {FF: Type ?u.31000Ξ±Ξ±: Type ?u.5Ξ²Ξ²: Type ?u.31006Ξ³ :Ξ³: Type ?u.31009Type _} namespace Set section One variable [OneType _: Type (?u.11+1)Ξ±] @[Ξ±: Type ?u.17to_additive (attr := simp)] theoremto_additive: β {Ξ± : Type u_1} [inst : Zero Ξ±], Set.Finite 0finite_one : (finite_one: β {Ξ± : Type u_1} [inst : One Ξ±], Set.Finite 11 : Set1: ?m.47Ξ±).Finite :=Ξ±: Type ?u.32finite_singletonfinite_singleton: β {Ξ± : Type ?u.95} (a : Ξ±), Set.Finite {a}_ #align set.finite_one_: ?m.96Set.finite_one #align set.finite_zeroSet.finite_one: β {Ξ± : Type u_1} [inst : One Ξ±], Set.Finite 1Set.finite_zero end One section InvolutiveInv variable [InvolutiveInvSet.finite_zero: β {Ξ± : Type u_1} [inst : Zero Ξ±], Set.Finite 0Ξ±] {Ξ±: Type ?u.147s : Sets: Set Ξ±Ξ±} @[Ξ±: Type ?u.147to_additive] theoremto_additive: β {Ξ± : Type u_1} [inst : InvolutiveNeg Ξ±] {s : Set Ξ±}, Set.Finite s β Set.Finite (-s)Finite.inv (Finite.inv: Set.Finite s β Set.Finite sβ»ΒΉhs :hs: Set.Finite ss.Finite) :s: Set Ξ±sβ»ΒΉ.Finite :=s: Set Ξ±hs.hs: Set.Finite spreimage <|preimage: β {Ξ± : Type ?u.366} {Ξ² : Type ?u.365} {s : Set Ξ²} {f : Ξ± β Ξ²}, InjOn f (f β»ΒΉ' s) β Set.Finite s β Set.Finite (f β»ΒΉ' s)inv_injective.inv_injective: β {G : Type ?u.388} [inst : InvolutiveInv G], Function.Injective Inv.invinjOninjOn: β {Ξ± : Type ?u.406} {Ξ² : Type ?u.407} {f : Ξ± β Ξ²}, Function.Injective f β β (s : Set Ξ±), InjOn f s_ #align set.finite.inv_: Set ?m.418Set.Finite.inv #align set.finite.negSet.Finite.inv: β {Ξ± : Type u_1} [inst : InvolutiveInv Ξ±] {s : Set Ξ±}, Set.Finite s β Set.Finite sβ»ΒΉSet.Finite.neg end InvolutiveInv section Mul variable [MulSet.Finite.neg: β {Ξ± : Type u_1} [inst : InvolutiveNeg Ξ±] {s : Set Ξ±}, Set.Finite s β Set.Finite (-s)Ξ±] {Ξ±: Type ?u.485ss: Set Ξ±t : Sett: Set Ξ±Ξ±} @[Ξ±: Type ?u.464to_additive] theoremto_additive: β {Ξ± : Type u_1} [inst : Add Ξ±] {s t : Set Ξ±}, Set.Finite s β Set.Finite t β Set.Finite (s + t)Finite.mul :Finite.mul: β {Ξ± : Type u_1} [inst : Mul Ξ±] {s t : Set Ξ±}, Set.Finite s β Set.Finite t β Set.Finite (s * t)s.Finite βs: Set Ξ±t.Finite β (t: Set Ξ±s *s: Set Ξ±t).Finite :=t: Set Ξ±Finite.image2Finite.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)_ #align set.finite.mul_: ?m.596 β ?m.597 β ?m.598Set.Finite.mul #align set.finite.addSet.Finite.mul: β {Ξ± : Type u_1} [inst : Mul Ξ±] {s t : Set Ξ±}, Set.Finite s β Set.Finite t β Set.Finite (s * t)Set.Finite.add /-- Multiplication preserves finiteness. -/ @[Set.Finite.add: β {Ξ± : Type u_1} [inst : Add Ξ±] {s t : Set Ξ±}, Set.Finite s β Set.Finite t β Set.Finite (s + t)to_additive "Addition preserves finiteness."] deffintypeMul [DecidableEqΞ±] (Ξ±: Type ?u.660ss: Set Ξ±t : Sett: Set Ξ±Ξ±) [FintypeΞ±: Type ?u.660s] [Fintypes: Set Ξ±t] : Fintype (t: Set Ξ±s *s: Set Ξ±t : Sett: Set Ξ±Ξ±) := Set.fintypeImage2Ξ±: Type ?u.660__: ?m.1156 β ?m.1157 β ?m.1158__: Set ?m.1156_ #align set.fintype_mul Set.fintypeMul #align set.fintype_add Set.fintypeAdd end Mul section Monoid variable [Monoid_: Set ?m.1157Ξ±] {Ξ±: Type ?u.1820ss: Set Ξ±t : Sett: Set Ξ±Ξ±} @[Ξ±: Type ?u.1820to_additive] instanceto_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 + tdecidableMemMul [FintypedecidableMemMul: {Ξ± : 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Ξ±] [DecidableEqΞ±: Type ?u.1820Ξ±] [DecidablePred (Β· βΞ±: Type ?u.1820s)] [DecidablePred (Β· βs: Set Ξ±t)] : DecidablePred (Β· βt: Set Ξ±s *s: Set Ξ±t) := funt: Set Ξ±_ β¦ decidable_of_iff_: ?m.2691_ mem_mul.symm #align set.decidable_mem_mul_: PropSet.decidableMemMul #align set.decidable_mem_addSet.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 * tSet.decidableMemAdd @[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 + tto_additive] instanceto_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 β’ sdecidableMemPow [FintypedecidableMemPow: [inst : Fintype Ξ±] β [inst : DecidableEq Ξ±] β [inst : DecidablePred fun x => x β s] β (n : β) β DecidablePred fun x => x β s ^ nΞ±] [DecidableEqΞ±: Type ?u.4448Ξ±] [DecidablePred (Β· βΞ±: Type ?u.4448s)] (s: Set Ξ±n :n: ββ) : DecidablePred (Β· ββ: Types ^s: Set Ξ±n) :=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 ^ nF: 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
zeroDecidablePred fun x => x β s ^ Nat.zeroF: 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
succDecidablePred fun x => x β s ^ Nat.succ nF: 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 ^ nF: 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
zeroDecidablePred fun x => x β s ^ Nat.zeroF: 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
zeroDecidablePred fun x => x β s ^ Nat.zeroF: 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
succDecidablePred fun x => x β s ^ Nat.succ nF: 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
zeroDecidablePred fun x => x = 1F: 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
zeroDecidablePred fun x => x β s ^ Nat.zeroGoals 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 ^ nF: 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
succDecidablePred fun x => x β s ^ Nat.succ nF: 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
succDecidablePred fun x => x β s ^ Nat.succ nF: 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
succDecidablePred fun x => x β s ^ Nat.succ nF: 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
succDecidablePred fun x => x β s ^ Nat.succ nF: 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
succDecidablePred fun x => x β s ^ Nat.succ nF: 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
succDecidablePred fun x => x β s * s ^ nF: 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
succDecidablePred fun x => x β s * s ^ nF: 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
succDecidablePred fun x => x β s ^ Nat.succ n#align set.decidable_mem_powGoals accomplished! πSet.decidableMemPow #align set.decidable_mem_nsmulSet.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 ^ nSet.decidableMemNSMul end Monoid section SMul variable [SMulSet.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Ξ±Ξ±: Type ?u.30981Ξ²] {Ξ²: Type ?u.31006s : Sets: Set Ξ±Ξ±} {Ξ±: Type ?u.30981t : Sett: Set Ξ²Ξ²} @[Ξ²: Type ?u.30984to_additive] theoremto_additive: β {Ξ± : Type u_1} {Ξ² : Type u_2} [inst : VAdd Ξ± Ξ²] {s : Set Ξ±} {t : Set Ξ²}, Set.Finite s β Set.Finite t β Set.Finite (s +α΅₯ t)Finite.smul :Finite.smul: β {Ξ± : Type u_1} {Ξ² : Type u_2} [inst : SMul Ξ± Ξ²] {s : Set Ξ±} {t : Set Ξ²}, Set.Finite s β Set.Finite t β Set.Finite (s β’ t)s.Finite βs: Set Ξ±t.Finite β (t: Set Ξ²s β’s: Set Ξ±t).Finite :=t: Set Ξ²Finite.image2Finite.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)_ #align set.finite.smul_: ?m.31095 β ?m.31096 β ?m.31097Set.Finite.smul #align set.finite.vaddSet.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.vadd end SMul section HasSmulSet variable [SMulSet.Finite.vadd: β {Ξ± : Type u_1} {Ξ² : Type u_2} [inst : VAdd Ξ± Ξ²] {s : Set Ξ±} {t : Set Ξ²}, Set.Finite s β Set.Finite t β Set.Finite (s +α΅₯ t)Ξ±Ξ±: Type ?u.31168Ξ²] {Ξ²: Type ?u.31324s : Sets: Set Ξ²Ξ²} {Ξ²: Type ?u.31171a :a: Ξ±Ξ±} @[Ξ±: Type ?u.31168to_additive] theoremto_additive: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VAdd Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Finite s β Set.Finite (a +α΅₯ s)Finite.smul_set :Finite.smul_set: Set.Finite s β Set.Finite (a β’ s)s.Finite β (s: Set Ξ²a β’a: Ξ±s).Finite :=s: Set Ξ²Finite.imageFinite.image: β {Ξ± : Type ?u.31267} {Ξ² : Type ?u.31266} {s : Set Ξ±} (f : Ξ± β Ξ²), Set.Finite s β Set.Finite (f '' s)_ #align set.finite.smul_set_: ?m.31268 β ?m.31269Set.Finite.smul_set #align set.finite.vadd_setSet.Finite.smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : SMul Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Finite s β Set.Finite (a β’ s)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)to_additive] theoremto_additive: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VAdd Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Infinite (a +α΅₯ s) β Set.Infinite sInfinite.of_smul_set : (Infinite.of_smul_set: Set.Infinite (a β’ s) β Set.Infinite sa β’a: Ξ±s).Infinite βs: Set Ξ²s.Infinite :=s: Set Ξ²Infinite.of_imageInfinite.of_image: β {Ξ± : Type ?u.31400} {Ξ² : Type ?u.31399} (f : Ξ± β Ξ²) {s : Set Ξ±}, Set.Infinite (f '' s) β Set.Infinite s_ #align set.infinite.of_smul_set_: ?m.31401 β ?m.31402Set.Infinite.of_smul_set #align set.infinite.of_vadd_setSet.Infinite.of_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : SMul Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Infinite (a β’ s) β Set.Infinite sSet.Infinite.of_vadd_set end HasSmulSet section Vsub variable [VSubSet.Infinite.of_vadd_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VAdd Ξ± Ξ²] {s : Set Ξ²} {a : Ξ±}, Set.Infinite (a +α΅₯ s) β Set.Infinite sΞ±Ξ±: Type ?u.31479Ξ²] {Ξ²: Type ?u.31460ss: Set Ξ²t : Sett: Set Ξ²Ξ²} theoremΞ²: Type ?u.31460Finite.vsub (Finite.vsub: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VSub Ξ± Ξ²] {s t : Set Ξ²}, Set.Finite s β Set.Finite t β Set.Finite (s -α΅₯ t)hs :hs: Set.Finite ss.Finite) (s: Set Ξ²ht :ht: Set.Finite tt.Finite) : Set.Finite (t: Set Ξ²s -α΅₯s: Set Ξ²t) :=t: Set Ξ²hs.hs: Set.Finite simage2image2: β {Ξ± : 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)__: ?m.31552 β ?m.31553 β ?m.31554ht #align set.finite.vsubht: Set.Finite tSet.Finite.vsub end Vsub section Cancel variable [MulSet.Finite.vsub: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : VSub Ξ± Ξ²] {s t : Set Ξ²}, Set.Finite s β Set.Finite t β Set.Finite (s -α΅₯ t)Ξ±] [IsLeftCancelMulΞ±: Type ?u.31592Ξ±] [IsRightCancelMulΞ±: Type ?u.31639Ξ±] {Ξ±: Type ?u.31639ss: Set Ξ±t : Sett: Set Ξ±Ξ±} @[Ξ±: Type ?u.31592to_additive] theoremto_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 sinfinite_mul : (infinite_mul: Set.Infinite (s * t) β Set.Infinite s β§ Set.Nonempty t β¨ Set.Infinite t β§ Set.Nonempty ss *s: Set Ξ±t).Infinite βt: Set Ξ±s.Infinite β§s: Set Ξ±t.Nonempty β¨t: Set Ξ±t.Infinite β§t: Set Ξ±s.Nonempty :=s: Set Ξ±infinite_image2 (funinfinite_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)__: ?m.31809_ => (_: ?m.31812mul_left_injectivemul_left_injective: β {G : Type ?u.31814} [inst : Mul G] [inst_1 : IsRightCancelMul G] (a : G), Function.Injective fun x => x * a_)._: ?m.31815injOninjOn: β {Ξ± : Type ?u.31851} {Ξ² : Type ?u.31852} {f : Ξ± β Ξ²}, Function.Injective f β β (s : Set Ξ±), InjOn f s_) fun_: Set ?m.31863__: ?m.31895_ => (_: ?m.31898mul_right_injectivemul_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)_)._: ?m.31901injOninjOn: β {Ξ± : Type ?u.31937} {Ξ² : Type ?u.31938} {f : Ξ± β Ξ²}, Function.Injective f β β (s : Set Ξ±), InjOn f s_ #align set.infinite_mul_: Set ?m.31949Set.infinite_mul #align set.infinite_addSet.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 sSet.infinite_add end Cancel section Group variable [GroupSet.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Ξ±] [MulActionΞ±: Type ?u.32364Ξ±Ξ±: Type ?u.32364Ξ²] {Ξ²: Type ?u.32057a :a: Ξ±Ξ±} {Ξ±: Type ?u.32054s : Sets: Set Ξ²Ξ²} @[Ξ²: Type ?u.32057to_additive (attr := simp)] theoremto_additive: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a +α΅₯ s) β Set.Finite sfinite_smul_set : (finite_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β’ s) β Set.Finite sa β’a: Ξ±s).Finite βs: Set Ξ²s.Finite :=s: Set Ξ²finite_image_iff <| (MulAction.injectivefinite_image_iff: β {Ξ± : Type ?u.33697} {Ξ² : Type ?u.33696} {s : Set Ξ±} {f : Ξ± β Ξ²}, InjOn f s β (Set.Finite (f '' s) β Set.Finite s)_)._: ?m.33718injOninjOn: β {Ξ± : Type ?u.33768} {Ξ² : Type ?u.33769} {f : Ξ± β Ξ²}, Function.Injective f β β (s : Set Ξ±), InjOn f s_ #align set.finite_smul_set_: Set ?m.33780Set.finite_smul_set #align set.finite_vadd_setSet.finite_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β’ s) β Set.Finite sSet.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 sto_additive (attr := simp)] theoremto_additive: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite (a +α΅₯ s) β Set.Infinite sinfinite_smul_set : (infinite_smul_set: Set.Infinite (a β’ s) β Set.Infinite sa β’a: Ξ±s).Infinite βs: Set Ξ²s.Infinite :=s: Set Ξ²infinite_image_iff <| (MulAction.injectiveinfinite_image_iff: β {Ξ± : Type ?u.35273} {Ξ² : Type ?u.35272} {s : Set Ξ±} {f : Ξ± β Ξ²}, InjOn f s β (Set.Infinite (f '' s) β Set.Infinite s)_)._: ?m.35294injOninjOn: β {Ξ± : Type ?u.35344} {Ξ² : Type ?u.35345} {f : Ξ± β Ξ²}, Function.Injective f β β (s : Set Ξ±), InjOn f s_ #align set.infinite_smul_set_: Set ?m.35356Set.infinite_smul_set #align set.infinite_vadd_setSet.infinite_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite (a β’ s) β Set.Infinite sSet.infinite_vadd_set aliasSet.infinite_vadd_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite (a +α΅₯ s) β Set.Infinite sfinite_smul_set βfinite_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β’ s) β Set.Finite sFinite.of_smul_set _ #align set.finite.of_smul_setFinite.of_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β’ s) β Set.Finite sSet.Finite.of_smul_set aliasSet.Finite.of_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β’ s) β Set.Finite sinfinite_smul_set β _infinite_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite (a β’ s) β Set.Infinite sInfinite.smul_set #align set.infinite.smul_setInfinite.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 [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)to_additive]to_additive: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : AddGroup Ξ±] [inst_1 : AddAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite s β Set.Infinite (a +α΅₯ s)Finite.of_smul_setFinite.of_smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Finite (a β’ s) β Set.Finite sInfinite.smul_set end Group end Set open Set namespace Group variable {Infinite.smul_set: β {Ξ± : Type u_2} {Ξ² : Type u_1} [inst : Group Ξ±] [inst_1 : MulAction Ξ± Ξ²] {a : Ξ±} {s : Set Ξ²}, Set.Infinite s β Set.Infinite (a β’ s)G :G: Type ?u.35647Type _} [GroupType _: Type (?u.35647+1)G] [FintypeG: Type ?u.35647G] (G: Type ?u.35623S : SetS: Set GG) @[G: Type ?u.35623to_additive] theoremto_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)card_pow_eq_card_pow_card_univ [β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)k :k: ββ, DecidablePred (Β· ββ: TypeS ^S: Set Gk)] : βk: βk, Fintype.cardk: ?m.60061G β€G: Type ?u.35647k β Fintype.card (β₯(k: ?m.60061S ^S: Set Gk)) = Fintype.card (β₯(k: ?m.60061S ^ Fintype.cardS: Set GG)) :=G: Type ?u.35647Goals 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 = β
posβ (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β (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 βtF: 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 β tFunction.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 βtF: 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 βtGoals 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.introF: 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β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.introF: 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β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β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.introF: 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β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 aFintype β(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β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'_1F: 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'_2Fintype.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β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'_1F: 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'_1F: 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'_2Fintype.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β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'_2Fintype.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'_2Fintype.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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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.introF: 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#align group.card_pow_eq_card_pow_card_univF: 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.introGroup.card_pow_eq_card_pow_card_univ #align add_group.card_nsmul_eq_card_nsmul_card_univGroup.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)AddGroup.card_nsmul_eq_card_nsmul_card_univ end GroupAddGroup.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)