Here is a Python script that generates a ruletable for [R]Investigator v3 where [R] is an isotropic non-totalistic rule. Please tell me if there are any bugs.
Code: Select all
Btransitions = {
"0": "0, b1,b2,b3,b4,b5,b6,b7,b8, 1",
"1c": "0, b1,E2,b3,b4,b5,b6,b7,b8, 1",
"1e": "0, E1,b2,b3,b4,b5,b6,b7,b8, 1",
"2c": "0, b1,E2,b3,E4,b5,b6,b7,b8, 1",
"2e": "0, E1,b2,E3,b4,b5,b6,b7,b8, 1",
"2k": "0, E1,b2,b3,E4,b5,b6,b7,b8, 1",
"2a": "0, E1,E2,b3,b4,b5,b6,b7,b8, 1",
"2i": "0, E1,b2,b3,b4,E5,b6,b7,b8, 1",
"2n": "0, b1,E2,b3,b4,b5,E6,b7,b8, 1",
"3c": "0, b1,E2,b3,E4,b5,E6,b7,b8, 1",
"3e": "0, E1,b2,E3,b4,E5,b6,b7,b8, 1",
"3k": "0, E1,b2,E3,b4,b5,E6,b7,b8, 1",
"3a": "0, E1,E2,E3,b4,b5,b6,b7,b8, 1",
"3i": "0, E1,E2,b3,b4,b5,b6,b7,E8, 1",
"3n": "0, E1,E2,b3,E4,b5,b6,b7,b8, 1",
"3y": "0, E1,b2,b3,E4,b5,E6,b7,b8, 1",
"3q": "0, E1,E2,b3,b4,b5,E6,b7,b8, 1",
"3j": "0, E1,b2,E3,E4,b5,b6,b7,b8, 1",
"3r": "0, E1,E2,b3,b4,E5,b6,b7,b8, 1",
"4c": "0, b1,E2,b3,E4,b5,E6,b7,E8, 1",
"4e": "0, E1,b2,E3,b4,E5,b6,E7,b8, 1",
"4k": "0, E1,b2,E3,E4,b5,E6,b7,b8, 1",
"4a": "0, E1,E2,E3,E4,b5,b6,b7,b8, 1",
"4i": "0, E1,E2,b3,E4,E5,b6,b7,b8, 1",
"4n": "0, E1,E2,b3,E4,b5,b6,b7,E8, 1",
"4y": "0, E1,E2,b3,E4,b5,E6,b7,b8, 1",
"4q": "0, E1,E2,E3,b4,b5,E6,b7,b8, 1",
"4j": "0, E1,b2,E3,b4,E5,E6,b7,b8, 1",
"4r": "0, E1,b2,E3,E4,E5,b6,b7,b8, 1",
"4t": "0, E1,E2,b3,b4,E5,b6,b7,E8, 1",
"4w": "0, E1,b2,E3,E4,b5,b6,b7,E8, 1",
"4z": "0, E1,E2,b3,b4,E5,E6,b7,b8, 1",
"5c": "0, E1,b2,E3,b4,E5,b6,E7,E8, 1",
"5e": "0, b1,E2,b3,E4,b5,E6,E7,E8, 1",
"5k": "0, b1,E2,b3,E4,E5,b6,E7,E8, 1",
"5a": "0, b1,b2,b3,E4,E5,E6,E7,E8, 1",
"5i": "0, b1,b2,E3,E4,E5,E6,E7,b8, 1",
"5n": "0, b1,b2,E3,b4,E5,E6,E7,E8, 1",
"5y": "0, b1,E2,E3,b4,E5,b6,E7,E8, 1",
"5q": "0, b1,b2,E3,E4,E5,b6,E7,E8, 1",
"5j": "0, b1,E2,b3,b4,E5,E6,E7,E8, 1",
"5r": "0, b1,b2,E3,E4,b5,E6,E7,E8, 1",
"6c": "0, E1,b2,E3,b4,E5,E6,E7,E8, 1",
"6e": "0, b1,E2,b3,E4,E5,E6,E7,E8, 1",
"6k": "0, b1,E2,E3,b4,E5,E6,E7,E8, 1",
"6a": "0, b1,b2,E3,E4,E5,E6,E7,E8, 1",
"6i": "0, b1,E2,E3,E4,b5,E6,E7,E8, 1",
"6n": "0, E1,b2,E3,E4,E5,b6,E7,E8, 1",
"7c": "0, E1,b2,E3,E4,E5,E6,E7,E8, 1",
"7e": "0, b1,E2,E3,E4,E5,E6,E7,E8, 1",
"8": "0, E1,E2,E3,E4,E5,E6,E7,E8, 1",
}
Ctransitions = {
"0": "0, b1,b2,b3,b4,b5,b6,b7,b8, 1",
"1c": "0, b1,1,b3,b4,b5,b6,b7,b8, 1",
"1e": "0, 1,b2,b3,b4,b5,b6,b7,b8, 1",
"2c": "0, b1,1,b3,A4,b5,b6,b7,b8, 1\n0, b1,A2,b3,1,b5,b6,b7,b8, 1",
"2e": "0, 1,b2,A3,b4,b5,b6,b7,b8, 1\n0, A1,b2,1,b4,b5,b6,b7,b8, 1",
"2k": "0, 1,b2,b3,A4,b5,b6,b7,b8, 1\n0, A1,b2,b3,1,b5,b6,b7,b8, 1",
"2a": "0, 1,A2,b3,b4,b5,b6,b7,b8, 1\n0, A1,1,b3,b4,b5,b6,b7,b8, 1",
"2i": "0, 1,b2,b3,b4,A5,b6,b7,b8, 1\n0, A1,b2,b3,b4,1,b6,b7,b8, 1",
"2n": "0, b1,1,b3,b4,b5,A6,b7,b8, 1\n0, b1,A2,b3,b4,b5,1,b7,b8, 1",
"3c": "0, b1,1,b3,A4,b5,A6,b7,b8, 1\n0, b1,A2,b3,1,b5,A6,b7,b8, 1\n0, b1,A2,b3,A4,b5,1,b7,b8, 1",
"3e": "0, 1,b2,A3,b4,A5,b6,b7,b8, 1\n0, A1,b2,1,b4,A5,b6,b7,b8, 1\n0, A1,b2,A3,b4,1,b6,b7,b8, 1",
"3k": "0, 1,b2,A3,b4,b5,A6,b7,b8, 1\n0, A1,b2,1,b4,b5,A6,b7,b8, 1\n0, A1,b2,A3,b4,b5,1,b7,b8, 1",
"3a": "0, 1,A2,A3,b4,b5,b6,b7,b8, 1\n0, A1,1,A3,b4,b5,b6,b7,b8, 1\n0, A1,A2,1,b4,b5,b6,b7,b8, 1",
"3i": "0, 1,A2,b3,b4,b5,b6,b7,A8, 1\n0, A1,1,b3,b4,b5,b6,b7,A8, 1\n0, A1,A2,b3,b4,b5,b6,b7,1, 1",
"3n": "0, 1,A2,b3,A4,b5,b6,b7,b8, 1\n0, A1,1,b3,A4,b5,b6,b7,b8, 1\n0, A1,A2,b3,1,b5,b6,b7,b8, 1",
"3y": "0, 1,b2,b3,A4,b5,A6,b7,b8, 1\n0, A1,b2,b3,1,b5,A6,b7,b8, 1\n0, A1,b2,b3,A4,b5,1,b7,b8, 1",
"3q": "0, 1,A2,b3,b4,b5,A6,b7,b8, 1\n0, A1,1,b3,b4,b5,A6,b7,b8, 1\n0, A1,A2,b3,b4,b5,1,b7,b8, 1",
"3j": "0, 1,b2,A3,A4,b5,b6,b7,b8, 1\n0, A1,b2,1,A4,b5,b6,b7,b8, 1\n0, A1,b2,A3,1,b5,b6,b7,b8, 1",
"3r": "0, 1,A2,b3,b4,A5,b6,b7,b8, 1\n0, A1,1,b3,b4,A5,b6,b7,b8, 1\n0, A1,A2,b3,b4,1,b6,b7,b8, 1",
"4c": "0, b1,1,b3,A4,b5,A6,b7,A8, 1\n0, b1,A2,b3,1,b5,A6,b7,A8, 1\n0, b1,A2,b3,A4,b5,1,b7,A8, 1\n0, b1,A2,b3,A4,b5,A6,b7,1, 1",
"4e": "0, 1,b2,A3,b4,A5,b6,A7,b8, 1\n0, A1,b2,1,b4,A5,b6,A7,b8, 1\n0, A1,b2,A3,b4,1,b6,A7,b8, 1\n0, A1,b2,A3,b4,A5,b6,1,b8, 1",
"4k": "0, 1,b2,A3,A4,b5,A6,b7,b8, 1\n0, A1,b2,1,A4,b5,A6,b7,b8, 1\n0, A1,b2,A3,1,b5,A6,b7,b8, 1\n0, A1,b2,A3,A4,b5,1,b7,b8, 1",
"4a": "0, 1,A2,A3,A4,b5,b6,b7,b8, 1\n0, A1,1,A3,A4,b5,b6,b7,b8, 1\n0, A1,A2,1,A4,b5,b6,b7,b8, 1\n0, A1,A2,A3,1,b5,b6,b7,b8, 1",
"4i": "0, 1,A2,b3,A4,A5,b6,b7,b8, 1\n0, A1,1,b3,A4,A5,b6,b7,b8, 1\n0, A1,A2,b3,1,A5,b6,b7,b8, 1\n0, A1,A2,b3,A4,1,b6,b7,b8, 1",
"4n": "0, 1,A2,b3,A4,b5,b6,b7,A8, 1\n0, A1,1,b3,A4,b5,b6,b7,A8, 1\n0, A1,A2,b3,1,b5,b6,b7,A8, 1\n0, A1,A2,b3,A4,b5,b6,b7,1, 1",
"4y": "0, 1,A2,b3,A4,b5,A6,b7,b8, 1\n0, A1,1,b3,A4,b5,A6,b7,b8, 1\n0, A1,A2,b3,1,b5,A6,b7,b8, 1\n0, A1,A2,b3,A4,b5,1,b7,b8, 1",
"4q": "0, 1,A2,A3,b4,b5,A6,b7,b8, 1\n0, A1,1,A3,b4,b5,A6,b7,b8, 1\n0, A1,A2,1,b4,b5,A6,b7,b8, 1\n0, A1,A2,A3,b4,b5,1,b7,b8, 1",
"4j": "0, 1,b2,A3,b4,A5,A6,b7,b8, 1\n0, A1,b2,1,b4,A5,A6,b7,b8, 1\n0, A1,b2,A3,b4,1,A6,b7,b8, 1\n0, A1,b2,A3,b4,A5,1,b7,b8, 1",
"4r": "0, 1,b2,A3,A4,A5,b6,b7,b8, 1\n0, A1,b2,1,A4,A5,b6,b7,b8, 1\n0, A1,b2,A3,1,A5,b6,b7,b8, 1\n0, A1,b2,A3,A4,1,b6,b7,b8, 1",
"4t": "0, 1,A2,b3,b4,A5,b6,b7,A8, 1\n0, A1,1,b3,b4,A5,b6,b7,A8, 1\n0, A1,A2,b3,b4,1,b6,b7,A8, 1\n0, A1,A2,b3,b4,A5,b6,b7,1, 1",
"4w": "0, 1,b2,A3,A4,b5,b6,b7,A8, 1\n0, A1,b2,1,A4,b5,b6,b7,A8, 1\n0, A1,b2,A3,1,b5,b6,b7,A8, 1\n0, A1,b2,A3,A4,b5,b6,b7,1, 1",
"4z": "0, 1,A2,b3,b4,A5,A6,b7,b8, 1\n0, A1,1,b3,b4,A5,A6,b7,b8, 1\n0, A1,A2,b3,b4,1,A6,b7,b8, 1\n0, A1,A2,b3,b4,A5,1,b7,b8, 1",
"5c": "0, 1,b2,A3,b4,A5,b6,A7,A8, 1\n0, A1,b2,1,b4,A5,b6,A7,A8, 1\n0, A1,b2,A3,b4,1,b6,A7,A8, 1\n0, A1,b2,A3,b4,A5,b6,1,A8, 1\n0, A1,b2,A3,b4,A5,b6,A7,1, 1",
"5e": "0, b1,1,b3,A4,b5,A6,A7,A8, 1\n0, b1,A2,b3,1,b5,A6,A7,A8, 1\n0, b1,A2,b3,A4,b5,1,A7,A8, 1\n0, b1,A2,b3,A4,b5,A6,1,A8, 1\n0, b1,A2,b3,A4,b5,A6,A7,1, 1",
"5k": "0, b1,1,b3,A4,A5,b6,A7,A8, 1\n0, b1,A2,b3,1,A5,b6,A7,A8, 1\n0, b1,A2,b3,A4,1,b6,A7,A8, 1\n0, b1,A2,b3,A4,A5,b6,1,A8, 1\n0, b1,A2,b3,A4,A5,b6,A7,1, 1",
"5a": "0, b1,b2,b3,1,A5,A6,A7,A8, 1\n0, b1,b2,b3,A4,1,A6,A7,A8, 1\n0, b1,b2,b3,A4,A5,1,A7,A8, 1\n0, b1,b2,b3,A4,A5,A6,1,A8, 1\n0, b1,b2,b3,A4,A5,A6,A7,1, 1",
"5i": "0, b1,b2,1,A4,A5,A6,A7,b8, 1\n0, b1,b2,A3,1,A5,A6,A7,b8, 1\n0, b1,b2,A3,A4,1,A6,A7,b8, 1\n0, b1,b2,A3,A4,A5,1,A7,b8, 1\n0, b1,b2,A3,A4,A5,A6,1,b8, 1",
"5n": "0, b1,b2,1,b4,A5,A6,A7,A8, 1\n0, b1,b2,A3,b4,1,A6,A7,A8, 1\n0, b1,b2,A3,b4,A5,1,A7,A8, 1\n0, b1,b2,A3,b4,A5,A6,1,A8, 1\n0, b1,b2,A3,b4,A5,A6,A7,1, 1",
"5y": "0, b1,1,A3,b4,A5,b6,A7,A8, 1\n0, b1,A2,1,b4,A5,b6,A7,A8, 1\n0, b1,A2,A3,b4,1,b6,A7,A8, 1\n0, b1,A2,A3,b4,A5,b6,1,A8, 1\n0, b1,A2,A3,b4,A5,b6,A7,1, 1",
"5q": "0, b1,b2,1,A4,A5,b6,A7,A8, 1\n0, b1,b2,A3,1,A5,b6,A7,A8, 1\n0, b1,b2,A3,A4,1,b6,A7,A8, 1\n0, b1,b2,A3,A4,A5,b6,1,A8, 1\n0, b1,b2,A3,A4,A5,b6,A7,1, 1",
"5j": "0, b1,1,b3,b4,A5,A6,A7,A8, 1\n0, b1,A2,b3,b4,1,A6,A7,A8, 1\n0, b1,A2,b3,b4,A5,1,A7,A8, 1\n0, b1,A2,b3,b4,A5,A6,1,A8, 1\n0, b1,A2,b3,b4,A5,A6,A7,1, 1",
"5r": "0, b1,b2,1,A4,b5,A6,A7,A8, 1\n0, b1,b2,A3,1,b5,A6,A7,A8, 1\n0, b1,b2,A3,A4,b5,1,A7,A8, 1\n0, b1,b2,A3,A4,b5,A6,1,A8, 1\n0, b1,b2,A3,A4,b5,A6,A7,1, 1",
"6c": "0, 1,b2,A3,b4,A5,A6,A7,A8, 1\n0, A1,b2,1,b4,A5,A6,A7,A8, 1\n0, A1,b2,A3,b4,1,A6,A7,A8, 1\n0, A1,b2,A3,b4,A5,1,A7,A8, 1\n0, A1,b2,A3,b4,A5,A6,1,A8, 1\n0, A1,b2,A3,b4,A5,A6,A7,1, 1",
"6e": "0, b1,1,b3,A4,A5,A6,A7,A8, 1\n0, b1,A2,b3,1,A5,A6,A7,A8, 1\n0, b1,A2,b3,A4,1,A6,A7,A8, 1\n0, b1,A2,b3,A4,A5,1,A7,A8, 1\n0, b1,A2,b3,A4,A5,A6,1,A8, 1\n0, b1,A2,b3,A4,A5,A6,A7,1, 1",
"6k": "0, b1,1,A3,b4,A5,A6,A7,A8, 1\n0, b1,A2,1,b4,A5,A6,A7,A8, 1\n0, b1,A2,A3,b4,1,A6,A7,A8, 1\n0, b1,A2,A3,b4,A5,1,A7,A8, 1\n0, b1,A2,A3,b4,A5,A6,1,A8, 1\n0, b1,A2,A3,b4,A5,A6,A7,1, 1",
"6a": "0, b1,b2,1,A4,A5,A6,A7,A8, 1\n0, b1,b2,A3,1,A5,A6,A7,A8, 1\n0, b1,b2,A3,A4,1,A6,A7,A8, 1\n0, b1,b2,A3,A4,A5,1,A7,A8, 1\n0, b1,b2,A3,A4,A5,A6,1,A8, 1\n0, b1,b2,A3,A4,A5,A6,A7,1, 1",
"6i": "0, b1,1,A3,A4,b5,A6,A7,A8, 1\n0, b1,A2,1,A4,b5,A6,A7,A8, 1\n0, b1,A2,A3,1,b5,A6,A7,A8, 1\n0, b1,A2,A3,A4,b5,1,A7,A8, 1\n0, b1,A2,A3,A4,b5,A6,1,A8, 1\n0, b1,A2,A3,A4,b5,A6,A7,1, 1",
"6n": "0, 1,b2,A3,A4,A5,b6,A7,A8, 1\n0, A1,b2,1,A4,A5,b6,A7,A8, 1\n0, A1,b2,A3,1,A5,b6,A7,A8, 1\n0, A1,b2,A3,A4,1,b6,A7,A8, 1\n0, A1,b2,A3,A4,A5,b6,1,A8, 1\n0, A1,b2,A3,A4,A5,b6,A7,1, 1",
"7c": "0, 1,b2,A3,A4,A5,A6,A7,A8, 1\n0, A1,b2,1,A4,A5,A6,A7,A8, 1\n0, A1,b2,A3,1,A5,A6,A7,A8, 1\n0, A1,b2,A3,A4,1,A6,A7,A8, 1\n0, A1,b2,A3,A4,A5,1,A7,A8, 1\n0, A1,b2,A3,A4,A5,A6,1,A8, 1\n0, A1,b2,A3,A4,A5,A6,A7,1, 1\n",
"7e": "0, b1,1,A3,A4,A5,A6,A7,A8, 1\n0, b1,A2,1,A4,A5,A6,A7,A8, 1\n0, b1,A2,A3,1,A5,A6,A7,A8, 1\n0, b1,A2,A3,A4,1,A6,A7,A8, 1\n0, b1,A2,A3,A4,A5,1,A7,A8, 1\n0, b1,A2,A3,A4,A5,A6,1,A8, 1\n0, b1,A2,A3,A4,A5,A6,A7,1, 1",
"8": "0, 1,A2,A3,A4,A5,A6,A7,A8, 1\n0, A1,1,A3,A4,A5,A6,A7,A8, 1\n0, A1,A2,1,A4,A5,A6,A7,A8, 1\n0, A1,A2,A3,1,A5,A6,A7,A8, 1\n0, A1,A2,A3,A4,1,A6,A7,A8, 1\n0, A1,A2,A3,A4,A5,1,A7,A8, 1\n0, A1,A2,A3,A4,A5,A6,1,A8, 1\n0, A1,A2,A3,A4,A5,A6,A7,1, 1"
}
Dtransitions = {
"0": "1, g1,g2,g3,g4,g5,g6,g7,g8, 0",
"1c": "1, g1,F2,g3,g4,g5,g6,g7,g8, 0",
"1e": "1, F1,g2,g3,g4,g5,g6,g7,g8, 0",
"2c": "1, g1,F2,g3,F4,g5,g6,g7,g8, 0",
"2e": "1, F1,g2,F3,g4,g5,g6,g7,g8, 0",
"2k": "1, F1,g2,g3,F4,g5,g6,g7,g8, 0",
"2a": "1, F1,F2,g3,g4,g5,g6,g7,g8, 0",
"2i": "1, F1,g2,g3,g4,F5,g6,g7,g8, 0",
"2n": "1, g1,F2,g3,g4,g5,F6,g7,g8, 0",
"3c": "1, g1,F2,g3,F4,g5,F6,g7,g8, 0",
"3e": "1, F1,g2,F3,g4,F5,g6,g7,g8, 0",
"3k": "1, F1,g2,F3,g4,g5,F6,g7,g8, 0",
"3a": "1, F1,F2,F3,g4,g5,g6,g7,g8, 0",
"3i": "1, F1,F2,g3,g4,g5,g6,g7,F8, 0",
"3n": "1, F1,F2,g3,F4,g5,g6,g7,g8, 0",
"3y": "1, F1,g2,g3,F4,g5,F6,g7,g8, 0",
"3q": "1, F1,F2,g3,g4,g5,F6,g7,g8, 0",
"3j": "1, F1,g2,F3,F4,g5,g6,g7,g8, 0",
"3r": "1, F1,F2,g3,g4,F5,g6,g7,g8, 0",
"4c": "1, g1,F2,g3,F4,g5,F6,g7,F8, 0",
"4e": "1, F1,g2,F3,g4,F5,g6,F7,g8, 0",
"4k": "1, F1,g2,F3,F4,g5,F6,g7,g8, 0",
"4a": "1, F1,F2,F3,F4,g5,g6,g7,g8, 0",
"4i": "1, F1,F2,g3,F4,F5,g6,g7,g8, 0",
"4n": "1, F1,F2,g3,F4,g5,g6,g7,F8, 0",
"4y": "1, F1,F2,g3,F4,g5,F6,g7,g8, 0",
"4q": "1, F1,F2,F3,g4,g5,F6,g7,g8, 0",
"4j": "1, F1,g2,F3,g4,F5,F6,g7,g8, 0",
"4r": "1, F1,g2,F3,F4,F5,g6,g7,g8, 0",
"4t": "1, F1,F2,g3,g4,F5,g6,g7,F8, 0",
"4w": "1, F1,g2,F3,F4,g5,g6,g7,F8, 0",
"4z": "1, F1,F2,g3,g4,F5,F6,g7,g8, 0",
"5c": "1, F1,g2,F3,g4,F5,g6,F7,F8, 0",
"5e": "1, g1,F2,g3,F4,g5,F6,F7,F8, 0",
"5k": "1, g1,F2,g3,F4,F5,g6,F7,F8, 0",
"5a": "1, g1,g2,g3,F4,F5,F6,F7,F8, 0",
"5i": "1, g1,g2,F3,F4,F5,F6,F7,g8, 0",
"5n": "1, g1,g2,F3,g4,F5,F6,F7,F8, 0",
"5y": "1, g1,F2,F3,g4,F5,g6,F7,F8, 0",
"5q": "1, g1,g2,F3,F4,F5,g6,F7,F8, 0",
"5j": "1, g1,F2,g3,g4,F5,F6,F7,F8, 0",
"5r": "1, g1,g2,F3,F4,g5,F6,F7,F8, 0",
"6c": "1, F1,g2,F3,g4,F5,F6,F7,F8, 0",
"6e": "1, g1,F2,g3,F4,F5,F6,F7,F8, 0",
"6k": "1, g1,F2,F3,g4,F5,F6,F7,F8, 0",
"6a": "1, g1,g2,F3,F4,F5,F6,F7,F8, 0",
"6i": "1, g1,F2,F3,F4,g5,F6,F7,F8, 0",
"6n": "1, F1,g2,F3,F4,F5,g6,F7,F8, 0",
"7c": "1, F1,g2,F3,F4,F5,F6,F7,F8, 0",
"7e": "1, g1,F2,F3,F4,F5,F6,F7,F8, 0",
"8": "1, F1,F2,F3,F4,F5,F6,F7,F8, 0",
}
nontotalistic = {
"0": ["0"],
"1": ["1c", "1e"],
"2": ["2c", "2e", "2k", "2a", "2i", "2n"],
"3": ["3c", "3e", "3k", "3a", "3i", "3n", "3y", "3q", "3j", "3r"],
"4": ["4c", "4e", "4k", "4a", "4i", "4n", "4y", "4q", "4j", "4r", "4t", "4w", "4z"],
"5": ["5c", "5e", "5k", "5a", "5i", "5n", "5y", "5q", "5j", "5r"],
"6": ["6c", "6e", "6k", "6a", "6i", "6n"],
"7": ["7c", "7e"],
"8": ["8"],
"9": []
}
alltrans = ["0", "1c", "1e", "2c", "2e", "2k", "2a", "2i", "2n", "3c", "3e", "3k", "3a", "3i", "3n", "3y", "3q", "3j", "3r", "4c", "4e", "4k", "4a", "4i", "4n", "4y", "4q", "4j", "4r", "4t", "4w", "4z", "5c", "5e", "5k", "5a", "5i", "5n", "5y", "5q", "5j", "5r", "6c", "6e", "6k", "6a", "6i", "6n", "7c", "7e", "8"]
rule = input("rule: ")
B = list(rule.split("/")[0][1:]); B.append("9")
S = list(rule.split("/")[1][1:]); S.append("9")
def hensel(L):
trans = []; neg = False; neglist = []
for n, x in enumerate(L):
if x in ["0", "1", "2", "3", "4", "5", "6", "7", "8"] and L[n+1] in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]:
neg = False
for e in nontotalistic[x]:
trans.append(e)
elif x in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]:
if neglist == []:
N = x; neg = False
else:
for nt in nontotalistic[N]:
if nt not in neglist:
trans.append(nt)
N = x; neg = False; neglist = []
elif x == "-":
neg = True
elif neg:
neglist.append(N+x)
else:
trans.append(N+x)
return trans
print("\n\n\n\n\n\n@RULE", "".join(rule.split("/"))+"Investigator")
print("""@TABLE
n_states:21
neighborhood:Moore
symmetries:rotate4reflect
var A1 = {1,2,4,6,8,10,12,15,16,17,19}
var A2 = {1,2,4,6,8,10,12,15,16,17,19}
var A3 = {1,2,4,6,8,10,12,15,16,17,19}
var A4 = {1,2,4,6,8,10,12,15,16,17,19}
var A5 = {1,2,4,6,8,10,12,15,16,17,19}
var A6 = {1,2,4,6,8,10,12,15,16,17,19}
var A7 = {1,2,4,6,8,10,12,15,16,17,19}
var A8 = {1,2,4,6,8,10,12,15,16,17,19}
var b1 = {0,3,5,7,9,11,13,18,20}
var b2 = {0,3,5,7,9,11,13,18,20}
var b3 = {0,3,5,7,9,11,13,18,20}
var b4 = {0,3,5,7,9,11,13,18,20}
var b5 = {0,3,5,7,9,11,13,18,20}
var b6 = {0,3,5,7,9,11,13,18,20}
var b7 = {0,3,5,7,9,11,13,18,20}
var b8 = {0,3,5,7,9,11,13,18,20}
var c1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c2 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c3 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c4 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c5 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c6 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c7 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c8 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var d1 = {2,3,6,7,14,16}
var d2 = {8,9,12,13,14}
var E1 = {1,2,4,6,8,10,12,17,19}
var E2 = {1,2,4,6,8,10,12,17,19}
var E3 = {1,2,4,6,8,10,12,17,19}
var E4 = {1,2,4,6,8,10,12,17,19}
var E5 = {1,2,4,6,8,10,12,17,19}
var E6 = {1,2,4,6,8,10,12,17,19}
var E7 = {1,2,4,6,8,10,12,17,19}
var E8 = {1,2,4,6,8,10,12,17,19}
var F1 = {1,2,4,6,8,10,12,15,16,18,20}
var F2 = {1,2,4,6,8,10,12,15,16,18,20}
var F3 = {1,2,4,6,8,10,12,15,16,18,20}
var F4 = {1,2,4,6,8,10,12,15,16,18,20}
var F5 = {1,2,4,6,8,10,12,15,16,18,20}
var F6 = {1,2,4,6,8,10,12,15,16,18,20}
var F7 = {1,2,4,6,8,10,12,15,16,18,20}
var F8 = {1,2,4,6,8,10,12,15,16,18,20}
var g1 = {0,3,5,7,9,11,13,17,19}
var g2 = {0,3,5,7,9,11,13,17,19}
var g3 = {0,3,5,7,9,11,13,17,19}
var g4 = {0,3,5,7,9,11,13,17,19}
var g5 = {0,3,5,7,9,11,13,17,19}
var g6 = {0,3,5,7,9,11,13,17,19}
var g7 = {0,3,5,7,9,11,13,17,19}
var g8 = {0,3,5,7,9,11,13,17,19}
""")
for b in hensel(B):
print(Btransitions.get(b))
print(Ctransitions.get(b))
for l in alltrans:
if l not in hensel(S):
print(Dtransitions[l])
print("""1, d1,c1,c2,c3,c4,c5,c6,c7, 0
1, c1,d1,c2,c3,c4,c5,c6,c7, 0
0, d2,c1,c2,c3,c4,c5,c6,c7, 1
0, c1,d2,c2,c3,c4,c5,c6,c7, 1
6, c1,c2,c3,c4,c5,c6,c7,c8, 7
7, c1,c2,c3,c4,c5,c6,c7,c8, 6
10, c1,c2,c3,c4,c5,c6,c7,c8, 11
11, c1,c2,c3,c4,c5,c6,c7,c8, 10
12, c1,c2,c3,c4,c5,c6,c7,c8, 13
13, c1,c2,c3,c4,c5,c6,c7,c8, 12
19, c1,c2,c3,c4,c5,c6,c7,c8, 20
20, c1,c2,c3,c4,c5,c6,c7,c8, 19
@COLORS
1 0 236 91
2 0 192 254
3 254 0 0
4 254 254 254
5 75 75 75
6 233 41 254
7 64 0 128
8 254 230 0
9 150 128 0
10 130 200 0
11 0 120 40
12 254 140 0
13 140 70 0
14 0 0 254
15 192 192 192
16 128 128 128
17 254 112 140
18 174 0 168
19 0 152 127
20 0 73 59
""")
EDIT: fixed hensel(L) bug.
EDIT: fixed a minor inconsistency in the code.