Equations
- Frourio.IsPBWBasis basis = (basis = Set.range fun (v : Fin m → ℤ) => Frourio.monomial v)
Instances For
theorem
Frourio.pbw_basis
{A : Type u_1}
[Ring A]
(m : ℕ)
:
∃ (basis : Set (CrossedProduct A m)), IsPBWBasis basis
PBW基底の存在定理(スケルトン)。
PBWの自由加群表示(Option A)
noncomputable def
Frourio.pbwMonomial
{A : Type u_1}
[Semiring A]
(m : ℕ)
(v : Fin m → ℤ)
(a : A)
:
PBWModule A m
係数付きPBW単項式(finsupp上)
Equations
- Frourio.pbwMonomial m v a = Finsupp.single v a
Instances For
係数1のPBWファミリー
Equations
- Frourio.pbwFamily m v = Finsupp.single v 1
Instances For
強形式のPBW基底(軽量版):
LinearIndependent
や Basis
を直接使わず、finsupp の性質のみで
(1)一次独立相当、(2)生成相当 を定義・証明する。
PBWの標準族 pbwFamily
が生成すること(任意の元が有限和で書けること)。
Equations
- Frourio.PBWSpans A m = ∀ (f : Frourio.PBWModule A m), ∃ (l : (Fin m → ℤ) →₀ A), f = l.sum fun (v : Fin m → ℤ) (a : A) => Finsupp.single v a
Instances For
強形式PBW基底(軽量版)の存在。
関係付け: CrossedProduct ↔ PBWModule(単項式レベル)
noncomputable def
Frourio.toPBW
{A : Type u_1}
[Ring A]
{m : ℕ}
(x : CrossedProduct A m)
:
PBWModule A m
CrossedProduct の単項式を PBWModule に埋め込む。
Equations
- Frourio.toPBW x = Finsupp.single x.scales x.base
Instances For
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)
:
CrossedProduct A m
PBWの単項式等式から CrossedProduct を構成する(明示的な証明引数を取る形)。
Equations
- Frourio.fromPBW_of_eq_single _hv = { base := a, scales := v }
Instances For
@[simp]
toPBW Properties #
Equations
- Frourio.instSubCrossedProduct = { sub := fun (x y : Frourio.CrossedProduct A m) => x + -y }
Normal Form and Identity Lemmas #
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)
:
noncomputable def
Frourio.pbwSum
{A : Type u_1}
[Semiring A]
(m : ℕ)
(s : Finset (Fin m → ℤ))
(c : (Fin m → ℤ) → A)
:
PBWModule A m
Equations
- Frourio.pbwSum m s c = ∑ v ∈ s, Finsupp.single v (c v)
Instances For
noncomputable def
Frourio.PBWModule.mul
{A : Type u_1}
[Ring A]
{m : ℕ}
(σ : ZmAction A m)
(x y : PBWModule A m)
:
PBWModule A m
ねじれ畳み込みによるPBWModule上の乗法
Equations
- Frourio.PBWModule.mul σ x y = Finsupp.sum x fun (v₁ : Fin m → ℤ) (a₁ : A) => Finsupp.sum y fun (v₂ : Fin m → ℤ) (a₂ : A) => Finsupp.single (v₁ + v₂) (a₁ * σ.act v₁ a₂)
Instances For
noncomputable instance
Frourio.instMulFrourioCrossedProduct
{A : Type u_1}
[Ring A]
{m : ℕ}
(σ : ZmAction A m)
:
Mul (FrourioCrossedProduct A m)
Equations
- Frourio.instMulFrourioCrossedProduct σ = { mul := fun (x y : Frourio.FrourioCrossedProduct A m) => { elem := Frourio.PBWModule.mul σ x.elem y.elem } }
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)
: