7.02/1.79 YES 7.02/1.79 property Termination 7.02/1.79 has value True 7.02/1.79 for SRS ( [a] -> [b, c], [a, b] -> [b, a], [a, c] -> [c, a], [d, c] ->= [d, a], [d, a] ->= [d, c, b]) 7.02/1.79 reason 7.02/1.79 remap for 5 rules 7.02/1.79 property Termination 7.02/1.79 has value True 7.02/1.79 for SRS ( [0] -> [1, 2], [0, 1] -> [1, 0], [0, 2] -> [2, 0], [3, 2] ->= [3, 0], [3, 0] ->= [3, 2, 1]) 7.02/1.79 reason 7.02/1.79 Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 3, solver = Minisatapi, verbose = False, tracing = False} 7.02/1.79 interpretation 7.02/1.79 0 St / 1 0 3 \ 7.02/1.79 | 0 1 2 | 7.02/1.79 \ 0 0 1 / 7.02/1.79 1 St / 1 0 0 \ 7.02/1.79 | 0 0 0 | 7.02/1.79 \ 0 0 1 / 7.02/1.79 2 St / 1 0 1 \ 7.02/1.79 | 0 1 3 | 7.02/1.79 \ 0 0 1 / 7.02/1.79 3 St / 1 2 0 \ 7.02/1.79 | 0 0 7 | 7.02/1.79 \ 0 0 1 / 7.02/1.79 [0] -> [1, 2] 7.02/1.79 lhs rhs ge gt 7.02/1.79 St / 1 0 3 \ St / 1 0 1 \ True True 7.02/1.79 | 0 1 2 | | 0 0 0 | 7.02/1.79 \ 0 0 1 / \ 0 0 1 / 7.02/1.79 [0, 1] -> [1, 0] 7.02/1.79 lhs rhs ge gt 7.02/1.79 St / 1 0 3 \ St / 1 0 3 \ True False 7.02/1.79 | 0 0 2 | | 0 0 0 | 7.02/1.79 \ 0 0 1 / \ 0 0 1 / 7.02/1.79 [0, 2] -> [2, 0] 7.02/1.79 lhs rhs ge gt 7.02/1.79 St / 1 0 4 \ St / 1 0 4 \ True False 7.02/1.79 | 0 1 5 | | 0 1 5 | 7.02/1.79 \ 0 0 1 / \ 0 0 1 / 7.02/1.79 [3, 2] ->= [3, 0] 7.02/1.79 lhs rhs ge gt 7.02/1.79 St / 1 2 7 \ St / 1 2 7 \ True False 7.02/1.79 | 0 0 7 | | 0 0 7 | 7.02/1.79 \ 0 0 1 / \ 0 0 1 / 7.02/1.79 [3, 0] ->= [3, 2, 1] 7.02/1.79 lhs rhs ge gt 7.02/1.79 St / 1 2 7 \ St / 1 0 7 \ True False 7.02/1.79 | 0 0 7 | | 0 0 7 | 7.02/1.79 \ 0 0 1 / \ 0 0 1 / 7.02/1.79 property Termination 7.02/1.79 has value True 7.02/1.79 for SRS ( [0, 1] -> [1, 0], [0, 2] -> [2, 0], [3, 2] ->= [3, 0], [3, 0] ->= [3, 2, 1]) 7.02/1.79 reason 7.02/1.79 Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 3, solver = Minisatapi, verbose = False, tracing = False} 7.02/1.79 interpretation 7.02/1.79 0 St / 2 0 0 \ 7.02/1.79 | 1 0 1 | 7.02/1.79 \ 0 0 1 / 7.02/1.79 1 St / 1 0 0 \ 7.02/1.79 | 0 0 0 | 7.02/1.79 \ 0 0 1 / 7.02/1.79 2 St / 2 0 2 \ 7.02/1.79 | 1 0 0 | 7.02/1.79 \ 0 0 1 / 7.02/1.79 3 St / 1 2 2 \ 7.02/1.79 | 0 0 4 | 7.02/1.79 \ 0 0 1 / 7.02/1.79 [0, 1] -> [1, 0] 7.02/1.79 lhs rhs ge gt 7.02/1.79 St / 2 0 0 \ St / 2 0 0 \ True False 7.02/1.79 | 1 0 1 | | 0 0 0 | 7.02/1.79 \ 0 0 1 / \ 0 0 1 / 7.02/1.79 [0, 2] -> [2, 0] 7.02/1.80 lhs rhs ge gt 7.02/1.80 St / 4 0 4 \ St / 4 0 2 \ True True 7.02/1.80 | 2 0 3 | | 2 0 0 | 7.02/1.80 \ 0 0 1 / \ 0 0 1 / 7.02/1.80 [3, 2] ->= [3, 0] 7.02/1.80 lhs rhs ge gt 7.02/1.80 St / 4 0 4 \ St / 4 0 4 \ True False 7.02/1.80 | 0 0 4 | | 0 0 4 | 7.02/1.80 \ 0 0 1 / \ 0 0 1 / 7.02/1.80 [3, 0] ->= [3, 2, 1] 7.02/1.80 lhs rhs ge gt 7.02/1.80 St / 4 0 4 \ St / 4 0 4 \ True False 7.02/1.80 | 0 0 4 | | 0 0 4 | 7.02/1.80 \ 0 0 1 / \ 0 0 1 / 7.02/1.80 property Termination 7.02/1.80 has value True 7.02/1.80 for SRS ( [0, 1] -> [1, 0], [3, 2] ->= [3, 0], [3, 0] ->= [3, 2, 1]) 7.02/1.80 reason 7.02/1.80 Tiling { method = Overlap, width = 2, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 7.02/1.80 using 12 tiles 7.02/1.80 [ [0, >] , [1, >] , [0, 0] , [1, 0] , [3, 0] , [<, 1] , [0, 1] , [1, 1] , [2, 1] , [3, 1] , [3, 2] , [<, 3] ] 7.02/1.80 tile all rules 7.02/1.80 7.02/1.80 property Termination 7.02/1.80 has value True 7.02/1.80 for SRS ( [[0, 0], [0, 1], [1, >]] -> [[0, 1], [1, 0], [0, >]], [[0, 0], [0, 1], [1, 0]] -> [[0, 1], [1, 0], [0, 0]], [[0, 0], [0, 1], [1, 1]] -> [[0, 1], [1, 0], [0, 1]], [[1, 0], [0, 1], [1, >]] -> [[1, 1], [1, 0], [0, >]], [[1, 0], [0, 1], [1, 0]] -> [[1, 1], [1, 0], [0, 0]], [[1, 0], [0, 1], [1, 1]] -> [[1, 1], [1, 0], [0, 1]], [[3, 0], [0, 1], [1, >]] -> [[3, 1], [1, 0], [0, >]], [[3, 0], [0, 1], [1, 0]] -> [[3, 1], [1, 0], [0, 0]], [[3, 0], [0, 1], [1, 1]] -> [[3, 1], [1, 0], [0, 1]], [[<, 3], [3, 2], [2, 1]] ->= [[<, 3], [3, 0], [0, 1]], [[<, 3], [3, 0], [0, >]] ->= [[<, 3], [3, 2], [2, 1], [1, >]], [[<, 3], [3, 0], [0, 0]] ->= [[<, 3], [3, 2], [2, 1], [1, 0]], [[<, 3], [3, 0], [0, 1]] ->= [[<, 3], [3, 2], [2, 1], [1, 1]]) 7.02/1.80 reason 7.02/1.80 remap for 13 rules 7.02/1.80 property Termination 7.02/1.80 has value True 7.02/1.80 for SRS ( [0, 1, 2] -> [1, 3, 4], [0, 1, 3] -> [1, 3, 0], [0, 1, 5] -> [1, 3, 1], [3, 1, 2] -> [5, 3, 4], [3, 1, 3] -> [5, 3, 0], [3, 1, 5] -> [5, 3, 1], [6, 1, 2] -> [7, 3, 4], [6, 1, 3] -> [7, 3, 0], [6, 1, 5] -> [7, 3, 1], [8, 9, 10] ->= [8, 6, 1], [8, 6, 4] ->= [8, 9, 10, 2], [8, 6, 0] ->= [8, 9, 10, 3], [8, 6, 1] ->= [8, 9, 10, 5]) 7.02/1.80 reason 7.02/1.80 weights 7.02/1.80 Map [(6, 1/3), (9, 1/3)] 7.02/1.80 7.02/1.80 property Termination 7.02/1.80 has value True 7.02/1.80 for SRS ( [0, 1, 2] -> [1, 3, 4], [0, 1, 3] -> [1, 3, 0], [0, 1, 5] -> [1, 3, 1], [3, 1, 2] -> [5, 3, 4], [3, 1, 3] -> [5, 3, 0], [3, 1, 5] -> [5, 3, 1], [8, 9, 10] ->= [8, 6, 1], [8, 6, 4] ->= [8, 9, 10, 2], [8, 6, 0] ->= [8, 9, 10, 3], [8, 6, 1] ->= [8, 9, 10, 5]) 7.02/1.80 reason 7.02/1.80 Tiling { method = Overlap, width = 2, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 7.02/1.80 using 28 tiles 7.02/1.80 [ [0, >] , [1, >] , [2, >] , [3, >] , [4, >] , [5, >] , [0, 0] , [3, 0] , [<, 1] , [0, 1] , [3, 1] , [6, 1] , [1, 2] , [5, 2] , [10, 2] , [1, 3] , [5, 3] , [10, 3] , [0, 4] , [3, 4] , [<, 5] , [1, 5] , [5, 5] , [10, 5] , [8, 6] , [<, 8] , [8, 9] , [9, 10] ] 7.02/1.80 remove some unmatched rules 7.02/1.80 7.02/1.80 property Termination 7.02/1.80 has value True 7.02/1.80 for SRS ( [[0], [1], [2]] -> [[1], [3], [4]], [[0], [1], [3]] -> [[1], [3], [0]], [[0], [1], [5]] -> [[1], [3], [1]], [[3], [1], [2]] -> [[5], [3], [4]], [[3], [1], [3]] -> [[5], [3], [0]], [[3], [1], [5]] -> [[5], [3], [1]], [[8], [9], [10]] ->= [[8], [6], [1]], [[8], [6], [1]] ->= [[8], [9], [10], [5]]) 7.02/1.80 reason 7.02/1.80 remap for 8 rules 7.02/1.80 property Termination 7.02/1.80 has value True 7.02/1.80 for SRS ( [0, 1, 2] -> [1, 3, 4], [0, 1, 3] -> [1, 3, 0], [0, 1, 5] -> [1, 3, 1], [3, 1, 2] -> [5, 3, 4], [3, 1, 3] -> [5, 3, 0], [3, 1, 5] -> [5, 3, 1], [6, 7, 8] ->= [6, 9, 1], [6, 9, 1] ->= [6, 7, 8, 5]) 7.02/1.80 reason 7.02/1.80 weights 7.02/1.80 Map [(2, 2/1)] 7.02/1.80 7.02/1.80 property Termination 7.02/1.80 has value True 7.02/1.80 for SRS ( [0, 1, 3] -> [1, 3, 0], [0, 1, 5] -> [1, 3, 1], [3, 1, 3] -> [5, 3, 0], [3, 1, 5] -> [5, 3, 1], [6, 7, 8] ->= [6, 9, 1], [6, 9, 1] ->= [6, 7, 8, 5]) 7.02/1.80 reason 7.02/1.80 Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 3, solver = Minisatapi, verbose = False, tracing = False} 7.02/1.80 interpretation 7.02/1.80 0 St / 2 1 0 \ 7.02/1.80 | 0 2 0 | 7.02/1.80 \ 0 0 1 / 7.02/1.80 1 St / 1 0 0 \ 7.02/1.80 | 0 1 0 | 7.02/1.80 \ 0 0 1 / 7.02/1.80 3 St / 2 1 0 \ 7.02/1.80 | 0 2 1 | 7.02/1.80 \ 0 0 1 / 7.02/1.80 5 St / 1 0 0 \ 7.02/1.80 | 0 1 2 | 7.02/1.80 \ 0 0 1 / 7.02/1.80 6 St / 1 1 0 \ 7.02/1.80 | 0 0 5 | 7.02/1.80 \ 0 0 1 / 7.02/1.80 7 St / 1 1 0 \ 7.02/1.80 | 1 0 2 | 7.02/1.80 \ 0 0 1 / 7.02/1.80 8 St / 1 0 0 \ 7.02/1.80 | 0 0 0 | 7.02/1.80 \ 0 0 1 / 7.02/1.80 9 St / 1 0 2 \ 7.02/1.80 | 1 0 0 | 7.02/1.80 \ 0 0 1 / 7.02/1.80 [0, 1, 3] -> [1, 3, 0] 7.02/1.80 lhs rhs ge gt 7.02/1.80 St / 4 4 1 \ St / 4 4 0 \ True True 7.02/1.80 | 0 4 2 | | 0 4 1 | 7.02/1.80 \ 0 0 1 / \ 0 0 1 / 7.02/1.80 [0, 1, 5] -> [1, 3, 1] 7.02/1.80 lhs rhs ge gt 7.02/1.80 St / 2 1 2 \ St / 2 1 0 \ True True 7.02/1.80 | 0 2 4 | | 0 2 1 | 7.02/1.80 \ 0 0 1 / \ 0 0 1 / 7.02/1.80 [3, 1, 3] -> [5, 3, 0] 7.08/1.80 lhs rhs ge gt 7.08/1.80 St / 4 4 1 \ St / 4 4 0 \ True True 7.08/1.80 | 0 4 3 | | 0 4 3 | 7.08/1.80 \ 0 0 1 / \ 0 0 1 / 7.08/1.80 [3, 1, 5] -> [5, 3, 1] 7.08/1.80 lhs rhs ge gt 7.08/1.80 St / 2 1 2 \ St / 2 1 0 \ True True 7.08/1.80 | 0 2 5 | | 0 2 3 | 7.08/1.80 \ 0 0 1 / \ 0 0 1 / 7.08/1.80 [6, 7, 8] ->= [6, 9, 1] 7.08/1.80 lhs rhs ge gt 7.08/1.80 St / 2 0 2 \ St / 2 0 2 \ True False 7.08/1.80 | 0 0 5 | | 0 0 5 | 7.08/1.80 \ 0 0 1 / \ 0 0 1 / 7.08/1.81 [6, 9, 1] ->= [6, 7, 8, 5] 7.08/1.81 lhs rhs ge gt 7.08/1.81 St / 2 0 2 \ St / 2 0 2 \ True False 7.08/1.81 | 0 0 5 | | 0 0 5 | 7.08/1.81 \ 0 0 1 / \ 0 0 1 / 7.08/1.81 property Termination 7.08/1.81 has value True 7.08/1.81 for SRS ( [6, 7, 8] ->= [6, 9, 1], [6, 9, 1] ->= [6, 7, 8, 5]) 7.08/1.81 reason 7.08/1.81 has no strict rules 7.08/1.81 7.08/1.81 ************************************************** 7.08/1.81 summary 7.08/1.81 ************************************************** 7.08/1.81 SRS with 5 rules on 4 letters Remap { tracing = False} 7.08/1.81 SRS with 5 rules on 4 letters Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 3, solver = Minisatapi, verbose = False, tracing = False} 7.08/1.81 SRS with 4 rules on 4 letters Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 3, solver = Minisatapi, verbose = False, tracing = False} 7.08/1.81 SRS with 3 rules on 4 letters tile all, by Tiling { method = Overlap, width = 2, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 7.08/1.81 SRS with 13 rules on 11 letters Remap { tracing = False} 7.08/1.81 SRS with 13 rules on 11 letters weights 7.08/1.81 SRS with 10 rules on 10 letters remove some, by Tiling { method = Overlap, width = 2, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 7.08/1.81 SRS with 8 rules on 10 letters Remap { tracing = False} 7.08/1.81 SRS with 8 rules on 10 letters weights 7.08/1.81 SRS with 6 rules on 8 letters Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 3, solver = Minisatapi, verbose = False, tracing = False} 7.08/1.81 SRS with 2 rules on 6 letters has no strict rules 7.08/1.81 7.08/1.81 ************************************************** 7.08/1.81 (5, 4)\Matrix{\Natural}{3}(4, 4)\Matrix{\Natural}{3}(3, 4)\TileAllROC{2}(13, 11)\Weight(10, 10)\TileRemoveROC{2}(8, 10)\Weight(6, 8)\Matrix{\Natural}{3}(2, 6)[] 7.08/1.81 ************************************************** 7.08/1.81 let { done = Worker No_Strict_Rules;mo = Pre (Or_Else Count (IfSizeLeq 10000 GLPK Fail));wop = Or_Else (Worker (Weight { modus = mo})) Pass;weighted = \ m -> And_Then m wop;when_small = \ m -> And_Then (Worker (SizeAtmost 100)) m;when_medium = \ m -> And_Then (Worker (SizeAtmost 10000)) m;tiling = \ m w -> weighted (And_Then (Worker (Tiling { method = m,width = w})) (Worker Remap));matrix = \ mo dom dim bits -> weighted (Worker (Matrix { monotone = mo,domain = dom,dim = dim,bits = bits}));kbo = \ b -> weighted (Worker (KBO { bits = b,solver = Minisatapi}));method = Apply wop (Tree_Search_Preemptive 0 done ([ ] <> ([ when_medium (kbo 1), when_medium (And_Then (Worker Mirror) (kbo 1))] <> ((for [ 3, 4] (\ d -> when_small (matrix Strict Natural d 3))) <> (for [ 2, 3, 5, 8] (\ w -> tiling Overlap w))))))} 7.08/1.81 in Apply (Worker Remap) method 7.11/1.83 EOF