012_2301

Counting sequence:
1, 1, 2, 5, 13, 33, 80, 185, 411, 885, 1862, 3853, 7881, 15993, 32284, 64945, 130359, 261293, 523282, 1047397, 2095781, 4192721, 8386792, 16775145, 33552083, 67106213, 134214750, 268432125, 536867201, 1073737705, 2147479092, 4294962273, 8589929071, 17179863133, 34359731754, 68719469525, 137438945629, 274877898433, 549755804672, 1099511617817, 2199023244811, 4398046499541, 8796093009782, 17592186031085, 35184372074553, 70368744162393, 140737488339020, 281474976693265, 562949953402791, 1125899906822925, 2251799813664322, 4503599627348293, 9007199254717461, 18014398509457073, 36028797018937624, 72057594037900105, 144115188075826499, 288230376151680773, 576460752303390862, 1152921504606812637, 2305843009213657841, 4611686018427349961, 9223372036854735972, 18446744073709509825, 36893488147419059423, 73786976294838160573, 147573952589676364890, 295147905179352775605, 590295810358705599181, 1180591620717411248545, 2361183241434822549552, 4722366482869645153913, 9444732965739290365051, 18889465931478580789813, 37778931862957161641894, 75557863725914323348685, 151115727451828646764969, 302231454903657293600313, 604462909807314587273852, 1208925819614629174623857, 2417851639229258349326871, 4835703278458516698735981, 9671406556917033397557362, 19342813113834066795203365, 38685626227668133590498693, 77371252455336267181092753, 154742504910672534362284360, 309485009821345068724671145, 618970019642690137449448371, 1237940039285380274899006565, 2475880078570760549798126782, 4951760157141521099596371133, 9903520314283042199192863841, 19807040628566084398385853353, 39614081257132168796771836564, 79228162514264337593543807265, 158456325028528675187087753039, 316912650057057350374175649053, 633825300114114700748351445642, 1267650600228229401496703043477, 2535301200456458802993406243901

Generating function in Maple syntax:
-(4*x^4-9*x^3+10*x^2-5*x+1)/(2*x-1)/(x-1)^4

Generating function in latex syntax:
-\frac{4 x^{4}-9 x^{3}+10 x^{2}-5 x +1}{\left(2 x -1\right) \left(x -1\right)^{4}}

Generating function in sympy syntax:
(-4*x**4 + 9*x**3 - 10*x**2 + 5*x - 1)/((x - 1)**4*(2*x - 1))

Implicit equation for the generating function in Maple syntax:
(2*x-1)*(x-1)^4*F(x)+4*x^4-9*x^3+10*x^2-5*x+1 = 0

Implicit equation for the generating function in latex syntax:
\left(2 x -1\right) \left(x -1\right)^{4} F \! \left(x \right)+4 x^{4}-9 x^{3}+10 x^{2}-5 x +1 = 0

Explicit closed form in Maple syntax:
-1-11/6*n-1/6*n^3+2^(n+1)

Explicit closed form in latex syntax:
-1-\frac{11 n}{6}-\frac{n^{3}}{6}+2^{n +1}

Recurrence in maple format:
a(0) = 1
a(1) = 1
a(2) = 2
a(3) = 5
a(4) = 13
a(n+1) = 2*a(n)+1/6*(n-1)*(n^2-2*n+6), n >= 5

Recurrence in latex format:
a \! \left(0\right) = 1
a \! \left(1\right) = 1
a \! \left(2\right) = 2
a \! \left(3\right) = 5
a \! \left(4\right) = 13
a \! \left(n +1\right) = 2 a \! \left(n \right)+\frac{\left(n -1\right) \left(n^{2}-2 n +6\right)}{6}, \quad n \geq 5

Specification 1
Strategy pack name: point_placements
Tree: https://permpal.com/tree/395/
System of equations in Maple syntax:
F[0,x] = F[1,x]+F[2,x]
F[1,x] = 1
F[2,x] = F[3,x]
F[3,x] = F[4,x]*F[8,x]
F[4,x] = F[5,x]+F[9,x]
F[5,x] = F[1,x]+F[6,x]
F[6,x] = F[7,x]
F[7,x] = F[5,x]*F[8,x]
F[8,x] = x
F[9,x] = F[10,x]
F[10,x] = F[11,x]*F[8,x]
F[11,x] = F[12,x]+F[24,x]
F[12,x] = F[13,x]+F[16,x]
F[13,x] = F[14,x]+F[5,x]
F[14,x] = F[15,x]
F[15,x] = F[11,x]*F[8,x]
F[16,x] = F[17,x]*F[6,x]
F[17,x] = F[18,x]+F[5,x]
F[18,x] = F[19,x]+F[6,x]
F[19,x] = F[20,x]+F[21,x]+F[23,x]
F[20,x] = 0
F[21,x] = F[22,x]*F[8,x]
F[22,x] = F[19,x]+F[6,x]
F[23,x] = F[18,x]*F[8,x]
F[24,x] = F[25,x]+F[26,x]
F[25,x] = -F[0,x]+F[4,x]
F[26,x] = F[27,x]*F[6,x]
F[27,x] = F[28,x]+F[6,x]
F[28,x] = F[20,x]+F[29,x]+F[31,x]
F[29,x] = F[30,x]*F[8,x]
F[30,x] = F[28,x]+F[6,x]
F[31,x] = F[27,x]*F[8,x]
System of equations in latex syntax:
F_{0}\! \left(x \right) = F_{1}\! \left(x \right)+F_{2}\! \left(x \right)
F_{1}\! \left(x \right) = 1
F_{2}\! \left(x \right) = F_{3}\! \left(x \right)
F_{3}\! \left(x \right) = F_{4}\! \left(x \right) F_{8}\! \left(x \right)
F_{4}\! \left(x \right) = F_{5}\! \left(x \right)+F_{9}\! \left(x \right)
F_{5}\! \left(x \right) = F_{1}\! \left(x \right)+F_{6}\! \left(x \right)
F_{6}\! \left(x \right) = F_{7}\! \left(x \right)
F_{7}\! \left(x \right) = F_{5}\! \left(x \right) F_{8}\! \left(x \right)
F_{8}\! \left(x \right) = x
F_{9}\! \left(x \right) = F_{10}\! \left(x \right)
F_{10}\! \left(x \right) = F_{11}\! \left(x \right) F_{8}\! \left(x \right)
F_{11}\! \left(x \right) = F_{12}\! \left(x \right)+F_{24}\! \left(x \right)
F_{12}\! \left(x \right) = F_{13}\! \left(x \right)+F_{16}\! \left(x \right)
F_{13}\! \left(x \right) = F_{14}\! \left(x \right)+F_{5}\! \left(x \right)
F_{14}\! \left(x \right) = F_{15}\! \left(x \right)
F_{15}\! \left(x \right) = F_{11}\! \left(x \right) F_{8}\! \left(x \right)
F_{16}\! \left(x \right) = F_{17}\! \left(x \right) F_{6}\! \left(x \right)
F_{17}\! \left(x \right) = F_{18}\! \left(x \right)+F_{5}\! \left(x \right)
F_{18}\! \left(x \right) = F_{19}\! \left(x \right)+F_{6}\! \left(x \right)
F_{19}\! \left(x \right) = F_{20}\! \left(x \right)+F_{21}\! \left(x \right)+F_{23}\! \left(x \right)
F_{20}\! \left(x \right) = 0
F_{21}\! \left(x \right) = F_{22}\! \left(x \right) F_{8}\! \left(x \right)
F_{22}\! \left(x \right) = F_{19}\! \left(x \right)+F_{6}\! \left(x \right)
F_{23}\! \left(x \right) = F_{18}\! \left(x \right) F_{8}\! \left(x \right)
F_{24}\! \left(x \right) = F_{25}\! \left(x \right)+F_{26}\! \left(x \right)
F_{25}\! \left(x \right) = -F_{0}\! \left(x \right)+F_{4}\! \left(x \right)
F_{26}\! \left(x \right) = F_{27}\! \left(x \right) F_{6}\! \left(x \right)
F_{27}\! \left(x \right) = F_{28}\! \left(x \right)+F_{6}\! \left(x \right)
F_{28}\! \left(x \right) = F_{20}\! \left(x \right)+F_{29}\! \left(x \right)+F_{31}\! \left(x \right)
F_{29}\! \left(x \right) = F_{30}\! \left(x \right) F_{8}\! \left(x \right)
F_{30}\! \left(x \right) = F_{28}\! \left(x \right)+F_{6}\! \left(x \right)
F_{31}\! \left(x \right) = F_{27}\! \left(x \right) F_{8}\! \left(x \right)
System of equations in sympy syntax:
Eq(F_0(x), F_1(x) + F_2(x))
Eq(F_1(x), 1)
Eq(F_2(x), F_3(x))
Eq(F_3(x), F_4(x)*F_8(x))
Eq(F_4(x), F_5(x) + F_9(x))
Eq(F_5(x), F_1(x) + F_6(x))
Eq(F_6(x), F_7(x))
Eq(F_7(x), F_5(x)*F_8(x))
Eq(F_8(x), x)
Eq(F_9(x), F_10(x))
Eq(F_10(x), F_11(x)*F_8(x))
Eq(F_11(x), F_12(x) + F_24(x))
Eq(F_12(x), F_13(x) + F_16(x))
Eq(F_13(x), F_14(x) + F_5(x))
Eq(F_14(x), F_15(x))
Eq(F_15(x), F_11(x)*F_8(x))
Eq(F_16(x), F_17(x)*F_6(x))
Eq(F_17(x), F_18(x) + F_5(x))
Eq(F_18(x), F_19(x) + F_6(x))
Eq(F_19(x), F_20(x) + F_21(x) + F_23(x))
Eq(F_20(x), 0)
Eq(F_21(x), F_22(x)*F_8(x))
Eq(F_22(x), F_19(x) + F_6(x))
Eq(F_23(x), F_18(x)*F_8(x))
Eq(F_24(x), F_25(x) + F_26(x))
Eq(F_25(x), -F_0(x) + F_4(x))
Eq(F_26(x), F_27(x)*F_6(x))
Eq(F_27(x), F_28(x) + F_6(x))
Eq(F_28(x), F_20(x) + F_29(x) + F_31(x))
Eq(F_29(x), F_30(x)*F_8(x))
Eq(F_30(x), F_28(x) + F_6(x))
Eq(F_31(x), F_27(x)*F_8(x))
Pack JSON: {'expansion_strats': [[{'ignore_parent': False, 'maxreqlen': 1, 'one_cell_only': False}, {'dirs': [0, 1, 2, 3], 'ignore_parent': False, 'partial': False, 'point_only': False}]], 'inferral_strats': [{'ignore_parent': True, 'inferrable': True, 'possibly_empty': False, 'workable': True}, {}], 'initial_strats': [{'ignore_parent': True, 'interleaving': None, 'tracked': False, 'unions': False, 'workable': True}], 'iterative': False, 'name': 'point_placements', 'symmetries': [], 'ver_strats': [{}, {'ignore_parent': False}, {'ignore_parent': False, 'symmetry': False}, {'ignore_parent': False, 'symmetry': False}]}
Specification JSON: {'root': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1, 2], 'pos': [[0, 0], [0, 0], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 0], [0, 0], [0, 0], [0, 0]]}], 'requirements': []}, 'rules': [{'class_module': 'comb_spec_searcher.strategies.rule', 'idx': 1, 'original_rule': {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1, 2], 'pos': [[0, 0], [0, 0], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 0], [0, 0], [0, 0], [0, 0]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 1], [0, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [0, 1], [0, 1]]}, {'patt': [1, 2, 0], 'pos': [[0, 1], [0, 1], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 1], [0, 1], [0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 1], [0, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [0, 1], [0, 1]]}, {'patt': [1, 2, 0], 'pos': [[0, 1], [0, 1], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 1], [0, 1], [0, 1], [0, 1]]}], 'requirements': []}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 0]]}], 'ignore_parent': False, 'strategy_class': 'RequirementInsertionStrategy'}}, 'rule_class': 'ReverseRule'}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1, 2], 'pos': [[0, 0], [0, 0], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 0], [0, 0], [0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1, 2], 'pos': [[0, 0], [0, 0], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 0], [0, 0], [0, 0], [0, 0]]}], 'requirements': []}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 0]]}], 'ignore_parent': False, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 1], [0, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [0, 1], [0, 1]]}, {'patt': [1, 2, 0], 'pos': [[0, 1], [0, 1], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 1], [0, 1], [0, 1], [0, 1]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [1, 0], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 2], [0, 2]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [0, 2], [0, 2]]}, {'patt': [1, 2, 0], 'pos': [[0, 2], [0, 2], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 2], [0, 2], [0, 2], [0, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 1]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 0], [0, 2]], [[1, 1]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 1], [0, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [0, 1], [0, 1]]}, {'patt': [1, 2, 0], 'pos': [[0, 1], [0, 1], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 1], [0, 1], [0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 1], [0, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [0, 1], [0, 1]]}, {'patt': [1, 2, 0], 'pos': [[0, 1], [0, 1], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 1], [0, 1], [0, 1], [0, 1]]}], 'requirements': []}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 1]]}], 'ignore_parent': False, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [1, 0], [1, 0]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [1, 0], [1, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 0], [1, 0], [1, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[1, 0], [1, 0], [1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [1, 0], [1, 0]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [1, 0], [1, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 0], [1, 0], [1, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[1, 0], [1, 0], [1, 0], [1, 0]]}], 'requirements': []}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[1, 0]]}], 'ignore_parent': False, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [1, 0], 'pos': [[0, 2], [2, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 1], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[2, 0], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[2, 2], [2, 2], [2, 2]]}, {'patt': [1, 2, 0], 'pos': [[2, 2], [2, 2], [2, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 2], [2, 2], [2, 2]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 2], [2, 2], [2, 2], [2, 2]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[0, 3]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0], 'pos': [[1, 3]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0], 'pos': [[2, 2]]}, {'patt': [0], 'pos': [[3, 1]]}, {'patt': [0], 'pos': [[3, 3]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 3], [2, 3]]}, {'patt': [0, 1], 'pos': [[3, 0], [3, 0]]}, {'patt': [1, 0], 'pos': [[0, 2], [3, 0]]}, {'patt': [1, 0], 'pos': [[2, 3], [2, 3]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [3, 2], [3, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 1], [3, 2], [3, 2]]}, {'patt': [0, 1, 2], 'pos': [[3, 0], [3, 2], [3, 2]]}, {'patt': [0, 1, 2], 'pos': [[3, 2], [3, 2], [3, 2]]}, {'patt': [1, 2, 0], 'pos': [[3, 2], [3, 2], [3, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 2], [3, 2], [3, 2]]}, {'patt': [2, 3, 0, 1], 'pos': [[3, 2], [3, 2], [3, 2], [3, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[2, 3]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 2], [1, 1], [3, 0], [3, 2]], [[2, 3]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [1, 0], 'pos': [[0, 2], [2, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 1], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[2, 0], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[2, 2], [2, 2], [2, 2]]}, {'patt': [1, 2, 0], 'pos': [[2, 2], [2, 2], [2, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 2], [2, 2], [2, 2]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 2], [2, 2], [2, 2], [2, 2]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0], 'pos': [[1, 3]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0], 'pos': [[2, 2]]}, {'patt': [0], 'pos': [[3, 0]]}, {'patt': [0], 'pos': [[3, 1]]}, {'patt': [0], 'pos': [[3, 3]]}, {'patt': [0, 1], 'pos': [[0, 3], [0, 3]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [0, 1], 'pos': [[3, 2], [3, 2]]}, {'patt': [1, 0], 'pos': [[0, 3], [2, 0]]}, {'patt': [1, 0], 'pos': [[3, 2], [3, 2]]}, {'patt': [0, 1, 2], 'pos': [[0, 3], [2, 3], [2, 3]]}, {'patt': [0, 1, 2], 'pos': [[1, 1], [2, 3], [2, 3]]}, {'patt': [0, 1, 2], 'pos': [[2, 0], [2, 3], [2, 3]]}, {'patt': [0, 1, 2], 'pos': [[2, 3], [2, 3], [2, 3]]}, {'patt': [1, 2, 0], 'pos': [[2, 3], [2, 3], [2, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 3], [2, 3], [2, 3]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 3], [2, 3], [2, 3], [2, 3]]}], 'requirements': [[{'patt': [0], 'pos': [[3, 2]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 3], [1, 1], [2, 0], [2, 3]], [[3, 2]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[2, 1], [2, 1], [2, 1]]}, {'patt': [2, 0, 1], 'pos': [[0, 1], [2, 1], [2, 1]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 1], [2, 1], [2, 1], [2, 1]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 2], [1, 2], [1, 2]]}, {'patt': [1, 2, 0], 'pos': [[1, 2], [1, 2], [1, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[1, 2], [1, 2], [1, 2], [1, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [1, 0], 'pos': [[0, 2], [2, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 1], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[2, 0], [2, 2], [2, 2]]}, {'patt': [0, 1, 2], 'pos': [[2, 2], [2, 2], [2, 2]]}, {'patt': [1, 2, 0], 'pos': [[2, 2], [2, 2], [2, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 2], [2, 2], [2, 2]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 2], [2, 2], [2, 2], [2, 2]]}], 'requirements': []}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[2, 0]]}], 'ignore_parent': False, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 1], [0, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [0, 1], [0, 1]]}, {'patt': [1, 2, 0], 'pos': [[0, 1], [0, 1], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 1], [0, 1], [0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[1, 2], [1, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}], [{'patt': [0], 'pos': [[1, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 2], [1, 2], [1, 2]]}, {'patt': [1, 2, 0], 'pos': [[1, 2], [1, 2], [1, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[1, 2], [1, 2], [1, 2], [1, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 1]]}], 'ignore_parent': False, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [1, 0], [1, 0]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [1, 0], [1, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 0], [1, 0], [1, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[1, 0], [1, 0], [1, 0], [1, 0]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[2, 1], [2, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[2, 1], [2, 1], [2, 1]]}, {'patt': [2, 0, 1], 'pos': [[0, 1], [2, 1], [2, 1]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 1], [2, 1], [2, 1], [2, 1]]}], 'requirements': []}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[1, 0]]}], 'ignore_parent': False, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': []}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 0]]}], 'ignore_parent': True, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': []}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [1, 0], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 1]], [[1, 0]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[2, 1], [2, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 1], [2, 1]], [[1, 0]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[1, 2], [1, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}], [{'patt': [0], 'pos': [[1, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 1]], [[1, 0], [1, 2]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': []}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 0]]}], 'ignore_parent': True, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}], [{'patt': [0], 'pos': [[1, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[1, 0]]}], 'ignore_parent': True, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [], 'pos': []}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[2, 1], [2, 1]]}, {'patt': [1, 0], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}], [{'patt': [0], 'pos': [[2, 1]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [1, 0], 'pos': [[2, 0], [2, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}], [{'patt': [0], 'pos': [[2, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}], [{'patt': [0], 'pos': [[1, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_placement', 'direction': 3, 'gps': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 0]]}], 'ignore_parent': False, 'include_empty': True, 'indices': [0, 0], 'own_col': True, 'own_row': True, 'strategy_class': 'RequirementPlacementStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[2, 1], [2, 1]]}, {'patt': [1, 0], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}], [{'patt': [0], 'pos': [[2, 1]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 1], [2, 1]], [[1, 0]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [1, 0], 'pos': [[2, 0], [2, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}], [{'patt': [0], 'pos': [[2, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 1], [1, 1]], [[2, 0]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}], [{'patt': [0], 'pos': [[1, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 0]]}], 'ignore_parent': True, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}], [{'patt': [0], 'pos': [[0, 1]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 1]]}], 'ignore_parent': True, 'strategy_class': 'RequirementInsertionStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [], 'pos': []}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[1, 2], [1, 2]]}, {'patt': [1, 0], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}], [{'patt': [0], 'pos': [[1, 2]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [1, 0], 'pos': [[0, 2], [0, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 2]]}], [{'patt': [0], 'pos': [[1, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}], [{'patt': [0], 'pos': [[0, 1]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_placement', 'direction': 2, 'gps': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}], 'ignore_parent': False, 'include_empty': True, 'indices': [0, 0], 'own_col': True, 'own_row': True, 'strategy_class': 'RequirementPlacementStrategy'}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[1, 2], [1, 2]]}, {'patt': [1, 0], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}], [{'patt': [0], 'pos': [[1, 2]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 1]], [[1, 0], [1, 2]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [1, 0], 'pos': [[0, 2], [0, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 2]]}], [{'patt': [0], 'pos': [[1, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.factor', 'ignore_parent': True, 'partition': [[[0, 2]], [[1, 0], [1, 1]]], 'strategy_class': 'FactorStrategy', 'workable': True}}, {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}], [{'patt': [0], 'pos': [[0, 1]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_insertion', 'gps': [{'patt': [0], 'pos': [[0, 0]]}], 'ignore_parent': True, 'strategy_class': 'RequirementInsertionStrategy'}}, {'class_module': 'comb_spec_searcher.strategies.rule', 'rule_class': 'EquivalencePathRule', 'rules': [{'class_module': 'comb_spec_searcher.strategies.rule', 'original_rule': {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [1, 0], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 2], [0, 2]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [0, 2], [0, 2]]}, {'patt': [1, 2, 0], 'pos': [[0, 2], [0, 2], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 2], [0, 2], [0, 2], [0, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 1]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1, 2], 'pos': [[0, 0], [0, 0], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 0], [0, 0], [0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_placement', 'direction': 0, 'gps': [{'patt': [0], 'pos': [[0, 0]]}], 'ignore_parent': False, 'include_empty': False, 'indices': [0], 'own_col': True, 'own_row': True, 'strategy_class': 'RequirementPlacementStrategy'}}, 'rule_class': 'EquivalenceRule'}]}, {'class_module': 'comb_spec_searcher.strategies.rule', 'rule_class': 'EquivalencePathRule', 'rules': [{'class_module': 'comb_spec_searcher.strategies.rule', 'original_rule': {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 2]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 1]]}, {'patt': [0, 1], 'pos': [[0, 0], [2, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 2], [1, 2]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [1, 0], 'pos': [[0, 1], [2, 0]]}, {'patt': [1, 0], 'pos': [[1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[2, 0], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[2, 1], [2, 1], [2, 1]]}, {'patt': [1, 2, 0], 'pos': [[2, 1], [2, 1], [2, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 1], [2, 1], [2, 1]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 1], [2, 1], [2, 1], [2, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 2]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [0, 1], [0, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [0, 1], [0, 1]]}, {'patt': [1, 2, 0], 'pos': [[0, 1], [0, 1], [0, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[0, 1], [0, 1], [0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_placement', 'direction': 1, 'gps': [{'patt': [0], 'pos': [[0, 1]]}], 'ignore_parent': False, 'include_empty': False, 'indices': [0], 'own_col': True, 'own_row': True, 'strategy_class': 'RequirementPlacementStrategy'}}, 'rule_class': 'EquivalenceRule'}, {'class_module': 'comb_spec_searcher.strategies.rule', 'original_rule': {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[0, 3]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0], 'pos': [[1, 3]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0], 'pos': [[2, 2]]}, {'patt': [0], 'pos': [[3, 1]]}, {'patt': [0], 'pos': [[3, 3]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 3], [2, 3]]}, {'patt': [0, 1], 'pos': [[3, 0], [3, 0]]}, {'patt': [1, 0], 'pos': [[0, 2], [3, 0]]}, {'patt': [1, 0], 'pos': [[2, 3], [2, 3]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [3, 2], [3, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 1], [3, 2], [3, 2]]}, {'patt': [0, 1, 2], 'pos': [[3, 0], [3, 2], [3, 2]]}, {'patt': [0, 1, 2], 'pos': [[3, 2], [3, 2], [3, 2]]}, {'patt': [1, 2, 0], 'pos': [[3, 2], [3, 2], [3, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 2], [3, 2], [3, 2]]}, {'patt': [2, 3, 0, 1], 'pos': [[3, 2], [3, 2], [3, 2], [3, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[2, 3]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 2]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 1]]}, {'patt': [0, 1], 'pos': [[0, 0], [2, 0]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 2], [1, 2]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [1, 0], 'pos': [[0, 1], [2, 0]]}, {'patt': [1, 0], 'pos': [[1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 1], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[2, 0], [2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[2, 1], [2, 1], [2, 1]]}, {'patt': [1, 2, 0], 'pos': [[2, 1], [2, 1], [2, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 1], [2, 1], [2, 1]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 1], [2, 1], [2, 1], [2, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 2]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.row_and_col_separation', 'ignore_parent': True, 'inferrable': True, 'possibly_empty': False, 'strategy_class': 'RowColumnSeparationStrategy', 'workable': True}}, 'rule_class': 'EquivalenceRule'}]}, {'class_module': 'comb_spec_searcher.strategies.rule', 'rule_class': 'EquivalencePathRule', 'rules': [{'class_module': 'comb_spec_searcher.strategies.rule', 'original_rule': {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0], 'pos': [[2, 2]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 2]]}, {'patt': [0, 1], 'pos': [[0, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[2, 1], [2, 1]]}, {'patt': [1, 0], 'pos': [[0, 2], [1, 0]]}, {'patt': [1, 0], 'pos': [[2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 2], [1, 2], [1, 2]]}, {'patt': [1, 2, 0], 'pos': [[1, 2], [1, 2], [1, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 2], [1, 2], [1, 2]]}, {'patt': [2, 3, 0, 1], 'pos': [[1, 2], [1, 2], [1, 2], [1, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[2, 1]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [1, 0], [1, 0]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [1, 0], [1, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 0], [1, 0], [1, 0]]}, {'patt': [2, 3, 0, 1], 'pos': [[1, 0], [1, 0], [1, 0], [1, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[1, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_placement', 'direction': 0, 'gps': [{'patt': [0], 'pos': [[1, 0]]}], 'ignore_parent': False, 'include_empty': False, 'indices': [0], 'own_col': True, 'own_row': True, 'strategy_class': 'RequirementPlacementStrategy'}}, 'rule_class': 'EquivalenceRule'}, {'class_module': 'comb_spec_searcher.strategies.rule', 'original_rule': {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[0, 2]]}, {'patt': [0], 'pos': [[1, 0]]}, {'patt': [0], 'pos': [[1, 2]]}, {'patt': [0], 'pos': [[1, 3]]}, {'patt': [0], 'pos': [[2, 1]]}, {'patt': [0], 'pos': [[2, 2]]}, {'patt': [0], 'pos': [[3, 0]]}, {'patt': [0], 'pos': [[3, 1]]}, {'patt': [0], 'pos': [[3, 3]]}, {'patt': [0, 1], 'pos': [[0, 3], [0, 3]]}, {'patt': [0, 1], 'pos': [[1, 1], [1, 1]]}, {'patt': [0, 1], 'pos': [[2, 0], [2, 0]]}, {'patt': [0, 1], 'pos': [[3, 2], [3, 2]]}, {'patt': [1, 0], 'pos': [[0, 3], [2, 0]]}, {'patt': [1, 0], 'pos': [[3, 2], [3, 2]]}, {'patt': [0, 1, 2], 'pos': [[0, 3], [2, 3], [2, 3]]}, {'patt': [0, 1, 2], 'pos': [[1, 1], [2, 3], [2, 3]]}, {'patt': [0, 1, 2], 'pos': [[2, 0], [2, 3], [2, 3]]}, {'patt': [0, 1, 2], 'pos': [[2, 3], [2, 3], [2, 3]]}, {'patt': [1, 2, 0], 'pos': [[2, 3], [2, 3], [2, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 3], [2, 3], [2, 3]]}, {'patt': [2, 3, 0, 1], 'pos': [[2, 3], [2, 3], [2, 3], [2, 3]]}], 'requirements': [[{'patt': [0], 'pos': [[3, 2]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 1]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0], 'pos': [[2, 0]]}, {'patt': [0], 'pos': [[2, 2]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [0, 1], 'pos': [[0, 0], [0, 2]]}, {'patt': [0, 1], 'pos': [[0, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[0, 2], [0, 2]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [0, 1], 'pos': [[2, 1], [2, 1]]}, {'patt': [1, 0], 'pos': [[0, 2], [1, 0]]}, {'patt': [1, 0], 'pos': [[2, 1], [2, 1]]}, {'patt': [0, 1, 2], 'pos': [[0, 0], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[0, 2], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 0], [1, 2], [1, 2]]}, {'patt': [0, 1, 2], 'pos': [[1, 2], [1, 2], [1, 2]]}, {'patt': [1, 2, 0], 'pos': [[1, 2], [1, 2], [1, 0]]}, {'patt': [2, 0, 1], 'pos': [[0, 2], [1, 2], [1, 2]]}, {'patt': [2, 3, 0, 1], 'pos': [[1, 2], [1, 2], [1, 2], [1, 2]]}], 'requirements': [[{'patt': [0], 'pos': [[2, 1]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.row_and_col_separation', 'ignore_parent': True, 'inferrable': True, 'possibly_empty': False, 'strategy_class': 'RowColumnSeparationStrategy', 'workable': True}}, 'rule_class': 'EquivalenceRule'}]}, {'class_module': 'comb_spec_searcher.strategies.rule', 'rule_class': 'EquivalencePathRule', 'rules': [{'class_module': 'comb_spec_searcher.strategies.rule', 'original_rule': {'children': [{'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [], 'pos': []}], 'requirements': []}, {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}, {'patt': [0], 'pos': [[1, 1]]}, {'patt': [0, 1], 'pos': [[0, 1], [0, 1]]}, {'patt': [0, 1], 'pos': [[1, 0], [1, 0]]}, {'patt': [1, 0], 'pos': [[0, 1], [0, 1]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 1]]}]]}], 'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, 'rule_class': 'Rule', 'strategy': {'class_module': 'tilings.strategies.requirement_placement', 'direction': 2, 'gps': [{'patt': [0], 'pos': [[0, 0]]}], 'ignore_parent': False, 'include_empty': True, 'indices': [0], 'own_col': True, 'own_row': True, 'strategy_class': 'RequirementPlacementStrategy'}}, 'rule_class': 'EquivalenceRule'}]}, {'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0], 'pos': [[0, 0]]}], 'requirements': []}, 'rule_class': 'VerificationRule', 'strategy': {'class_module': 'tilings.strategies.verification', 'strategy_class': 'BasicVerificationStrategy'}}, {'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [0, 1], 'pos': [[0, 0], [0, 0]]}, {'patt': [1, 0], 'pos': [[0, 0], [0, 0]]}], 'requirements': [[{'patt': [0], 'pos': [[0, 0]]}]]}, 'rule_class': 'VerificationRule', 'strategy': {'class_module': 'tilings.strategies.verification', 'strategy_class': 'BasicVerificationStrategy'}}, {'class_module': 'comb_spec_searcher.strategies.rule', 'comb_class': {'assumptions': [], 'class_module': 'tilings.tiling', 'comb_class': 'Tiling', 'obstructions': [{'patt': [], 'pos': []}], 'requirements': []}, 'rule_class': 'VerificationRule', 'strategy': {'class_module': 'comb_spec_searcher.strategies.strategy', 'strategy_class': 'EmptyStrategy'}}]}