Upload files to "/"
This commit is contained in:
parent
2ee558b66d
commit
d9bf5e9747
156
test_cup_aplk_cochain_validations.py
Normal file
156
test_cup_aplk_cochain_validations.py
Normal file
@ -0,0 +1,156 @@
|
||||
from sage.all import *
|
||||
import itertools
|
||||
load('aplK.py')
|
||||
load("minimalModel_parallel.py")
|
||||
|
||||
S = simplicial_complexes.K3Surface()
|
||||
S.set_immutable()
|
||||
cochainComplex = S.chain_complex(base_ring=QQ).dual()
|
||||
A = AlgebraAplK(S)
|
||||
smodel = load("Sullivan_model_K3_deg3.sobj")
|
||||
smorphism = load("model_morphism_K3_deg3.sobj")
|
||||
#cohomology_correspondence = load("cohomology_correspondence_K3_deg3.sobj")
|
||||
#smodel_basis_3 = smodel.basis(3)
|
||||
smodel_basis_2 = smodel.basis(2)
|
||||
#H = S.cohomology_ring(QQ)
|
||||
|
||||
"""
|
||||
for g in smodel_basis_3:
|
||||
a = smorphism[3][str(g)]
|
||||
dg = g.differential()
|
||||
print("AplK Differential validation: generator "+str(g), flush=True)
|
||||
success = phi_polinomial(dg,smorphism,A) == a.differential()
|
||||
if success:
|
||||
print(success, flush=True)
|
||||
else:
|
||||
raise Exception("the differential and the model morphism do not commute")
|
||||
####################
|
||||
cf = A.cochain_to_vector(a.integral(),3)
|
||||
cg = A.cochain_to_vector(a.differential().integral(),4)
|
||||
print("Cochain Complex Differential validation of element associated to generator "+str(g), flush=True)
|
||||
success = cochainComplex.differential(3)*cf == cg
|
||||
if success:
|
||||
print(success, flush=True)
|
||||
else:
|
||||
raise Exception("the aplk and cochain complex differentials do not commute")
|
||||
"""
|
||||
from sage.homology.algebraic_topological_model import algebraic_topological_model
|
||||
phi, M = algebraic_topological_model(S, QQ)
|
||||
# https://doc.sagemath.org/pdf/en/reference/homology/homology.pdf
|
||||
|
||||
"""
|
||||
H = S.cohomology_ring(base_ring=QQ)
|
||||
g20 = H.basis()[(2,0)]
|
||||
g21 = H.basis()[(2,1)]
|
||||
g20.cup_product(g20)
|
||||
2*h^{4,0}
|
||||
sage: g21.cup_product(g21)
|
||||
2*h^{4,0}
|
||||
|
||||
for i in range(22):
|
||||
for j in range(i,22):
|
||||
g1 = H.basis()[(2,i)]
|
||||
g2 = H.basis()[(2,j)]
|
||||
hsuccess = g1.cup_product(g2) == g2.cup_product(g1)
|
||||
if not hsuccess:
|
||||
print("producto diferente: (", str(i)+","+str(j)+")", flush=True)
|
||||
|
||||
"""
|
||||
|
||||
"""
|
||||
sage: S = simplicial_complexes.K3Surface()
|
||||
sage: S
|
||||
Minimal triangulation of the K3 surface
|
||||
sage: C = S.chain_complex().dual()
|
||||
sage: H = S.cohomology_ring(base_ring=QQ)
|
||||
sage: H.contraction?
|
||||
sage: phi = H.contraction().dual()
|
||||
sage: p = phi.pi()
|
||||
sage: iota = phi.iota()
|
||||
sage: M = iota.domain()
|
||||
sage: p2 = p.to_matrix(2)
|
||||
sage: p2
|
||||
22 x 560 dense matrix over Rational Field (use the '.str()' method to see the entries)
|
||||
sage: g20 = H.basis()[(2,0)]
|
||||
sage: c20 = g20.to_cycle()
|
||||
sage: v20 = c20.to_vector()
|
||||
sage: m20 = p2*v20
|
||||
sage: m20
|
||||
(58, 14, 19, 31, -18, -6, -60, 61, 40, 2, 58, -26, -11, -14, 15, -110, 133, 20, -28, 68, -14, 15)
|
||||
sage: g21 = H.basis()[(2,1)]
|
||||
sage: c21 = g21.to_cycle()
|
||||
sage: v21 = c21.to_vector()
|
||||
sage: m21 = p2*v21
|
||||
sage: m = matrix(QQ,[m20,m21])
|
||||
sage: m.rank()
|
||||
2
|
||||
"""
|
||||
|
||||
"""
|
||||
# coordinates of the cohomology generator h^(2,0)
|
||||
# equivalent to h^(2,0).to_cycle().to_vector()
|
||||
sage: vec = H.contraction().iota().in_degree(2).column(0)
|
||||
sage: chains = S.n_chains(2, H.base_ring(), cochains=H._cohomology)
|
||||
sage: chains.from_vector(vec)
|
||||
sage: chains.from_vector(vec) == g20.to_cycle()
|
||||
True
|
||||
"""
|
||||
|
||||
"""
|
||||
sage: V = H.contraction().iota().in_degree(2).column_space()
|
||||
sage: V.coordinate_vector(g20.to_cycle().to_vector())
|
||||
(-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
##################################################################################
|
||||
sage: p = H.contraction().pi()
|
||||
sage: m = p.to_matrix(2)
|
||||
sage: m
|
||||
22 x 560 dense matrix over Rational Field (use the '.str()' method to see the entries)
|
||||
sage: v20 = g20.to_cycle().to_vector()
|
||||
sage: m*v20
|
||||
(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
sage: v21 = c21.to_vector()
|
||||
sage: m*v21
|
||||
(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||
|
||||
|
||||
|
||||
"""
|
||||
|
||||
C2 = S.n_chains(2,QQ,cochains=True)
|
||||
basis2 = C2.basis()
|
||||
C4 = S.n_chains(4,QQ,cochains=True)
|
||||
basis4 = C4.basis()
|
||||
|
||||
for i in range(len(smodel_basis_2)):
|
||||
for j in range(i, len(smodel_basis_2)):
|
||||
g1 = smodel_basis_2[i]
|
||||
g2 = smodel_basis_2[j]
|
||||
a1 = smorphism[2][str(g1)]
|
||||
a2 = smorphism[2][str(g2)]
|
||||
|
||||
cA1 = a1.integral()
|
||||
dA1 = C2.zero()
|
||||
for k in basis2.keys():
|
||||
dA1 += basis2[k]*cA1[k.tuple()]
|
||||
cA2 = a2.integral()
|
||||
dA2 = C2.zero()
|
||||
for k in basis2.keys():
|
||||
dA2 += basis2[k]*cA2[k.tuple()]
|
||||
dA12 = dA1.cup_product(dA2)
|
||||
|
||||
a4 = a1*a2
|
||||
dA4 = C4.zero()
|
||||
cA4 = a4.integral()
|
||||
for k in basis4.keys():
|
||||
dA4 += basis4[k]*cA4[k.tuple()]
|
||||
success = dA12 == dA4
|
||||
if success:
|
||||
print("cup product commutes for elements " + str(g1) + " and " + str(g2), flush=True)
|
||||
print(success, flush=True)
|
||||
else:
|
||||
print("dA12", flush=True)
|
||||
print(dA12)
|
||||
print("dA4", flush=True)
|
||||
print(dA4)
|
||||
raise Exception("the aplk and cup products do not commute")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user