ring_theory.subring.pointwise
⟷
Mathlib.RingTheory.Subring.Pointwise
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-/
-import Mathbin.RingTheory.Subring.Basic
-import Mathbin.GroupTheory.Subgroup.Pointwise
-import Mathbin.RingTheory.Subsemiring.Pointwise
-import Mathbin.Data.Set.Pointwise.Basic
+import RingTheory.Subring.Basic
+import GroupTheory.Subgroup.Pointwise
+import RingTheory.Subsemiring.Pointwise
+import Data.Set.Pointwise.Basic
#align_import ring_theory.subring.pointwise from "leanprover-community/mathlib"@"932872382355f00112641d305ba0619305dc8642"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -46,7 +46,7 @@ protected def pointwiseMulAction : MulAction M (Subring R)
where
smul a S := S.map (MulSemiringAction.toRingHom _ _ a)
one_smul S := (congr_arg (fun f => S.map f) (RingHom.ext <| one_smul M)).trans S.map_id
- mul_smul a₁ a₂ S :=
+ hMul_smul a₁ a₂ S :=
(congr_arg (fun f => S.map f) (RingHom.ext <| mul_smul _ _)).trans (S.map_map _ _).symm
#align subring.pointwise_mul_action Subring.pointwiseMulAction
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module ring_theory.subring.pointwise
-! leanprover-community/mathlib commit 932872382355f00112641d305ba0619305dc8642
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.RingTheory.Subring.Basic
import Mathbin.GroupTheory.Subgroup.Pointwise
import Mathbin.RingTheory.Subsemiring.Pointwise
import Mathbin.Data.Set.Pointwise.Basic
+#align_import ring_theory.subring.pointwise from "leanprover-community/mathlib"@"932872382355f00112641d305ba0619305dc8642"
+
/-! # Pointwise instances on `subring`s
> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -65,16 +65,20 @@ theorem pointwise_smul_def {a : M} (S : Subring R) :
#align subring.pointwise_smul_def Subring.pointwise_smul_def
-/
+#print Subring.coe_pointwise_smul /-
@[simp]
theorem coe_pointwise_smul (m : M) (S : Subring R) : ↑(m • S) = m • (S : Set R) :=
rfl
#align subring.coe_pointwise_smul Subring.coe_pointwise_smul
+-/
+#print Subring.pointwise_smul_toAddSubgroup /-
@[simp]
theorem pointwise_smul_toAddSubgroup (m : M) (S : Subring R) :
(m • S).toAddSubgroup = m • S.toAddSubgroup :=
rfl
#align subring.pointwise_smul_to_add_subgroup Subring.pointwise_smul_toAddSubgroup
+-/
#print Subring.pointwise_smul_toSubsemiring /-
@[simp]
@@ -84,23 +88,31 @@ theorem pointwise_smul_toSubsemiring (m : M) (S : Subring R) :
#align subring.pointwise_smul_to_subsemiring Subring.pointwise_smul_toSubsemiring
-/
+#print Subring.smul_mem_pointwise_smul /-
theorem smul_mem_pointwise_smul (m : M) (r : R) (S : Subring R) : r ∈ S → m • r ∈ m • S :=
(Set.smul_mem_smul_set : _ → _ ∈ m • (S : Set R))
#align subring.smul_mem_pointwise_smul Subring.smul_mem_pointwise_smul
+-/
+#print Subring.mem_smul_pointwise_iff_exists /-
theorem mem_smul_pointwise_iff_exists (m : M) (r : R) (S : Subring R) :
r ∈ m • S ↔ ∃ s : R, s ∈ S ∧ m • s = r :=
(Set.mem_smul_set : r ∈ m • (S : Set R) ↔ _)
#align subring.mem_smul_pointwise_iff_exists Subring.mem_smul_pointwise_iff_exists
+-/
+#print Subring.smul_bot /-
@[simp]
theorem smul_bot (a : M) : a • (⊥ : Subring R) = ⊥ :=
map_bot _
#align subring.smul_bot Subring.smul_bot
+-/
+#print Subring.smul_sup /-
theorem smul_sup (a : M) (S T : Subring R) : a • (S ⊔ T) = a • S ⊔ a • T :=
map_sup _ _ _
#align subring.smul_sup Subring.smul_sup
+-/
#print Subring.smul_closure /-
theorem smul_closure (a : M) (s : Set R) : a • closure s = closure (a • s) :=
@@ -108,10 +120,12 @@ theorem smul_closure (a : M) (s : Set R) : a • closure s = closure (a • s) :
#align subring.smul_closure Subring.smul_closure
-/
+#print Subring.pointwise_central_scalar /-
instance pointwise_central_scalar [MulSemiringAction Mᵐᵒᵖ R] [IsCentralScalar M R] :
IsCentralScalar M (Subring R) :=
⟨fun a S => (congr_arg fun f => S.map f) <| RingHom.ext <| op_smul_eq_smul _⟩
#align subring.pointwise_central_scalar Subring.pointwise_central_scalar
+-/
end Monoid
@@ -121,32 +135,44 @@ variable [Group M] [Ring R] [MulSemiringAction M R]
open scoped Pointwise
+#print Subring.smul_mem_pointwise_smul_iff /-
@[simp]
theorem smul_mem_pointwise_smul_iff {a : M} {S : Subring R} {x : R} : a • x ∈ a • S ↔ x ∈ S :=
smul_mem_smul_set_iff
#align subring.smul_mem_pointwise_smul_iff Subring.smul_mem_pointwise_smul_iff
+-/
+#print Subring.mem_pointwise_smul_iff_inv_smul_mem /-
theorem mem_pointwise_smul_iff_inv_smul_mem {a : M} {S : Subring R} {x : R} :
x ∈ a • S ↔ a⁻¹ • x ∈ S :=
mem_smul_set_iff_inv_smul_mem
#align subring.mem_pointwise_smul_iff_inv_smul_mem Subring.mem_pointwise_smul_iff_inv_smul_mem
+-/
+#print Subring.mem_inv_pointwise_smul_iff /-
theorem mem_inv_pointwise_smul_iff {a : M} {S : Subring R} {x : R} : x ∈ a⁻¹ • S ↔ a • x ∈ S :=
mem_inv_smul_set_iff
#align subring.mem_inv_pointwise_smul_iff Subring.mem_inv_pointwise_smul_iff
+-/
+#print Subring.pointwise_smul_le_pointwise_smul_iff /-
@[simp]
theorem pointwise_smul_le_pointwise_smul_iff {a : M} {S T : Subring R} : a • S ≤ a • T ↔ S ≤ T :=
set_smul_subset_set_smul_iff
#align subring.pointwise_smul_le_pointwise_smul_iff Subring.pointwise_smul_le_pointwise_smul_iff
+-/
+#print Subring.pointwise_smul_subset_iff /-
theorem pointwise_smul_subset_iff {a : M} {S T : Subring R} : a • S ≤ T ↔ S ≤ a⁻¹ • T :=
set_smul_subset_iff
#align subring.pointwise_smul_subset_iff Subring.pointwise_smul_subset_iff
+-/
+#print Subring.subset_pointwise_smul_iff /-
theorem subset_pointwise_smul_iff {a : M} {S T : Subring R} : S ≤ a • T ↔ a⁻¹ • S ≤ T :=
subset_set_smul_iff
#align subring.subset_pointwise_smul_iff Subring.subset_pointwise_smul_iff
+-/
/-! TODO: add `equiv_smul` like we have for subgroup. -/
@@ -159,35 +185,47 @@ variable [GroupWithZero M] [Ring R] [MulSemiringAction M R]
open scoped Pointwise
+#print Subring.smul_mem_pointwise_smul_iff₀ /-
@[simp]
theorem smul_mem_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
a • x ∈ a • S ↔ x ∈ S :=
smul_mem_smul_set_iff₀ ha (S : Set R) x
#align subring.smul_mem_pointwise_smul_iff₀ Subring.smul_mem_pointwise_smul_iff₀
+-/
+#print Subring.mem_pointwise_smul_iff_inv_smul_mem₀ /-
theorem mem_pointwise_smul_iff_inv_smul_mem₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
x ∈ a • S ↔ a⁻¹ • x ∈ S :=
mem_smul_set_iff_inv_smul_mem₀ ha (S : Set R) x
#align subring.mem_pointwise_smul_iff_inv_smul_mem₀ Subring.mem_pointwise_smul_iff_inv_smul_mem₀
+-/
+#print Subring.mem_inv_pointwise_smul_iff₀ /-
theorem mem_inv_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
x ∈ a⁻¹ • S ↔ a • x ∈ S :=
mem_inv_smul_set_iff₀ ha (S : Set R) x
#align subring.mem_inv_pointwise_smul_iff₀ Subring.mem_inv_pointwise_smul_iff₀
+-/
+#print Subring.pointwise_smul_le_pointwise_smul_iff₀ /-
@[simp]
theorem pointwise_smul_le_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} :
a • S ≤ a • T ↔ S ≤ T :=
set_smul_subset_set_smul_iff₀ ha
#align subring.pointwise_smul_le_pointwise_smul_iff₀ Subring.pointwise_smul_le_pointwise_smul_iff₀
+-/
+#print Subring.pointwise_smul_le_iff₀ /-
theorem pointwise_smul_le_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} : a • S ≤ T ↔ S ≤ a⁻¹ • T :=
set_smul_subset_iff₀ ha
#align subring.pointwise_smul_le_iff₀ Subring.pointwise_smul_le_iff₀
+-/
+#print Subring.le_pointwise_smul_iff₀ /-
theorem le_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} : S ≤ a • T ↔ a⁻¹ • S ≤ T :=
subset_set_smul_iff₀ ha
#align subring.le_pointwise_smul_iff₀ Subring.le_pointwise_smul_iff₀
+-/
end GroupWithZero
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -56,7 +56,7 @@ protected def pointwiseMulAction : MulAction M (Subring R)
scoped[Pointwise] attribute [instance] Subring.pointwiseMulAction
-open Pointwise
+open scoped Pointwise
#print Subring.pointwise_smul_def /-
theorem pointwise_smul_def {a : M} (S : Subring R) :
@@ -119,7 +119,7 @@ section Group
variable [Group M] [Ring R] [MulSemiringAction M R]
-open Pointwise
+open scoped Pointwise
@[simp]
theorem smul_mem_pointwise_smul_iff {a : M} {S : Subring R} {x : R} : a • x ∈ a • S ↔ x ∈ S :=
@@ -157,7 +157,7 @@ section GroupWithZero
variable [GroupWithZero M] [Ring R] [MulSemiringAction M R]
-open Pointwise
+open scoped Pointwise
@[simp]
theorem smul_mem_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -65,23 +65,11 @@ theorem pointwise_smul_def {a : M} (S : Subring R) :
#align subring.pointwise_smul_def Subring.pointwise_smul_def
-/
-/- warning: subring.coe_pointwise_smul -> Subring.coe_pointwise_smul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (Set.{u2} R) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subring.{u2} R _inst_2) (Set.{u2} R) (HasLiftT.mk.{succ u2, succ u2} (Subring.{u2} R _inst_2) (Set.{u2} R) (CoeTCₓ.coe.{succ u2, succ u2} (Subring.{u2} R _inst_2) (Set.{u2} R) (SetLike.Set.hasCoeT.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S)) (SMul.smul.{u1, u2} M (Set.{u2} R) (Set.smulSet.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) m ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subring.{u2} R _inst_2) (Set.{u2} R) (HasLiftT.mk.{succ u2, succ u2} (Subring.{u2} R _inst_2) (Set.{u2} R) (CoeTCₓ.coe.{succ u2, succ u2} (Subring.{u2} R _inst_2) (Set.{u2} R) (SetLike.Set.hasCoeT.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S))
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S)) (HSMul.hSMul.{u1, u2, u2} M (Set.{u2} R) (Set.{u2} R) (instHSMul.{u1, u2} M (Set.{u2} R) (Set.smulSet.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))))) m (SetLike.coe.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2) S))
-Case conversion may be inaccurate. Consider using '#align subring.coe_pointwise_smul Subring.coe_pointwise_smulₓ'. -/
@[simp]
theorem coe_pointwise_smul (m : M) (S : Subring R) : ↑(m • S) = m • (S : Set R) :=
rfl
#align subring.coe_pointwise_smul Subring.coe_pointwise_smul
-/- warning: subring.pointwise_smul_to_add_subgroup -> Subring.pointwise_smul_toAddSubgroup is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))) (Subring.toAddSubgroup.{u2} R _inst_2 (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S)) (SMul.smul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))) (MulAction.toHasSmul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))) _inst_1 (AddSubgroup.pointwiseMulAction.{u1, u2} M R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2))) _inst_1 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))) m (Subring.toAddSubgroup.{u2} R _inst_2 S))
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (Subring.toAddSubgroup.{u2} R _inst_2 (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S)) (HSMul.hSMul.{u1, u2, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (instHSMul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulAction.toSMul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) _inst_1 (AddSubgroup.pointwiseMulAction.{u1, u2} M R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)) _inst_1 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) m (Subring.toAddSubgroup.{u2} R _inst_2 S))
-Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_to_add_subgroup Subring.pointwise_smul_toAddSubgroupₓ'. -/
@[simp]
theorem pointwise_smul_toAddSubgroup (m : M) (S : Subring R) :
(m • S).toAddSubgroup = m • S.toAddSubgroup :=
@@ -96,44 +84,20 @@ theorem pointwise_smul_toSubsemiring (m : M) (S : Subring R) :
#align subring.pointwise_smul_to_subsemiring Subring.pointwise_smul_toSubsemiring
-/
-/- warning: subring.smul_mem_pointwise_smul -> Subring.smul_mem_pointwise_smul is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (r : R) (S : Subring.{u2} R _inst_2), (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) r S) -> (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) m r) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S))
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (r : R) (S : Subring.{u2} R _inst_2), (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) r S) -> (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) m r) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S))
-Case conversion may be inaccurate. Consider using '#align subring.smul_mem_pointwise_smul Subring.smul_mem_pointwise_smulₓ'. -/
theorem smul_mem_pointwise_smul (m : M) (r : R) (S : Subring R) : r ∈ S → m • r ∈ m • S :=
(Set.smul_mem_smul_set : _ → _ ∈ m • (S : Set R))
#align subring.smul_mem_pointwise_smul Subring.smul_mem_pointwise_smul
-/- warning: subring.mem_smul_pointwise_iff_exists -> Subring.mem_smul_pointwise_iff_exists is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (r : R) (S : Subring.{u2} R _inst_2), Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) r (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S)) (Exists.{succ u2} R (fun (s : R) => And (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) s S) (Eq.{succ u2} R (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) m s) r)))
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (r : R) (S : Subring.{u2} R _inst_2), Iff (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) r (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S)) (Exists.{succ u2} R (fun (s : R) => And (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) s S) (Eq.{succ u2} R (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) m s) r)))
-Case conversion may be inaccurate. Consider using '#align subring.mem_smul_pointwise_iff_exists Subring.mem_smul_pointwise_iff_existsₓ'. -/
theorem mem_smul_pointwise_iff_exists (m : M) (r : R) (S : Subring R) :
r ∈ m • S ↔ ∃ s : R, s ∈ S ∧ m • s = r :=
(Set.mem_smul_set : r ∈ m • (S : Set R) ↔ _)
#align subring.mem_smul_pointwise_iff_exists Subring.mem_smul_pointwise_iff_exists
-/- warning: subring.smul_bot -> Subring.smul_bot is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (a : M), Eq.{succ u2} (Subring.{u2} R _inst_2) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) a (Bot.bot.{u2} (Subring.{u2} R _inst_2) (Subring.hasBot.{u2} R _inst_2))) (Bot.bot.{u2} (Subring.{u2} R _inst_2) (Subring.hasBot.{u2} R _inst_2))
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (a : M), Eq.{succ u2} (Subring.{u2} R _inst_2) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) a (Bot.bot.{u2} (Subring.{u2} R _inst_2) (Subring.instBotSubring.{u2} R _inst_2))) (Bot.bot.{u2} (Subring.{u2} R _inst_2) (Subring.instBotSubring.{u2} R _inst_2))
-Case conversion may be inaccurate. Consider using '#align subring.smul_bot Subring.smul_botₓ'. -/
@[simp]
theorem smul_bot (a : M) : a • (⊥ : Subring R) = ⊥ :=
map_bot _
#align subring.smul_bot Subring.smul_bot
-/- warning: subring.smul_sup -> Subring.smul_sup is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (a : M) (S : Subring.{u2} R _inst_2) (T : Subring.{u2} R _inst_2), Eq.{succ u2} (Subring.{u2} R _inst_2) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) a (Sup.sup.{u2} (Subring.{u2} R _inst_2) (SemilatticeSup.toHasSup.{u2} (Subring.{u2} R _inst_2) (Lattice.toSemilatticeSup.{u2} (Subring.{u2} R _inst_2) (ConditionallyCompleteLattice.toLattice.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subring.{u2} R _inst_2) (Subring.completeLattice.{u2} R _inst_2))))) S T)) (Sup.sup.{u2} (Subring.{u2} R _inst_2) (SemilatticeSup.toHasSup.{u2} (Subring.{u2} R _inst_2) (Lattice.toSemilatticeSup.{u2} (Subring.{u2} R _inst_2) (ConditionallyCompleteLattice.toLattice.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subring.{u2} R _inst_2) (Subring.completeLattice.{u2} R _inst_2))))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) a T))
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (a : M) (S : Subring.{u2} R _inst_2) (T : Subring.{u2} R _inst_2), Eq.{succ u2} (Subring.{u2} R _inst_2) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) a (Sup.sup.{u2} (Subring.{u2} R _inst_2) (SemilatticeSup.toSup.{u2} (Subring.{u2} R _inst_2) (Lattice.toSemilatticeSup.{u2} (Subring.{u2} R _inst_2) (ConditionallyCompleteLattice.toLattice.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S T)) (Sup.sup.{u2} (Subring.{u2} R _inst_2) (SemilatticeSup.toSup.{u2} (Subring.{u2} R _inst_2) (Lattice.toSemilatticeSup.{u2} (Subring.{u2} R _inst_2) (ConditionallyCompleteLattice.toLattice.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) a S) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) a T))
-Case conversion may be inaccurate. Consider using '#align subring.smul_sup Subring.smul_supₓ'. -/
theorem smul_sup (a : M) (S T : Subring R) : a • (S ⊔ T) = a • S ⊔ a • T :=
map_sup _ _ _
#align subring.smul_sup Subring.smul_sup
@@ -144,12 +108,6 @@ theorem smul_closure (a : M) (s : Set R) : a • closure s = closure (a • s) :
#align subring.smul_closure Subring.smul_closure
-/
-/- warning: subring.pointwise_central_scalar -> Subring.pointwise_central_scalar is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] [_inst_4 : MulSemiringAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2)] [_inst_5 : IsCentralScalar.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} (MulOpposite.{u1} M) R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} (MulOpposite.{u1} M) R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2) _inst_4))))], IsCentralScalar.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) (MulAction.toHasSmul.{u1, u2} (MulOpposite.{u1} M) (Subring.{u2} R _inst_2) (MulOpposite.monoid.{u1} M _inst_1) (Subring.pointwiseMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) _inst_2 _inst_4))
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] [_inst_4 : MulSemiringAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2)] [_inst_5 : IsCentralScalar.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u1, u2} (MulOpposite.{u1} M) R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} (MulOpposite.{u1} M) R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2) _inst_4))))], IsCentralScalar.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) (MulAction.toSMul.{u1, u2} (MulOpposite.{u1} M) (Subring.{u2} R _inst_2) (MulOpposite.monoid.{u1} M _inst_1) (Subring.pointwiseMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) _inst_2 _inst_4))
-Case conversion may be inaccurate. Consider using '#align subring.pointwise_central_scalar Subring.pointwise_central_scalarₓ'. -/
instance pointwise_central_scalar [MulSemiringAction Mᵐᵒᵖ R] [IsCentralScalar M R] :
IsCentralScalar M (Subring R) :=
⟨fun a S => (congr_arg fun f => S.map f) <| RingHom.ext <| op_smul_eq_smul _⟩
@@ -163,65 +121,29 @@ variable [Group M] [Ring R] [MulSemiringAction M R]
open Pointwise
-/- warning: subring.smul_mem_pointwise_smul_iff -> Subring.smul_mem_pointwise_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) a x) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x S)
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) a x) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S)) (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x S)
-Case conversion may be inaccurate. Consider using '#align subring.smul_mem_pointwise_smul_iff Subring.smul_mem_pointwise_smul_iffₓ'. -/
@[simp]
theorem smul_mem_pointwise_smul_iff {a : M} {S : Subring R} {x : R} : a • x ∈ a • S ↔ x ∈ S :=
smul_mem_smul_set_iff
#align subring.smul_mem_pointwise_smul_iff Subring.smul_mem_pointwise_smul_iff
-/- warning: subring.mem_pointwise_smul_iff_inv_smul_mem -> Subring.mem_pointwise_smul_iff_inv_smul_mem is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) x) S)
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S)) (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) x) S)
-Case conversion may be inaccurate. Consider using '#align subring.mem_pointwise_smul_iff_inv_smul_mem Subring.mem_pointwise_smul_iff_inv_smul_memₓ'. -/
theorem mem_pointwise_smul_iff_inv_smul_mem {a : M} {S : Subring R} {x : R} :
x ∈ a • S ↔ a⁻¹ • x ∈ S :=
mem_smul_set_iff_inv_smul_mem
#align subring.mem_pointwise_smul_iff_inv_smul_mem Subring.mem_pointwise_smul_iff_inv_smul_mem
-/- warning: subring.mem_inv_pointwise_smul_iff -> Subring.mem_inv_pointwise_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) a x) S)
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) S)) (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) a x) S)
-Case conversion may be inaccurate. Consider using '#align subring.mem_inv_pointwise_smul_iff Subring.mem_inv_pointwise_smul_iffₓ'. -/
theorem mem_inv_pointwise_smul_iff {a : M} {S : Subring R} {x : R} : x ∈ a⁻¹ • S ↔ a • x ∈ S :=
mem_inv_smul_set_iff
#align subring.mem_inv_pointwise_smul_iff Subring.mem_inv_pointwise_smul_iff
-/- warning: subring.pointwise_smul_le_pointwise_smul_iff -> Subring.pointwise_smul_le_pointwise_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S T)
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S T)
-Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_pointwise_smul_iff Subring.pointwise_smul_le_pointwise_smul_iffₓ'. -/
@[simp]
theorem pointwise_smul_le_pointwise_smul_iff {a : M} {S T : Subring R} : a • S ≤ a • T ↔ S ≤ T :=
set_smul_subset_set_smul_iff
#align subring.pointwise_smul_le_pointwise_smul_iff Subring.pointwise_smul_le_pointwise_smul_iff
-/- warning: subring.pointwise_smul_subset_iff -> Subring.pointwise_smul_subset_iff is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) T))
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) T))
-Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_subset_iff Subring.pointwise_smul_subset_iffₓ'. -/
theorem pointwise_smul_subset_iff {a : M} {S T : Subring R} : a • S ≤ T ↔ S ≤ a⁻¹ • T :=
set_smul_subset_iff
#align subring.pointwise_smul_subset_iff Subring.pointwise_smul_subset_iff
-/- warning: subring.subset_pointwise_smul_iff -> Subring.subset_pointwise_smul_iff is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) S) T)
-but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) S) T)
-Case conversion may be inaccurate. Consider using '#align subring.subset_pointwise_smul_iff Subring.subset_pointwise_smul_iffₓ'. -/
theorem subset_pointwise_smul_iff {a : M} {S T : Subring R} : S ≤ a • T ↔ a⁻¹ • S ≤ T :=
subset_set_smul_iff
#align subring.subset_pointwise_smul_iff Subring.subset_pointwise_smul_iff
@@ -237,68 +159,32 @@ variable [GroupWithZero M] [Ring R] [MulSemiringAction M R]
open Pointwise
-/- warning: subring.smul_mem_pointwise_smul_iff₀ -> Subring.smul_mem_pointwise_smul_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall (S : Subring.{u2} R _inst_2) (x : R), Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) a x) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x S))
-but is expected to have type
- forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall (S : Subring.{u1} R _inst_2) (x : R), Iff (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) (HSMul.hSMul.{u2, u1, u1} M R R (instHSMul.{u2, u1} M R (SMulZeroClass.toSMul.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2)))) (DistribMulAction.toDistribSMul.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2) _inst_3))))) a x) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S)) (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) x S))
-Case conversion may be inaccurate. Consider using '#align subring.smul_mem_pointwise_smul_iff₀ Subring.smul_mem_pointwise_smul_iff₀ₓ'. -/
@[simp]
theorem smul_mem_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
a • x ∈ a • S ↔ x ∈ S :=
smul_mem_smul_set_iff₀ ha (S : Set R) x
#align subring.smul_mem_pointwise_smul_iff₀ Subring.smul_mem_pointwise_smul_iff₀
-/- warning: subring.mem_pointwise_smul_iff_inv_smul_mem₀ -> Subring.mem_pointwise_smul_iff_inv_smul_mem₀ is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall (S : Subring.{u2} R _inst_2) (x : R), Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) x) S))
-but is expected to have type
- forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall (S : Subring.{u1} R _inst_2) (x : R), Iff (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) x (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S)) (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) (HSMul.hSMul.{u2, u1, u1} M R R (instHSMul.{u2, u1} M R (SMulZeroClass.toSMul.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2)))) (DistribMulAction.toDistribSMul.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2) _inst_3))))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) x) S))
-Case conversion may be inaccurate. Consider using '#align subring.mem_pointwise_smul_iff_inv_smul_mem₀ Subring.mem_pointwise_smul_iff_inv_smul_mem₀ₓ'. -/
theorem mem_pointwise_smul_iff_inv_smul_mem₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
x ∈ a • S ↔ a⁻¹ • x ∈ S :=
mem_smul_set_iff_inv_smul_mem₀ ha (S : Set R) x
#align subring.mem_pointwise_smul_iff_inv_smul_mem₀ Subring.mem_pointwise_smul_iff_inv_smul_mem₀
-/- warning: subring.mem_inv_pointwise_smul_iff₀ -> Subring.mem_inv_pointwise_smul_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall (S : Subring.{u2} R _inst_2) (x : R), Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) a x) S))
-but is expected to have type
- forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall (S : Subring.{u1} R _inst_2) (x : R), Iff (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) x (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) S)) (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) (HSMul.hSMul.{u2, u1, u1} M R R (instHSMul.{u2, u1} M R (SMulZeroClass.toSMul.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2)))) (DistribMulAction.toDistribSMul.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2) _inst_3))))) a x) S))
-Case conversion may be inaccurate. Consider using '#align subring.mem_inv_pointwise_smul_iff₀ Subring.mem_inv_pointwise_smul_iff₀ₓ'. -/
theorem mem_inv_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
x ∈ a⁻¹ • S ↔ a • x ∈ S :=
mem_inv_smul_set_iff₀ ha (S : Set R) x
#align subring.mem_inv_pointwise_smul_iff₀ Subring.mem_inv_pointwise_smul_iff₀
-/- warning: subring.pointwise_smul_le_pointwise_smul_iff₀ -> Subring.pointwise_smul_le_pointwise_smul_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S T))
-but is expected to have type
- forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S T))
-Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_pointwise_smul_iff₀ Subring.pointwise_smul_le_pointwise_smul_iff₀ₓ'. -/
@[simp]
theorem pointwise_smul_le_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} :
a • S ≤ a • T ↔ S ≤ T :=
set_smul_subset_set_smul_iff₀ ha
#align subring.pointwise_smul_le_pointwise_smul_iff₀ Subring.pointwise_smul_le_pointwise_smul_iff₀
-/- warning: subring.pointwise_smul_le_iff₀ -> Subring.pointwise_smul_le_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) T)))
-but is expected to have type
- forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S) T) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) T)))
-Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_iff₀ Subring.pointwise_smul_le_iff₀ₓ'. -/
theorem pointwise_smul_le_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} : a • S ≤ T ↔ S ≤ a⁻¹ • T :=
set_smul_subset_iff₀ ha
#align subring.pointwise_smul_le_iff₀ Subring.pointwise_smul_le_iff₀
-/- warning: subring.le_pointwise_smul_iff₀ -> Subring.le_pointwise_smul_iff₀ is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) S) T))
-but is expected to have type
- forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) S) T))
-Case conversion may be inaccurate. Consider using '#align subring.le_pointwise_smul_iff₀ Subring.le_pointwise_smul_iff₀ₓ'. -/
theorem le_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} : S ≤ a • T ↔ a⁻¹ • S ≤ T :=
subset_set_smul_iff₀ ha
#align subring.le_pointwise_smul_iff₀ Subring.le_pointwise_smul_iff₀
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -197,7 +197,7 @@ theorem mem_inv_pointwise_smul_iff {a : M} {S : Subring R} {x : R} : x ∈ a⁻
/- warning: subring.pointwise_smul_le_pointwise_smul_iff -> Subring.pointwise_smul_le_pointwise_smul_iff is a dubious translation:
lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S T)
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S T)
but is expected to have type
forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S T)
Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_pointwise_smul_iff Subring.pointwise_smul_le_pointwise_smul_iffₓ'. -/
@@ -208,7 +208,7 @@ theorem pointwise_smul_le_pointwise_smul_iff {a : M} {S T : Subring R} : a • S
/- warning: subring.pointwise_smul_subset_iff -> Subring.pointwise_smul_subset_iff is a dubious translation:
lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) T))
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) T))
but is expected to have type
forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) T))
Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_subset_iff Subring.pointwise_smul_subset_iffₓ'. -/
@@ -218,7 +218,7 @@ theorem pointwise_smul_subset_iff {a : M} {S T : Subring R} : a • S ≤ T ↔
/- warning: subring.subset_pointwise_smul_iff -> Subring.subset_pointwise_smul_iff is a dubious translation:
lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) S) T)
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) S) T)
but is expected to have type
forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) S) T)
Case conversion may be inaccurate. Consider using '#align subring.subset_pointwise_smul_iff Subring.subset_pointwise_smul_iffₓ'. -/
@@ -273,7 +273,7 @@ theorem mem_inv_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x
/- warning: subring.pointwise_smul_le_pointwise_smul_iff₀ -> Subring.pointwise_smul_le_pointwise_smul_iff₀ is a dubious translation:
lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S T))
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S T))
but is expected to have type
forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S T))
Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_pointwise_smul_iff₀ Subring.pointwise_smul_le_pointwise_smul_iff₀ₓ'. -/
@@ -285,7 +285,7 @@ theorem pointwise_smul_le_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) {S T : Su
/- warning: subring.pointwise_smul_le_iff₀ -> Subring.pointwise_smul_le_iff₀ is a dubious translation:
lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) T)))
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) T)))
but is expected to have type
forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S) T) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) T)))
Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_iff₀ Subring.pointwise_smul_le_iff₀ₓ'. -/
@@ -295,7 +295,7 @@ theorem pointwise_smul_le_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} : a
/- warning: subring.le_pointwise_smul_iff₀ -> Subring.le_pointwise_smul_iff₀ is a dubious translation:
lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) S) T))
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toHasLe.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) S) T))
but is expected to have type
forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) S) T))
Case conversion may be inaccurate. Consider using '#align subring.le_pointwise_smul_iff₀ Subring.le_pointwise_smul_iff₀ₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -78,7 +78,7 @@ theorem coe_pointwise_smul (m : M) (S : Subring R) : ↑(m • S) = m • (S : S
/- warning: subring.pointwise_smul_to_add_subgroup -> Subring.pointwise_smul_toAddSubgroup is a dubious translation:
lean 3 declaration is
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))) (Subring.toAddSubgroup.{u2} R _inst_2 (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S)) (SMul.smul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))) (MulAction.toHasSmul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))) _inst_1 (AddSubgroup.pointwiseMulAction.{u1, u2} M R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2))) _inst_1 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))) m (Subring.toAddSubgroup.{u2} R _inst_2 S))
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))) (Subring.toAddSubgroup.{u2} R _inst_2 (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S)) (SMul.smul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))) (MulAction.toHasSmul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2)))) _inst_1 (AddSubgroup.pointwiseMulAction.{u1, u2} M R (AddGroupWithOne.toAddGroup.{u2} R (AddCommGroupWithOne.toAddGroupWithOne.{u2} R (Ring.toAddCommGroupWithOne.{u2} R _inst_2))) _inst_1 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))) m (Subring.toAddSubgroup.{u2} R _inst_2 S))
but is expected to have type
forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (Subring.toAddSubgroup.{u2} R _inst_2 (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S)) (HSMul.hSMul.{u1, u2, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (instHSMul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulAction.toSMul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) _inst_1 (AddSubgroup.pointwiseMulAction.{u1, u2} M R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)) _inst_1 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) m (Subring.toAddSubgroup.{u2} R _inst_2 S))
Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_to_add_subgroup Subring.pointwise_smul_toAddSubgroupₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/b19481deb571022990f1baa9cbf9172e6757a479
@@ -76,13 +76,17 @@ theorem coe_pointwise_smul (m : M) (S : Subring R) : ↑(m • S) = m • (S : S
rfl
#align subring.coe_pointwise_smul Subring.coe_pointwise_smul
-#print Subring.pointwise_smul_toAddSubgroup /-
+/- warning: subring.pointwise_smul_to_add_subgroup -> Subring.pointwise_smul_toAddSubgroup is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))) (Subring.toAddSubgroup.{u2} R _inst_2 (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S)) (SMul.smul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))) (MulAction.toHasSmul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2)))) _inst_1 (AddSubgroup.pointwiseMulAction.{u1, u2} M R (AddGroupWithOne.toAddGroup.{u2} R (NonAssocRing.toAddGroupWithOne.{u2} R (Ring.toNonAssocRing.{u2} R _inst_2))) _inst_1 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))) m (Subring.toAddSubgroup.{u2} R _inst_2 S))
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (Subring.toAddSubgroup.{u2} R _inst_2 (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S)) (HSMul.hSMul.{u1, u2, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (instHSMul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulAction.toSMul.{u1, u2} M (AddSubgroup.{u2} R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) _inst_1 (AddSubgroup.pointwiseMulAction.{u1, u2} M R (AddGroupWithOne.toAddGroup.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)) _inst_1 (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) m (Subring.toAddSubgroup.{u2} R _inst_2 S))
+Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_to_add_subgroup Subring.pointwise_smul_toAddSubgroupₓ'. -/
@[simp]
theorem pointwise_smul_toAddSubgroup (m : M) (S : Subring R) :
(m • S).toAddSubgroup = m • S.toAddSubgroup :=
rfl
#align subring.pointwise_smul_to_add_subgroup Subring.pointwise_smul_toAddSubgroup
--/
#print Subring.pointwise_smul_toSubsemiring /-
@[simp]
mathlib commit https://github.com/leanprover-community/mathlib/commit/b19481deb571022990f1baa9cbf9172e6757a479
@@ -144,7 +144,7 @@ theorem smul_closure (a : M) (s : Set R) : a • closure s = closure (a • s) :
lean 3 declaration is
forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] [_inst_4 : MulSemiringAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2)] [_inst_5 : IsCentralScalar.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} (MulOpposite.{u1} M) R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} (MulOpposite.{u1} M) R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2) _inst_4))))], IsCentralScalar.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) (MulAction.toHasSmul.{u1, u2} (MulOpposite.{u1} M) (Subring.{u2} R _inst_2) (MulOpposite.monoid.{u1} M _inst_1) (Subring.pointwiseMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) _inst_2 _inst_4))
but is expected to have type
- forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] [_inst_4 : MulSemiringAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2)] [_inst_5 : IsCentralScalar.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u1, u2} (MulOpposite.{u1} M) R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} (MulOpposite.{u1} M) R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2) _inst_4))))], IsCentralScalar.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) (MulAction.toSMul.{u1, u2} (MulOpposite.{u1} M) (Subring.{u2} R _inst_2) (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) (Subring.pointwiseMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) _inst_2 _inst_4))
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] [_inst_4 : MulSemiringAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2)] [_inst_5 : IsCentralScalar.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u1, u2} (MulOpposite.{u1} M) R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} (MulOpposite.{u1} M) R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2) _inst_4))))], IsCentralScalar.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) (MulAction.toSMul.{u1, u2} (MulOpposite.{u1} M) (Subring.{u2} R _inst_2) (MulOpposite.monoid.{u1} M _inst_1) (Subring.pointwiseMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) _inst_2 _inst_4))
Case conversion may be inaccurate. Consider using '#align subring.pointwise_central_scalar Subring.pointwise_central_scalarₓ'. -/
instance pointwise_central_scalar [MulSemiringAction Mᵐᵒᵖ R] [IsCentralScalar M R] :
IsCentralScalar M (Subring R) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/1f4705ccdfe1e557fc54a0ce081a05e33d2e6240
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
! This file was ported from Lean 3 source module ring_theory.subring.pointwise
-! leanprover-community/mathlib commit c982179ec21091d3e102d8a5d9f5fe06c8fafb73
+! leanprover-community/mathlib commit 932872382355f00112641d305ba0619305dc8642
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.Data.Set.Pointwise.Basic
/-! # Pointwise instances on `subring`s
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file provides the action `subring.pointwise_mul_action` which matches the action of
`mul_action_set`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/1a313d8bba1bad05faba71a4a4e9742ab5bd9efd
@@ -38,6 +38,7 @@ section Monoid
variable [Monoid M] [Ring R] [MulSemiringAction M R]
+#print Subring.pointwiseMulAction /-
/-- The action on a subring corresponding to applying the action to every element.
This is available as an instance in the `pointwise` locale. -/
@@ -48,55 +49,100 @@ protected def pointwiseMulAction : MulAction M (Subring R)
mul_smul a₁ a₂ S :=
(congr_arg (fun f => S.map f) (RingHom.ext <| mul_smul _ _)).trans (S.map_map _ _).symm
#align subring.pointwise_mul_action Subring.pointwiseMulAction
+-/
scoped[Pointwise] attribute [instance] Subring.pointwiseMulAction
open Pointwise
+#print Subring.pointwise_smul_def /-
theorem pointwise_smul_def {a : M} (S : Subring R) :
a • S = S.map (MulSemiringAction.toRingHom _ _ a) :=
rfl
#align subring.pointwise_smul_def Subring.pointwise_smul_def
+-/
+/- warning: subring.coe_pointwise_smul -> Subring.coe_pointwise_smul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (Set.{u2} R) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subring.{u2} R _inst_2) (Set.{u2} R) (HasLiftT.mk.{succ u2, succ u2} (Subring.{u2} R _inst_2) (Set.{u2} R) (CoeTCₓ.coe.{succ u2, succ u2} (Subring.{u2} R _inst_2) (Set.{u2} R) (SetLike.Set.hasCoeT.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S)) (SMul.smul.{u1, u2} M (Set.{u2} R) (Set.smulSet.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) m ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subring.{u2} R _inst_2) (Set.{u2} R) (HasLiftT.mk.{succ u2, succ u2} (Subring.{u2} R _inst_2) (Set.{u2} R) (CoeTCₓ.coe.{succ u2, succ u2} (Subring.{u2} R _inst_2) (Set.{u2} R) (SetLike.Set.hasCoeT.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S))
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (S : Subring.{u2} R _inst_2), Eq.{succ u2} (Set.{u2} R) (SetLike.coe.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S)) (HSMul.hSMul.{u1, u2, u2} M (Set.{u2} R) (Set.{u2} R) (instHSMul.{u1, u2} M (Set.{u2} R) (Set.smulSet.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))))) m (SetLike.coe.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2) S))
+Case conversion may be inaccurate. Consider using '#align subring.coe_pointwise_smul Subring.coe_pointwise_smulₓ'. -/
@[simp]
theorem coe_pointwise_smul (m : M) (S : Subring R) : ↑(m • S) = m • (S : Set R) :=
rfl
#align subring.coe_pointwise_smul Subring.coe_pointwise_smul
+#print Subring.pointwise_smul_toAddSubgroup /-
@[simp]
theorem pointwise_smul_toAddSubgroup (m : M) (S : Subring R) :
(m • S).toAddSubgroup = m • S.toAddSubgroup :=
rfl
#align subring.pointwise_smul_to_add_subgroup Subring.pointwise_smul_toAddSubgroup
+-/
+#print Subring.pointwise_smul_toSubsemiring /-
@[simp]
theorem pointwise_smul_toSubsemiring (m : M) (S : Subring R) :
(m • S).toSubsemiring = m • S.toSubsemiring :=
rfl
#align subring.pointwise_smul_to_subsemiring Subring.pointwise_smul_toSubsemiring
+-/
+/- warning: subring.smul_mem_pointwise_smul -> Subring.smul_mem_pointwise_smul is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (r : R) (S : Subring.{u2} R _inst_2), (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) r S) -> (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) m r) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S))
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (r : R) (S : Subring.{u2} R _inst_2), (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) r S) -> (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) m r) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S))
+Case conversion may be inaccurate. Consider using '#align subring.smul_mem_pointwise_smul Subring.smul_mem_pointwise_smulₓ'. -/
theorem smul_mem_pointwise_smul (m : M) (r : R) (S : Subring R) : r ∈ S → m • r ∈ m • S :=
(Set.smul_mem_smul_set : _ → _ ∈ m • (S : Set R))
#align subring.smul_mem_pointwise_smul Subring.smul_mem_pointwise_smul
+/- warning: subring.mem_smul_pointwise_iff_exists -> Subring.mem_smul_pointwise_iff_exists is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (r : R) (S : Subring.{u2} R _inst_2), Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) r (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) m S)) (Exists.{succ u2} R (fun (s : R) => And (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) s S) (Eq.{succ u2} R (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) m s) r)))
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (m : M) (r : R) (S : Subring.{u2} R _inst_2), Iff (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) r (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) m S)) (Exists.{succ u2} R (fun (s : R) => And (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) s S) (Eq.{succ u2} R (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) m s) r)))
+Case conversion may be inaccurate. Consider using '#align subring.mem_smul_pointwise_iff_exists Subring.mem_smul_pointwise_iff_existsₓ'. -/
theorem mem_smul_pointwise_iff_exists (m : M) (r : R) (S : Subring R) :
r ∈ m • S ↔ ∃ s : R, s ∈ S ∧ m • s = r :=
(Set.mem_smul_set : r ∈ m • (S : Set R) ↔ _)
#align subring.mem_smul_pointwise_iff_exists Subring.mem_smul_pointwise_iff_exists
+/- warning: subring.smul_bot -> Subring.smul_bot is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (a : M), Eq.{succ u2} (Subring.{u2} R _inst_2) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) a (Bot.bot.{u2} (Subring.{u2} R _inst_2) (Subring.hasBot.{u2} R _inst_2))) (Bot.bot.{u2} (Subring.{u2} R _inst_2) (Subring.hasBot.{u2} R _inst_2))
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (a : M), Eq.{succ u2} (Subring.{u2} R _inst_2) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) a (Bot.bot.{u2} (Subring.{u2} R _inst_2) (Subring.instBotSubring.{u2} R _inst_2))) (Bot.bot.{u2} (Subring.{u2} R _inst_2) (Subring.instBotSubring.{u2} R _inst_2))
+Case conversion may be inaccurate. Consider using '#align subring.smul_bot Subring.smul_botₓ'. -/
@[simp]
theorem smul_bot (a : M) : a • (⊥ : Subring R) = ⊥ :=
map_bot _
#align subring.smul_bot Subring.smul_bot
+/- warning: subring.smul_sup -> Subring.smul_sup is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (a : M) (S : Subring.{u2} R _inst_2) (T : Subring.{u2} R _inst_2), Eq.{succ u2} (Subring.{u2} R _inst_2) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) a (Sup.sup.{u2} (Subring.{u2} R _inst_2) (SemilatticeSup.toHasSup.{u2} (Subring.{u2} R _inst_2) (Lattice.toSemilatticeSup.{u2} (Subring.{u2} R _inst_2) (ConditionallyCompleteLattice.toLattice.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subring.{u2} R _inst_2) (Subring.completeLattice.{u2} R _inst_2))))) S T)) (Sup.sup.{u2} (Subring.{u2} R _inst_2) (SemilatticeSup.toHasSup.{u2} (Subring.{u2} R _inst_2) (Lattice.toSemilatticeSup.{u2} (Subring.{u2} R _inst_2) (ConditionallyCompleteLattice.toLattice.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subring.{u2} R _inst_2) (Subring.completeLattice.{u2} R _inst_2))))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) a T))
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] (a : M) (S : Subring.{u2} R _inst_2) (T : Subring.{u2} R _inst_2), Eq.{succ u2} (Subring.{u2} R _inst_2) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) a (Sup.sup.{u2} (Subring.{u2} R _inst_2) (SemilatticeSup.toSup.{u2} (Subring.{u2} R _inst_2) (Lattice.toSemilatticeSup.{u2} (Subring.{u2} R _inst_2) (ConditionallyCompleteLattice.toLattice.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S T)) (Sup.sup.{u2} (Subring.{u2} R _inst_2) (SemilatticeSup.toSup.{u2} (Subring.{u2} R _inst_2) (Lattice.toSemilatticeSup.{u2} (Subring.{u2} R _inst_2) (ConditionallyCompleteLattice.toLattice.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) a S) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3))) a T))
+Case conversion may be inaccurate. Consider using '#align subring.smul_sup Subring.smul_supₓ'. -/
theorem smul_sup (a : M) (S T : Subring R) : a • (S ⊔ T) = a • S ⊔ a • T :=
map_sup _ _ _
#align subring.smul_sup Subring.smul_sup
+#print Subring.smul_closure /-
theorem smul_closure (a : M) (s : Set R) : a • closure s = closure (a • s) :=
RingHom.map_closure _ _
#align subring.smul_closure Subring.smul_closure
+-/
+/- warning: subring.pointwise_central_scalar -> Subring.pointwise_central_scalar is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] [_inst_4 : MulSemiringAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2)] [_inst_5 : IsCentralScalar.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} (MulOpposite.{u1} M) R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} (MulOpposite.{u1} M) R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2) _inst_4))))], IsCentralScalar.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) (MulAction.toHasSmul.{u1, u2} (MulOpposite.{u1} M) (Subring.{u2} R _inst_2) (MulOpposite.monoid.{u1} M _inst_1) (Subring.pointwiseMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.monoid.{u1} M _inst_1) _inst_2 _inst_4))
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Monoid.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2)] [_inst_4 : MulSemiringAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2)] [_inst_5 : IsCentralScalar.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R _inst_1 (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R _inst_1 (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u1, u2} (MulOpposite.{u1} M) R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} (MulOpposite.{u1} M) R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) (Ring.toSemiring.{u2} R _inst_2) _inst_4))))], IsCentralScalar.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) _inst_1 (Subring.pointwiseMulAction.{u1, u2} M R _inst_1 _inst_2 _inst_3)) (MulAction.toSMul.{u1, u2} (MulOpposite.{u1} M) (Subring.{u2} R _inst_2) (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) (Subring.pointwiseMulAction.{u1, u2} (MulOpposite.{u1} M) R (MulOpposite.instMonoidMulOpposite.{u1} M _inst_1) _inst_2 _inst_4))
+Case conversion may be inaccurate. Consider using '#align subring.pointwise_central_scalar Subring.pointwise_central_scalarₓ'. -/
instance pointwise_central_scalar [MulSemiringAction Mᵐᵒᵖ R] [IsCentralScalar M R] :
IsCentralScalar M (Subring R) :=
⟨fun a S => (congr_arg fun f => S.map f) <| RingHom.ext <| op_smul_eq_smul _⟩
@@ -110,29 +156,65 @@ variable [Group M] [Ring R] [MulSemiringAction M R]
open Pointwise
+/- warning: subring.smul_mem_pointwise_smul_iff -> Subring.smul_mem_pointwise_smul_iff is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) a x) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x S)
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) a x) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S)) (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x S)
+Case conversion may be inaccurate. Consider using '#align subring.smul_mem_pointwise_smul_iff Subring.smul_mem_pointwise_smul_iffₓ'. -/
@[simp]
theorem smul_mem_pointwise_smul_iff {a : M} {S : Subring R} {x : R} : a • x ∈ a • S ↔ x ∈ S :=
smul_mem_smul_set_iff
#align subring.smul_mem_pointwise_smul_iff Subring.smul_mem_pointwise_smul_iff
+/- warning: subring.mem_pointwise_smul_iff_inv_smul_mem -> Subring.mem_pointwise_smul_iff_inv_smul_mem is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) x) S)
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S)) (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) x) S)
+Case conversion may be inaccurate. Consider using '#align subring.mem_pointwise_smul_iff_inv_smul_mem Subring.mem_pointwise_smul_iff_inv_smul_memₓ'. -/
theorem mem_pointwise_smul_iff_inv_smul_mem {a : M} {S : Subring R} {x : R} :
x ∈ a • S ↔ a⁻¹ • x ∈ S :=
mem_smul_set_iff_inv_smul_mem
#align subring.mem_pointwise_smul_iff_inv_smul_mem Subring.mem_pointwise_smul_iff_inv_smul_mem
+/- warning: subring.mem_inv_pointwise_smul_iff -> Subring.mem_inv_pointwise_smul_iff is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) a x) S)
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {x : R}, Iff (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) x (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) S)) (Membership.mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.instMembership.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.instSetLikeSubring.{u2} R _inst_2)) (HSMul.hSMul.{u1, u2, u2} M R R (instHSMul.{u1, u2} M R (SMulZeroClass.toSMul.{u1, u2} M R (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R (Ring.toSemiring.{u2} R _inst_2))) (DistribSMul.toSMulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2)))) (DistribMulAction.toDistribSMul.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddGroupWithOne.toAddMonoidWithOne.{u2} R (Ring.toAddGroupWithOne.{u2} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3))))) a x) S)
+Case conversion may be inaccurate. Consider using '#align subring.mem_inv_pointwise_smul_iff Subring.mem_inv_pointwise_smul_iffₓ'. -/
theorem mem_inv_pointwise_smul_iff {a : M} {S : Subring R} {x : R} : x ∈ a⁻¹ • S ↔ a • x ∈ S :=
mem_inv_smul_set_iff
#align subring.mem_inv_pointwise_smul_iff Subring.mem_inv_pointwise_smul_iff
+/- warning: subring.pointwise_smul_le_pointwise_smul_iff -> Subring.pointwise_smul_le_pointwise_smul_iff is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S T)
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S T)
+Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_pointwise_smul_iff Subring.pointwise_smul_le_pointwise_smul_iffₓ'. -/
@[simp]
theorem pointwise_smul_le_pointwise_smul_iff {a : M} {S T : Subring R} : a • S ≤ a • T ↔ S ≤ T :=
set_smul_subset_set_smul_iff
#align subring.pointwise_smul_le_pointwise_smul_iff Subring.pointwise_smul_le_pointwise_smul_iff
+/- warning: subring.pointwise_smul_subset_iff -> Subring.pointwise_smul_subset_iff is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) T))
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) T))
+Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_subset_iff Subring.pointwise_smul_subset_iffₓ'. -/
theorem pointwise_smul_subset_iff {a : M} {S T : Subring R} : a • S ≤ T ↔ S ≤ a⁻¹ • T :=
set_smul_subset_iff
#align subring.pointwise_smul_subset_iff Subring.pointwise_smul_subset_iff
+/- warning: subring.subset_pointwise_smul_iff -> Subring.subset_pointwise_smul_iff is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) a) S) T)
+but is expected to have type
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : Group.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M} {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) S (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u2} (Subring.{u2} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u2} (Subring.{u2} R _inst_2) (Subring.instCompleteLatticeSubring.{u2} R _inst_2))))) (HSMul.hSMul.{u1, u2, u2} M (Subring.{u2} R _inst_2) (Subring.{u2} R _inst_2) (instHSMul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toSMul.{u1, u2} M (Subring.{u2} R _inst_2) (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (DivInvMonoid.toMonoid.{u1} M (Group.toDivInvMonoid.{u1} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u1} M (InvOneClass.toInv.{u1} M (DivInvOneMonoid.toInvOneClass.{u1} M (DivisionMonoid.toDivInvOneMonoid.{u1} M (Group.toDivisionMonoid.{u1} M _inst_1)))) a) S) T)
+Case conversion may be inaccurate. Consider using '#align subring.subset_pointwise_smul_iff Subring.subset_pointwise_smul_iffₓ'. -/
theorem subset_pointwise_smul_iff {a : M} {S T : Subring R} : S ≤ a • T ↔ a⁻¹ • S ≤ T :=
subset_set_smul_iff
#align subring.subset_pointwise_smul_iff Subring.subset_pointwise_smul_iff
@@ -148,32 +230,68 @@ variable [GroupWithZero M] [Ring R] [MulSemiringAction M R]
open Pointwise
+/- warning: subring.smul_mem_pointwise_smul_iff₀ -> Subring.smul_mem_pointwise_smul_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall (S : Subring.{u2} R _inst_2) (x : R), Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) a x) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x S))
+but is expected to have type
+ forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall (S : Subring.{u1} R _inst_2) (x : R), Iff (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) (HSMul.hSMul.{u2, u1, u1} M R R (instHSMul.{u2, u1} M R (SMulZeroClass.toSMul.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2)))) (DistribMulAction.toDistribSMul.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2) _inst_3))))) a x) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S)) (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) x S))
+Case conversion may be inaccurate. Consider using '#align subring.smul_mem_pointwise_smul_iff₀ Subring.smul_mem_pointwise_smul_iff₀ₓ'. -/
@[simp]
theorem smul_mem_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
a • x ∈ a • S ↔ x ∈ S :=
smul_mem_smul_set_iff₀ ha (S : Set R) x
#align subring.smul_mem_pointwise_smul_iff₀ Subring.smul_mem_pointwise_smul_iff₀
+/- warning: subring.mem_pointwise_smul_iff_inv_smul_mem₀ -> Subring.mem_pointwise_smul_iff_inv_smul_mem₀ is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall (S : Subring.{u2} R _inst_2) (x : R), Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) x) S))
+but is expected to have type
+ forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall (S : Subring.{u1} R _inst_2) (x : R), Iff (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) x (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S)) (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) (HSMul.hSMul.{u2, u1, u1} M R R (instHSMul.{u2, u1} M R (SMulZeroClass.toSMul.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2)))) (DistribMulAction.toDistribSMul.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2) _inst_3))))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) x) S))
+Case conversion may be inaccurate. Consider using '#align subring.mem_pointwise_smul_iff_inv_smul_mem₀ Subring.mem_pointwise_smul_iff_inv_smul_mem₀ₓ'. -/
theorem mem_pointwise_smul_iff_inv_smul_mem₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
x ∈ a • S ↔ a⁻¹ • x ∈ S :=
mem_smul_set_iff_inv_smul_mem₀ ha (S : Set R) x
#align subring.mem_pointwise_smul_iff_inv_smul_mem₀ Subring.mem_pointwise_smul_iff_inv_smul_mem₀
+/- warning: subring.mem_inv_pointwise_smul_iff₀ -> Subring.mem_inv_pointwise_smul_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall (S : Subring.{u2} R _inst_2) (x : R), Iff (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) x (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) S)) (Membership.Mem.{u2, u2} R (Subring.{u2} R _inst_2) (SetLike.hasMem.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)) (SMul.smul.{u1, u2} M R (SMulZeroClass.toHasSmul.{u1, u2} M R (AddZeroClass.toHasZero.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))))) (DistribSMul.toSmulZeroClass.{u1, u2} M R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2)))))) (DistribMulAction.toDistribSMul.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_2))))) (MulSemiringAction.toDistribMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2) _inst_3)))) a x) S))
+but is expected to have type
+ forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall (S : Subring.{u1} R _inst_2) (x : R), Iff (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) x (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) S)) (Membership.mem.{u1, u1} R (Subring.{u1} R _inst_2) (SetLike.instMembership.{u1, u1} (Subring.{u1} R _inst_2) R (Subring.instSetLikeSubring.{u1} R _inst_2)) (HSMul.hSMul.{u2, u1, u1} M R R (instHSMul.{u2, u1} M R (SMulZeroClass.toSMul.{u2, u1} M R (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} M R (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2)))) (DistribMulAction.toDistribSMul.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (AddMonoidWithOne.toAddMonoid.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (Ring.toAddGroupWithOne.{u1} R _inst_2))) (MulSemiringAction.toDistribMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2) _inst_3))))) a x) S))
+Case conversion may be inaccurate. Consider using '#align subring.mem_inv_pointwise_smul_iff₀ Subring.mem_inv_pointwise_smul_iff₀ₓ'. -/
theorem mem_inv_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) (S : Subring R) (x : R) :
x ∈ a⁻¹ • S ↔ a • x ∈ S :=
mem_inv_smul_set_iff₀ ha (S : Set R) x
#align subring.mem_inv_pointwise_smul_iff₀ Subring.mem_inv_pointwise_smul_iff₀
+/- warning: subring.pointwise_smul_le_pointwise_smul_iff₀ -> Subring.pointwise_smul_le_pointwise_smul_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S T))
+but is expected to have type
+ forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S T))
+Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_pointwise_smul_iff₀ Subring.pointwise_smul_le_pointwise_smul_iff₀ₓ'. -/
@[simp]
theorem pointwise_smul_le_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} :
a • S ≤ a • T ↔ S ≤ T :=
set_smul_subset_set_smul_iff₀ ha
#align subring.pointwise_smul_le_pointwise_smul_iff₀ Subring.pointwise_smul_le_pointwise_smul_iff₀
+/- warning: subring.pointwise_smul_le_iff₀ -> Subring.pointwise_smul_le_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a S) T) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) T)))
+but is expected to have type
+ forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a S) T) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) T)))
+Case conversion may be inaccurate. Consider using '#align subring.pointwise_smul_le_iff₀ Subring.pointwise_smul_le_iff₀ₓ'. -/
theorem pointwise_smul_le_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} : a • S ≤ T ↔ S ≤ a⁻¹ • T :=
set_smul_subset_iff₀ ha
#align subring.pointwise_smul_le_iff₀ Subring.pointwise_smul_le_iff₀
+/- warning: subring.le_pointwise_smul_iff₀ -> Subring.le_pointwise_smul_iff₀ is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} {R : Type.{u2}} [_inst_1 : GroupWithZero.{u1} M] [_inst_2 : Ring.{u2} R] [_inst_3 : MulSemiringAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Ring.toSemiring.{u2} R _inst_2)] {a : M}, (Ne.{succ u1} M a (OfNat.ofNat.{u1} M 0 (OfNat.mk.{u1} M 0 (Zero.zero.{u1} M (MulZeroClass.toHasZero.{u1} M (MulZeroOneClass.toMulZeroClass.{u1} M (MonoidWithZero.toMulZeroOneClass.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)))))))) -> (forall {S : Subring.{u2} R _inst_2} {T : Subring.{u2} R _inst_2}, Iff (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) S (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) a T)) (LE.le.{u2} (Subring.{u2} R _inst_2) (Preorder.toLE.{u2} (Subring.{u2} R _inst_2) (PartialOrder.toPreorder.{u2} (Subring.{u2} R _inst_2) (SetLike.partialOrder.{u2, u2} (Subring.{u2} R _inst_2) R (Subring.setLike.{u2} R _inst_2)))) (SMul.smul.{u1, u2} M (Subring.{u2} R _inst_2) (MulAction.toHasSmul.{u1, u2} M (Subring.{u2} R _inst_2) (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) (Subring.pointwiseMulAction.{u1, u2} M R (MonoidWithZero.toMonoid.{u1} M (GroupWithZero.toMonoidWithZero.{u1} M _inst_1)) _inst_2 _inst_3)) (Inv.inv.{u1} M (DivInvMonoid.toHasInv.{u1} M (GroupWithZero.toDivInvMonoid.{u1} M _inst_1)) a) S) T))
+but is expected to have type
+ forall {M : Type.{u2}} {R : Type.{u1}} [_inst_1 : GroupWithZero.{u2} M] [_inst_2 : Ring.{u1} R] [_inst_3 : MulSemiringAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Ring.toSemiring.{u1} R _inst_2)] {a : M}, (Ne.{succ u2} M a (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1))))) -> (forall {S : Subring.{u1} R _inst_2} {T : Subring.{u1} R _inst_2}, Iff (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) S (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) a T)) (LE.le.{u1} (Subring.{u1} R _inst_2) (Preorder.toLE.{u1} (Subring.{u1} R _inst_2) (PartialOrder.toPreorder.{u1} (Subring.{u1} R _inst_2) (CompleteSemilatticeInf.toPartialOrder.{u1} (Subring.{u1} R _inst_2) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Subring.{u1} R _inst_2) (Subring.instCompleteLatticeSubring.{u1} R _inst_2))))) (HSMul.hSMul.{u2, u1, u1} M (Subring.{u1} R _inst_2) (Subring.{u1} R _inst_2) (instHSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MulAction.toSMul.{u2, u1} M (Subring.{u1} R _inst_2) (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) (Subring.pointwiseMulAction.{u2, u1} M R (MonoidWithZero.toMonoid.{u2} M (GroupWithZero.toMonoidWithZero.{u2} M _inst_1)) _inst_2 _inst_3))) (Inv.inv.{u2} M (GroupWithZero.toInv.{u2} M _inst_1) a) S) T))
+Case conversion may be inaccurate. Consider using '#align subring.le_pointwise_smul_iff₀ Subring.le_pointwise_smul_iff₀ₓ'. -/
theorem le_pointwise_smul_iff₀ {a : M} (ha : a ≠ 0) {S T : Subring R} : S ≤ a • T ↔ a⁻¹ • S ≤ T :=
subset_set_smul_iff₀ ha
#align subring.le_pointwise_smul_iff₀ Subring.le_pointwise_smul_iff₀
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Everywhere we have a smul_mem_pointwise_smul
lemma, I've added this result.
@@ -75,6 +75,9 @@ theorem smul_mem_pointwise_smul (m : M) (r : R) (S : Subring R) : r ∈ S → m
(Set.smul_mem_smul_set : _ → _ ∈ m • (S : Set R))
#align subring.smul_mem_pointwise_smul Subring.smul_mem_pointwise_smul
+instance : CovariantClass M (Subring R) HSMul.hSMul LE.le :=
+ ⟨fun _ _ => image_subset _⟩
+
theorem mem_smul_pointwise_iff_exists (m : M) (r : R) (S : Subring R) :
r ∈ m • S ↔ ∃ s : R, s ∈ S ∧ m • s = r :=
(Set.mem_smul_set : r ∈ m • (S : Set R) ↔ _)
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -27,7 +27,7 @@ keep them in sync.
open Set
-variable {M R : Type _}
+variable {M R : Type*}
namespace Subring
@@ -2,17 +2,14 @@
Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module ring_theory.subring.pointwise
-! leanprover-community/mathlib commit dc6c365e751e34d100e80fe6e314c3c3e0fd2988
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.RingTheory.Subring.Basic
import Mathlib.GroupTheory.Subgroup.Pointwise
import Mathlib.RingTheory.Subsemiring.Pointwise
import Mathlib.Data.Set.Pointwise.Basic
+#align_import ring_theory.subring.pointwise from "leanprover-community/mathlib"@"dc6c365e751e34d100e80fe6e314c3c3e0fd2988"
+
/-! # Pointwise instances on `Subring`s
This file provides the action `Subring.pointwiseMulAction` which matches the action of
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -68,7 +68,6 @@ theorem pointwise_smul_toAddSubgroup (m : M) (S : Subring R) :
rfl
#align subring.pointwise_smul_to_add_subgroup Subring.pointwise_smul_toAddSubgroup
-set_option synthInstance.etaExperiment true in
@[simp]
theorem pointwise_smul_toSubsemiring (m : M) (S : Subring R) :
(m • S).toSubsemiring = m • S.toSubsemiring :=
@@ -13,7 +13,7 @@ import Mathlib.GroupTheory.Subgroup.Pointwise
import Mathlib.RingTheory.Subsemiring.Pointwise
import Mathlib.Data.Set.Pointwise.Basic
-/-! # Pointwise instances on `subring`s
+/-! # Pointwise instances on `Subring`s
This file provides the action `Subring.pointwiseMulAction` which matches the action of
`mulActionSet`.
@@ -41,8 +41,7 @@ variable [Monoid M] [Ring R] [MulSemiringAction M R]
/-- The action on a subring corresponding to applying the action to every element.
This is available as an instance in the `Pointwise` locale. -/
-protected def pointwiseMulAction : MulAction M (Subring R)
- where
+protected def pointwiseMulAction : MulAction M (Subring R) where
smul a S := S.map (MulSemiringAction.toRingHom _ _ a)
one_smul S := (congr_arg (fun f => S.map f) (RingHom.ext <| one_smul M)).trans S.map_id
mul_smul _ _ S :=
@@ -138,7 +137,7 @@ theorem subset_pointwise_smul_iff {a : M} {S T : Subring R} : S ≤ a • T ↔
subset_set_smul_iff
#align subring.subset_pointwise_smul_iff Subring.subset_pointwise_smul_iff
-/-! TODO: add `equiv_smul` like we have for subgroup. -/
+/-! TODO: add `equivSMul` like we have for subgroup. -/
end Group
The unported dependencies are