File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -50,20 +50,31 @@ This generalizes and will eventually replace the four existing definitions
5050class IsAddFG (M : Type *) [Add M] : Prop where
5151 fg_top : ∃ S : Finset M, AddSubsemigroup.closure (S : Set M) = ⊤
5252
53+ section Mul
54+
55+ variable (M : Type *) [Mul M]
56+
5357/-- A type with multiplication is finitely generated if there is a finite subset such that every
5458element of the type can be written as a finite product of elements from this finite subset.
5559
5660This generalizes and will eventually replace the four existing definitions
5761`Submonoid.FG`, `Monoid.FG`, `Subgroup.FG`, and `Group.FG`. -/
5862@ [to_additive existing]
59- class IsMulFG (M : Type *) [Mul M] : Prop where
63+ class IsMulFG : Prop where
6064 fg_top : ∃ S : Finset M, Subsemigroup.closure (S : Set M) = ⊤
6165
66+ variable {M}
67+
6268@[to_additive]
63- theorem isMulFG_def {M : Type *} [Mul M] :
64- IsMulFG M ↔ ∃ S : Finset M, Subsemigroup.closure (S : Set M) = ⊤ :=
69+ theorem isMulFG_def : IsMulFG M ↔ ∃ S : Finset M, Subsemigroup.closure (S : Set M) = ⊤ :=
6570 ⟨fun h ↦ h.fg_top, fun h ↦ ⟨h⟩⟩
6671
72+ instance [Finite M] : IsMulFG M := by
73+ cases nonempty_fintype M
74+ exact ⟨Finset.univ, by simp⟩
75+
76+ end Mul
77+
6778namespace Monoid
6879
6980variable {M : Type *} [Monoid M]
You can’t perform that action at this time.
0 commit comments