Magic square on system verilog

constraint c {
  a.sum() with (item.index(1)==0 ? item : 0) == 15;//row0
  a.sum() with (item.index(1)==1 ? item : 0) == 15;//row1
  a.sum() with (item.index(1)==2 ? item : 0) == 15;//row2
  a.sum() with (item.index(2)==0 ? item : 0) == 15;//col0
  a.sum() with (item.index(2)==1 ? item : 0) == 15;//col1
  a.sum() with (item.index(2)==2 ? item : 0) == 15;//col2
  a.sum() with (item.index(1) == item.index(2) ? item : 0) == 15; //diag1
  a.sum() with ((item.index(1) + item.index(2) == 2) ? item : 0) == 15; //diag2
}