ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AddSubsemigroup.toSubsemigroup_symm_apply_coe
@[simps]
def AddSubsemigroup.toSubsemigroup : AddSubsemigroup A ≃o Subsemigroup (Multiplicative A) 
Arguments: {A : Type u_5} [Add A] (S : Subsemigroup (Multiplicative A))
Goal: ↑((RelIso.symm AddSubsemigroup.toSubsemigroup) S) = ⇑Multiplicative.ofAdd ⁻¹' ↑S
-- AddSubsemigroup.toSubsemigroup_closure
theorem AddSubsemigroup.toSubsemigroup_closure (S : Set A) :
    AddSubsemigroup.toSubsemigroup (AddSubsemigroup.closure S) =
      Subsemigroup.closure (Multiplicative.toAdd ⁻¹' S) 
Arguments: {A : Type u_5} [Add A] (S : Set A)
Goal: AddSubsemigroup.toSubsemigroup (AddSubsemigroup.closure S) = Subsemigroup.closure (⇑Multiplicative.toAdd ⁻¹' S)
-- Subsemigroup.toAddSubsemigroup'_closure
theorem Subsemigroup.toAddSubsemigroup'_closure (S : Set (Multiplicative A)) :
    Subsemigroup.toAddSubsemigroup' (Subsemigroup.closure S) =
      AddSubsemigroup.closure (Multiplicative.ofAdd ⁻¹' S) 
Arguments: {A : Type u_5} [Add A] (S : Set (Multiplicative A))
Goal: Subsemigroup.toAddSubsemigroup' (Subsemigroup.closure S) = AddSubsemigroup.closure (⇑Multiplicative.ofAdd ⁻¹' S)
-- AddSubsemigroup.coe_comap
@[to_additive (attr := simp)]
theorem coe_comap (S : Subsemigroup N) (f : M →ₙ* N) : (S.comap f : Set M) = f ⁻¹' S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (S : AddSubsemigroup N) (f : AddHom M N)
Goal: ↑(AddSubsemigroup.comap f S) = ⇑f ⁻¹' ↑S
-- Subsemigroup.coe_comap
@[to_additive (attr := simp)]
theorem coe_comap (S : Subsemigroup N) (f : M →ₙ* N) : (S.comap f : Set M) = f ⁻¹' S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (S : Subsemigroup N) (f : M →ₙ* N)
Goal: ↑(Subsemigroup.comap f S) = ⇑f ⁻¹' ↑S
-- Subsemigroup.mem_comap
@[to_additive (attr := simp)]
theorem mem_comap {S : Subsemigroup N} {f : M →ₙ* N} {x : M} : x ∈ S.comap f ↔ f x ∈ S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {S : Subsemigroup N} {f : M →ₙ* N} {x : M}
Goal: x ∈ Subsemigroup.comap f S ↔ f x ∈ S
-- AddSubsemigroup.mem_comap
@[to_additive (attr := simp)]
theorem mem_comap {S : Subsemigroup N} {f : M →ₙ* N} {x : M} : x ∈ S.comap f ↔ f x ∈ S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {S : AddSubsemigroup N} {f : AddHom M N} {x : M}
Goal: x ∈ AddSubsemigroup.comap f S ↔ f x ∈ S
-- AddSubsemigroup.comap_comap
@[to_additive]
theorem comap_comap (S : Subsemigroup P) (g : N →ₙ* P) (f : M →ₙ* N) :
    (S.comap g).comap f = S.comap (g.comp f) 
Arguments: {M : Type u_1} {N : Type u_2} {P : Type u_3} [Add M] [Add N] [Add P] (S : AddSubsemigroup P) (g : AddHom N P) (f : AddHom M N)
Goal: AddSubsemigroup.comap f (AddSubsemigroup.comap g S) = AddSubsemigroup.comap (g.comp f) S
-- Subsemigroup.comap_comap
@[to_additive]
theorem comap_comap (S : Subsemigroup P) (g : N →ₙ* P) (f : M →ₙ* N) :
    (S.comap g).comap f = S.comap (g.comp f) 
Arguments: {M : Type u_1} {N : Type u_2} {P : Type u_3} [Mul M] [Mul N] [Mul P] (S : Subsemigroup P) (g : N →ₙ* P) (f : M →ₙ* N)
Goal: Subsemigroup.comap f (Subsemigroup.comap g S) = Subsemigroup.comap (g.comp f) S
-- Subsemigroup.comap_id
@[to_additive (attr := simp)]
theorem comap_id (S : Subsemigroup P) : S.comap (MulHom.id _) = S 
Arguments: {P : Type u_3} [Mul P] (S : Subsemigroup P)
Goal: Subsemigroup.comap (MulHom.id P) S = S
-- AddSubsemigroup.comap_id
@[to_additive (attr := simp)]
theorem comap_id (S : Subsemigroup P) : S.comap (MulHom.id _) = S 
Arguments: {P : Type u_3} [Add P] (S : AddSubsemigroup P)
Goal: AddSubsemigroup.comap (AddHom.id P) S = S
-- Subsemigroup.coe_map
@[to_additive (attr := simp)]
theorem coe_map (f : M →ₙ* N) (S : Subsemigroup M) : (S.map f : Set N) = f '' S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (f : M →ₙ* N) (S : Subsemigroup M)
Goal: ↑(Subsemigroup.map f S) = ⇑f '' ↑S
-- AddSubsemigroup.coe_map
@[to_additive (attr := simp)]
theorem coe_map (f : M →ₙ* N) (S : Subsemigroup M) : (S.map f : Set N) = f '' S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (f : AddHom M N) (S : AddSubsemigroup M)
Goal: ↑(AddSubsemigroup.map f S) = ⇑f '' ↑S
-- Subsemigroup.mem_map
@[to_additive (attr := simp)]
theorem mem_map {f : M →ₙ* N} {S : Subsemigroup M} {y : N} : y ∈ S.map f ↔ ∃ x ∈ S, f x = y 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} {S : Subsemigroup M} {y : N}
Goal: y ∈ Subsemigroup.map f S ↔ ∃ x ∈ S, f x = y
-- AddSubsemigroup.mem_map
@[to_additive (attr := simp)]
theorem mem_map {f : M →ₙ* N} {S : Subsemigroup M} {y : N} : y ∈ S.map f ↔ ∃ x ∈ S, f x = y 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} {S : AddSubsemigroup M} {y : N}
Goal: y ∈ AddSubsemigroup.map f S ↔ ∃ x ∈ S, f x = y
-- Subsemigroup.mem_map_of_mem
@[to_additive]
theorem mem_map_of_mem (f : M →ₙ* N) {S : Subsemigroup M} {x : M} (hx : x ∈ S) : f x ∈ S.map f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (f : M →ₙ* N) {S : Subsemigroup M} {x : M} (hx : x ∈ S)
Goal: f x ∈ Subsemigroup.map f S
-- AddSubsemigroup.mem_map_of_mem
@[to_additive]
theorem mem_map_of_mem (f : M →ₙ* N) {S : Subsemigroup M} {x : M} (hx : x ∈ S) : f x ∈ S.map f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (f : AddHom M N) {S : AddSubsemigroup M} {x : M} (hx : x ∈ S)
Goal: f x ∈ AddSubsemigroup.map f S
-- Subsemigroup.apply_coe_mem_map
@[to_additive]
theorem apply_coe_mem_map (f : M →ₙ* N) (S : Subsemigroup M) (x : S) : f x ∈ S.map f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (f : M →ₙ* N) (S : Subsemigroup M) (x : ↥S)
Goal: f ↑x ∈ Subsemigroup.map f S
-- AddSubsemigroup.apply_coe_mem_map
@[to_additive]
theorem apply_coe_mem_map (f : M →ₙ* N) (S : Subsemigroup M) (x : S) : f x ∈ S.map f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (f : AddHom M N) (S : AddSubsemigroup M) (x : ↥S)
Goal: f ↑x ∈ AddSubsemigroup.map f S
-- Subsemigroup.map_map
@[to_additive]
theorem map_map (g : N →ₙ* P) (f : M →ₙ* N) : (S.map f).map g = S.map (g.comp f) 
Arguments: {M : Type u_1} {N : Type u_2} {P : Type u_3} [Mul M] [Mul N] [Mul P] (S : Subsemigroup M) (g : N →ₙ* P) (f : M →ₙ* N)
Goal: Subsemigroup.map g (Subsemigroup.map f S) = Subsemigroup.map (g.comp f) S
-- AddSubsemigroup.map_map
@[to_additive]
theorem map_map (g : N →ₙ* P) (f : M →ₙ* N) : (S.map f).map g = S.map (g.comp f) 
Arguments: {M : Type u_1} {N : Type u_2} {P : Type u_3} [Add M] [Add N] [Add P] (S : AddSubsemigroup M) (g : AddHom N P) (f : AddHom M N)
Goal: AddSubsemigroup.map g (AddSubsemigroup.map f S) = AddSubsemigroup.map (g.comp f) S
-- Subsemigroup.mem_map_iff_mem
@[to_additive (attr := simp, nolint simpNF)]
theorem mem_map_iff_mem {f : M →ₙ* N} (hf : Function.Injective f) {S : Subsemigroup M} {x : M} :
    f x ∈ S.map f ↔ x ∈ S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Injective ⇑f) {S : Subsemigroup M} {x : M}
Goal: f x ∈ Subsemigroup.map f S ↔ x ∈ S
-- AddSubsemigroup.mem_map_iff_mem
@[to_additive (attr := simp, nolint simpNF)]
theorem mem_map_iff_mem {f : M →ₙ* N} (hf : Function.Injective f) {S : Subsemigroup M} {x : M} :
    f x ∈ S.map f ↔ x ∈ S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Injective ⇑f) {S : AddSubsemigroup M} {x : M}
Goal: f x ∈ AddSubsemigroup.map f S ↔ x ∈ S
-- Subsemigroup.map_le_iff_le_comap
@[to_additive]
theorem map_le_iff_le_comap {f : M →ₙ* N} {S : Subsemigroup M} {T : Subsemigroup N} :
    S.map f ≤ T ↔ S ≤ T.comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} {S : Subsemigroup M} {T : Subsemigroup N}
Goal: Subsemigroup.map f S ≤ T ↔ S ≤ Subsemigroup.comap f T
-- AddSubsemigroup.map_le_iff_le_comap
@[to_additive]
theorem map_le_iff_le_comap {f : M →ₙ* N} {S : Subsemigroup M} {T : Subsemigroup N} :
    S.map f ≤ T ↔ S ≤ T.comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} {S : AddSubsemigroup M} {T : AddSubsemigroup N}
Goal: AddSubsemigroup.map f S ≤ T ↔ S ≤ AddSubsemigroup.comap f T
-- Subsemigroup.gc_map_comap
@[to_additive]
theorem gc_map_comap (f : M →ₙ* N) : GaloisConnection (map f) (comap f) 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (f : M →ₙ* N)
Goal: GaloisConnection (Subsemigroup.map f) (Subsemigroup.comap f)
-- AddSubsemigroup.gc_map_comap
@[to_additive]
theorem gc_map_comap (f : M →ₙ* N) : GaloisConnection (map f) (comap f) 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (f : AddHom M N)
Goal: GaloisConnection (AddSubsemigroup.map f) (AddSubsemigroup.comap f)
-- Subsemigroup.map_le_of_le_comap
@[to_additive]
theorem map_le_of_le_comap {T : Subsemigroup N} {f : M →ₙ* N} : S ≤ T.comap f → S.map f ≤ T 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (S : Subsemigroup M) {T : Subsemigroup N} {f : M →ₙ* N}
Goal: S ≤ Subsemigroup.comap f T → Subsemigroup.map f S ≤ T
-- AddSubsemigroup.map_le_of_le_comap
@[to_additive]
theorem map_le_of_le_comap {T : Subsemigroup N} {f : M →ₙ* N} : S ≤ T.comap f → S.map f ≤ T 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (S : AddSubsemigroup M) {T : AddSubsemigroup N} {f : AddHom M N}
Goal: S ≤ AddSubsemigroup.comap f T → AddSubsemigroup.map f S ≤ T
-- AddSubsemigroup.le_comap_of_map_le
@[to_additive]
theorem le_comap_of_map_le {T : Subsemigroup N} {f : M →ₙ* N} : S.map f ≤ T → S ≤ T.comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (S : AddSubsemigroup M) {T : AddSubsemigroup N} {f : AddHom M N}
Goal: AddSubsemigroup.map f S ≤ T → S ≤ AddSubsemigroup.comap f T
-- Subsemigroup.le_comap_of_map_le
@[to_additive]
theorem le_comap_of_map_le {T : Subsemigroup N} {f : M →ₙ* N} : S.map f ≤ T → S ≤ T.comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (S : Subsemigroup M) {T : Subsemigroup N} {f : M →ₙ* N}
Goal: Subsemigroup.map f S ≤ T → S ≤ Subsemigroup.comap f T
-- AddSubsemigroup.le_comap_map
@[to_additive]
theorem le_comap_map {f : M →ₙ* N} : S ≤ (S.map f).comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (S : AddSubsemigroup M) {f : AddHom M N}
Goal: S ≤ AddSubsemigroup.comap f (AddSubsemigroup.map f S)
-- Subsemigroup.le_comap_map
@[to_additive]
theorem le_comap_map {f : M →ₙ* N} : S ≤ (S.map f).comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (S : Subsemigroup M) {f : M →ₙ* N}
Goal: S ≤ Subsemigroup.comap f (Subsemigroup.map f S)
-- Subsemigroup.map_comap_le
@[to_additive]
theorem map_comap_le {S : Subsemigroup N} {f : M →ₙ* N} : (S.comap f).map f ≤ S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {S : Subsemigroup N} {f : M →ₙ* N}
Goal: Subsemigroup.map f (Subsemigroup.comap f S) ≤ S
-- AddSubsemigroup.map_comap_le
@[to_additive]
theorem map_comap_le {S : Subsemigroup N} {f : M →ₙ* N} : (S.comap f).map f ≤ S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {S : AddSubsemigroup N} {f : AddHom M N}
Goal: AddSubsemigroup.map f (AddSubsemigroup.comap f S) ≤ S
-- Subsemigroup.monotone_map
@[to_additive]
theorem monotone_map {f : M →ₙ* N} : Monotone (map f) 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N}
Goal: Monotone (Subsemigroup.map f)
-- AddSubsemigroup.monotone_map
@[to_additive]
theorem monotone_map {f : M →ₙ* N} : Monotone (map f) 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N}
Goal: Monotone (AddSubsemigroup.map f)
-- AddSubsemigroup.monotone_comap
@[to_additive]
theorem monotone_comap {f : M →ₙ* N} : Monotone (comap f) 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N}
Goal: Monotone (AddSubsemigroup.comap f)
-- Subsemigroup.monotone_comap
@[to_additive]
theorem monotone_comap {f : M →ₙ* N} : Monotone (comap f) 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N}
Goal: Monotone (Subsemigroup.comap f)
-- AddSubsemigroup.map_comap_map
@[to_additive (attr := simp)]
theorem map_comap_map {f : M →ₙ* N} : ((S.map f).comap f).map f = S.map f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (S : AddSubsemigroup M) {f : AddHom M N}
Goal: AddSubsemigroup.map f (AddSubsemigroup.comap f (AddSubsemigroup.map f S)) = AddSubsemigroup.map f S
-- Subsemigroup.map_comap_map
@[to_additive (attr := simp)]
theorem map_comap_map {f : M →ₙ* N} : ((S.map f).comap f).map f = S.map f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (S : Subsemigroup M) {f : M →ₙ* N}
Goal: Subsemigroup.map f (Subsemigroup.comap f (Subsemigroup.map f S)) = Subsemigroup.map f S
-- Subsemigroup.comap_map_comap
@[to_additive (attr := simp)]
theorem comap_map_comap {S : Subsemigroup N} {f : M →ₙ* N} :
    ((S.comap f).map f).comap f = S.comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {S : Subsemigroup N} {f : M →ₙ* N}
Goal: Subsemigroup.comap f (Subsemigroup.map f (Subsemigroup.comap f S)) = Subsemigroup.comap f S
-- AddSubsemigroup.comap_map_comap
@[to_additive (attr := simp)]
theorem comap_map_comap {S : Subsemigroup N} {f : M →ₙ* N} :
    ((S.comap f).map f).comap f = S.comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {S : AddSubsemigroup N} {f : AddHom M N}
Goal: AddSubsemigroup.comap f (AddSubsemigroup.map f (AddSubsemigroup.comap f S)) = AddSubsemigroup.comap f S
-- Subsemigroup.map_sup
@[to_additive]
theorem map_sup (S T : Subsemigroup M) (f : M →ₙ* N) : (S ⊔ T).map f = S.map f ⊔ T.map f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (S T : Subsemigroup M) (f : M →ₙ* N)
Goal: Subsemigroup.map f (S ⊔ T) = Subsemigroup.map f S ⊔ Subsemigroup.map f T
-- AddSubsemigroup.map_sup
@[to_additive]
theorem map_sup (S T : Subsemigroup M) (f : M →ₙ* N) : (S ⊔ T).map f = S.map f ⊔ T.map f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (S T : AddSubsemigroup M) (f : AddHom M N)
Goal: AddSubsemigroup.map f (S ⊔ T) = AddSubsemigroup.map f S ⊔ AddSubsemigroup.map f T
-- Subsemigroup.map_iSup
@[to_additive]
theorem map_iSup {ι : Sort*} (f : M →ₙ* N) (s : ι → Subsemigroup M) :
    (iSup s).map f = ⨆ i, (s i).map f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {ι : Sort u_5} (f : M →ₙ* N) (s : ι → Subsemigroup M)
Goal: Subsemigroup.map f (iSup s) = ⨆ i, Subsemigroup.map f (s i)
-- AddSubsemigroup.map_iSup
@[to_additive]
theorem map_iSup {ι : Sort*} (f : M →ₙ* N) (s : ι → Subsemigroup M) :
    (iSup s).map f = ⨆ i, (s i).map f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {ι : Sort u_5} (f : AddHom M N) (s : ι → AddSubsemigroup M)
Goal: AddSubsemigroup.map f (iSup s) = ⨆ i, AddSubsemigroup.map f (s i)
-- Subsemigroup.comap_inf
@[to_additive]
theorem comap_inf (S T : Subsemigroup N) (f : M →ₙ* N) : (S ⊓ T).comap f = S.comap f ⊓ T.comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (S T : Subsemigroup N) (f : M →ₙ* N)
Goal: Subsemigroup.comap f (S ⊓ T) = Subsemigroup.comap f S ⊓ Subsemigroup.comap f T
-- AddSubsemigroup.comap_inf
@[to_additive]
theorem comap_inf (S T : Subsemigroup N) (f : M →ₙ* N) : (S ⊓ T).comap f = S.comap f ⊓ T.comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (S T : AddSubsemigroup N) (f : AddHom M N)
Goal: AddSubsemigroup.comap f (S ⊓ T) = AddSubsemigroup.comap f S ⊓ AddSubsemigroup.comap f T
-- Subsemigroup.comap_iInf
@[to_additive]
theorem comap_iInf {ι : Sort*} (f : M →ₙ* N) (s : ι → Subsemigroup N) :
    (iInf s).comap f = ⨅ i, (s i).comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {ι : Sort u_5} (f : M →ₙ* N) (s : ι → Subsemigroup N)
Goal: Subsemigroup.comap f (iInf s) = ⨅ i, Subsemigroup.comap f (s i)
-- AddSubsemigroup.comap_iInf
@[to_additive]
theorem comap_iInf {ι : Sort*} (f : M →ₙ* N) (s : ι → Subsemigroup N) :
    (iInf s).comap f = ⨅ i, (s i).comap f 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {ι : Sort u_5} (f : AddHom M N) (s : ι → AddSubsemigroup N)
Goal: AddSubsemigroup.comap f (iInf s) = ⨅ i, AddSubsemigroup.comap f (s i)
-- AddSubsemigroup.map_bot
@[to_additive (attr := simp)]
theorem map_bot (f : M →ₙ* N) : (⊥ : Subsemigroup M).map f = ⊥ 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (f : AddHom M N)
Goal: AddSubsemigroup.map f ⊥ = ⊥
-- Subsemigroup.map_bot
@[to_additive (attr := simp)]
theorem map_bot (f : M →ₙ* N) : (⊥ : Subsemigroup M).map f = ⊥ 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (f : M →ₙ* N)
Goal: Subsemigroup.map f ⊥ = ⊥
-- AddSubsemigroup.comap_top
@[to_additive (attr := simp)]
theorem comap_top (f : M →ₙ* N) : (⊤ : Subsemigroup N).comap f = ⊤ 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] (f : AddHom M N)
Goal: AddSubsemigroup.comap f ⊤ = ⊤
-- Subsemigroup.comap_top
@[to_additive (attr := simp)]
theorem comap_top (f : M →ₙ* N) : (⊤ : Subsemigroup N).comap f = ⊤ 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] (f : M →ₙ* N)
Goal: Subsemigroup.comap f ⊤ = ⊤
-- Subsemigroup.map_id
@[to_additive (attr := simp)]
theorem map_id (S : Subsemigroup M) : S.map (MulHom.id M) = S 
Arguments: {M : Type u_1} [Mul M] (S : Subsemigroup M)
Goal: Subsemigroup.map (MulHom.id M) S = S
-- AddSubsemigroup.map_id
@[to_additive (attr := simp)]
theorem map_id (S : Subsemigroup M) : S.map (MulHom.id M) = S 
Arguments: {M : Type u_1} [Add M] (S : AddSubsemigroup M)
Goal: AddSubsemigroup.map (AddHom.id M) S = S
-- AddSubsemigroup.comap_map_eq_of_injective
@[to_additive]
theorem comap_map_eq_of_injective (S : Subsemigroup M) : (S.map f).comap f = S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Injective ⇑f) (S : AddSubsemigroup M)
Goal: AddSubsemigroup.comap f (AddSubsemigroup.map f S) = S
-- Subsemigroup.comap_map_eq_of_injective
@[to_additive]
theorem comap_map_eq_of_injective (S : Subsemigroup M) : (S.map f).comap f = S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Injective ⇑f) (S : Subsemigroup M)
Goal: Subsemigroup.comap f (Subsemigroup.map f S) = S
-- Subsemigroup.comap_surjective_of_injective
@[to_additive]
theorem comap_surjective_of_injective : Function.Surjective (comap f) 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Injective ⇑f)
Goal: Function.Surjective (Subsemigroup.comap f)
-- AddSubsemigroup.comap_surjective_of_injective
@[to_additive]
theorem comap_surjective_of_injective : Function.Surjective (comap f) 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Injective ⇑f)
Goal: Function.Surjective (AddSubsemigroup.comap f)
-- Subsemigroup.map_injective_of_injective
@[to_additive]
theorem map_injective_of_injective : Function.Injective (map f) 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Injective ⇑f)
Goal: Function.Injective (Subsemigroup.map f)
-- AddSubsemigroup.map_injective_of_injective
@[to_additive]
theorem map_injective_of_injective : Function.Injective (map f) 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Injective ⇑f)
Goal: Function.Injective (AddSubsemigroup.map f)
-- AddSubsemigroup.comap_inf_map_of_injective
@[to_additive]
theorem comap_inf_map_of_injective (S T : Subsemigroup M) : (S.map f ⊓ T.map f).comap f = S ⊓ T 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Injective ⇑f) (S T : AddSubsemigroup M)
Goal: AddSubsemigroup.comap f (AddSubsemigroup.map f S ⊓ AddSubsemigroup.map f T) = S ⊓ T
-- Subsemigroup.comap_inf_map_of_injective
@[to_additive]
theorem comap_inf_map_of_injective (S T : Subsemigroup M) : (S.map f ⊓ T.map f).comap f = S ⊓ T 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Injective ⇑f) (S T : Subsemigroup M)
Goal: Subsemigroup.comap f (Subsemigroup.map f S ⊓ Subsemigroup.map f T) = S ⊓ T
-- Subsemigroup.comap_iInf_map_of_injective
@[to_additive]
theorem comap_iInf_map_of_injective (S : ι → Subsemigroup M) :
    (⨅ i, (S i).map f).comap f = iInf S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {ι : Type u_5} {f : M →ₙ* N} (hf : Function.Injective ⇑f) (S : ι → Subsemigroup M)
Goal: Subsemigroup.comap f (⨅ i, Subsemigroup.map f (S i)) = iInf S
-- AddSubsemigroup.comap_iInf_map_of_injective
@[to_additive]
theorem comap_iInf_map_of_injective (S : ι → Subsemigroup M) :
    (⨅ i, (S i).map f).comap f = iInf S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {ι : Type u_5} {f : AddHom M N} (hf : Function.Injective ⇑f) (S : ι → AddSubsemigroup M)
Goal: AddSubsemigroup.comap f (⨅ i, AddSubsemigroup.map f (S i)) = iInf S
-- AddSubsemigroup.comap_sup_map_of_injective
@[to_additive]
theorem comap_sup_map_of_injective (S T : Subsemigroup M) : (S.map f ⊔ T.map f).comap f = S ⊔ T 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Injective ⇑f) (S T : AddSubsemigroup M)
Goal: AddSubsemigroup.comap f (AddSubsemigroup.map f S ⊔ AddSubsemigroup.map f T) = S ⊔ T
-- Subsemigroup.comap_sup_map_of_injective
@[to_additive]
theorem comap_sup_map_of_injective (S T : Subsemigroup M) : (S.map f ⊔ T.map f).comap f = S ⊔ T 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Injective ⇑f) (S T : Subsemigroup M)
Goal: Subsemigroup.comap f (Subsemigroup.map f S ⊔ Subsemigroup.map f T) = S ⊔ T
-- AddSubsemigroup.comap_iSup_map_of_injective
@[to_additive]
theorem comap_iSup_map_of_injective (S : ι → Subsemigroup M) :
    (⨆ i, (S i).map f).comap f = iSup S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {ι : Type u_5} {f : AddHom M N} (hf : Function.Injective ⇑f) (S : ι → AddSubsemigroup M)
Goal: AddSubsemigroup.comap f (⨆ i, AddSubsemigroup.map f (S i)) = iSup S
-- Subsemigroup.comap_iSup_map_of_injective
@[to_additive]
theorem comap_iSup_map_of_injective (S : ι → Subsemigroup M) :
    (⨆ i, (S i).map f).comap f = iSup S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {ι : Type u_5} {f : M →ₙ* N} (hf : Function.Injective ⇑f) (S : ι → Subsemigroup M)
Goal: Subsemigroup.comap f (⨆ i, Subsemigroup.map f (S i)) = iSup S
-- AddSubsemigroup.map_le_map_iff_of_injective
@[to_additive]
theorem map_le_map_iff_of_injective {S T : Subsemigroup M} : S.map f ≤ T.map f ↔ S ≤ T 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Injective ⇑f) {S T : AddSubsemigroup M}
Goal: AddSubsemigroup.map f S ≤ AddSubsemigroup.map f T ↔ S ≤ T
-- Subsemigroup.map_le_map_iff_of_injective
@[to_additive]
theorem map_le_map_iff_of_injective {S T : Subsemigroup M} : S.map f ≤ T.map f ↔ S ≤ T 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Injective ⇑f) {S T : Subsemigroup M}
Goal: Subsemigroup.map f S ≤ Subsemigroup.map f T ↔ S ≤ T
-- Subsemigroup.map_strictMono_of_injective
@[to_additive]
theorem map_strictMono_of_injective : StrictMono (map f) 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Injective ⇑f)
Goal: StrictMono (Subsemigroup.map f)
-- AddSubsemigroup.map_strictMono_of_injective
@[to_additive]
theorem map_strictMono_of_injective : StrictMono (map f) 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Injective ⇑f)
Goal: StrictMono (AddSubsemigroup.map f)
-- Subsemigroup.map_comap_eq_of_surjective
@[to_additive]
theorem map_comap_eq_of_surjective (S : Subsemigroup N) : (S.comap f).map f = S 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Surjective ⇑f) (S : Subsemigroup N)
Goal: Subsemigroup.map f (Subsemigroup.comap f S) = S
-- AddSubsemigroup.map_comap_eq_of_surjective
@[to_additive]
theorem map_comap_eq_of_surjective (S : Subsemigroup N) : (S.comap f).map f = S 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Surjective ⇑f) (S : AddSubsemigroup N)
Goal: AddSubsemigroup.map f (AddSubsemigroup.comap f S) = S
-- Subsemigroup.map_surjective_of_surjective
@[to_additive]
theorem map_surjective_of_surjective : Function.Surjective (map f) 
Arguments: {M : Type u_1} {N : Type u_2} [Mul M] [Mul N] {f : M →ₙ* N} (hf : Function.Surjective ⇑f)
Goal: Function.Surjective (Subsemigroup.map f)
-- AddSubsemigroup.map_surjective_of_surjective
@[to_additive]
theorem map_surjective_of_surjective : Function.Surjective (map f) 
Arguments: {M : Type u_1} {N : Type u_2} [Add M] [Add N] {f : AddHom M N} (hf : Function.Surjective ⇑f)
Goal: Function.Surjective (AddSubsemigroup.map f)