Kähler Algebras

AUTHORS:

  • Shriya M

class sage.categories.kahler_algebras.KahlerAlgebras(base, name=None)[source]

Bases: Category_over_base_ring

The category of graded algebras satisfying the Kähler package.

A finite-dimensional graded algebra k=1rAk satisfies the Kähler package if the following properties hold:

  • Poincaré duality: There exists a perfect Z-bilinear pairing given by

    Ak×ArkZ(a,b)deg(ab).
  • Hard-Lefschetz Theorem: The graded algebra contains Lefschetz elements ωAR1 such that multiplication by ω is an injection from ARkARk+1 for all k<r2.

  • Hodge-Riemann-Minikowski Relations: Every Lefchetz element ω, define quadratic forms on ARk given by

    a(1)kdeg(aωr2ka)

    This quadratic form becomes positive definite upon restriction to the kernel of the following map

    ARkARrk+1aaωr2k+1.

REFERENCES:

class ParentMethods[source]

Bases: object

hodge_riemann_relations(k)[source]

Return the quadratic form for the corresponding k (<r2) for the Kähler algebra, where r is the top degree.

EXAMPLES:

sage: ch = matroids.Uniform(4, 6).chow_ring(QQ, False)
sage: ch.hodge_riemann_relations(1)
Quadratic form in 36 variables over Rational Field with coefficients:
[ 3 -1 -1 3 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 3 ]
[ * 3 -1 3 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 3 ]
[ * * 3 3 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 3 ]
[ * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * 3 -1 3 -1 -1 3 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 ]
[ * * * * * 3 3 -1 3 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 3 ]
[ * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * 3 3 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 3 ]
[ * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * 3 -1 3 -1 -1 3 -1 -1 -1 3 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 ]
[ * * * * * * * * * * * 3 3 -1 3 -1 -1 -1 3 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 ]
[ * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * 3 3 3 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 3 ]
[ * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * 3 3 3 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 3 ]
[ * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * 3 -1 3 -1 3 -1 -1 -1 -1 3 -1 -1 -1 -1 3 3 ]
[ * * * * * * * * * * * * * * * * * * * * * 3 3 -1 -1 3 -1 -1 3 -1 -1 -1 -1 3 -1 3 ]
[ * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * 3 3 3 -1 3 -1 -1 -1 -1 3 -1 -1 3 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * 3 3 3 3 -1 3 -1 -1 -1 3 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 3 3 3 3 3 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 ]
sage: ch.hodge_riemann_relations(3)
Traceback (most recent call last):
...
ValueError: k must be less than r/2 < 2
>>> from sage.all import *
>>> ch = matroids.Uniform(Integer(4), Integer(6)).chow_ring(QQ, False)
>>> ch.hodge_riemann_relations(Integer(1))
Quadratic form in 36 variables over Rational Field with coefficients:
[ 3 -1 -1 3 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 3 ]
[ * 3 -1 3 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 3 ]
[ * * 3 3 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 3 ]
[ * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * 3 -1 3 -1 -1 3 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 ]
[ * * * * * 3 3 -1 3 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 3 ]
[ * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * 3 3 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 3 ]
[ * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * 3 -1 3 -1 -1 3 -1 -1 -1 3 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 ]
[ * * * * * * * * * * * 3 3 -1 3 -1 -1 -1 3 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 ]
[ * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * 3 3 3 -1 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 -1 -1 -1 -1 -1 3 ]
[ * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * 3 3 3 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 3 3 ]
[ * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * 3 -1 3 -1 3 -1 -1 -1 -1 3 -1 -1 -1 -1 3 3 ]
[ * * * * * * * * * * * * * * * * * * * * * 3 3 -1 -1 3 -1 -1 3 -1 -1 -1 -1 3 -1 3 ]
[ * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * 3 3 3 -1 3 -1 -1 -1 -1 3 -1 -1 3 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * 3 3 3 3 -1 3 -1 -1 -1 3 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 3 3 3 3 3 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 -1 ]
[ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 ]
>>> ch.hodge_riemann_relations(Integer(3))
Traceback (most recent call last):
...
ValueError: k must be less than r/2 < 2
ch = matroids.Uniform(4, 6).chow_ring(QQ, False)
ch.hodge_riemann_relations(1)
ch.hodge_riemann_relations(3)
lefschetz_element()[source]

Return one Lefschetz element of the given Kähler algebra.

EXAMPLES:

sage: U46 = matroids.Uniform(4, 6)
sage: C = U46.chow_ring(QQ, False)
sage: w = C.lefschetz_element(); w
-2*A01 - 2*A02 - 2*A03 - 2*A04 - 2*A05 - 2*A12 - 2*A13 - 2*A14
- 2*A15 - 2*A23 - 2*A24 - 2*A25 - 2*A34 - 2*A35 - 2*A45 - 6*A012
- 6*A013 - 6*A014 - 6*A015 - 6*A023 - 6*A024 - 6*A025 - 6*A034
- 6*A035 - 6*A045 - 6*A123 - 6*A124 - 6*A125 - 6*A134 - 6*A135
- 6*A145 - 6*A234 - 6*A235 - 6*A245 - 6*A345 - 30*A012345
sage: basis_deg = {}
sage: for b in C.basis():
....:     deg = b.homogeneous_degree()
....:     if deg not in basis_deg:
....:         basis_deg[deg] = []
....:     basis_deg[deg].append(b)
sage: m = max(basis_deg); m
3
sage: len(basis_deg[1]) == len(basis_deg[2])
True
sage: matrix([(w*b).to_vector() for b in basis_deg[1]]).rank()
36
sage: len(basis_deg[2])
36
>>> from sage.all import *
>>> U46 = matroids.Uniform(Integer(4), Integer(6))
>>> C = U46.chow_ring(QQ, False)
>>> w = C.lefschetz_element(); w
-2*A01 - 2*A02 - 2*A03 - 2*A04 - 2*A05 - 2*A12 - 2*A13 - 2*A14
- 2*A15 - 2*A23 - 2*A24 - 2*A25 - 2*A34 - 2*A35 - 2*A45 - 6*A012
- 6*A013 - 6*A014 - 6*A015 - 6*A023 - 6*A024 - 6*A025 - 6*A034
- 6*A035 - 6*A045 - 6*A123 - 6*A124 - 6*A125 - 6*A134 - 6*A135
- 6*A145 - 6*A234 - 6*A235 - 6*A245 - 6*A345 - 30*A012345
>>> basis_deg = {}
>>> for b in C.basis():
...     deg = b.homogeneous_degree()
...     if deg not in basis_deg:
...         basis_deg[deg] = []
...     basis_deg[deg].append(b)
>>> m = max(basis_deg); m
3
>>> len(basis_deg[Integer(1)]) == len(basis_deg[Integer(2)])
True
>>> matrix([(w*b).to_vector() for b in basis_deg[Integer(1)]]).rank()
36
>>> len(basis_deg[Integer(2)])
36
U46 = matroids.Uniform(4, 6)
C = U46.chow_ring(QQ, False)
w = C.lefschetz_element(); w
basis_deg = {}
for b in C.basis():
    deg = b.homogeneous_degree()
    if deg not in basis_deg:
        basis_deg[deg] = []
    basis_deg[deg].append(b)
m = max(basis_deg); m
len(basis_deg[1]) == len(basis_deg[2])
matrix([(w*b).to_vector() for b in basis_deg[1]]).rank()
len(basis_deg[2])
poincare_pairing(a, b)[source]

Return the Poincaré pairing of two elements of the Kähler algebra.

EXAMPLES:

sage: ch = matroids.catalog.Fano().chow_ring(QQ, True, 'fy')
sage: Ba, Bb, Bc, Bd, Be, Bf, Bg, Babf, Bace, Badg, Bbcd, Bbeg, Bcfg, Bdef, Babcdefg = ch.gens()[8:]
sage: u = ch(-Babf^2 + Bcfg^2 - 8/7*Bc*Babcdefg + 1/2*Bd*Babcdefg - Bf*Babcdefg - Bg*Babcdefg); u
-Babf^2 + Bcfg^2 - 8/7*Bc*Babcdefg + 1/2*Bd*Babcdefg - Bf*Babcdefg - Bg*Babcdefg
sage: v = ch(Bg - 2/37*Babf + Badg + Bbeg + Bcfg + Babcdefg); v
Bg - 2/37*Babf + Badg + Bbeg + Bcfg + Babcdefg
sage: ch.poincare_pairing(v, u)
3
>>> from sage.all import *
>>> ch = matroids.catalog.Fano().chow_ring(QQ, True, 'fy')
>>> Ba, Bb, Bc, Bd, Be, Bf, Bg, Babf, Bace, Badg, Bbcd, Bbeg, Bcfg, Bdef, Babcdefg = ch.gens()[Integer(8):]
>>> u = ch(-Babf**Integer(2) + Bcfg**Integer(2) - Integer(8)/Integer(7)*Bc*Babcdefg + Integer(1)/Integer(2)*Bd*Babcdefg - Bf*Babcdefg - Bg*Babcdefg); u
-Babf^2 + Bcfg^2 - 8/7*Bc*Babcdefg + 1/2*Bd*Babcdefg - Bf*Babcdefg - Bg*Babcdefg
>>> v = ch(Bg - Integer(2)/Integer(37)*Babf + Badg + Bbeg + Bcfg + Babcdefg); v
Bg - 2/37*Babf + Badg + Bbeg + Bcfg + Babcdefg
>>> ch.poincare_pairing(v, u)
3
ch = matroids.catalog.Fano().chow_ring(QQ, True, 'fy')
Ba, Bb, Bc, Bd, Be, Bf, Bg, Babf, Bace, Badg, Bbcd, Bbeg, Bcfg, Bdef, Babcdefg = ch.gens()[8:]
u = ch(-Babf^2 + Bcfg^2 - 8/7*Bc*Babcdefg + 1/2*Bd*Babcdefg - Bf*Babcdefg - Bg*Babcdefg); u
v = ch(Bg - 2/37*Babf + Badg + Bbeg + Bcfg + Babcdefg); v
ch.poincare_pairing(v, u)
super_categories()[source]

Return the super categories of self.

EXAMPLES:

sage: from sage.categories.kahler_algebras import KahlerAlgebras

sage: C = KahlerAlgebras(QQ); C
Category of kahler algebras over Rational Field
sage: sorted(C.super_categories(), key=str)
[Category of finite dimensional graded algebras with basis over
Rational Field]
>>> from sage.all import *
>>> from sage.categories.kahler_algebras import KahlerAlgebras

>>> C = KahlerAlgebras(QQ); C
Category of kahler algebras over Rational Field
>>> sorted(C.super_categories(), key=str)
[Category of finite dimensional graded algebras with basis over
Rational Field]
from sage.categories.kahler_algebras import KahlerAlgebras
C = KahlerAlgebras(QQ); C
sorted(C.super_categories(), key=str)