31.55/8.10 YES 31.55/8.10 property Termination 31.55/8.10 has value True 31.55/8.10 for SRS ( [c, c, c] -> [c, a, a], [b, a, b] -> [b, b, c], [c, a, a] -> [c, b, a], [b, a, a] -> [a, b, c], [b, b, c] -> [a, a, c], [a, c, c] ->= [b, a, c]) 31.55/8.10 reason 31.55/8.10 remap for 6 rules 31.55/8.10 property Termination 31.55/8.10 has value True 31.94/8.10 for SRS ( [0, 0, 0] -> [0, 1, 1], [2, 1, 2] -> [2, 2, 0], [0, 1, 1] -> [0, 2, 1], [2, 1, 1] -> [1, 2, 0], [2, 2, 0] -> [1, 1, 0], [1, 0, 0] ->= [2, 1, 0]) 31.94/8.10 reason 31.94/8.10 Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 4, solver = Minisatapi, verbose = False, tracing = False} 31.94/8.10 interpretation 31.94/8.10 0 St / 1 2 0 0 \ 31.94/8.10 | 0 1 1 1 | 31.94/8.10 | 0 0 0 0 | 31.94/8.10 \ 0 0 0 1 / 31.94/8.10 1 St / 1 1 2 0 \ 31.94/8.10 | 0 0 0 1 | 31.94/8.11 | 0 1 1 0 | 31.94/8.11 \ 0 0 0 1 / 31.94/8.11 2 St / 1 1 2 0 \ 31.94/8.11 | 0 0 0 1 | 31.94/8.11 | 0 1 1 0 | 31.94/8.11 \ 0 0 0 1 / 31.94/8.11 [0, 0, 0] -> [0, 1, 1] 31.94/8.11 lhs rhs ge gt 31.94/8.11 St / 1 6 4 6 \ St / 1 3 4 3 \ True True 31.94/8.11 | 0 1 1 3 | | 0 1 1 3 | 31.94/8.11 | 0 0 0 0 | | 0 0 0 0 | 31.94/8.11 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.11 [2, 1, 2] -> [2, 2, 0] 31.94/8.12 lhs rhs ge gt 31.94/8.12 St / 1 5 6 4 \ St / 1 5 3 4 \ True False 31.94/8.12 | 0 0 0 1 | | 0 0 0 1 | 31.94/8.12 | 0 1 1 2 | | 0 1 1 2 | 31.94/8.12 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.12 [0, 1, 1] -> [0, 2, 1] 31.94/8.12 lhs rhs ge gt 31.94/8.12 St / 1 3 4 3 \ St / 1 3 4 3 \ True False 31.94/8.12 | 0 1 1 3 | | 0 1 1 3 | 31.94/8.12 | 0 0 0 0 | | 0 0 0 0 | 31.94/8.12 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.12 [2, 1, 1] -> [1, 2, 0] 31.94/8.13 lhs rhs ge gt 31.94/8.13 St / 1 5 6 4 \ St / 1 5 3 4 \ True False 31.94/8.13 | 0 0 0 1 | | 0 0 0 1 | 31.94/8.13 | 0 1 1 2 | | 0 1 1 2 | 31.94/8.13 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.13 [2, 2, 0] -> [1, 1, 0] 31.94/8.13 lhs rhs ge gt 31.94/8.13 St / 1 5 3 4 \ St / 1 5 3 4 \ True False 31.94/8.13 | 0 0 0 1 | | 0 0 0 1 | 31.94/8.13 | 0 1 1 2 | | 0 1 1 2 | 31.94/8.13 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.13 [1, 0, 0] ->= [2, 1, 0] 31.94/8.14 lhs rhs ge gt 31.94/8.14 St / 1 5 3 4 \ St / 1 5 3 4 \ True False 31.94/8.14 | 0 0 0 1 | | 0 0 0 1 | 31.94/8.14 | 0 1 1 2 | | 0 1 1 2 | 31.94/8.14 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.14 property Termination 31.94/8.14 has value True 31.94/8.14 for SRS ( [2, 1, 2] -> [2, 2, 0], [0, 1, 1] -> [0, 2, 1], [2, 1, 1] -> [1, 2, 0], [2, 2, 0] -> [1, 1, 0], [1, 0, 0] ->= [2, 1, 0]) 31.94/8.14 reason 31.94/8.14 Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 4, solver = Minisatapi, verbose = False, tracing = False} 31.94/8.14 interpretation 31.94/8.14 0 St / 1 0 0 1 \ 31.94/8.14 | 0 0 0 1 | 31.94/8.14 | 0 0 0 0 | 31.94/8.14 \ 0 0 0 1 / 31.94/8.14 1 St / 1 1 0 1 \ 31.94/8.14 | 0 0 1 0 | 31.94/8.15 | 0 0 0 3 | 31.94/8.15 \ 0 0 0 1 / 31.94/8.15 2 St / 1 1 0 0 \ 31.94/8.15 | 0 2 0 0 | 31.94/8.15 | 0 0 0 3 | 31.94/8.15 \ 0 0 0 1 / 31.94/8.15 [2, 1, 2] -> [2, 2, 0] 31.94/8.15 lhs rhs ge gt 31.94/8.15 St / 1 3 0 4 \ St / 1 0 0 4 \ True False 31.94/8.15 | 0 0 0 6 | | 0 0 0 4 | 31.94/8.15 | 0 0 0 3 | | 0 0 0 3 | 31.94/8.15 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.15 [0, 1, 1] -> [0, 2, 1] 31.94/8.16 lhs rhs ge gt 31.94/8.16 St / 1 1 1 3 \ St / 1 1 1 2 \ True True 31.94/8.16 | 0 0 0 1 | | 0 0 0 1 | 31.94/8.16 | 0 0 0 0 | | 0 0 0 0 | 31.94/8.16 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.16 [2, 1, 1] -> [1, 2, 0] 31.94/8.16 lhs rhs ge gt 31.94/8.16 St / 1 1 1 5 \ St / 1 0 0 5 \ True False 31.94/8.16 | 0 0 0 6 | | 0 0 0 3 | 31.94/8.16 | 0 0 0 3 | | 0 0 0 3 | 31.94/8.16 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.16 [2, 2, 0] -> [1, 1, 0] 31.94/8.17 lhs rhs ge gt 31.94/8.17 St / 1 0 0 4 \ St / 1 0 0 4 \ True False 31.94/8.17 | 0 0 0 4 | | 0 0 0 3 | 31.94/8.17 | 0 0 0 3 | | 0 0 0 3 | 31.94/8.17 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.17 [1, 0, 0] ->= [2, 1, 0] 31.94/8.17 lhs rhs ge gt 31.94/8.17 St / 1 0 0 4 \ St / 1 0 0 3 \ True True 31.94/8.17 | 0 0 0 0 | | 0 0 0 0 | 31.94/8.17 | 0 0 0 3 | | 0 0 0 3 | 31.94/8.17 \ 0 0 0 1 / \ 0 0 0 1 / 31.94/8.17 property Termination 31.94/8.17 has value True 31.94/8.17 for SRS ( [2, 1, 2] -> [2, 2, 0], [2, 1, 1] -> [1, 2, 0], [2, 2, 0] -> [1, 1, 0]) 31.94/8.17 reason 31.94/8.17 weights 31.94/8.17 Map [(1, 2/1), (2, 5/2)] 31.94/8.17 31.94/8.17 property Termination 31.94/8.17 has value True 31.94/8.17 for SRS ( ) 31.94/8.17 reason 31.94/8.17 has no strict rules 31.94/8.17 31.94/8.17 ************************************************** 31.94/8.17 summary 31.94/8.17 ************************************************** 31.94/8.17 SRS with 6 rules on 3 letters Remap { tracing = False} 31.94/8.17 SRS with 6 rules on 3 letters Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 4, solver = Minisatapi, verbose = False, tracing = False} 31.94/8.17 SRS with 5 rules on 3 letters Matrix { monotone = Strict, domain = Natural, bits = 3, dim = 4, solver = Minisatapi, verbose = False, tracing = False} 31.94/8.17 SRS with 3 rules on 3 letters weights 31.94/8.17 SRS with 0 rules on 0 letters has no strict rules 31.94/8.17 31.94/8.17 ************************************************** 31.94/8.17 (6, 3)\Matrix{\Natural}{4}(5, 3)\Matrix{\Natural}{4}(3, 3)\Weight(0, 0)[] 31.94/8.17 ************************************************** 31.94/8.18 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))))))} 31.94/8.18 in Apply (Worker Remap) method 32.26/8.23 EOF