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
satisfies the Kähler package if the following properties hold:Poincaré duality: There exists a perfect
-bilinear pairing given byHard-Lefschetz Theorem: The graded algebra contains Lefschetz elements
such that multiplication by is an injection from for all .Hodge-Riemann-Minikowski Relations: Every Lefchetz element
, define quadratic forms on given byThis quadratic form becomes positive definite upon restriction to the kernel of the following map
REFERENCES:
- class ParentMethods[source]¶
Bases:
object
- hodge_riemann_relations(k)[source]¶
Return the quadratic form for the corresponding
k
( ) for the Kähler algebra, where 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)