// ************************************************************************** // // eses eses // eses eses // eses eseses esesese eses Embedded Systems Group // ese ese ese ese ese // ese eseseses eseseses ese Department of Computer Science // eses eses ese eses // eses eseses eseseses eses University of Kaiserslautern // eses eses // // ************************************************************************** package MagicSquare; macro size = 3; module CheckColPerm( [size][size()]nat{size()*size()} a, nat{size} ?i, event !no_perm ) { for(j=0..(size-2)) for(k=j+1..(size-1)) if(a[j][i]==a[k][i]) emit (no_perm); }