Adam Van TuylDepartment of Mathematics and StatisticsMcMaster University Hamilton, ON, Canada L8S 4L8 vantuyl@math.mcmaster.ca |
CoCoA code for Plane curves containing star configurations |
In the paper
-
Plane curves containing a star configuration (with E. Carlini and
E. Guardo)
Journal of Pure and Applied Algebra 219 (2015) 3495--3505.
In Section 2 of the paper (see Remark 2.7), we describe a method to compute the dimension of this family of curves. This remark is used in the proof of Theorems 2.9 and 3.1 to justify that the dimension of the family of curves of degree that contain a star configuration is a particular value. As promised in the paper, we provide the CoCoA code that we used to verify these three results.
Feel free to borrow and adapt the code.
CoCoA code
The following code has been checked on CoCoA 4.7.5.The first example takes care of Theorem 2.9 dealing with the Luroth quartics.
------------------------------------------- -- Computed Examples For paper: -- "The locus of star configurations" -- Carlini-Guardo-Van Tuyl ------------------------------------------- --------------------------------------------- -- LUROTH EXAMPLE of Theorem 2.9 -- (d,l) = (4,5) -- ------------------------------------------ Use S::=QQ[x[1..3]]; L1:=x[1]; L2:=x[2]; L3:=x[3]; L4:=x[1]+x[2]+x[3]; L5:=x[1]+2*x[2]+3*x[3]; LH1:=L2*L3*L4*L5; LH2:=L1*L3*L4*L5; LH3:=L1*L2*L4*L5; LH4:=L1*L2*L3*L5; LH5:=L1*L2*L3*L4; Q1:=L3*L4*L5+L2*L4*L5+L2*L3*L5+L2*L3*L4; Q2:=L3*L4*L5+L1*L4*L5+L1*L3*L5+L1*L3*L4; Q3:=L2*L4*L5+L1*L4*L5+L1*L2*L5+L1*L2*L4; Q4:=L2*L3*L5+L1*L3*L5+L1*L2*L5+L1*L2*L3; Q5:=L2*L3*L4+L1*L3*L4+L1*L2*L4+L1*L2*L3; I:=Ideal(LH1,LH2,LH3,LH4,LH5,Q1,Q2,Q3,Q4,Q5); -- Compute (dim I_d) -1 H:=Hilbert(S/I); Bin(4+2,2)- EvalHilbertFn(H,4)-1; 13 ------------------------------- |
---------------------------- -- (d,l) = (5,6) ---------------------------- Use S::=QQ[x[1..3]]; L1:=x[1]; L2:=x[2]; L3:=x[3]; L4:=x[1]+x[2]+x[3]; L5:=x[1]+2*x[2]+3*x[3]; L6:=x[1]+3*x[2]+10*x[3]; LH1:=L2*L3*L4*L5*L6; LH2:=L1*L3*L4*L5*L6; LH3:=L1*L2*L4*L5*L6; LH4:=L1*L2*L3*L5*L6; LH5:=L1*L2*L3*L4*L6; LH6:=L1*L2*L3*L4*L5; Q1:=L3*L4*L5*L6+L2*L4*L5*L6+L2*L3*L5*L6+L2*L3*L4*L6+L2*L3*L4*L5; Q2:=L3*L4*L5*L6+L1*L4*L5*L6+L1*L3*L5*L6+L1*L3*L4*L6+L1*L3*L4*L5; Q3:=L2*L4*L5*L6+L1*L4*L5*L6+L1*L2*L5*L6+L1*L2*L4*L6+L1*L2*L4*L5; Q4:=L2*L3*L5*L6+L1*L3*L5*L6+L1*L2*L5*L6+L1*L2*L3*L6+L1*L2*L3*L5; Q5:=L2*L3*L4*L6+L1*L3*L4*L6+L1*L2*L4*L6+L1*L2*L3*L6+L1*L2*L3*L4; Q6:=L2*L3*L4*L5+L1*L3*L4*L5+L1*L2*L4*L5+L1*L2*L3*L5+L1*L2*L3*L4; I:=Ideal(LH1,LH2,LH3,LH4,LH5,LH6,Q1,Q2,Q3,Q4,Q5,Q6); Hilbert(S/I); -- Compute (dim I_d) -1 H:=Hilbert(S/I); Bin(5+2,2)- EvalHilbertFn(H,5)-1; 17 ------------------------------- ------------------------------------------ -- (d,l) = (5,6) Using the matrix approach ------------------------------------------ C1:=L2*Q4; C2:=L1*Q4; C3:=L3*Q5; C4:=L2*Q5; C5:=L1*Q6; C6:=L3*Q6; C7:=L6*Q1; C8:=L3*Q2; C9:=L6*Q2; C10:=L6*Q3; C11:= L4*Q3; C12:= L5*Q1; P12:=[0,0,1]; P13:=[0,1,0]; P14:=[0,1,-1]; P15:=[0,3,-2]; P16:=[0,10,-3]; P23:=[1,0,0]; P24:=[1,0,-1]; P25:=[3,0,-1]; P26:=[10,0,-1]; P34:=[1,-1,0]; P35:=[2,-1,0]; P36:=[3,-1,0]; P45:=[1,-2,1]; P46:=[7,-9,2]; P56:=[11,-7,1]; C:=[C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12]; M1:=[Eval(T,P14) | T In C]; M2:=[Eval(T,P24) | T In C]; M3:=[Eval(T,P25) | T In C]; M4:=[Eval(T,P35) | T In C]; M5:=[Eval(T,P36) | T In C]; M6:=[Eval(T,P16) | T In C]; M7:=[Eval(T,P15) | T In C]; M8:=[Eval(T,P26) | T In C]; M9:=[Eval(T,P23) | T In C]; M10:=[Eval(T,P34) | T In C]; M11:=[Eval(T,P46) | T In C]; M12:=[Eval(T,P12) | T In C]; M:=Mat([M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12]); Rank(M); 12 ------------------------------- --------------------------------- -- (d,l) = (6,6) Using Remark 2.7 --------------------------------- Use S::=QQ[x[1..3]]; L1:=x[1]; L2:=x[2]; L3:=x[3]; L4:=x[1]+x[2]+x[3]; L5:=x[1]+2*x[2]+3*x[3]; L6:=x[1]+3*x[2]+10*x[3]; L:=4*x[1]+18*x[2]-12*x[3]; LH1:=L2*L3*L4*L5*L6; LH2:=L1*L3*L4*L5*L6; LH3:=L1*L2*L4*L5*L6; LH4:=L1*L2*L3*L5*L6; LH5:=L1*L2*L3*L4*L6; LH6:=L1*L2*L3*L4*L5; Q1:=L*(L3*L4*L5*L6+L2*L4*L5*L6+L2*L3*L5*L6+L2*L3*L4*L6+L2*L3*L4*L5); Q2:=L*(L3*L4*L5*L6+L1*L4*L5*L6+L1*L3*L5*L6+L1*L3*L4*L6+L1*L3*L4*L5); Q3:=L*(L2*L4*L5*L6+L1*L4*L5*L6+L1*L2*L5*L6+L1*L2*L4*L6+L1*L2*L4*L5); Q4:=L*(L2*L3*L5*L6+L1*L3*L5*L6+L1*L2*L5*L6+L1*L2*L3*L6+L1*L2*L3*L5); Q5:=L*(L2*L3*L4*L6+L1*L3*L4*L6+L1*L2*L4*L6+L1*L2*L3*L6+L1*L2*L3*L4); Q6:=L*(L2*L3*L4*L5+L1*L3*L4*L5+L1*L2*L4*L5+L1*L2*L3*L5+L1*L2*L3*L4); I:=Ideal(LH1,LH2,LH3,LH4,LH5,LH6,Q1,Q2,Q3,Q4,Q5,Q6); Hilbert(S/I); -- Compute (dim I_d) -1 H:=Hilbert(S/I); Bin(6+2,2)- EvalHilbertFn(H,6)-1; 24 ------------------------------- ------------------------------------------ -- (d,l) = (6,6) Using the matrix approach ------------------------------------------ C1:=L2*Q4; C2:=L1*Q4; C3:=L3*Q5; C4:=L2*Q5; C5:=L1*Q6; C6:=L3*Q6; C7:=L6*Q1; C8:=L3*Q2; C9:=L6*Q2; C10:=L6*Q3; C11:= L4*Q3; C12:= L5*Q1; P12:=[0,0,1]; P13:=[0,1,0]; P14:=[0,1,-1]; P15:=[0,3,-2]; P16:=[0,10,-3]; P23:=[1,0,0]; P24:=[1,0,-1]; P25:=[3,0,-1]; P26:=[10,0,-1]; P34:=[1,-1,0]; P35:=[2,-1,0]; P36:=[3,-1,0]; P45:=[1,-2,1]; P46:=[7,-9,2]; P56:=[11,-7,1]; C:=[C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12]; M1:=[Eval(T,P14) | T In C]; M2:=[Eval(T,P24) | T In C]; M3:=[Eval(T,P25) | T In C]; M4:=[Eval(T,P35) | T In C]; M5:=[Eval(T,P36) | T In C]; M6:=[Eval(T,P16) | T In C]; M7:=[Eval(T,P15) | T In C]; M8:=[Eval(T,P26) | T In C]; M9:=[Eval(T,P23) | T In C]; M10:=[Eval(T,P34) | T In C]; M11:=[Eval(T,P46) | T In C]; M12:=[Eval(T,P12) | T In C]; M:=Mat([M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12]); Rank(M); 12 ------------------------------- |