# Check that conditions are hoisted up from the innermost loop [n] -> { a[i,j,k,l] -> [i,j,0,k,l] : 0 <= i,j,k,l <= n and (i = 0 or j = 0 or i = n or j = n); b[i,j,k,l] -> [i,j,1,k,l] : 0 <= i,j,k,l <= n and (i = 0 or j = 0 or i = n or j = n) } { : } { [i,j,t,k,l] -> atomic[x] }