YES proof of TCT_12_sat.trs # AProVE Commit ID: c69e44bd14796315568835c1ffa2502984884775 jera 20211004 unpublished Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) QTRSRRRProof [EQUIVALENT, 62 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: sat_1 > [verify_1, satck_2] > member_2 > [if_3, cons_2] sat_1 > [verify_1, satck_2] > member_2 > [true, false, eq_2] sat_1 > [verify_1, satck_2] > negate_1 > 0_1 > [true, false, eq_2] sat_1 > [verify_1, satck_2] > unsat Status: if_3: multiset status true: multiset status false: multiset status member_2: multiset status nil: multiset status cons_2: multiset status eq_2: multiset status O_1: [1] 0_1: multiset status negate_1: multiset status verify_1: multiset status sat_1: multiset status satck_2: multiset status 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) negate(1(x)) -> 0(x) choice(cons(x, xs)) -> x choice(cons(x, xs)) -> choice(xs) 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) ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: eq(1(x), 1(y)) -> eq(x, y) guess(nil) -> nil guess(cons(clause, cnf)) -> cons(choice(clause), guess(cnf)) Q is empty. ---------------------------------------- (3) QTRSRRRProof (EQUIVALENT) Used ordering: Knuth-Bendix order [KBO] with precedence:choice_1 > guess_1 > cons_2 > nil > 1_1 > eq_2 and weight map: nil=1 1_1=1 guess_1=1 choice_1=0 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) guess(nil) -> nil guess(cons(clause, cnf)) -> cons(choice(clause), guess(cnf)) ---------------------------------------- (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