3.43/1.77 YES 3.43/1.77 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 3.43/1.77 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.43/1.77 3.43/1.77 3.43/1.77 Quasi decreasingness of the given CTRS could be proven: 3.43/1.77 3.43/1.77 (0) CTRS 3.43/1.77 (1) CTRSToQTRSProof [SOUND, 0 ms] 3.43/1.77 (2) QTRS 3.43/1.77 (3) QTRSRRRProof [EQUIVALENT, 141 ms] 3.43/1.77 (4) QTRS 3.43/1.77 (5) RisEmptyProof [EQUIVALENT, 0 ms] 3.43/1.77 (6) YES 3.43/1.77 3.43/1.77 3.43/1.77 ---------------------------------------- 3.43/1.77 3.43/1.77 (0) 3.43/1.77 Obligation: 3.43/1.77 Conditional term rewrite system: 3.43/1.77 The TRS R consists of the following rules: 3.43/1.77 3.43/1.77 split(x, nil) -> tp2(nil, nil) 3.43/1.77 le(0, y) -> true 3.43/1.77 le(s(x), 0) -> false 3.43/1.77 le(s(x), s(y)) -> le(x, y) 3.43/1.77 3.43/1.77 The conditional TRS C consists of the following conditional rules: 3.43/1.77 3.43/1.77 split(x, cons(y, ys)) -> tp2(zs1, cons(y, zs2)) <= split(x, ys) -> tp2(zs1, zs2), le(x, y) -> true 3.43/1.77 split(x, cons(y, ys)) -> tp2(cons(y, zs1), zs2) <= split(x, ys) -> tp2(zs1, zs2), le(x, y) -> false 3.43/1.77 3.43/1.77 3.43/1.77 ---------------------------------------- 3.43/1.77 3.43/1.77 (1) CTRSToQTRSProof (SOUND) 3.43/1.77 The conditional rules have been transormed into unconditional rules according to [CTRS,AAECCNOC]. 3.43/1.77 ---------------------------------------- 3.43/1.77 3.43/1.77 (2) 3.43/1.77 Obligation: 3.43/1.77 Q restricted rewrite system: 3.43/1.77 The TRS R consists of the following rules: 3.43/1.77 3.43/1.77 split(x, cons(y, ys)) -> U1(split(x, ys), x, y) 3.43/1.77 U1(tp2(zs1, zs2), x, y) -> U2(le(x, y), y, zs1, zs2) 3.43/1.77 U2(false, y, zs1, zs2) -> tp2(cons(y, zs1), zs2) 3.43/1.77 U2(true, y, zs1, zs2) -> tp2(zs1, cons(y, zs2)) 3.43/1.77 split(x, nil) -> tp2(nil, nil) 3.43/1.77 le(0, y) -> true 3.43/1.77 le(s(x), 0) -> false 3.43/1.77 le(s(x), s(y)) -> le(x, y) 3.43/1.77 3.43/1.77 Q is empty. 3.43/1.77 3.43/1.77 ---------------------------------------- 3.43/1.77 3.43/1.77 (3) QTRSRRRProof (EQUIVALENT) 3.43/1.77 Used ordering: 3.43/1.77 Quasi precedence: 3.43/1.77 split_2 > U1_3 > U2_4 > [cons_2, tp2_2, le_2] 3.43/1.77 split_2 > nil > [cons_2, tp2_2, le_2] 3.43/1.77 0 > [false, s_1] > [cons_2, tp2_2, le_2] 3.43/1.77 0 > true > [cons_2, tp2_2, le_2] 3.43/1.77 3.43/1.77 3.43/1.77 Status: 3.43/1.77 split_2: multiset status 3.43/1.77 cons_2: [1,2] 3.43/1.77 U1_3: multiset status 3.43/1.77 tp2_2: multiset status 3.43/1.77 U2_4: multiset status 3.43/1.77 le_2: multiset status 3.43/1.77 false: multiset status 3.43/1.77 true: multiset status 3.43/1.77 nil: multiset status 3.43/1.77 0: multiset status 3.43/1.77 s_1: [1] 3.43/1.77 3.43/1.77 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.43/1.77 3.43/1.77 split(x, cons(y, ys)) -> U1(split(x, ys), x, y) 3.43/1.77 U1(tp2(zs1, zs2), x, y) -> U2(le(x, y), y, zs1, zs2) 3.43/1.77 U2(false, y, zs1, zs2) -> tp2(cons(y, zs1), zs2) 3.43/1.77 U2(true, y, zs1, zs2) -> tp2(zs1, cons(y, zs2)) 3.43/1.77 split(x, nil) -> tp2(nil, nil) 3.43/1.77 le(0, y) -> true 3.43/1.77 le(s(x), 0) -> false 3.43/1.77 le(s(x), s(y)) -> le(x, y) 3.43/1.77 3.43/1.77 3.43/1.77 3.43/1.77 3.43/1.77 ---------------------------------------- 3.43/1.77 3.43/1.77 (4) 3.43/1.77 Obligation: 3.43/1.77 Q restricted rewrite system: 3.43/1.77 R is empty. 3.43/1.77 Q is empty. 3.43/1.77 3.43/1.77 ---------------------------------------- 3.43/1.77 3.43/1.77 (5) RisEmptyProof (EQUIVALENT) 3.43/1.77 The TRS R is empty. Hence, termination is trivially proven. 3.43/1.77 ---------------------------------------- 3.43/1.77 3.43/1.77 (6) 3.43/1.77 YES 3.55/1.80 EOF