Documentation

Frourio.Algebra.CrossedProduct

def Frourio.IsPBWBasis {A : Type u_1} [Ring A] {m : } (basis : Set (CrossedProduct A m)) :
Equations
Instances For
    theorem Frourio.pbw_basis {A : Type u_1} [Ring A] (m : ) :
    ∃ (basis : Set (CrossedProduct A m)), IsPBWBasis basis

    PBW基底の存在定理(スケルトン)。

    PBWの自由加群表示(Option A)

    @[reducible, inline]
    noncomputable abbrev Frourio.PBWModule (A : Type u_1) [Semiring A] (m : ) :
    Type u_1

    PBWモジュール:指数ベクトルに係数を割り当てる有限和表示

    Equations
    Instances For
      noncomputable def Frourio.pbwMonomial {A : Type u_1} [Semiring A] (m : ) (v : Fin m) (a : A) :

      係数付きPBW単項式(finsupp上)

      Equations
      Instances For
        noncomputable def Frourio.pbwFamily {A : Type u_1} [Semiring A] (m : ) :
        (Fin m)PBWModule A m

        係数1のPBWファミリー

        Equations
        Instances For

          強形式のPBW基底(軽量版): LinearIndependentBasis を直接使わず、finsupp の性質のみで (1)一次独立相当、(2)生成相当 を定義・証明する。

          PBWの標準族 pbwFamily が一次独立であることを表す(finsupp版)。

          Equations
          Instances For
            def Frourio.PBWSpans (A : Type u_1) [Semiring A] (m : ) :

            PBWの標準族 pbwFamily が生成すること(任意の元が有限和で書けること)。

            Equations
            Instances For
              structure Frourio.StrongIsPBWBasis (A : Type u_1) [Semiring A] (m : ) :

              強形式のPBW基底(軽量版):一次独立相当と生成相当の両立。

              Instances For
                theorem Frourio.sum_single_eq_self {A : Type u_1} [Semiring A] {m : } (l : (Fin m) →₀ A) :
                (l.sum fun (v : Fin m) (a : A) => Finsupp.single v a) = l

                一次独立相当:係数finsuppの和が0なら係数が0。

                theorem Frourio.pbw_spans_basic {A : Type u_1} [Semiring A] (m : ) :

                生成相当:任意の finsupp はそのまま単項式の有限和。

                theorem Frourio.pbw_basis_strong {A : Type u_1} [Semiring A] (m : ) :

                強形式PBW基底(軽量版)の存在。

                関係付け: CrossedProduct ↔ PBWModule(単項式レベル)

                noncomputable def Frourio.toPBW {A : Type u_1} [Ring A] {m : } (x : CrossedProduct A m) :

                CrossedProduct の単項式を PBWModule に埋め込む。

                Equations
                Instances For
                  @[simp]
                  theorem Frourio.toPBW_def {A : Type u_1} [Ring A] {m : } (a : A) (v : Fin m) :
                  toPBW { base := a, scales := v } = Finsupp.single v a
                  def Frourio.fromPBW_of_eq_single {A : Type u_1} [Ring A] {m : } {f : PBWModule A m} {v : Fin m} {a : A} (_hv : f = Finsupp.single v a) :

                  PBWの単項式等式から CrossedProduct を構成する(明示的な証明引数を取る形)。

                  Equations
                  Instances For
                    @[simp]
                    theorem Frourio.from_toPBW {A : Type u_1} [Ring A] {m : } (x : CrossedProduct A m) :
                    @[simp]
                    theorem Frourio.to_fromPBW {A : Type u_1} [Ring A] {m : } {v : Fin m} {a : A} :

                    toPBW Properties #

                    @[simp]
                    theorem Frourio.toPBW_zero {A : Type u_1} [Ring A] {m : } :
                    toPBW 0 = 0
                    theorem Frourio.toPBW_add_zero_scales {A : Type u_1} [Ring A] {m : } (x y : CrossedProduct A m) (hx : x.scales = 0) (hy : y.scales = 0) :
                    toPBW (x + y) = toPBW x + toPBW y

                    toPBW preserves addition only when both have zero scales

                    theorem Frourio.toPBW_neg_scale_zero {A : Type u_1} [Ring A] {m : } (x : CrossedProduct A m) (h : x.scales = 0) :

                    toPBW preserves negation only when scales are zero

                    instance Frourio.instSubCrossedProduct {A : Type u_1} [Ring A] {m : } :
                    Equations
                    theorem Frourio.toPBW_sub_same_zero_scales {A : Type u_1} [Ring A] {m : } (x y : CrossedProduct A m) (hx : x.scales = 0) (hy : y.scales = 0) :
                    toPBW (x - y) = toPBW x - toPBW y

                    toPBW preserves subtraction only when scales are the same and equal to zero

                    Normal Form and Identity Lemmas #

                    @[simp]
                    theorem Frourio.single_eq_single_iff {A : Type u_1} [Ring A] {m : } {v w : Fin m} {a b : A} :
                    Finsupp.single v a = Finsupp.single w b v = w a = b a = 0 b = 0
                    theorem Frourio.toPBW_injective_on_single {A : Type u_1} [Ring A] {m : } {v : Fin m} {a : A} (ha : a 0) (x : CrossedProduct A m) :
                    toPBW x = Finsupp.single v ax = { base := a, scales := v }
                    theorem Frourio.eq_of_toPBW_eq_on_single {A : Type u_1} [Ring A] {m : } (x y : CrossedProduct A m) (hx : x.base 0) (hy : y.base 0) :
                    toPBW x = toPBW yx = y
                    noncomputable def Frourio.pbwSum {A : Type u_1} [Semiring A] (m : ) (s : Finset (Fin m)) (c : (Fin m)A) :
                    Equations
                    Instances For
                      noncomputable def Frourio.PBWModule.mul {A : Type u_1} [Ring A] {m : } (σ : ZmAction A m) (x y : PBWModule A m) :

                      ねじれ畳み込みによるPBWModule上の乗法

                      Equations
                      Instances For
                        structure Frourio.FrourioCrossedProduct (A : Type u_1) [Ring A] (m : ) :
                        Type u_1
                        Instances For
                          noncomputable instance Frourio.instMulFrourioCrossedProduct {A : Type u_1} [Ring A] {m : } (σ : ZmAction A m) :
                          Equations

                          Product Compatibility Lemmas (After PBWModule.mul Definition) #

                          theorem Frourio.toPBW_mul_single_right {A : Type u_1} [Ring A] {m : } (σ : ZmAction A m) (x : CrossedProduct A m) (v : Fin m) (a : A) :
                          toPBW (CrossedProduct.mul σ x { base := a, scales := v }) = PBWModule.mul σ (toPBW x) (Finsupp.single v a)
                          theorem Frourio.toPBW_mul_single_left {A : Type u_1} [Ring A] {m : } (σ : ZmAction A m) (v : Fin m) (a : A) (y : CrossedProduct A m) :
                          toPBW (CrossedProduct.mul σ { base := a, scales := v } y) = PBWModule.mul σ (Finsupp.single v a) (toPBW y)
                          theorem Frourio.toPBW_mul {A : Type u_1} [Ring A] {m : } (σ : ZmAction A m) (x y : CrossedProduct A m) :