Documentation

MyProject.Green.Location

The Location Theorem #

This file proves the Location Theorem, which states that the following conditions are equivalent for x y : S where S is a semigroup:

  1. x * y ∈ ⟦x⟧𝓡 ∩ ⟦y⟧𝓛
  2. ⟦x⟧𝓡 ∩ ⟦y⟧𝓛 contains an idempotent element.

If the semigroup is finite, these conditions are equivalent to 3. x * y 𝓓 x (Alternatively, x * y 𝓓 y) and x 𝓓 y

Additionally, we prove that the 𝓗-class of an idempotent element is a group, and we define this as a subgroup of the underlying semigroup.

Main Definitions #

Main Theorems #

Refrences #

TODO

Blueprint #

Location Theorem Lablel : lem:location-theorem Lean lemmas to tag:

H-class of Idempotent is a Maximal Subgroup label : lem:hclass-subgroup Lean Lemmas to tag:

Two Maximal Subgroups of a D-Class are Isomorphic Label: lem:maximal-subgroups-isomorphic lean lemmas to tag:

TODO #

Should We prove the finite condition or just leave it talking about J equivalence?

In Finite semigroups, x * y is in the intersection of the 𝓡-class of x and the 𝓛-class of y iff x, y, and x * y are 𝓓-Equivalent.

x * y is 𝓡-equivalent to x and 𝓛-equivalent to y iff there exists an idempotent element in the intersection of the 𝓡-class of y and the 𝓛-class of x.

theorem Semigroup.HEquiv.mul_closed_of_idempotent {S : Type u_1} [Semigroup S] {e x y : S} (he : IsIdempotentElem e) (hx : x e⟧𝓗) (hy : y e⟧𝓗) :

Idempotent-containing 𝓗-classes are closed under multiplication.

theorem Semigroup.HEquiv.idempotent_mul {S : Type u_1} [Semigroup S] {e : S} (he : IsIdempotentElem e) {x : S} (hx : x e⟧𝓗) :
e * x = x

For all elements in the 𝓗-class of an idempotent, that idempotent acts as a left identity.

theorem Semigroup.HEquiv.mul_idempotent {S : Type u_1} [Semigroup S] {e : S} (he : IsIdempotentElem e) {x : S} (hx : x e⟧𝓗) :
x * e = x

For all elements in the 𝓗-class of an idempotent, that idempotent acts as a right identity.

theorem Semigroup.HEquiv.idempotent_eq {S : Type u_1} [Semigroup S] {e x : S} (hh : x 𝓗 e) (he : IsIdempotentElem e) (hx : IsIdempotentElem x) :
e = x

All idempotent elements in an 𝓗 class are equal.

theorem Semigroup.HEquiv.exists_inverse_of_idempotent {S : Type u_1} [Semigroup S] {e x : S} (he : IsIdempotentElem e) (hh : x e⟧𝓗) :
∃ (y : S), y 𝓗 e x * y = e y * x = e

The 𝓗-class of an idempotent element is closed under inverses.

noncomputable def Semigroup.HEquiv.subgroup_of_idempotent {S : Type u_1} [Semigroup S] {e : S} (he : IsIdempotentElem e) :

The 𝓗-class of an idempotent element as a subgroup of the semigroup.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable instance Semigroup.HEquiv.group_of_idempotent {S : Type u_1} [Semigroup S] {e : S} (he : IsIdempotentElem e) :

    The 𝓗-class of a semigroup as a Group on the subtype {x : S // x ∈ ⟦e⟧𝓗}

    Equations
    noncomputable instance Semigroup.HEquiv.group_of_idempotent' {S : Type u_1} [Semigroup S] {e : S} (he : IsIdempotentElem e) :

    The 𝓗-class of a semigroup as a Group on the subtype {x : S // x ∈ ⟦e⟧𝓗}

    Equations
    theorem Semigroup.HEquiv.idempotent_in_subgroup {S : Type u_1} [Semigroup S] {x y : S} (h₁ : x 𝓗 y) (h₂ : x * y 𝓗 x) :
    ∃ (e : S), e 𝓗 x IsIdempotentElem e

    If there exists an x, y in an 𝓗 class such that x * y remains in the 𝓗-class, then that 𝓗 class contains an idempotent.

    theorem Semigroup.DEquiv.idempotent_in_rClass {S : Type u_1} [Semigroup S] {e x : S} (he : IsIdempotentElem e) (hx : x 𝓓 e) :

    If a 𝓓-class contains an idempotent, it contains at least one idempotent in each 𝓡-class.

    theorem Semigroup.DEquiv.idempotent_in_lClass {S : Type u_1} [Semigroup S] {e x : S} (he : IsIdempotentElem e) (hx : x 𝓓 e) :

    If a 𝓓-class contains an idempotent, it contains at least one idempotent in each 𝓛-class.

    theorem Semigroup.HEquiv.ofSubgroup {S : Type u_1} [Semigroup S] {x y : S} {H : Subgroup S} (hx : x H) (hy : y H) :
    x 𝓗 y

    All elements within a subgroup are 𝓗-related.

    A maximal subgroup is the 𝓗-class of an idempotent.

    theorem Semigroup.DEquiv.bij_on_hClass {S : Type u_1} [Semigroup S] {e f s t : S} (he : IsIdempotentElem e) (hf : IsIdempotentElem f) (hr : e 𝓡 s) (hl : s 𝓛 f) (ht : t * s = f) :
    Set.BijOn (fun (x : S) => t * x * s) e⟧𝓗 f⟧𝓗

    Let e f : S be idempotent elements. Let e 𝓓 f such that we have a s with e 𝓡 s and s 𝓛 f. Let t be the witness of f ≤𝓛 s such that t * s = f. Then, the map x ↦ t * x * s is a bijection from the 𝓗-class of e to the 𝓗-class of f.

    theorem Semigroup.DEquiv.bij_on_hClass_map_mul {S : Type u_1} [Semigroup S] {e f s t x y : S} :
    IsIdempotentElem e∀ (hf : IsIdempotentElem f) (hr : e 𝓡 s) (hl : s 𝓛 f) (ht : t * s = f), x 𝓗 e∀ (hy : y 𝓗 e), (fun (x : S) => t * x * s) x * (fun (x : S) => t * x * s) y = (fun (x : S) => t * x * s) (x * y)

    Let e f : S be idempotent elements. Let e 𝓓 f such that we have a s with e 𝓡 s and s 𝓛 f. Let t be the witness of f ≤𝓛 s such that t * s = f. let u be the witness of e ≤𝓡 s such that s * u = e. Then, the map x ↦ t * x * s is a bijection which preserves multiplication (like a morphism).

    noncomputable def Semigroup.DEquiv.hClass_equiv' {S : Type u_1} [Semigroup S] {e f s t : S} (he : IsIdempotentElem e) (hf : IsIdempotentElem f) (hr : e 𝓡 s) (hl : s 𝓛 f) (ht : t * s = f) :

    For idempotents e, f, with e 𝓓 f such that e 𝓡 s and s 𝓛 f such that t * s = f, the isomorphism between ⟦e⟧𝓗 and ⟦f⟧𝓗

    Equations
    Instances For

      For idempotents e, f, if e 𝓓 f, then ⟦e⟧𝓗 and ⟦f⟧𝓗 are isomorphic subgroups.

      theorem Semigroup.DEquiv.maximal_subgroups_equiv {S : Type u_1} [Semigroup S] {x y : S} {H K : Subgroup S} (hH : H.isMaximal) (hK : K.isMaximal) (hx : x H) (hy : y K) (hd : x 𝓓 y) :
      Nonempty (H ≃* K)

      Two maximal subgroups of a 𝓓-class are isomorphic.

      In MulOpposite S, 𝓡 for op-images matches 𝓛 in S.

      theorem Semigroup.exists_idempotent_r_of_isRegularElem {S : Type u_2} [Semigroup S] {x : S} (hx : isRegularElem x) :
      ∃ (e : S), IsIdempotentElem e e 𝓡 x

      If x is regular then ⟦x⟧𝓡 contains an idempotent (x * y for a witness x * y * x = x).

      theorem Semigroup.exists_idempotent_l_of_isRegularElem {S : Type u_2} [Semigroup S] {x : S} (hx : isRegularElem x) :
      ∃ (e : S), IsIdempotentElem e e 𝓛 x

      If x is regular then ⟦x⟧𝓛 contains an idempotent (y * x for a witness x * y * x = x).

      theorem Semigroup.isRegularElem_of_exists_idempotent_r {S : Type u_2} [Semigroup S] {x : S} (h : ∃ (e : S), IsIdempotentElem e e 𝓡 x) :

      If the 𝓡-class of x contains an idempotent, then x is regular.

      theorem Semigroup.isRegularElem_of_exists_idempotent_l {S : Type u_2} [Semigroup S] {x : S} (h : ∃ (e : S), IsIdempotentElem e e 𝓛 x) :

      If the 𝓛-class of x contains an idempotent, then x is regular.

      theorem Semigroup.isRegularElem_of_rEquiv {S : Type u_2} [Semigroup S] {x y : S} (h : x 𝓡 y) (hx : isRegularElem x) :
      theorem Semigroup.isRegularElem_of_lEquiv {S : Type u_2} [Semigroup S] {x y : S} (h : x 𝓛 y) (hx : isRegularElem x) :
      theorem Semigroup.isRegularElem_of_dEquiv {S : Type u_2} [Semigroup S] {x y : S} (hd : x 𝓓 y) (hx : isRegularElem x) :

      Regularity propagates within a 𝓓-class.

      Equations
      Instances For
        Equations
        Instances For

          (i) ↔ (ii) There is at least one regular element 𝓓-related to d.

          theorem Semigroup.DEquiv.regularClass_iff_forall_rClass_idem {S : Type u_2} [Semigroup S] (d : S) :
          regularClass d ∀ (x : S), x 𝓓 d∃ (e : S), IsIdempotentElem e e 𝓡 x

          (i) ↔ (iii) Each 𝓡-class that meets the class contains an idempotent.

          theorem Semigroup.DEquiv.regularClass_iff_forall_lClass_idem {S : Type u_2} [Semigroup S] (d : S) :
          regularClass d ∀ (x : S), x 𝓓 d∃ (e : S), IsIdempotentElem e e 𝓛 x

          (i) ↔ (iv) Each 𝓛-class that meets the class contains an idempotent.

          theorem Semigroup.DEquiv.forall_rClass_idem_iff_hasIdempotent {S : Type u_2} [Semigroup S] (d : S) :
          (∀ (x : S), x 𝓓 d∃ (e : S), IsIdempotentElem e e 𝓡 x) hasIdempotent d

          (iii) ↔ (v) (each 𝓡-class has an idempotent vs. some idempotent in the class).

          theorem Semigroup.DEquiv.forall_lClass_idem_iff_hasIdempotent {S : Type u_2} [Semigroup S] (d : S) :
          (∀ (x : S), x 𝓓 d∃ (e : S), IsIdempotentElem e e 𝓛 x) hasIdempotent d

          (iv) ↔ (v)

          (v) ↔ (ii)

          theorem Semigroup.DEquiv.hasIdempotent_iff_pair_product_in_class {S : Type u_2} [Semigroup S] [Finite S] (d : S) :
          hasIdempotent d ∃ (x : S) (y : S), x 𝓓 d y 𝓓 d x * y 𝓓 d

          (v) ↔ (vi) for finite semigroups: there exist x, y in the class with x * y still in the class

          theorem Semigroup.DEquiv.regular_d_class_tfae {S : Type u_2} [Semigroup S] [Finite S] (d : S) :
          [regularClass d, ∃ (x : S), x 𝓓 d isRegularElem x, ∀ (x : S), x 𝓓 d∃ (e : S), IsIdempotentElem e e 𝓡 x, ∀ (x : S), x 𝓓 d∃ (e : S), IsIdempotentElem e e 𝓛 x, hasIdempotent d, ∃ (x : S) (y : S), x 𝓓 d y 𝓓 d x * y 𝓓 d].TFAE