Hi Luke: I suggest that you use the Mona tool: [Google: Mona Schwartzbach] http://citeseer.nj.nec.com/327523.html http://www.brics.dk/mona/manual.html to test whether two strategy/class graph pairs are identical on common objects. More below. For further motivation see: http://citeseer.nj.nec.com/cache/papers/cs/280/ftp:zSzzSzftp.ccs.neu.eduzSzpubzSzpeoplezSzlieberzSztaposzSzrev2.pdf/klarlund97formal.pdf Also search for "Demeter" in this document. The Mona tool is likely useful for AOP. It kind of describes a powerful, decidable pointcut language. Your host is the PhD student Theo Skotiniotis. He is working on a more expressive pointcut language. -- Karl Adapt known automata algorithms to solve the following problem: TRAVERSAL EQUIVALENCE PROBLEM: Given two strategy/class graph pairs (S1,G1) and (S2,G2) such that Common = Objects(G1) intersect Objects(G2) is not empty, determine whether they define the same traversals for all objects in Common. (Also treat the case where the question is whether one is always a subtraversal of the other.) If the traversals are different for some objects, give an object where the traversals are different. Motivation: during the evolution of adaptive programs and class graphs, we need to know how traversals change. Ideas: Construct the traversal graph as described in http://www.ccs.neu.edu/research/demeter/biblio/strategies.html using Doug's implementation in Demeter/Java. View the traversal graph as a generalized finite state machine (instead of processing strings, we process objects. The output is in both cases a string.) Generalize finite automata eqivalence algorithms. Use the Mona tool to check traversal strategies for equivalence.