diff --git a/GLIdeals.m2 b/GLIdeals.m2 index e5194ae..3242da5 100644 --- a/GLIdeals.m2 +++ b/GLIdeals.m2 @@ -115,8 +115,8 @@ randomLam(ZZ, ZZ) := (n,k) -> ( idealILambda = method() idealILambda(Matrix,List) := (X,lam) -> ( - n:=rank target X; - m:=rank source X; + n:=rank source X; + m:=rank target X; kk:=baseRing ring X; if char kk !=0 then( error "Base ring is not characteristic 0"; @@ -143,7 +143,19 @@ idealILambda(Matrix,List) := (X,lam) -> ( return ideal minJ; ); - +idealIChi = method() +idealIChi(Matrix,List) := (X,chi) -> ( + -- chi is a list of partitions + -- return sum of ideals idealILambda(X, chi_i) for all i + R := ring X; + if #chi == 0 then return ideal(0_R); + c := minimizeChi(chi); + I := idealILambda(X, c#0); + for i in 1..#c-1 do( + I = I + idealILambda(X, c#i); + ); + return I; +); partitionsLeq = method(); partitionsLeq(Partition, Partition) := (A, B) -> ( diff --git a/aryaman.m2 b/aryaman.m2 index a94eb9b..34d5f83 100644 --- a/aryaman.m2 +++ b/aryaman.m2 @@ -69,4 +69,7 @@ minimizeChi(List) := (chi) -> ( return apply(minimals, P -> toList(P)); ) -c = apply(5, i -> randomLam(10, 10)); \ No newline at end of file +c = apply(5, i -> randomLam(3, 2)); +R = QQ[X_(1, 1)..X_(3, 4)]; +XM = transpose genericMatrix(R, 4, 3); +idealIChi(XM, c)