I think the claim that computation is part of the cube dynamics can go untested, fairly obviously you process something, MIT's cubing community and Singmaster's algorithmic basis pretty much sum up the details.
Of course, it depends on what category you apply, is it a virtual-register kind of device? Is it strictly monotonic (i.e. there is a linear progression of contexts and switches)?
Well never mind all that, Prolog to the rescue. This is strictly a symbolic language. there are only lists with elements in them which can be other lists, or atomic tokens. The most atomic element is the empty list.
Constructing a Prolog program means defining a list structure, and in general some list traversing functions that are recursive, so a list is partially traversed in any case by first traversing the list at the head (or parsing an atom), then the tail is traversed recursively so that list traversal is ordered by the list itself.
The Singmaster labelling scheme uses 6 Roman letters (you could use Chinese or French versions however, the symbols are merely convenient or heuristic), which are: BDFLRU in alphabetic order.
You need to create lists that order these pairwise so they correspond to opposite faces of a cube.
Then you need to create an ordered list of inverted symbols to represent the "reverse" operator set of symbols: U',D' etc.
Then you will need functions that traverse these lists and compose at least the 2-generator set of operations on adjacent pairs, the cross and anticross subgroups. These correspond to the antitwist and twist groups respectively.
You can twist a single corner cubie and return it to where it started (you transport it in two directions, i.e. it gets pitch + roll), with an anticross move like FR. The cross moves F'R or FR' "eliminate" twist.
In that case, you can use twist parity as a symbol which is written in a read-erase-write cycle.
The other function, which is ancillary, is the copy function.
Solutions to a scrambled code use these subgroups, to eliminate twists from the corner cubies and flips from the edge cubies. Twist and flip essentially close the parity function(al).
If you generate a 6x6 matrix from the ordered list (URFDLB) you get a diagonal of square moves (the squares group UU,RR, ...,BB), this is the "identity function" because it has the parity identity (P,-P) where the cross and anticross groups generate {+1,0,-1} in the corners group. Parity is {0,-1} in the edges group.
Suppose you have a job as an analyst at some company whose details, naturally, need not concern us (or you, for that matter). So your boss hands you the series listed (from the Wikipedia entry for the Pocket Cube, iteration #1, N = 2). He says he wants you to find out what you can about the two lists, the company has no idea what it actually is, it could be in Klingon, or it could be just the output and input response curves of some chemical or other kind of reaction.
The boss wants you to eliminate, if possible, all categories that the two lists can't be in.
You surmise initially that the shorter length curve (parameterized by f in the series) is an exhaust output of some kind from the system (generally speaking), and the longer length curve (parameterized by q in the series) is possibly an input response, since in general a system can have an exhaust cycle that leads an intake--in fact this is how heat engines deliver useful work.
If there is a work function, and if both cycles are 'exhaustive' and the longer one is a system response, so the extra length is some kind of relaxation (a rise time), so the system can input again, maybe, maybe not....
Or maybe the series is a code of some kind, amenable to algorithmic analysis and code-breaking. Alan Turing claimed that, in order to write any number in a finite number of places (numbers have numbers too, called places or digits), an integer for example, writing it as a decimal in a finite number of places is proving the number is real, and also computable.
So, the totals for both sequences are equal, but the subtotals aren't. Writing 3,674,160 as a decimal means writing it as 0.367416. You can do this "in base 10" on paper, but a binary logic computer has to use, well, binary. Number representation in binary electronic computers becomes part of a potential solution.
CS/IS has various methods for encoding integer and real numbers, in binary form. Complements are standard, fixed and floating point reps are often generated with machine instructions (it saves time). Turing's formula has two terms, the left one writes a preamble (the number of digits, n) and the right one is an infinite sum of terms: $$ (2C_r\; -\; 1)(\frac {2} {3})^r,\; r = [1,\infty) $$.
You know that, for a symmetric code, there is a |G| for the generators, which is both the totals, or |G| = Tf = Tq = 3,674,160, for totals T. Perhaps the sequences have this symmetry. You assume that if this is true, there will be a set of rotors (like the Enigma design) that rewrite-after-read, with shifting (pitch, roll, yaw is available in 3-space), this is actually the encoding process).
So, suppose Cr is also related to T, the total, then 2Cr is = (Tf + Tq), under some function that generates the subtotals. Write a Prolog program that orders the subtotals, and finds the recurrence that does this according to Turing's formula (assume the preamble is the program itself, or rather n is the list length).
The program will need to declare functions that traverse, reverse, etc the sublist elements and these will become part of the functional list--the tail of the Prolog listing, usually).
Of course, it depends on what category you apply, is it a virtual-register kind of device? Is it strictly monotonic (i.e. there is a linear progression of contexts and switches)?
Well never mind all that, Prolog to the rescue. This is strictly a symbolic language. there are only lists with elements in them which can be other lists, or atomic tokens. The most atomic element is the empty list.
Constructing a Prolog program means defining a list structure, and in general some list traversing functions that are recursive, so a list is partially traversed in any case by first traversing the list at the head (or parsing an atom), then the tail is traversed recursively so that list traversal is ordered by the list itself.
The Singmaster labelling scheme uses 6 Roman letters (you could use Chinese or French versions however, the symbols are merely convenient or heuristic), which are: BDFLRU in alphabetic order.
You need to create lists that order these pairwise so they correspond to opposite faces of a cube.
Then you need to create an ordered list of inverted symbols to represent the "reverse" operator set of symbols: U',D' etc.
Then you will need functions that traverse these lists and compose at least the 2-generator set of operations on adjacent pairs, the cross and anticross subgroups. These correspond to the antitwist and twist groups respectively.
You can twist a single corner cubie and return it to where it started (you transport it in two directions, i.e. it gets pitch + roll), with an anticross move like FR. The cross moves F'R or FR' "eliminate" twist.
In that case, you can use twist parity as a symbol which is written in a read-erase-write cycle.
The other function, which is ancillary, is the copy function.
Solutions to a scrambled code use these subgroups, to eliminate twists from the corner cubies and flips from the edge cubies. Twist and flip essentially close the parity function(al).
If you generate a 6x6 matrix from the ordered list (URFDLB) you get a diagonal of square moves (the squares group UU,RR, ...,BB), this is the "identity function" because it has the parity identity (P,-P) where the cross and anticross groups generate {+1,0,-1} in the corners group. Parity is {0,-1} in the edges group.
Suppose you have a job as an analyst at some company whose details, naturally, need not concern us (or you, for that matter). So your boss hands you the series listed (from the Wikipedia entry for the Pocket Cube, iteration #1, N = 2). He says he wants you to find out what you can about the two lists, the company has no idea what it actually is, it could be in Klingon, or it could be just the output and input response curves of some chemical or other kind of reaction.
The boss wants you to eliminate, if possible, all categories that the two lists can't be in.
You surmise initially that the shorter length curve (parameterized by f in the series) is an exhaust output of some kind from the system (generally speaking), and the longer length curve (parameterized by q in the series) is possibly an input response, since in general a system can have an exhaust cycle that leads an intake--in fact this is how heat engines deliver useful work.
If there is a work function, and if both cycles are 'exhaustive' and the longer one is a system response, so the extra length is some kind of relaxation (a rise time), so the system can input again, maybe, maybe not....
Or maybe the series is a code of some kind, amenable to algorithmic analysis and code-breaking. Alan Turing claimed that, in order to write any number in a finite number of places (numbers have numbers too, called places or digits), an integer for example, writing it as a decimal in a finite number of places is proving the number is real, and also computable.
So, the totals for both sequences are equal, but the subtotals aren't. Writing 3,674,160 as a decimal means writing it as 0.367416. You can do this "in base 10" on paper, but a binary logic computer has to use, well, binary. Number representation in binary electronic computers becomes part of a potential solution.
CS/IS has various methods for encoding integer and real numbers, in binary form. Complements are standard, fixed and floating point reps are often generated with machine instructions (it saves time). Turing's formula has two terms, the left one writes a preamble (the number of digits, n) and the right one is an infinite sum of terms: $$ (2C_r\; -\; 1)(\frac {2} {3})^r,\; r = [1,\infty) $$.
You know that, for a symmetric code, there is a |G| for the generators, which is both the totals, or |G| = Tf = Tq = 3,674,160, for totals T. Perhaps the sequences have this symmetry. You assume that if this is true, there will be a set of rotors (like the Enigma design) that rewrite-after-read, with shifting (pitch, roll, yaw is available in 3-space), this is actually the encoding process).
So, suppose Cr is also related to T, the total, then 2Cr is = (Tf + Tq), under some function that generates the subtotals. Write a Prolog program that orders the subtotals, and finds the recurrence that does this according to Turing's formula (assume the preamble is the program itself, or rather n is the list length).
The program will need to declare functions that traverse, reverse, etc the sublist elements and these will become part of the functional list--the tail of the Prolog listing, usually).
Last edited: