{\rtf1\ansi\ansicpg1252\cocoartf2636 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} {\*\expandedcolortbl;;} \paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0 \f0\fs24 \cf0 #The following code checks that the intersection matrix of the roots\ #in the Coxeter diagram obtained for the (18,2,0) cusp has rank 18.\ \ \ #The following vector records the self intersections of the roots.\ SelfIntersections=[-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-4,-4]\ \ #The following matrix records the miltiplicities of the edges of the Coxeter diagram.\ var('infinity')\ EdgesCoxeterDiagram=[\ [0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0],\ [1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\ [0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\ [0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\ [0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0],\ [0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\ [0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\ [0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],\ [0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0],\ [0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0],\ [0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0],\ [0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0],\ [0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0],\ [0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0],\ [0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0],\ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],\ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0],\ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],\ [0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0],\ [0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2],\ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,infinity],\ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,infinity,0]\ ]\ \ #We now are ready to form the intersection matrix of the roots of the Coxeter diagram\ RootsIntersectionMatrix=[]\ for i in range(0,22):\ row=[]\ for j in range(0,22):\ if i==j:\ number=SelfIntersections[i]\ if i!=j:\ edgemult=EdgesCoxeterDiagram[i][j]\ visquared=SelfIntersections[i]\ vjsquared=SelfIntersections[j]\ if edgemult!=infinity:\ number=sqrt(visquared*vjsquared)*cos(pi/(edgemult+2))\ if edgemult==infinity:\ number=sqrt(visquared*vjsquared)\ row.append(number)\ RootsIntersectionMatrix.append(row)\ \ matrix(RootsIntersectionMatrix).rank()}