/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) QTRSRRRProof [EQUIVALENT, 147 ms] (2) QTRS (3) QTRSRRRProof [EQUIVALENT, 0 ms] (4) QTRS (5) RisEmptyProof [EQUIVALENT, 0 ms] (6) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: if(true, t, e) -> t if(false, t, e) -> e member(x, nil) -> false member(x, cons(y, ys)) -> if(eq(x, y), true, member(x, ys)) eq(nil, nil) -> true eq(O(x), 0(y)) -> eq(x, y) eq(0(x), 1(y)) -> false eq(1(x), 0(y)) -> false eq(1(x), 1(y)) -> eq(x, y) negate(0(x)) -> 1(x) negate(1(x)) -> 0(x) choice(cons(x, xs)) -> x choice(cons(x, xs)) -> choice(xs) guess(nil) -> nil guess(cons(clause, cnf)) -> cons(choice(clause), guess(cnf)) verify(nil) -> true verify(cons(l, ls)) -> if(member(negate(l), ls), false, verify(ls)) sat(cnf) -> satck(cnf, guess(cnf)) satck(cnf, assign) -> if(verify(assign), assign, unsat) Q is empty. ---------------------------------------- (1) QTRSRRRProof (EQUIVALENT) Used ordering: if/3(YES,YES,YES) true/0) false/0) member/2(YES,YES) nil/0) cons/2(YES,YES) eq/2(YES,YES) O/1)YES( 0/1(YES) 1/1)YES( negate/1(YES) choice/1)YES( guess/1)YES( verify/1)YES( sat/1(YES) satck/2(YES,YES) unsat/0) Quasi precedence: [true, false, nil, cons_2, 0_1, negate_1] > member_2 > eq_2 > if_3 sat_1 > [satck_2, unsat] > if_3 Status: if_3: multiset status true: multiset status false: multiset status member_2: [1,2] nil: multiset status cons_2: [1,2] eq_2: [2,1] 0_1: [1] negate_1: [1] sat_1: [1] satck_2: [2,1] unsat: multiset status With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: if(true, t, e) -> t if(false, t, e) -> e member(x, nil) -> false member(x, cons(y, ys)) -> if(eq(x, y), true, member(x, ys)) eq(nil, nil) -> true eq(O(x), 0(y)) -> eq(x, y) eq(0(x), 1(y)) -> false eq(1(x), 0(y)) -> false negate(0(x)) -> 1(x) choice(cons(x, xs)) -> x choice(cons(x, xs)) -> choice(xs) verify(cons(l, ls)) -> if(member(negate(l), ls), false, verify(ls)) sat(cnf) -> satck(cnf, guess(cnf)) satck(cnf, assign) -> if(verify(assign), assign, unsat) ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: eq(1(x), 1(y)) -> eq(x, y) negate(1(x)) -> 0(x) guess(nil) -> nil guess(cons(clause, cnf)) -> cons(choice(clause), guess(cnf)) verify(nil) -> true Q is empty. ---------------------------------------- (3) QTRSRRRProof (EQUIVALENT) Used ordering: Knuth-Bendix order [KBO] with precedence:choice_1 > verify_1 > true > guess_1 > cons_2 > nil > negate_1 > 0_1 > 1_1 > eq_2 and weight map: nil=1 true=2 1_1=1 negate_1=1 0_1=2 guess_1=1 choice_1=0 verify_1=1 cons_2=0 eq_2=0 The variable weight is 1With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: eq(1(x), 1(y)) -> eq(x, y) negate(1(x)) -> 0(x) guess(nil) -> nil guess(cons(clause, cnf)) -> cons(choice(clause), guess(cnf)) verify(nil) -> true ---------------------------------------- (4) Obligation: Q restricted rewrite system: R is empty. Q is empty. ---------------------------------------- (5) RisEmptyProof (EQUIVALENT) The TRS R is empty. Hence, termination is trivially proven. ---------------------------------------- (6) YES