Prime rings #
Defines IsPrimeRing R (the ideal product version) and proves equivalence to the
elementwise version aRb = 0 → a = 0 ∨ b = 0 and to the two-sided ideal version.
Concludes that simple rings are prime.
theorem
LeanPool.ArtinWedderburn.two_sided_ideal_equality
{R : Type u_1}
[Ring R]
(I J : TwoSidedIdeal R)
:
theorem
LeanPool.ArtinWedderburn.ideal_eq_to_two_sided_ideal_eq
{R : Type u_1}
[Ring R]
(I J : TwoSidedIdeal R)
:
theorem
LeanPool.ArtinWedderburn.ideal_span_sub_two_sided_ideal_span
{R : Type u_1}
[Ring R]
(S : Set R)
:
theorem
LeanPool.ArtinWedderburn.same_prod
{R : Type u_1}
[Ring R]
(I J : TwoSidedIdeal R)
:
I * J = ⊥ → TwoSidedIdeal.asIdeal I * TwoSidedIdeal.asIdeal J = ⊥
theorem
LeanPool.ArtinWedderburn.prime_ring_implies_prime_by_two_sided
{R : Type u_1}
[Ring R]
:
IsPrimeRing R → ∀ (I J : TwoSidedIdeal R), I * J = ⊥ → I = ⊥ ∨ J = ⊥
theorem
LeanPool.ArtinWedderburn.mul_closure_left
{R : Type u_1}
[Ring R]
(a x y : R)
:
y ∈ mulClosure a → x * y ∈ mulClosure a
theorem
LeanPool.ArtinWedderburn.mul_closure_right
{R : Type u_1}
[Ring R]
(a y x : R)
:
y ∈ mulClosure a → y * x ∈ mulClosure a
theorem
LeanPool.ArtinWedderburn.sub_span
{R : Type u_1}
[Ring R]
(s : Set R)
(I : TwoSidedIdeal R)
:
s ⊆ ↑I → TwoSidedIdeal.span s ≤ I
theorem
LeanPool.ArtinWedderburn.both_mul_zero
{R : Type u_1}
[Ring R]
{a b x y : R}
(hab : bothMul a b = {0})
(hx : x ∈ mulClosure a)
(hy : y ∈ mulClosure b)
:
theorem
LeanPool.ArtinWedderburn.span_mul_closure_bot_forall
{R : Type u_1}
[Ring R]
{a b x y : R}
(hab : bothMul a b = {0})
(hx : x ∈ AddSubgroup.closure (mulClosure a))
(hy : y ∈ mulClosure b)
:
theorem
LeanPool.ArtinWedderburn.two_sided_span_bot_forall
{R : Type u_1}
[Ring R]
{a b x y : R}
(hab : bothMul a b = {0})
(hx : x ∈ TwoSidedIdeal.span {a})
(hy : y ∈ AddSubgroup.closure (mulClosure b))
: