Here's a slightly different approach to proving the original result. rot=:(1&|.)@:(1&|."1) flip=:|.@: (|."1) ref=:|:@:flip
Then since ref and rot commute with |: , it suffices to show that (a-:rot a) implies (a-:ref a). Powers of rot transitively permute elements on the (extended) diagonals parallel to the main diagonal, while ref transposes some elements on the (fragmented) diagonals, so a matrix which is rot invariant will be ref invariant. Here is an example: C., rot i. 4 4 +---------+--------+--------+---------+ |12 1 6 11|13 2 7 8|14 3 4 9|15 0 5 10| +---------+--------+--------+---------+ C., ref i. 4 4 +-+-+---+-+----+----+--+----+----+----+ |3|6|7 2|9|10 5|11 1|12|13 8|14 4|15 0| +-+-+---+-+----+----+--+----+----+----+ The transposition given by 7 2 is a subset of the cycle 13 2 7 8, so these elements are equal by rot invariance. The same applies for the other transpositions A matrix which is rot invariant but not symmetric may not be mirror symmetric, for example b=:|. 1&|.^:(<4) i.4 (b-:rot b),(b-:ref b),(b-:flip b) 1 1 0 Best wishes, John ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
