YES Problem: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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) 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: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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: plus#(s(x),y) -> plus#(x,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: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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))) -> divides#(s(s(y)),x) if#(false(),x,y) -> pr#(x,y) -> pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(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) -> divides#(y,x) -> div#(x,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) -> 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) prime#(s(s(x))) -> pr#(s(s(x)),s(x)) -> pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(y)) 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#(x,y) -> quot#(x,y,y) divides#(y,x) -> div#(x,y) -> div#(div(x,y),z) -> times#(y,z) divides#(y,x) -> div#(x,y) -> div#(div(x,y),z) -> div#(x,times(y,z)) divides#(y,x) -> times#(div(x,y),y) -> times#(s(x),y) -> times#(x,y) divides#(y,x) -> times#(div(x,y),y) -> times#(s(x),y) -> plus#(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#(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)) quot#(x,0(),s(z)) -> div#(x,s(z)) -> div#(x,y) -> quot#(x,y,y) 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#(div(x,y),z) -> div#(x,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) -> div#(x,times(y,z)) -> div#(div(x,y),z) -> 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) -> times#(s(x),y) -> times#(x,y) div#(div(x,y),z) -> times#(y,z) -> 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) div#(x,y) -> quot#(x,y,y) -> quot#(x,0(),s(z)) -> div#(x,s(z)) times#(s(x),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)) times#(s(x),y) -> plus#(y,times(x,y)) -> plus#(s(x),y) -> plus#(x,y) plus#(s(x),y) -> plus#(x,y) -> plus#(s(x),y) -> plus#(x,y) SCC Processor: #sccs: 5 #rules: 9 #arcs: 31/256 DPs: if#(false(),x,y) -> pr#(x,y) pr#(x,s(s(y))) -> if#(divides(s(s(y)),x),x,s(y)) TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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) Bounds Processor: bound: 0 enrichment: top-dp automaton: final states: {7} transitions: false0() -> 5* pr{#,0}(5,5) -> 7* pr{#,0}(5,7) -> 7* pr{#,0}(6,6) -> 7* pr{#,0}(7,5) -> 7* pr{#,0}(7,7) -> 7* pr{#,0}(5,6) -> 7* pr{#,0}(6,5) -> 7* pr{#,0}(6,7) -> 7* pr{#,0}(7,6) -> 7* plus0(5,5) -> 6* plus0(5,7) -> 6* plus0(6,6) -> 6* plus0(7,5) -> 6* plus0(7,7) -> 6* plus0(5,6) -> 6* plus0(6,5) -> 6* plus0(6,7) -> 6* plus0(7,6) -> 6* 00() -> 6* s0(5) -> 6* s0(7) -> 6* s0(6) -> 6* times0(5,5) -> 6* times0(5,7) -> 6* times0(6,6) -> 6* times0(7,5) -> 6* times0(7,7) -> 6* times0(5,6) -> 6* times0(6,5) -> 6* times0(6,7) -> 6* times0(7,6) -> 6* div0(5,5) -> 6* div0(5,7) -> 6* div0(6,6) -> 6* div0(7,5) -> 6* div0(7,7) -> 6* div0(5,6) -> 6* div0(6,5) -> 6* div0(6,7) -> 6* div0(7,6) -> 6* quot0(6,5,7) -> 6* quot0(6,7,7) -> 6* quot0(7,5,5) -> 6* quot0(5,5,6) -> 6* quot0(7,7,5) -> 6* quot0(5,7,6) -> 6* quot0(7,6,7) -> 6* quot0(6,6,6) -> 6* quot0(7,5,6) -> 6* quot0(7,7,6) -> 6* quot0(5,6,5) -> 6* quot0(5,5,7) -> 6* quot0(5,7,7) -> 6* quot0(6,5,5) -> 6* quot0(6,7,5) -> 6* quot0(6,6,7) -> 6* quot0(7,6,5) -> 6* quot0(5,6,6) -> 6* quot0(7,5,7) -> 6* quot0(7,7,7) -> 6* quot0(6,5,6) -> 6* quot0(6,7,6) -> 6* quot0(7,6,6) -> 6* quot0(5,5,5) -> 6* quot0(5,7,5) -> 6* quot0(5,6,7) -> 6* quot0(6,6,5) -> 6* eq0(5,5) -> 6* eq0(5,7) -> 6* eq0(6,6) -> 6* eq0(7,5) -> 6* eq0(7,7) -> 6* eq0(5,6) -> 6* eq0(6,5) -> 6* eq0(6,7) -> 6* eq0(7,6) -> 6* true0() -> 6* divides0(5,5) -> 6* divides0(5,7) -> 6* divides0(6,6) -> 6* divides0(7,5) -> 6* divides0(7,7) -> 6* divides0(5,6) -> 6* divides0(6,5) -> 6* divides0(6,7) -> 6* divides0(7,6) -> 6* prime0(5) -> 6* prime0(7) -> 6* prime0(6) -> 6* pr0(5,5) -> 6* pr0(5,7) -> 6* pr0(6,6) -> 6* pr0(7,5) -> 6* pr0(7,7) -> 6* pr0(5,6) -> 6* pr0(6,5) -> 6* pr0(6,7) -> 6* pr0(7,6) -> 6* if0(6,5,7) -> 6* if0(6,7,7) -> 6* if0(7,5,5) -> 6* if0(5,5,6) -> 6* if0(7,7,5) -> 6* if0(5,7,6) -> 6* if0(7,6,7) -> 6* if0(6,6,6) -> 6* if0(7,5,6) -> 6* if0(7,7,6) -> 6* if0(5,6,5) -> 6* if0(5,5,7) -> 6* if0(5,7,7) -> 6* if0(6,5,5) -> 6* if0(6,7,5) -> 6* if0(6,6,7) -> 6* if0(7,6,5) -> 6* if0(5,6,6) -> 6* if0(7,5,7) -> 6* if0(7,7,7) -> 6* if0(6,5,6) -> 6* if0(6,7,6) -> 6* if0(7,6,6) -> 6* if0(5,5,5) -> 6* if0(5,7,5) -> 6* if0(5,6,7) -> 6* if0(6,6,5) -> 6* 5 -> 6* 7 -> 6* problem: DPs: TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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#(div(x,y),z) -> div#(x,times(y,z)) div#(x,y) -> quot#(x,y,y) quot#(x,0(),s(z)) -> div#(x,s(z)) quot#(s(x),s(y),z) -> quot#(x,y,z) TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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) Bounds Processor: bound: 1 enrichment: top-dp automaton: final states: {12} transitions: quot0(11,11,10) -> 9* quot0(10,9,9) -> 9* quot0(10,11,9) -> 9* quot0(9,10,12) -> 9* quot0(9,12,12) -> 9* quot0(12,10,10) -> 9* quot0(12,12,10) -> 9* quot0(11,10,9) -> 9* quot0(11,12,9) -> 9* quot0(10,9,12) -> 9* quot0(10,11,12) -> 9* quot0(9,9,11) -> 9* quot0(9,11,11) -> 9* quot0(12,9,9) -> 9* quot0(12,11,9) -> 9* quot0(11,10,12) -> 9* quot0(11,12,12) -> 9* quot0(10,10,11) -> 9* quot0(10,12,11) -> 9* quot0(9,10,10) -> 9* quot0(9,12,10) -> 9* quot0(12,9,12) -> 9* quot0(12,11,12) -> 9* quot0(11,9,11) -> 9* quot0(11,11,11) -> 9* quot0(10,9,10) -> 9* quot0(10,11,10) -> 9* quot0(9,9,9) -> 9* quot0(9,11,9) -> 9* quot0(12,10,11) -> 9* quot0(12,12,11) -> 9* quot0(11,10,10) -> 9* quot0(11,12,10) -> 9* quot0(10,10,9) -> 9* quot0(10,12,9) -> 9* quot0(9,9,12) -> 9* quot0(9,11,12) -> 9* quot0(12,9,10) -> 9* quot0(12,11,10) -> 9* quot0(11,9,9) -> 9* quot0(11,11,9) -> 9* quot0(10,10,12) -> 9* quot0(10,12,12) -> 9* quot0(9,10,11) -> 9* quot0(9,12,11) -> 9* quot0(12,10,9) -> 9* quot0(12,12,9) -> 9* quot0(11,9,12) -> 9* quot0(11,11,12) -> 9* quot0(10,9,11) -> 9* quot0(10,11,11) -> 9* quot0(9,9,10) -> 9* quot0(9,11,10) -> 9* quot0(12,10,12) -> 9* quot0(12,12,12) -> 9* quot0(11,10,11) -> 9* quot0(11,12,11) -> 9* quot0(10,10,10) -> 9* quot0(10,12,10) -> 9* quot0(9,10,9) -> 9* quot0(9,12,9) -> 9* quot0(12,9,11) -> 9* quot0(12,11,11) -> 9* quot0(11,9,10) -> 9* eq0(12,10) -> 9* eq0(12,12) -> 9* eq0(9,10) -> 9* eq0(9,12) -> 9* eq0(10,9) -> 9* eq0(10,11) -> 9* eq0(11,10) -> 9* eq0(11,12) -> 9* eq0(12,9) -> 9* eq0(12,11) -> 9* eq0(9,9) -> 9* eq0(9,11) -> 9* eq0(10,10) -> 9* eq0(10,12) -> 9* eq0(11,9) -> 9* eq0(11,11) -> 9* true0() -> 9* divides0(12,10) -> 9* divides0(12,12) -> 9* divides0(9,10) -> 9* divides0(9,12) -> 9* divides0(10,9) -> 9* divides0(10,11) -> 9* divides0(11,10) -> 9* divides0(11,12) -> 9* divides0(12,9) -> 9* divides0(12,11) -> 9* divides0(9,9) -> 9* divides0(9,11) -> 9* divides0(10,10) -> 9* divides0(10,12) -> 9* divides0(11,9) -> 9* divides0(11,11) -> 9* prime0(10) -> 9* prime0(12) -> 9* prime0(9) -> 9* prime0(11) -> 9* pr0(12,10) -> 9* pr0(12,12) -> 9* pr0(9,10) -> 9* pr0(9,12) -> 9* pr0(10,9) -> 9* pr0(10,11) -> 9* pr0(11,10) -> 9* pr0(11,12) -> 9* pr0(12,9) -> 9* pr0(12,11) -> 9* pr0(9,9) -> 9* pr0(9,11) -> 9* pr0(10,10) -> 9* pr0(10,12) -> 9* pr0(11,9) -> 9* pr0(11,11) -> 9* if0(11,11,10) -> 9* if0(10,9,9) -> 9* if0(10,11,9) -> 9* if0(9,10,12) -> 9* if0(9,12,12) -> 9* if0(12,10,10) -> 9* if0(12,12,10) -> 9* if0(11,10,9) -> 9* if0(11,12,9) -> 9* if0(10,9,12) -> 9* if0(10,11,12) -> 9* if0(9,9,11) -> 9* if0(9,11,11) -> 9* if0(12,9,9) -> 9* if0(12,11,9) -> 9* if0(11,10,12) -> 9* if0(11,12,12) -> 9* if0(10,10,11) -> 9* if0(10,12,11) -> 9* if0(9,10,10) -> 9* if0(9,12,10) -> 9* if0(12,9,12) -> 9* if0(12,11,12) -> 9* if0(11,9,11) -> 9* if0(11,11,11) -> 9* if0(10,9,10) -> 9* if0(10,11,10) -> 9* if0(9,9,9) -> 9* if0(9,11,9) -> 9* if0(12,10,11) -> 9* if0(12,12,11) -> 9* if0(11,10,10) -> 9* if0(11,12,10) -> 9* if0(10,10,9) -> 9* if0(10,12,9) -> 9* if0(9,9,12) -> 9* if0(9,11,12) -> 9* if0(12,9,10) -> 9* if0(12,11,10) -> 9* if0(11,9,9) -> 9* if0(11,11,9) -> 9* if0(10,10,12) -> 9* if0(10,12,12) -> 9* if0(9,10,11) -> 9* if0(9,12,11) -> 9* if0(12,10,9) -> 9* if0(12,12,9) -> 9* if0(11,9,12) -> 9* if0(11,11,12) -> 9* if0(10,9,11) -> 9* if0(10,11,11) -> 9* if0(9,9,10) -> 9* if0(9,11,10) -> 9* if0(12,10,12) -> 9* if0(12,12,12) -> 9* if0(11,10,11) -> 9* if0(11,12,11) -> 9* if0(10,10,10) -> 9* if0(10,12,10) -> 9* if0(9,10,9) -> 9* if0(9,12,9) -> 9* if0(12,9,11) -> 9* if0(12,11,11) -> 9* if0(11,9,10) -> 9* div{#,0}(12,10) -> 9* div{#,0}(12,12) -> 9* div{#,0}(9,10) -> 9* div{#,0}(9,12) -> 9* div{#,0}(10,9) -> 9* div{#,0}(10,11) -> 12* div{#,0}(11,10) -> 9* div{#,0}(11,12) -> 9* div{#,0}(12,9) -> 9* div{#,0}(12,11) -> 12* div{#,0}(9,9) -> 9* div{#,0}(9,11) -> 12* div{#,0}(10,10) -> 9* div{#,0}(10,12) -> 9* div{#,0}(11,9) -> 9* div{#,0}(11,11) -> 12* quot{#,0}(11,11,10) -> 9* quot{#,0}(10,9,9) -> 9* quot{#,0}(10,11,9) -> 9* quot{#,0}(9,10,12) -> 9* quot{#,0}(9,12,12) -> 9* quot{#,0}(12,10,10) -> 9* quot{#,0}(12,12,10) -> 9* quot{#,0}(11,10,9) -> 9* quot{#,0}(11,12,9) -> 9* quot{#,0}(10,9,12) -> 9* quot{#,0}(10,11,12) -> 9* quot{#,0}(9,9,11) -> 9* quot{#,0}(9,11,11) -> 12,9 quot{#,0}(12,9,9) -> 9* quot{#,0}(12,11,9) -> 9* quot{#,0}(11,10,12) -> 9* quot{#,0}(11,12,12) -> 9* quot{#,0}(10,10,11) -> 9* quot{#,0}(10,12,11) -> 9* quot{#,0}(9,10,10) -> 9* quot{#,0}(9,12,10) -> 9* quot{#,0}(12,9,12) -> 9* quot{#,0}(12,11,12) -> 9* quot{#,0}(11,9,11) -> 9* quot{#,0}(11,11,11) -> 12,9 quot{#,0}(10,9,10) -> 9* quot{#,0}(10,11,10) -> 9* quot{#,0}(9,9,9) -> 9* quot{#,0}(9,11,9) -> 9* quot{#,0}(12,10,11) -> 9* quot{#,0}(12,12,11) -> 9* quot{#,0}(11,10,10) -> 9* quot{#,0}(11,12,10) -> 9* quot{#,0}(10,10,9) -> 9* quot{#,0}(10,12,9) -> 9* quot{#,0}(9,9,12) -> 9* quot{#,0}(9,11,12) -> 9* quot{#,0}(12,9,10) -> 9* quot{#,0}(12,11,10) -> 9* quot{#,0}(11,9,9) -> 9* quot{#,0}(11,11,9) -> 9* quot{#,0}(10,10,12) -> 9* quot{#,0}(10,12,12) -> 9* quot{#,0}(9,10,11) -> 9* quot{#,0}(9,12,11) -> 9* quot{#,0}(12,10,9) -> 9* quot{#,0}(12,12,9) -> 9* quot{#,0}(11,9,12) -> 9* quot{#,0}(11,11,12) -> 9* quot{#,0}(10,9,11) -> 9* quot{#,0}(10,11,11) -> 12,9 quot{#,0}(9,9,10) -> 9* quot{#,0}(9,11,10) -> 9* quot{#,0}(12,10,12) -> 9* quot{#,0}(12,12,12) -> 9* quot{#,0}(11,10,11) -> 9* quot{#,0}(11,12,11) -> 9* quot{#,0}(10,10,10) -> 9* quot{#,0}(10,12,10) -> 9* quot{#,0}(9,10,9) -> 9* quot{#,0}(9,12,9) -> 9* quot{#,0}(12,9,11) -> 9* quot{#,0}(12,11,11) -> 12,9 quot{#,0}(11,9,10) -> 9* quot{#,1}(10,13,13) -> 9* quot{#,1}(12,13,13) -> 9* quot{#,1}(9,13,13) -> 9* quot{#,1}(11,13,13) -> 9* div{#,1}(10,13) -> 9* div{#,1}(12,13) -> 9* div{#,1}(9,13) -> 9* div{#,1}(11,13) -> 9* s1(10) -> 13* s1(12) -> 13* s1(9) -> 13* s1(11) -> 13* false0() -> 9* plus0(12,10) -> 9* plus0(12,12) -> 9* plus0(9,10) -> 9* plus0(9,12) -> 9* plus0(10,9) -> 9* plus0(10,11) -> 9* plus0(11,10) -> 9* plus0(11,12) -> 9* plus0(12,9) -> 9* plus0(12,11) -> 9* plus0(9,9) -> 9* plus0(9,11) -> 9* plus0(10,10) -> 9* plus0(10,12) -> 9* plus0(11,9) -> 9* plus0(11,11) -> 9* 00() -> 10* s0(10) -> 11* s0(12) -> 11* s0(9) -> 11* s0(11) -> 11* times0(12,10) -> 9* times0(12,12) -> 9* times0(9,10) -> 9* times0(9,12) -> 9* times0(10,9) -> 9* times0(10,11) -> 9* times0(11,10) -> 9* times0(11,12) -> 9* times0(12,9) -> 9* times0(12,11) -> 9* times0(9,9) -> 9* times0(9,11) -> 9* times0(10,10) -> 9* times0(10,12) -> 9* times0(11,9) -> 9* times0(11,11) -> 9* div0(12,10) -> 9* div0(12,12) -> 9* div0(9,10) -> 9* div0(9,12) -> 9* div0(10,9) -> 9* div0(10,11) -> 9* div0(11,10) -> 9* div0(11,12) -> 9* div0(12,9) -> 9* div0(12,11) -> 9* div0(9,9) -> 9* div0(9,11) -> 9* div0(10,10) -> 9* div0(10,12) -> 9* div0(11,9) -> 9* div0(11,11) -> 9* 10 -> 9* 11 -> 9* 12 -> 9* problem: DPs: div#(x,y) -> quot#(x,y,y) TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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) Bounds Processor: bound: 0 enrichment: top-dp automaton: final states: {3} transitions: times0(3,1) -> 1* times0(3,3) -> 1* times0(1,1) -> 1* times0(1,3) -> 1* div0(3,1) -> 1* div0(3,3) -> 1* div0(1,1) -> 1* div0(1,3) -> 1* quot0(1,1,1) -> 1* quot0(1,3,1) -> 1* quot0(3,1,1) -> 1* quot0(3,3,1) -> 1* quot0(1,1,3) -> 1* quot0(1,3,3) -> 1* quot0(3,1,3) -> 1* quot0(3,3,3) -> 1* eq0(3,1) -> 1* eq0(3,3) -> 1* eq0(1,1) -> 1* eq0(1,3) -> 1* true0() -> 1* divides0(3,1) -> 1* divides0(3,3) -> 1* divides0(1,1) -> 1* divides0(1,3) -> 1* prime0(1) -> 1* prime0(3) -> 1* pr0(3,1) -> 1* pr0(3,3) -> 1* pr0(1,1) -> 1* pr0(1,3) -> 1* if0(1,1,1) -> 1* if0(1,3,1) -> 1* if0(3,1,1) -> 1* if0(3,3,1) -> 1* if0(1,1,3) -> 1* if0(1,3,3) -> 1* if0(3,1,3) -> 1* if0(3,3,3) -> 1* quot{#,0}(1,1,1) -> 3* quot{#,0}(1,3,1) -> 3* quot{#,0}(3,1,1) -> 3* quot{#,0}(3,3,1) -> 3* quot{#,0}(1,1,3) -> 3* quot{#,0}(1,3,3) -> 3* quot{#,0}(3,1,3) -> 3* quot{#,0}(3,3,3) -> 3* false0() -> 1* plus0(3,1) -> 1* plus0(3,3) -> 1* plus0(1,1) -> 1* plus0(1,3) -> 1* 00() -> 1* s0(1) -> 1* s0(3) -> 1* 3 -> 1* problem: DPs: TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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) TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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(plus#) = 0 problem: DPs: TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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: eq#(s(x),s(y)) -> eq#(x,y) TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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#) = 1 problem: DPs: TRS: plus(x,0()) -> x plus(0(),y) -> y plus(s(x),y) -> s(plus(x,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