Log In Sign Up

Computational Understanding and Manipulation of Symmetries

by   Attila Egri-Nagy, et al.
University of Hertfordshire

For natural and artificial systems with some symmetry structure, computational understanding and manipulation can be achieved without learning by exploiting the algebraic structure. Here we describe this algebraic coordinatization method and apply it to permutation puzzles. Coordinatization yields a structural understanding, not just solutions for the puzzles.


page 5

page 6


Algebraic and Puiseux series solutions of systems of autonomous algebraic ODEs of dimension one in several variables

In this paper we study systems of autonomous algebraic ODEs in several d...

On optimal weak algebraic manipulation detection codes and weighted external difference families

This paper provides a characterization of weak algebraic manipulation de...

The Algebraic View of Computation

We argue that computation is an abstract algebraic concept, and a comput...

Neurocognitive Informatics Manifesto

Informatics studies all aspects of the structure of natural and artifici...

Rapid Acceleration of the Permutation Test via Slow Random Walks in the Permutation Group

The permutation test is an often used test procedure in brain imaging. U...

Minimal model of permutation symmetry in unsupervised learning

Permutation of any two hidden units yields invariant properties in typic...

The Complexity of Comparative Text Analysis – "The Gardener is always the Murderer" says the Fourth Machine

There is a heated debate about how far computers can map the complexity ...

1 Introduction

Algebra and the theory of permutation groups is well-known from applications of groups in chemistry and crystallography [Raman, 2004], in physics [Jones, 1990], and more recently of semigroups and groups in systems biology, genetic regulatory networks, and biochemistry [Egri-Nagy et al., 2008, Rhodes, 2009]

. Unlike machine learning or optimization techniques,


machine intelligence can without any learning derive coordinate systems not only on states of a structure, but also on its transformations, i.e. on operations for manipulating the structure. These are unlike the methods, spatial structures, or cognitive and semantic maps presently exploited for theorem proving, path-planning, automated reasoning, but similar to coordinate system occurring elsewhere in science. Coordinate systems, like the ones studied here on general symmetry structures from the viewpoint of AI applications using computer algebra, also arise in conservation laws in physics. As Emmy Noether showed in the first part of the 20th century, invariants preserved under conservation laws correspond exactly to group-theoretic symmetry structures in physics

[Olver, 2000]; moreover, such invariants for physical systems give rise to coordinate systems of exactly the type described here [Nehaniv, 1996, Rhodes, 2009].

1.0.1 Algebra, Cognitive Modeling, Coordinate Systems

AI techniques for cognitive modeling, machine learning and optimization so far have made relatively little use of abstract algebra. Cognitive architectures such as SOAR, ACT-R and SAC have been applied to build AI systems that model human cognitive capacities more or less intending to emulate faithfully the structure of cognition in humans, with applications ranging from autonomous control of aircraft based on subsymbolic rule-extraction, to human-style learning of arithmetic or natural language, to predictive evaluation of user interfaces (e.g. [Laird et al., 1987], [Reder and Schunn, 1996], [Li et al., 2005]). But aspects of human and machine cognition can also involve understanding of hierarchical processes with dynamical structure as evidenced by the object-oriented methods [Nehaniv, 1997] or the place-value representation in human number systems [Zhang and Norman, 1995], which have close connections to algebra. Here we are interested in the study of AI models that can derive, represent, and manipulate this type of knowledge, but without necessarily seeking to model human capacities faithfully. Models for understanding of finite-state (and more general) dynamical systems phenomena in general exhibit such feedforward, coarse-to-fine, hierarchical structure related to algebraic coordinate systems [Krohn et al., 1968, Nehaniv, 1997, Rhodes, 2009]. Our work shows how such coordinate systems can be derived and exploited automatically.

By a coordinate system on a symmetry structure (or more general structure), we mean a notational system in the broadest possible sense, with which a human or artificial agent can address building blocks of the structure and their relations in a decomposition, thus gaining a convenient way for grasping the structure of the original phenomenon and possibly getting tools for manipulating the components.

An obvious example is the Descartes coordinate system, where we can uniquely specify any point of the -dimensional space by coordinates. However, this is an example of a spatial and inherently non-hierarchical coordinate system for a totally homogeneous space. In general, different coordinates have different roles, addressing ‘parts’ of the system different in size, function, etc. The natural example of a hierarchical coordinate system is our decimal positional number notation system: different coordinates correspond to different magnitudes. The examples also show that a coordinate system is very much the same thing as a decomposition: the space is decomposed into dimensions, an integer is decomposed into ones, tens, hundreds, etc.

From this viewpoint coordinate systems become cognitive models, means of knowledge representation. The above examples show the usefulness of these coordinates, but how can we obtain these models? The good news, and the main promise of this research direction, is that we can get them automatically! In algebraic automata theory, the Prime Decomposition Theorem says that every finite state automata can be decomposed into a hierarchical coordinate system [Krohn et al., 1968, Eilenberg, 1976, Holcombe, 1982]. Therefore the way of representing knowledge becomes algebraic, semigroup- and group-theoretical, which is really very different from other, well-established AI methods mainly based on logic (e.g. [Newell, 1990, Brachman and Levesque, 2004]).

Here we concentrate on coordinatizing symmetry structures (called ‘[permutation] groups’ in algebra) via the Frobenius-Lagrange embedding. Related work [Egri-Nagy and Nehaniv, 2004, Egri-Nagy and Nehaniv, 2008, Egri-Nagy et al., 2008] has computationally implemented the automated generation of transformation semigroup decompositions along the lines of the Krohn-Rhodes theorem, but did not pursue the ‘simpler’ problem of obtaining coordinate systems on permutation groups as we do here, and hence our work is both complementary and necessary for providing a full decomposition in the more general setting where operations need not be invertible.

The use of algebra in cognitive modeling also occurs in other non-traditional applications. For example, the approach by Fauconnier-Turner-Goguen to conceptual blending and metaphor[Fauconnier and Turner, 2003], uses category-theoretic pushout computations with computer algebraic implementations by Goguen to automatically generate conceptual blends and metaphors relating two (or more) conceptual domains (knowledge of which is modeled by small categories), as well as applications to the semiotics of user-interface design, and formal specification for imperative programs built up and verified in a hierarchical manner [Goguen, 1999, Goguen and Malcolm, 2000].

As there are many different ways of understanding of the same thing, there are many different coordinate systems for the same structure. Some of them may be intuitive for humans, while others will suit computational manipulation better, so the range of intelligent ‘users’ of the coordinate system is not restricted.

Although much of the mathematical theory required here is very old, the proper computational tools were missing, therefore the idea of hierarchical coordinate systems giving understanding computationally has not been much studied nor applied. Now such tools are available open-source [Egri-Nagy and Nehaniv, 2004, Egri-Nagy and Nehaniv, 2008] for transformation semigroups, complemented by our work reported here for groups giving fine detail on coordinatizing the groups involved. The mathematical significance of these coordinate systems is immediate, but as they capture one of the basic aspects of our cognitive capabilities, namely, hierarchical representation, they might also play significant role in Artificial Intelligence.

2 Mathematical Preliminaries

A function on the set is called a permutation if it is one-to-one and onto (invertible). A permutation group is a set of permutations closed under composition (multiplication, usually denoted by ), together with the state set on which the mappings act. It is called a symmetry group if certain structure on is preserved by all . If it is clear form the context we omit the state set and write simply . For and , we write for the result of applying permutation to . The action is faithful if whenever holds for all then . The group contains the identity and inverse map for each element , thus everything can undone within a group. A group acting on by permutations need not necessarily be faithful, i.e. need not be a permutation group. The group consisting of all permutations of points is called the symmetric group , while denotes the cyclic group on objects permuted cyclically. A subset of a group called a subgroup if it is closed under inversion and the group’s multiplication. If is faithful, it is a naturally a subgroup of the symmetric group on . For more on elementary group theory see for instance [Hall, 1959, Robinson, 1995], and on permutation groups see [Dixon and Mortimer, 1996, Cameron, 1999]. As is standard, we use cycle notation to denote permutation group elements, e.g. (1 3)(2 4 5) denotes the permutation swapping and , cyclically taking to , to , and to , while leaving any other objects fixed.

As a special case, a group can act on itself, i.e. the group elements are the states and each maps by right multiplication, . This is called the right regular representation, and it enables us to identify the group element with its effect, which will be really handy for permutation puzzles. However, this representation poses problems computationally due to the possibly large size of the state set.

Given permutation groups and their wreath product is the permutation group

where is the set of all possible functions from to . A state in the wreath product is expressed by two coordinates , . The group elements are coordinatized similarly by where and is the dependency function, a ‘recipe’ to find an element that should be applied on the second level based on the (previous) state of the first (top) level. Thus a permutation of is given by:

from which we can see that on the top level the action is independent from the bottom level, but not the other way around, hence the hierarchical nature of the wreath product. Wreath products are generally huge structures, but in practice we deal with some substructures with the dependency functions limited. The wreath product is easy to generalize for more levels.

3 Lagrange Coordinatizations of Groups

The basic idea of the Lagrange Decomposition is that given a subgroup of , we form the set of cosets , i.e. the subgroup and its translates within ; these partition , and acts on by right translations: . Moreover, we do not need to act on whole cosets but on arbitrary but fixed representatives of cosets (). The action may not be faithful, so we denote made faithful by .111Here is a quotient group , where is the core of in , that is, the largest normal subgroup of contained in . Thus . See standard references [Robinson, 1995, Cameron, 1999].

Theorem 1 (Lagrange Decomposition)

Let be a transitive permutation group and be a subgroup of it. Then admits the following coordinatization

corresponding to the subgroup chain .

Thus given a state we will coordinatize it by , where each is a coset representative ().

By refining the underlying subgroup chain we can make the component groups much simpler or simple (i.e. having only trivial homomorphic images). This allows one to iterate the Lagrange coordinatization so the problem of understanding the permutation group is reduced to understanding much simpler permutation groups linked up in a feedforward manner. Therefore getting a coordinatization corresponds to devising a subgroup chain.

For building subgroup chains certain subgroups are very useful. The stabilizer is the subgroup of , which fixes . Point-wise and set-wise stabilizers can be defined for sets of states as well. By iterating and refining the Lagrange construction, we have

Theorem 2 (Frobenius-Lagrange Coordinatization)

Let be a transitive permutation group and let be a subgroup chain ending at the stabilizer of some state . Then, in the notation above, is coordinatized by embedding in the wreath product

where is modulo the core of in . Moreover, since corresponds isomorphically to , the states have coordinates given by the bijection

where each is the fixed coset representative of in .

Remarks. (1) The number of coordinate tuples in Theorem 2 is exactly . Each state has a unique coordinatization. (2) In Theorem 1 the number of possible coordinate tuples is , for any , as each point has exactly different possible coordinatizations.

4 Coordinate Manipulation

The Frobenius-Lagrange decomposition gives us, in terms of a coordinate system, a structured view of the group, i.e. we can address its parts conveniently and with arbitrary precision. However, we would like to use the coordinate system dynamically, not just the statical view. We would like to calculate with it, finding manipulative operations taking one state to another desired state, or, equivalently, from one tuple of coordinate values to another one using the elementary symmetry operations of the original structure.

4.1 Component Actions

For establishing the connection between the original group and the coordinatized one we need to have a way to express a permutation as coordinate actions. Given a group element and a coordinatized state , we can calculate the coordinatewise component actions by the following recursive calculations:

Thus on is coordinatized as . Note that generally does not equal to , so is not the identity. Note the hierarchical structure: depends only on and . The action of in coordinatized form is then

4.1.1 Killing and Building by Levels

We call the coordinate tuple the base state, if it consists of only the identities (as coset representatives), which clearly represents the identity of the original group. Given an arbitrary coordinatized state , we call the coordinatewise changes of values from to (top-down) ‘killing by levels’. This is accomplished by simply applying the inverse of the coset representatives, in order. An example is shown in Fig. 4. Conversely, ‘building by levels’ is accomplished bottom-up by successively applying the coset representatives, i.e. elementary generating symmetries whose product is the given coset representative for the th component, in the order then ,…, and finally to move from the ‘solved state’ to create state bottom-up. Moreover, one can compute elements that change only a single coordinate to a desired value.

4.1.2 Global Transformation via Coordinate Values

Since we work with groups, whenever we make any action, it can be undone by an inverse, thus reversing the killing by levels we can go from the base state to any other coordinate value combination. Thus going from to coordinatewise can be achieved simply combining the level-killers of with the level-builders of . More efficient solutions are generally possible (and implemented), but this provides at least one way to do it using the hierarchical coordinate system.

5 An Application: Permutation Puzzles

Permutation puzzles are one person games where the moves are permutations, elements of a group [Joyner, 2002]. Natural problems for such puzzles are:

  1. How can one go, via elementary legal moves, from one configuration of the puzzle to a standard “solved” configuration?

  2. More generally, how can one go from configuration to another arbitrarily selected configuration ?

The main quest of permutation puzzles is often to find a shortest sequence of moves that leads to the solution (bounded by the diameter of the Cayley graph of the underlying group). We should mention that this is not our aim here. We would like to facilitate understanding, but usually the quickest solutions are ‘dirty tricks’ that are very difficult to grasp and one has to fall back on simple memorizing. However, we suspect that Lagrange decompositions might also help in tackling the shortest solution problem. Here we focus on 1. and 2.

5.1 Coordinatizing Rubik’s Cubes


Rubik’s Cube is probably the most popular permutation puzzle.

What does it mean ‘to know the Rubik’s cube’? The question usually boils down to the ability to solve the cube. By asking a cube-fan he/she would give a few tricks, recipes to apply in certain situations. By learning these algorithms one can learn to solve the cube, but does it imply understanding the cube, i.e. grasping how certain sequences of moves work and seeing why they work? Not necessarily.

We claim that understanding comes with imposing a coordinate system on the underlying algebraic structure. Here we demonstrate this on the symmetry group of the Pocket Cube, which is the version of the Rubik’s Cube. The moves are the 90 degree clockwise rotations of the 6 sides. By the Frobenius-Lagrange decomposition we know that each coordinate system corresponds to a subgroup chain, so devising new algorithms for solving the cube is equivalent to constructing subgroup chains. Such a coordinate system encodes a ‘global viewpoint’ in which one solves by successive approximation, with manipulations going from coarse to fine resolution, and convergencing in terms of moving from natural, abstract states to fully specified states. The group of the cube acts on the set of configurations in such a way that any non-trivial permutation yields a different result on the ‘solved state’, thus the stabilizer of this state is , so each group element corresponds to a unique configuration. Hence by the remark following Theorem 2, for any coordinate system arising from any subgroup chain down to , each configuration of the cube has a unique coordinatized form. Examples derived computationally follow (see also Fig. 4):

5.1.1 Pocket Cube: Cornerwise Decomposition

One can solve the cube in a rather long, systematic step-by-step fashion: get the position and then the orientation of the first corner right, then proceed to the next corner until the cube is solved. In the subgroup chain we put the stabilizer of the position of a corner, then continue with the stabilizer of the orientation of the corner within the position stabilizing subgroup. Then we repeat the whole process for another corner. The chain yields the following coordinatization:

where the top level component acts on 8 states/coordinate values, representing the 8 possible positions of the first stabilized corner. Therefore killing the first level will put the corner in the right position. The coordinate values on the second level correspond the 3 possible rotational states of the corner. The 3rd and 4th level similarly encode the second corner, and so on.

Figure 1: A random, ‘scrambled’ configuration of the Pocket Cube, coordinatized by the cornerwise decomposition as . Note: coset representatives have been integer-encoded in these examples.
Figure 2: Pocket Cube configuration after killing the top 9 levels out of 14.
Figure 3: The solved state of the Pocket Cube with coordinates

5.1.2 Another Model for Understanding: Permute the Corners, then ‘Beat the Clock’

Contrasting to the previous, very machine-minded solution, here is another one which is short, and reveals the existence of a different puzzle within the Pocket Cube:

The top level component is the right regular representation of the now familiar symmetric group permuting the 8 corners. The second level is the direct product of 7 copies of modulo 3 counters (the orientation group of corners). It is to be noted that there are not 8 copies, otherwise every corner could be rotated independently from the other corners (and that would be rather easy to solve). Actually solving the bottom level is the same type of problem as the Rubik’s Clock [Wiggs and Taylor, 1989], which is an array of connected modulo 12 counters. As the underlying group is commutative, it is easier to solve since the order of operations generating this subpuzzle does not matter in this lowest level.

For an example computational session using our decomposition package in GAP [GAP, 2006] see Fig. 4.

5.1.3 3 3 3 Rubik’s Cube

Going to the standard Cube we immediately meet some difficulty, as its group is not a transitive one. Therefore, using we can get a decomposition which solves the corners as in the Pocket Cube and nearly separately and in parallel the remaining non-corner middle faces (those not at the corners, not in the middle of a side) on which cube group is transitive. Then we can proceed by coordinatizing and solving the Pocket Cube and this middle cube puzzles independently.

6 Conclusion and Future Work

We have shown how different subgroup chains in a permutation group correspond to different Frobenius-Lagrange coordinatizations of that permutation group, as well as to different solving strategies for manipulation. Coordinatewise manipulation of the permutation group via short or minimal length words over group’s basic generators is an easily achieved next step. For exploitation of the idea of hierarchical coordinatization in more general settings, groups can generalized to semigroups in order allow the possibility of some irreversible manipulations. Computational semigroup theory is not yet as advanced as its group theoretical counterpart but it is being developed quickly (e.g. [Egri-Nagy and Nehaniv, 2008]).

pocket_cube_F := (9,10,11,12)(4,13,22,7)(3,16,21,6);
pocket_cube_R := (13,14,15,16)(2,20,22,10)(3,17,23,11);
pocket_cube_U := (1,2,3,4)(5,17,13,9)(6,18,14,10);
pocket_cube_L := (5,6,7,8)(1,9,21,19)(4,12,24,18);
pocket_cube_D := (21,22,23,24)(12,16,20,8)(11,15,19,7);
pocket_cube_B := (17,18,19,20)(1,8,23,14)(2,5,24,15);
pocket_cube_gens := [pocket_cube_U, pocket_cube_L, pocket_cube_F,
                    pocket_cube_R, pocket_cube_B, pocket_cube_D];
pocket_cube_gen_names := ["U","L","F","R","B","D"];
pocket_cube := GroupByGenerators(pocket_cube_gens);

gap> subgroupchain := ChiefSeries(pocket_cube);
[ <permutation group of size 88179840 with 6 generators>,
  <permutation group of size 44089920 with 10 generators>,
  <permutation group of size 2187 with 7 generators>, Group(()) ]
gap> Remove(subgroupchain,2);
<permutation group of size 44089920 with 10 generators>

gap> decomposition := LagrangeDecomposition(pocket_cube, subgroupchain);
Reducing the number of generators 6->2 7->7   DONE
Lagrange components..DONE
Lagrange mappings..DONE
Getting component names..DONE
Guessing state sets..DONE
Generating states...DONE
Coset action mapping   DONE
Lagrange decomposition of:<permutation group of size 88179840 with 6 generators>
1 40320 <permutation group of size 40320 with 2 generators>
2 |-2187 <permutation group of size 2187 with 7 generators>
gap> StructureDescription(decomposition[1]);
gap> StructureDescription(decomposition[2]);
"C3 x C3 x C3 x C3 x C3 x C3 x C3"

gap> scrambled := Random(pocket_cube);
gap> coordinates := Perm2CascadedState(decomposition, scrambled);
[ 16074 1438 ]
gap> levelkillers := LevelKillers(decomposition, coordinates);
[ (1,24,15,3,4,11,2,12)(5,19,20,13,9,16,17,21)(6,22,14,7,18,8,23,10),
  (1,18,5)(2,14,17)(3,10,13)(4,6,9)(8,19,24)(15,23,20) ]

gap> epi := EpimorphismFromFreeGroup(pocket_cube:names:=pocket_cube_gen_names);
[ U, L, F, R, B, D ] -> [ (1,2,3,4)(5,17,13,9)(6,18,14,10),
 (1,9,21,19)(4,12,24,18)(5,6,7,8), (3,16,21,6)(4,13,22,7)(9,10,11,12),
 (2,20,22,10)(3,17,23,11)(13,14,15,16),   (1,8,23,14)(2,5,24,15)(17,18,19,20),
 (7,11,15,19)(8,12,16,20)(21,22,23,24) ]
gap> PreImagesRepresentative(epi, levelkillers[1]);
gap> PreImagesRepresentative(epi, levelkillers[2]);

gap> halfsolved := scrambled * levelkillers[1];
gap> halfsolvedcoords := Perm2CascadedState(decomposition, halfsolved);
[ 1 1438 ]
gap> halfsolved * levelkillers[2] = ();
Figure 4: Deriving a Coordinate System for Pocket Cube and Solving via Killing by Levels. This excerpt from a GAP interactive session, using our implemented software package for automatically generating and manipulating coordinate systems on permutation groups. The possible moves as generators (basic symmetry operations , , , , , rotating a face 90) for the Pocket Cube are defined together with names. Group elements are represented here in cycle notation, with denoting the identity element (or, according to the right regular representation, the solved state). The subgroup chain for the decomposition is the modified chief series of the group. Then the decomposition is calculated yielding the two level coordinatization. Then a scrambled (random element of the Pocket Cube permutation group) is shown in coordinate format. Finally, the scrambled cube is solved by levels of this hierarchical coordinate system, top-down, using level-killers (see text), which are also expressed as an [unoptimized] sequence of the original generators.


  • [Brachman and Levesque, 2004] Brachman, R. J. and Levesque, H. J. (2004). Knowledge Representation and Reasoning. Morgan Kaufmann.
  • [Cameron, 1999] Cameron, P. J. (1999). Permutation Groups. London Mathematical Society.
  • [Dixon and Mortimer, 1996] Dixon, J. D. and Mortimer, B. (1996). Permutation Groups. Graduate Texts in Mathematics 163. Springer.
  • [Egri-Nagy and Nehaniv, 2004] Egri-Nagy, A. and Nehaniv, C. L. (2004). Algebraic hierarchical decomposition of finite state automata: Comparison of implementations for Krohn-Rhodes Theory. In Conference on Implementations and Applications of Automata CIAA 2004, volume 3317 of Springer Lecture Notes in Computer Science, pages 315–316.
  • [Egri-Nagy and Nehaniv, 2008] Egri-Nagy, A. and Nehaniv, C. L. (2008). SgpDec – software package for hierarchical coordinatization of groups and semigroups, implemented in the GAP computer algebra system. (
  • [Egri-Nagy et al., 2008] Egri-Nagy, A., Nehaniv, C. L., Rhodes, J. L., and Schilstra, M. J. (2008). Automatic analysis of computation in biochemical reactions. BioSystems, 94(1-2):126–134.
  • [Eilenberg, 1976] Eilenberg, S. (1976). Automata, Languages and Machines, volume B. Academic Press.
  • [Fauconnier and Turner, 2003] Fauconnier, G. and Turner, M. (2003). The Way We Think: Conceptual Blending and the Mind’s Hidden Complexities. Basic Books.
  • [GAP, 2006] GAP (2006). GAP – Groups, Algorithms, and Programming, Version 4.4. The GAP Group. (
  • [Goguen, 1999] Goguen, J. (1999). An introduction to algebraic semiotics with application to user interface design. In Computation for Metaphor, Analogy and Agents, volume 1562 of Lecture Notes in Artificial Intelligence, pages 242–291. Springer Verlag.
  • [Goguen and Malcolm, 2000] Goguen, J. A. and Malcolm, G., editors (2000). Software Engineering with OBJ: Algebraic Specification in Action. Springer Verlag.
  • [Hall, 1959] Hall, M. (1959). The Theory of Groups. The Macmillan Company, New York.
  • [Holcombe, 1982] Holcombe, W. M. L. (1982). Algebraic Automata Theory. Cambridge University Press.
  • [Jones, 1990] Jones, H. F. (1990). Group Theory, Representations and Physics. Adam Hilger.
  • [Joyner, 2002] Joyner, D. (2002). Adventures in Group Theory. John Hopkins University Press.
  • [Krohn et al., 1968] Krohn, K., Rhodes, J. L., and Tilson, B. R. (1968). The prime decomposition theorem of the algebraic theory of machines. In Arbib, M. A., editor, Algebraic Theory of Machines, Languages, and Semigroups, chapter 5, pages 81–125. Academic Press.
  • [Laird et al., 1987] Laird, J., Newell, A., , and Rosenbloom, P. (1987). SOAR: An architecture for general intelligence. Artificial Intelligence, 33(1):1–64.
  • [Li et al., 2005] Li, S. Y. W., Blandford, A., Cairns, P., and Young, R. M. (2005). Post-completion errors in problem solving. In Proceedings of the Twenty-Seventh Annual Conference of the Cognitive Science Society, Hillsdale, NJ. Lawrence Erlbaum Associates.
  • [Nehaniv, 1996] Nehaniv, C. L. (1996). Algebra and formal models of understanding. In Ito, M., editor, Semigroups, Formal Languages and Computer Systems, volume 960, pages 145–154. Kyoto Research Institute for Mathematics Sciences, RIMS Kokyuroku.
  • [Nehaniv, 1997] Nehaniv, C. L. (1997). Algebraic models for understanding: Coordinate systems and cognitive empowerment. In Proc. Second International Conference on Cognitive Technology: Humanizing the Information Age, pages 147–162. IEEE Computer Society Press.
  • [Newell, 1990] Newell, A. (1990). Unified Theories of Cognition. Harvard University Press.
  • [Olver, 2000] Olver, P. J. (2000). Applications of Lie Groups to Differential Equations. Springer Verlag, 2nd edition.
  • [Raman, 2004] Raman, K. V. (2004). Group Theory and Its Applications to Chemistry. Tata McGraw-Hill.
  • [Reder and Schunn, 1996] Reder, L. M. and Schunn, C. D. (1996). Metacognition does not imply awareness: Strategy choice is governed by implicit learning and memory. In Reder, L. M., editor, Implicit Memory and Metacognition, pages 45–77. Erlbaum, Hillsdale, NJ.
  • [Rhodes, 2009] Rhodes, J. L. (2009). Applications of Automata Theory and Algebra via the Mathematical Theory of Complexity to Biology, Physics, Psychology, Philosophy, and Games. World Scientific Press (in press). Foreword by Morris W. Hirsch, edited by Chrystopher L. Nehaniv (Original version: University of California at Berkeley, Mathematics Library, 1971).
  • [Robinson, 1995] Robinson, D. J. S. (1995). A Course in the Theory of Groups. Springer, 2nd edition.
  • [Wiggs and Taylor, 1989] Wiggs, C. C. and Taylor, C. J. (1989). Mechanical puzzle marketed as Rubik’s Clock. Patent EP0322085.
  • [Zhang and Norman, 1995] Zhang, J. and Norman, D. A. (1995). A representational analysis of numeration systems. Cognition, 57:271–295.