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