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