// ************************************************************************** // // 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 CheckRowPerm( [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[i][j]==a[i][k]) emit(no_perm); }