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