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
""")
Code: Select all
local g = golly()
local 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",
}
local 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"
}
local 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",
}
local 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"] = {}
}
local 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"}
local function list (str)
local out = {}
for i = 1, #str do
table.insert(out, string.sub(str, i, i))
end
return out
end
local function has (tab, key)
for _, val in ipairs(tab) do
if key == val then
return true
end
end
return false
end
local out = {}
local function CreateRule(rule)
local fname = g.getdir("rules") .. rule .. ".rule"
local f = io.open(fname,"r")
if f ~= nil then
io.close(f) -- rule already exists
else
local f = io.open(fname, "w")
if f then
f:write(out)
f:close()
else
g.warn("Can't save " .. rule .. " rule in filename:\n" .. filename)
end
end
end
local rule = g.getrule()
local pos = string.find(rule, "/")
local B = list(string.sub(rule, 2, pos - 1))
table.insert(B, "9")
local S = list(string.sub(rule, pos + 1, #rule))
table.insert(S, "9")
local function hensel (L)
local trans = {}
local neg = false
local neglist = {}
local N = "9"
for n, x in ipairs(L) do
if x >= "0" and x <= "8" and L[n+1] >= "0" and L[n+1] <= "9" then
neg = false
for _, e in pairs(nontotalistic[x]) do
table.insert(trans, e)
end
elseif x >= "0" and x <= "9" then
if #neglist == 0 then
N = x
neg = false
else
for _, nt in pairs(nontotalistic[N]) do
if not has(neglist, nt) then
table.insert(trans, nt)
end
end
N = x
neg = false
neglist = {}
end
elseif x == "-" then
neg = true
elseif neg then
table.insert(neglist, N .. x)
else
table.insert(trans, N .. x)
end
end
return trans
end
rule = string.gsub(rule, "/", "") .. "Investigator"
table.insert(out, "@RULE " .. rule)
table.insert(out, [[@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}
]])
local hB = hensel(B)
local hS = hensel(S)
for _, b in ipairs(hB) do
table.insert(out, Btransitions[b])
table.insert(out, Ctransitions[b])
end
for _, l in ipairs(alltrans) do
if not has(hS, l) then
table.insert(out, Dtransitions[l])
end
end
table.insert(out, [[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
]])
out = table.concat(out, "\n")
CreateRule(rule)
g.setrule(rule)
Code: Select all
"use strict"
{
let 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",
}
let 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"
}
let 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",
}
let 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": []
}
let 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"]
let rule = prompt("rule: ");
let B = rule.split("/")[0].replace(/^b/i, "").split(""); B.push("9");
let S = rule.split("/")[1].replace(/^s/i, "").split(""); S.push("9");
let hensel = function(L) {
let trans, neg, neglist, N = "9";
trans = []; neg = false; neglist = [];
for (let i = 0, n = L.length; i < n; i++) {
let x = L[i];
if (x >= '0' && x <= '8' && L[i+1] >= '0' && L[i+1] <= '9') {
neg = false;
for (let e of nontotalistic[x])
trans.push(e);
} else if (x >= '0' && x <= '9') {
if (!neglist.length) {
N = x; neg = false;
} else {
for (let nt of nontotalistic[N]) {
if (!neglist.includes(nt))
trans.push(nt);
}
N = x; neg = false; neglist.length = 0;
}
} else if (x === "-") {
neg = true;
} else if (neg) {
neglist.push(N + x);
} else {
trans.push(N + x);
}
}
return trans;
}
let out = "@RULE " + rule.replace(/\//g, "") + "Investigator\n";
out += `@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}
` + '\n';
let hB = hensel(B), hS = hensel(S);
for (let b of hB) {
out += Btransitions[b] + '\n';
out += Ctransitions[b] + '\n';
}
for (let l of alltrans) {
if (!hS.includes(l))
out += Dtransitions[l] + '\n';
}
out += `\
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
`;
document.open();
document.write("<pre>" + out + "</pre>");
document.close();
}