/export/starexec/sandbox/solver/bin/starexec_run_ttt2-1.17+nonreach /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES Problem: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Proof: DP Processor: DPs: plus#(s(x),y) -> plus#(x,y) plus#(s(x),y) -> p#(s(x)) plus#(s(x),y) -> plus#(p(s(x)),y) plus#(x,s(y)) -> p#(s(y)) plus#(x,s(y)) -> plus#(x,p(s(y))) times#(s(x),y) -> times#(x,y) times#(s(x),y) -> plus#(y,times(x,y)) div#(x,y) -> quot#(x,y,y) quot#(s(x),s(y),z) -> quot#(x,y,z) quot#(x,0(),s(z)) -> div#(x,s(z)) div#(div(x,y),z) -> times#(y,z) div#(div(x,y),z) -> div#(x,times(y,z)) eq#(s(x),s(y)) -> eq#(x,y) divides#(y,x) -> div#(x,y) divides#(y,x) -> times#(div(x,y),y) divides#(y,x) -> eq#(x,times(div(x,y),y)) prime#(s(s(x))) -> pr#(s(s(x)),s(x)) pr#(x,s(s(y))) -> divides#(s(s(y)),x) pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(y)) if#(false(),x,y) -> pr#(x,y) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) TDG Processor: DPs: plus#(s(x),y) -> plus#(x,y) plus#(s(x),y) -> p#(s(x)) plus#(s(x),y) -> plus#(p(s(x)),y) plus#(x,s(y)) -> p#(s(y)) plus#(x,s(y)) -> plus#(x,p(s(y))) times#(s(x),y) -> times#(x,y) times#(s(x),y) -> plus#(y,times(x,y)) div#(x,y) -> quot#(x,y,y) quot#(s(x),s(y),z) -> quot#(x,y,z) quot#(x,0(),s(z)) -> div#(x,s(z)) div#(div(x,y),z) -> times#(y,z) div#(div(x,y),z) -> div#(x,times(y,z)) eq#(s(x),s(y)) -> eq#(x,y) divides#(y,x) -> div#(x,y) divides#(y,x) -> times#(div(x,y),y) divides#(y,x) -> eq#(x,times(div(x,y),y)) prime#(s(s(x))) -> pr#(s(s(x)),s(x)) pr#(x,s(s(y))) -> divides#(s(s(y)),x) pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(y)) if#(false(),x,y) -> pr#(x,y) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) graph: if#(false(),x,y) -> pr#(x,y) -> pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(y)) if#(false(),x,y) -> pr#(x,y) -> pr#(x,s(s(y))) -> divides#(s(s(y)),x) pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(y)) -> if#(false(),x,y) -> pr#(x,y) pr#(x,s(s(y))) -> divides#(s(s(y)),x) -> divides#(y,x) -> eq#(x,times(div(x,y),y)) pr#(x,s(s(y))) -> divides#(s(s(y)),x) -> divides#(y,x) -> times#(div(x,y),y) pr#(x,s(s(y))) -> divides#(s(s(y)),x) -> divides#(y,x) -> div#(x,y) prime#(s(s(x))) -> pr#(s(s(x)),s(x)) -> pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(y)) prime#(s(s(x))) -> pr#(s(s(x)),s(x)) -> pr#(x,s(s(y))) -> divides#(s(s(y)),x) divides#(y,x) -> eq#(x,times(div(x,y),y)) -> eq#(s(x),s(y)) -> eq#(x,y) divides#(y,x) -> div#(x,y) -> div#(div(x,y),z) -> div#(x,times(y,z)) divides#(y,x) -> div#(x,y) -> div#(div(x,y),z) -> times#(y,z) divides#(y,x) -> div#(x,y) -> div#(x,y) -> quot#(x,y,y) divides#(y,x) -> times#(div(x,y),y) -> times#(s(x),y) -> plus#(y,times(x,y)) divides#(y,x) -> times#(div(x,y),y) -> times#(s(x),y) -> times#(x,y) eq#(s(x),s(y)) -> eq#(x,y) -> eq#(s(x),s(y)) -> eq#(x,y) quot#(s(x),s(y),z) -> quot#(x,y,z) -> quot#(x,0(),s(z)) -> div#(x,s(z)) quot#(s(x),s(y),z) -> quot#(x,y,z) -> quot#(s(x),s(y),z) -> quot#(x,y,z) quot#(x,0(),s(z)) -> div#(x,s(z)) -> div#(div(x,y),z) -> div#(x,times(y,z)) quot#(x,0(),s(z)) -> div#(x,s(z)) -> div#(div(x,y),z) -> times#(y,z) quot#(x,0(),s(z)) -> div#(x,s(z)) -> div#(x,y) -> quot#(x,y,y) div#(div(x,y),z) -> div#(x,times(y,z)) -> div#(div(x,y),z) -> div#(x,times(y,z)) div#(div(x,y),z) -> div#(x,times(y,z)) -> div#(div(x,y),z) -> times#(y,z) div#(div(x,y),z) -> div#(x,times(y,z)) -> div#(x,y) -> quot#(x,y,y) div#(div(x,y),z) -> times#(y,z) -> times#(s(x),y) -> plus#(y,times(x,y)) div#(div(x,y),z) -> times#(y,z) -> times#(s(x),y) -> times#(x,y) div#(x,y) -> quot#(x,y,y) -> quot#(x,0(),s(z)) -> div#(x,s(z)) div#(x,y) -> quot#(x,y,y) -> quot#(s(x),s(y),z) -> quot#(x,y,z) times#(s(x),y) -> times#(x,y) -> times#(s(x),y) -> plus#(y,times(x,y)) times#(s(x),y) -> times#(x,y) -> times#(s(x),y) -> times#(x,y) times#(s(x),y) -> plus#(y,times(x,y)) -> plus#(x,s(y)) -> plus#(x,p(s(y))) times#(s(x),y) -> plus#(y,times(x,y)) -> plus#(x,s(y)) -> p#(s(y)) times#(s(x),y) -> plus#(y,times(x,y)) -> plus#(s(x),y) -> plus#(p(s(x)),y) times#(s(x),y) -> plus#(y,times(x,y)) -> plus#(s(x),y) -> p#(s(x)) times#(s(x),y) -> plus#(y,times(x,y)) -> plus#(s(x),y) -> plus#(x,y) plus#(s(x),y) -> plus#(p(s(x)),y) -> plus#(x,s(y)) -> plus#(x,p(s(y))) plus#(s(x),y) -> plus#(p(s(x)),y) -> plus#(x,s(y)) -> p#(s(y)) plus#(s(x),y) -> plus#(p(s(x)),y) -> plus#(s(x),y) -> plus#(p(s(x)),y) plus#(s(x),y) -> plus#(p(s(x)),y) -> plus#(s(x),y) -> p#(s(x)) plus#(s(x),y) -> plus#(p(s(x)),y) -> plus#(s(x),y) -> plus#(x,y) plus#(s(x),y) -> plus#(x,y) -> plus#(x,s(y)) -> plus#(x,p(s(y))) plus#(s(x),y) -> plus#(x,y) -> plus#(x,s(y)) -> p#(s(y)) plus#(s(x),y) -> plus#(x,y) -> plus#(s(x),y) -> plus#(p(s(x)),y) plus#(s(x),y) -> plus#(x,y) -> plus#(s(x),y) -> p#(s(x)) plus#(s(x),y) -> plus#(x,y) -> plus#(s(x),y) -> plus#(x,y) plus#(x,s(y)) -> plus#(x,p(s(y))) -> plus#(x,s(y)) -> plus#(x,p(s(y))) plus#(x,s(y)) -> plus#(x,p(s(y))) -> plus#(x,s(y)) -> p#(s(y)) plus#(x,s(y)) -> plus#(x,p(s(y))) -> plus#(s(x),y) -> plus#(p(s(x)),y) plus#(x,s(y)) -> plus#(x,p(s(y))) -> plus#(s(x),y) -> p#(s(x)) plus#(x,s(y)) -> plus#(x,p(s(y))) -> plus#(s(x),y) -> plus#(x,y) SCC Processor: #sccs: 5 #rules: 11 #arcs: 49/400 DPs: if#(false(),x,y) -> pr#(x,y) pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(y)) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Subterm Criterion Processor: simple projection: pi(pr#) = 1 pi(if#) = 2 problem: DPs: if#(false(),x,y) -> pr#(x,y) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) SCC Processor: #sccs: 0 #rules: 0 #arcs: 2/1 DPs: eq#(s(x),s(y)) -> eq#(x,y) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Subterm Criterion Processor: simple projection: pi(eq#) = 0 problem: DPs: TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Qed DPs: div#(x,y) -> quot#(x,y,y) quot#(s(x),s(y),z) -> quot#(x,y,z) quot#(x,0(),s(z)) -> div#(x,s(z)) div#(div(x,y),z) -> div#(x,times(y,z)) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Subterm Criterion Processor: simple projection: pi(div#) = 0 pi(quot#) = 0 problem: DPs: div#(x,y) -> quot#(x,y,y) quot#(x,0(),s(z)) -> div#(x,s(z)) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) EDG Processor: DPs: div#(x,y) -> quot#(x,y,y) quot#(x,0(),s(z)) -> div#(x,s(z)) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) graph: quot#(x,0(),s(z)) -> div#(x,s(z)) -> div#(x,y) -> quot#(x,y,y) div#(x,y) -> quot#(x,y,y) -> quot#(x,0(),s(z)) -> div#(x,s(z)) Bounds Processor: bound: 3 enrichment: top-dp automaton: final states: {3,2} transitions: quot0(1,1,1) -> 1* eq0(1,1) -> 1* true0() -> 1* false0() -> 1* divides0(1,1) -> 1* prime0(1) -> 1* pr0(1,1) -> 1* if0(1,1,1) -> 1* div{#,1}(1,8) -> 3* s1(1) -> 8* quot{#,1}(1,1,1) -> 2* div{#,2}(1,10) -> 2* s2(1) -> 10* quot{#,2}(1,8,8) -> 3* quot{#,3}(1,10,10) -> 2* div{#,0}(1,1) -> 2* quot{#,0}(1,1,1) -> 3* 00() -> 1* s0(1) -> 1* p0(1) -> 1* plus0(1,1) -> 1* times0(1,1) -> 1* div0(1,1) -> 1* problem: DPs: TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Qed DPs: times#(s(x),y) -> times#(x,y) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Subterm Criterion Processor: simple projection: pi(times#) = 0 problem: DPs: TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Qed DPs: plus#(s(x),y) -> plus#(x,y) plus#(s(x),y) -> plus#(p(s(x)),y) plus#(x,s(y)) -> plus#(x,p(s(y))) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Subterm Criterion Processor: simple projection: pi(p) = 0 pi(plus#) = 0 problem: DPs: plus#(s(x),y) -> plus#(p(s(x)),y) plus#(x,s(y)) -> plus#(x,p(s(y))) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Usable Rule Processor: DPs: plus#(s(x),y) -> plus#(p(s(x)),y) plus#(x,s(y)) -> plus#(x,p(s(y))) TRS: p(s(x)) -> x Semantic Labeling Processor: dimension: 2 usable rules: interpretation: [0 1] [p](x0) = [1 0]x0, [1 1] [0] [s](x0) = [1 1]x0 + [1] labeled: plus# usable (for model): plus# s p argument filtering: pi(s) = 0 pi(p) = [] pi(plus#) = [] precedence: plus# ~ p ~ s problem: DPs: plus#(s(x),y) -> plus#(p(s(x)),y) TRS: p(s(x)) -> x Restore Modifier: DPs: plus#(s(x),y) -> plus#(p(s(x)),y) TRS: p(s(x)) -> x plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,y)) plus(s(x),y) -> s(plus(p(s(x)),y)) plus(x,s(y)) -> s(plus(x,p(s(y)))) times(0(),y) -> 0() times(s(0()),y) -> y times(s(x),y) -> plus(y,times(x,y)) div(0(),y) -> 0() div(x,y) -> quot(x,y,y) quot(0(),s(y),z) -> 0() quot(s(x),s(y),z) -> quot(x,y,z) quot(x,0(),s(z)) -> s(div(x,s(z))) div(div(x,y),z) -> div(x,times(y,z)) eq(0(),0()) -> true() eq(s(x),0()) -> false() eq(0(),s(y)) -> false() eq(s(x),s(y)) -> eq(x,y) divides(y,x) -> eq(x,times(div(x,y),y)) prime(s(s(x))) -> pr(s(s(x)),s(x)) pr(x,s(0())) -> true() pr(x,s(s(y))) -> if(divides(s(s(y)),x),x,s(y)) if(true(),x,y) -> false() if(false(),x,y) -> pr(x,y) Usable Rule Processor: DPs: plus#(s(x),y) -> plus#(p(s(x)),y) TRS: p(s(x)) -> x Semantic Labeling Processor: dimension: 2 usable rules: interpretation: [0 1] [1] [p](x0) = [1 0]x0 + [0], [0 1] [0] [s](x0) = [1 1]x0 + [1] labeled: plus# usable (for model): plus# s p argument filtering: pi(s) = 0 pi(p) = [] pi(plus#) = [] precedence: plus# ~ p ~ s problem: DPs: TRS: p(s(x)) -> x Qed