0.00/0.29 YES 0.00/0.29 property Termination 0.00/0.29 has value True 0.00/0.29 for SRS ( [a, a, c] -> [a, a, a], [c, a, c] -> [a, a, a], [b, b, a] ->= [c, c, c], [c, b, a] ->= [a, c, b], [b, b, b] ->= [b, c, b], [c, a, a] ->= [c, c, a]) 0.00/0.29 reason 0.00/0.29 remap for 6 rules 0.00/0.29 property Termination 0.00/0.29 has value True 0.00/0.29 for SRS ( [0, 0, 1] -> [0, 0, 0], [1, 0, 1] -> [0, 0, 0], [2, 2, 0] ->= [1, 1, 1], [1, 2, 0] ->= [0, 1, 2], [2, 2, 2] ->= [2, 1, 2], [1, 0, 0] ->= [1, 1, 0]) 0.00/0.29 reason 0.00/0.29 weights 0.00/0.29 Map [(2, 2/1)] 0.00/0.29 0.00/0.29 property Termination 0.00/0.29 has value True 0.00/0.29 for SRS ( [0, 0, 1] -> [0, 0, 0], [1, 0, 1] -> [0, 0, 0], [1, 2, 0] ->= [0, 1, 2], [1, 0, 0] ->= [1, 1, 0]) 0.00/0.29 reason 0.00/0.29 Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 2, solver = Minisatapi, verbose = False, tracing = False} 0.00/0.29 interpretation 0.00/0.29 0 / 1 1 \ 0.00/0.29 \ 0 1 / 0.00/0.29 1 / 1 1 \ 0.00/0.29 \ 0 1 / 0.00/0.29 2 / 2 0 \ 0.00/0.29 \ 0 1 / 0.00/0.29 [0, 0, 1] -> [0, 0, 0] 0.00/0.29 lhs rhs ge gt 0.00/0.29 / 1 3 \ / 1 3 \ True False 0.00/0.29 \ 0 1 / \ 0 1 / 0.00/0.29 [1, 0, 1] -> [0, 0, 0] 0.00/0.29 lhs rhs ge gt 0.00/0.29 / 1 3 \ / 1 3 \ True False 0.00/0.29 \ 0 1 / \ 0 1 / 0.00/0.29 [1, 2, 0] ->= [0, 1, 2] 0.00/0.29 lhs rhs ge gt 0.00/0.29 / 2 3 \ / 2 2 \ True True 0.00/0.29 \ 0 1 / \ 0 1 / 0.00/0.29 [1, 0, 0] ->= [1, 1, 0] 0.00/0.29 lhs rhs ge gt 0.00/0.29 / 1 3 \ / 1 3 \ True False 0.00/0.29 \ 0 1 / \ 0 1 / 0.00/0.29 property Termination 0.00/0.29 has value True 0.00/0.29 for SRS ( [0, 0, 1] -> [0, 0, 0], [1, 0, 1] -> [0, 0, 0], [1, 0, 0] ->= [1, 1, 0]) 0.00/0.29 reason 0.00/0.29 Tiling { method = Overlap, width = 2, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 0.00/0.29 using 7 tiles 0.00/0.29 [[0, >], [<, 0], [0, 0], [1, 0], [<, 1], [0, 1], [1, 1]] 0.00/0.29 tile all rules 0.00/0.29 0.00/0.29 property Termination 0.00/0.29 has value True 0.00/0.29 for SRS ( [[<, 0], [0, 0], [0, 1], [1, 0]] -> [[<, 0], [0, 0], [0, 0], [0, 0]], [[<, 0], [0, 0], [0, 1], [1, 1]] -> [[<, 0], [0, 0], [0, 0], [0, 1]], [[0, 0], [0, 0], [0, 1], [1, 0]] -> [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 1], [1, 1]] -> [[0, 0], [0, 0], [0, 0], [0, 1]], [[1, 0], [0, 0], [0, 1], [1, 0]] -> [[1, 0], [0, 0], [0, 0], [0, 0]], [[1, 0], [0, 0], [0, 1], [1, 1]] -> [[1, 0], [0, 0], [0, 0], [0, 1]], [[<, 1], [1, 0], [0, 1], [1, 0]] -> [[<, 0], [0, 0], [0, 0], [0, 0]], [[<, 1], [1, 0], [0, 1], [1, 1]] -> [[<, 0], [0, 0], [0, 0], [0, 1]], [[0, 1], [1, 0], [0, 1], [1, 0]] -> [[0, 0], [0, 0], [0, 0], [0, 0]], [[0, 1], [1, 0], [0, 1], [1, 1]] -> [[0, 0], [0, 0], [0, 0], [0, 1]], [[1, 1], [1, 0], [0, 1], [1, 0]] -> [[1, 0], [0, 0], [0, 0], [0, 0]], [[1, 1], [1, 0], [0, 1], [1, 1]] -> [[1, 0], [0, 0], [0, 0], [0, 1]], [[<, 1], [1, 0], [0, 0], [0, >]] ->= [[<, 1], [1, 1], [1, 0], [0, >]], [[<, 1], [1, 0], [0, 0], [0, 0]] ->= [[<, 1], [1, 1], [1, 0], [0, 0]], [[<, 1], [1, 0], [0, 0], [0, 1]] ->= [[<, 1], [1, 1], [1, 0], [0, 1]], [[0, 1], [1, 0], [0, 0], [0, >]] ->= [[0, 1], [1, 1], [1, 0], [0, >]], [[0, 1], [1, 0], [0, 0], [0, 0]] ->= [[0, 1], [1, 1], [1, 0], [0, 0]], [[0, 1], [1, 0], [0, 0], [0, 1]] ->= [[0, 1], [1, 1], [1, 0], [0, 1]], [[1, 1], [1, 0], [0, 0], [0, >]] ->= [[1, 1], [1, 1], [1, 0], [0, >]], [[1, 1], [1, 0], [0, 0], [0, 0]] ->= [[1, 1], [1, 1], [1, 0], [0, 0]], [[1, 1], [1, 0], [0, 0], [0, 1]] ->= [[1, 1], [1, 1], [1, 0], [0, 1]]) 0.00/0.29 reason 0.00/0.29 remap for 21 rules 0.00/0.29 property Termination 0.00/0.29 has value True 0.00/0.30 for SRS ( [0, 1, 2, 3] -> [0, 1, 1, 1], [0, 1, 2, 4] -> [0, 1, 1, 2], [1, 1, 2, 3] -> [1, 1, 1, 1], [1, 1, 2, 4] -> [1, 1, 1, 2], [3, 1, 2, 3] -> [3, 1, 1, 1], [3, 1, 2, 4] -> [3, 1, 1, 2], [5, 3, 2, 3] -> [0, 1, 1, 1], [5, 3, 2, 4] -> [0, 1, 1, 2], [2, 3, 2, 3] -> [1, 1, 1, 1], [2, 3, 2, 4] -> [1, 1, 1, 2], [4, 3, 2, 3] -> [3, 1, 1, 1], [4, 3, 2, 4] -> [3, 1, 1, 2], [5, 3, 1, 6] ->= [5, 4, 3, 6], [5, 3, 1, 1] ->= [5, 4, 3, 1], [5, 3, 1, 2] ->= [5, 4, 3, 2], [2, 3, 1, 6] ->= [2, 4, 3, 6], [2, 3, 1, 1] ->= [2, 4, 3, 1], [2, 3, 1, 2] ->= [2, 4, 3, 2], [4, 3, 1, 6] ->= [4, 4, 3, 6], [4, 3, 1, 1] ->= [4, 4, 3, 1], [4, 3, 1, 2] ->= [4, 4, 3, 2]) 0.00/0.30 reason 0.00/0.30 weights 0.00/0.30 Map [(2, 7/1), (3, 8/1), (5, 2/1)] 0.00/0.30 0.00/0.30 property Termination 0.00/0.30 has value True 0.00/0.30 for SRS ( [0, 1, 2, 4] -> [0, 1, 1, 2], [1, 1, 2, 4] -> [1, 1, 1, 2], [3, 1, 2, 4] -> [3, 1, 1, 2], [4, 3, 2, 4] -> [3, 1, 1, 2], [5, 3, 1, 6] ->= [5, 4, 3, 6], [5, 3, 1, 1] ->= [5, 4, 3, 1], [5, 3, 1, 2] ->= [5, 4, 3, 2], [2, 3, 1, 6] ->= [2, 4, 3, 6], [2, 3, 1, 1] ->= [2, 4, 3, 1], [2, 3, 1, 2] ->= [2, 4, 3, 2], [4, 3, 1, 6] ->= [4, 4, 3, 6], [4, 3, 1, 1] ->= [4, 4, 3, 1], [4, 3, 1, 2] ->= [4, 4, 3, 2]) 0.00/0.30 reason 0.00/0.30 Tiling { method = Overlap, width = 2, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 0.00/0.30 using 21 tiles 0.00/0.30 [ [1, >] , [2, >] , [6, >] , [<, 0] , [<, 1] , [0, 1] , [1, 1] , [3, 1] , [<, 2] , [1, 2] , [3, 2] , [<, 3] , [2, 3] , [4, 3] , [5, 3] , [<, 4] , [2, 4] , [4, 4] , [5, 4] , [<, 5] , [3, 6] ] 0.00/0.30 remove some unmatched rules 0.00/0.30 0.00/0.30 property Termination 0.00/0.30 has value True 0.00/0.30 for SRS ( [[0], [1], [2], [4]] -> [[0], [1], [1], [2]], [[1], [1], [2], [4]] -> [[1], [1], [1], [2]], [[3], [1], [2], [4]] -> [[3], [1], [1], [2]], [[4], [3], [2], [4]] -> [[3], [1], [1], [2]], [[5], [3], [1], [1]] ->= [[5], [4], [3], [1]], [[5], [3], [1], [2]] ->= [[5], [4], [3], [2]], [[2], [3], [1], [1]] ->= [[2], [4], [3], [1]], [[2], [3], [1], [2]] ->= [[2], [4], [3], [2]], [[4], [3], [1], [1]] ->= [[4], [4], [3], [1]], [[4], [3], [1], [2]] ->= [[4], [4], [3], [2]]) 0.00/0.30 reason 0.00/0.30 remap for 10 rules 0.00/0.30 property Termination 0.00/0.30 has value True 0.00/0.30 for SRS ( [0, 1, 2, 3] -> [0, 1, 1, 2], [1, 1, 2, 3] -> [1, 1, 1, 2], [4, 1, 2, 3] -> [4, 1, 1, 2], [3, 4, 2, 3] -> [4, 1, 1, 2], [5, 4, 1, 1] ->= [5, 3, 4, 1], [5, 4, 1, 2] ->= [5, 3, 4, 2], [2, 4, 1, 1] ->= [2, 3, 4, 1], [2, 4, 1, 2] ->= [2, 3, 4, 2], [3, 4, 1, 1] ->= [3, 3, 4, 1], [3, 4, 1, 2] ->= [3, 3, 4, 2]) 0.00/0.30 reason 0.00/0.30 Tiling { method = Overlap, width = 3, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 0.00/0.30 using 38 tiles 0.00/0.30 [ [1, 2, >] , [4, 1, >] , [4, 2, >] , [<, <, 0] , [<, <, 1] , [<, 0, 1] , [<, 1, 1] , [<, 4, 1] , [0, 1, 1] , [1, 1, 1] , [2, 4, 1] , [3, 4, 1] , [4, 1, 1] , [5, 4, 1] , [<, <, 2] , [1, 1, 2] , [2, 4, 2] , [3, 4, 2] , [4, 1, 2] , [<, <, 3] , [<, 2, 3] , [<, 3, 3] , [<, 5, 3] , [1, 2, 3] , [2, 3, 3] , [3, 3, 3] , [4, 2, 3] , [5, 3, 3] , [<, <, 4] , [<, 2, 4] , [<, 3, 4] , [<, 5, 4] , [1, 2, 4] , [2, 3, 4] , [3, 3, 4] , [4, 2, 4] , [5, 3, 4] , [<, <, 5] ] 0.00/0.30 remove some unmatched rules 0.00/0.30 0.00/0.30 property Termination 0.00/0.30 has value True 0.00/0.30 for SRS ( [[1], [1], [2], [3]] -> [[1], [1], [1], [2]], [[4], [1], [2], [3]] -> [[4], [1], [1], [2]], [[3], [4], [2], [3]] -> [[4], [1], [1], [2]], [[5], [4], [1], [1]] ->= [[5], [3], [4], [1]], [[5], [4], [1], [2]] ->= [[5], [3], [4], [2]], [[2], [4], [1], [1]] ->= [[2], [3], [4], [1]], [[2], [4], [1], [2]] ->= [[2], [3], [4], [2]], [[3], [4], [1], [1]] ->= [[3], [3], [4], [1]], [[3], [4], [1], [2]] ->= [[3], [3], [4], [2]]) 0.00/0.30 reason 0.00/0.30 remap for 9 rules 0.00/0.30 property Termination 0.00/0.30 has value True 0.00/0.30 for SRS ( [0, 0, 1, 2] -> [0, 0, 0, 1], [3, 0, 1, 2] -> [3, 0, 0, 1], [2, 3, 1, 2] -> [3, 0, 0, 1], [4, 3, 0, 0] ->= [4, 2, 3, 0], [4, 3, 0, 1] ->= [4, 2, 3, 1], [1, 3, 0, 0] ->= [1, 2, 3, 0], [1, 3, 0, 1] ->= [1, 2, 3, 1], [2, 3, 0, 0] ->= [2, 2, 3, 0], [2, 3, 0, 1] ->= [2, 2, 3, 1]) 0.00/0.30 reason 0.00/0.30 Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 2, solver = Minisatapi, verbose = False, tracing = False} 0.00/0.30 interpretation 0.00/0.30 0 / 1 1 \ 0.00/0.30 \ 0 1 / 0.00/0.30 1 / 2 0 \ 0.00/0.30 \ 0 1 / 0.00/0.30 2 / 1 1 \ 0.00/0.30 \ 0 1 / 0.00/0.30 3 / 1 0 \ 0.00/0.30 \ 0 1 / 0.00/0.30 4 / 2 1 \ 0.00/0.30 \ 0 1 / 0.00/0.30 [0, 0, 1, 2] -> [0, 0, 0, 1] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 2 4 \ / 2 3 \ True True 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 [3, 0, 1, 2] -> [3, 0, 0, 1] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 2 3 \ / 2 2 \ True True 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 [2, 3, 1, 2] -> [3, 0, 0, 1] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 2 3 \ / 2 2 \ True True 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 [4, 3, 0, 0] ->= [4, 2, 3, 0] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 2 5 \ / 2 5 \ True False 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 [4, 3, 0, 1] ->= [4, 2, 3, 1] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 4 3 \ / 4 3 \ True False 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 [1, 3, 0, 0] ->= [1, 2, 3, 0] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 2 4 \ / 2 4 \ True False 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 [1, 3, 0, 1] ->= [1, 2, 3, 1] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 4 2 \ / 4 2 \ True False 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 [2, 3, 0, 0] ->= [2, 2, 3, 0] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 1 3 \ / 1 3 \ True False 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 [2, 3, 0, 1] ->= [2, 2, 3, 1] 0.00/0.30 lhs rhs ge gt 0.00/0.30 / 2 2 \ / 2 2 \ True False 0.00/0.30 \ 0 1 / \ 0 1 / 0.00/0.30 property Termination 0.00/0.30 has value True 0.00/0.30 for SRS ( [4, 3, 0, 0] ->= [4, 2, 3, 0], [4, 3, 0, 1] ->= [4, 2, 3, 1], [1, 3, 0, 0] ->= [1, 2, 3, 0], [1, 3, 0, 1] ->= [1, 2, 3, 1], [2, 3, 0, 0] ->= [2, 2, 3, 0], [2, 3, 0, 1] ->= [2, 2, 3, 1]) 0.00/0.30 reason 0.00/0.30 has no strict rules 0.00/0.30 0.00/0.30 ************************************************** 0.00/0.30 summary 0.00/0.30 ************************************************** 0.00/0.30 SRS with 6 rules on 3 letters Remap { tracing = False} 0.00/0.30 SRS with 6 rules on 3 letters weights 0.00/0.30 SRS with 4 rules on 3 letters Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 2, solver = Minisatapi, verbose = False, tracing = False} 0.00/0.30 SRS with 3 rules on 2 letters tile all, by Tiling { method = Overlap, width = 2, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 0.00/0.30 SRS with 21 rules on 7 letters Remap { tracing = False} 0.00/0.30 SRS with 21 rules on 7 letters weights 0.00/0.30 SRS with 13 rules on 7 letters remove some, by Tiling { method = Overlap, width = 2, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 0.00/0.30 SRS with 10 rules on 6 letters Remap { tracing = False} 0.00/0.30 SRS with 10 rules on 6 letters remove some, by Tiling { method = Overlap, width = 3, state_type = Bit64, map_type = Enum, verbose = False, tracing = False} 0.00/0.30 SRS with 9 rules on 5 letters Remap { tracing = False} 0.00/0.30 SRS with 9 rules on 5 letters Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 2, solver = Minisatapi, verbose = False, tracing = False} 0.00/0.30 SRS with 6 rules on 5 letters has no strict rules 0.00/0.30 0.00/0.30 ************************************************** 0.00/0.30 (6, 3)\Weight(4, 3)\Matrix{\Natural}{2}(3, 2)\TileAllROC{2}(21, 7)\Weight(13, 7)\TileRemoveROC{2}(10, 6)\TileRemoveROC{3}(9, 5)\Matrix{\Natural}{2}(6, 5)[] 0.00/0.30 ************************************************** 0.00/0.30 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))))))} 0.00/0.30 in Apply (Worker Remap) method 0.00/0.31 EOF