MAYBE Problem: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) 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)) exp#(x,s(y)) -> exp#(x,y) exp#(x,s(y)) -> times#(x,exp(x,y)) ge#(s(x),s(y)) -> ge#(x,y) tower#(x,y) -> towerIter#(0(),x,y,s(0())) towerIter#(c,x,y,z) -> ge#(c,x) towerIter#(c,x,y,z) -> help#(ge(c,x),c,x,y,z) help#(false(),c,x,y,z) -> exp#(y,z) help#(false(),c,x,y,z) -> towerIter#(s(c),x,y,exp(y,z)) TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) TDG 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)) exp#(x,s(y)) -> exp#(x,y) exp#(x,s(y)) -> times#(x,exp(x,y)) ge#(s(x),s(y)) -> ge#(x,y) tower#(x,y) -> towerIter#(0(),x,y,s(0())) towerIter#(c,x,y,z) -> ge#(c,x) towerIter#(c,x,y,z) -> help#(ge(c,x),c,x,y,z) help#(false(),c,x,y,z) -> exp#(y,z) help#(false(),c,x,y,z) -> towerIter#(s(c),x,y,exp(y,z)) TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) graph: help#(false(),c,x,y,z) -> towerIter#(s(c),x,y,exp(y,z)) -> towerIter#(c,x,y,z) -> help#(ge(c,x),c,x,y,z) help#(false(),c,x,y,z) -> towerIter#(s(c),x,y,exp(y,z)) -> towerIter#(c,x,y,z) -> ge#(c,x) help#(false(),c,x,y,z) -> exp#(y,z) -> exp#(x,s(y)) -> times#(x,exp(x,y)) help#(false(),c,x,y,z) -> exp#(y,z) -> exp#(x,s(y)) -> exp#(x,y) towerIter#(c,x,y,z) -> help#(ge(c,x),c,x,y,z) -> help#(false(),c,x,y,z) -> towerIter#(s(c),x,y,exp(y,z)) towerIter#(c,x,y,z) -> help#(ge(c,x),c,x,y,z) -> help#(false(),c,x,y,z) -> exp#(y,z) towerIter#(c,x,y,z) -> ge#(c,x) -> ge#(s(x),s(y)) -> ge#(x,y) tower#(x,y) -> towerIter#(0(),x,y,s(0())) -> towerIter#(c,x,y,z) -> help#(ge(c,x),c,x,y,z) tower#(x,y) -> towerIter#(0(),x,y,s(0())) -> towerIter#(c,x,y,z) -> ge#(c,x) ge#(s(x),s(y)) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y) exp#(x,s(y)) -> exp#(x,y) -> exp#(x,s(y)) -> times#(x,exp(x,y)) exp#(x,s(y)) -> exp#(x,y) -> exp#(x,s(y)) -> exp#(x,y) exp#(x,s(y)) -> times#(x,exp(x,y)) -> times#(s(x),y) -> plus#(y,times(x,y)) exp#(x,s(y)) -> times#(x,exp(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) -> times#(x,y) -> times#(s(x),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: 6 #arcs: 18/121 DPs: help#(false(),c,x,y,z) -> towerIter#(s(c),x,y,exp(y,z)) towerIter#(c,x,y,z) -> help#(ge(c,x),c,x,y,z) TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Open DPs: exp#(x,s(y)) -> exp#(x,y) TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Subterm Criterion Processor: simple projection: pi(exp#) = 1 problem: DPs: TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Qed DPs: times#(s(x),y) -> times#(x,y) TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Subterm Criterion Processor: simple projection: pi(times#) = 0 problem: DPs: TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Qed DPs: plus#(s(x),y) -> plus#(x,y) TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Subterm Criterion Processor: simple projection: pi(plus#) = 0 problem: DPs: TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Qed DPs: ge#(s(x),s(y)) -> ge#(x,y) TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Subterm Criterion Processor: simple projection: pi(ge#) = 1 problem: DPs: TRS: plus(0(),x) -> x plus(s(x),y) -> s(plus(x,y)) times(0(),y) -> 0() times(s(x),y) -> plus(y,times(x,y)) exp(x,0()) -> s(0()) exp(x,s(y)) -> times(x,exp(x,y)) ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) tower(x,y) -> towerIter(0(),x,y,s(0())) towerIter(c,x,y,z) -> help(ge(c,x),c,x,y,z) help(true(),c,x,y,z) -> z help(false(),c,x,y,z) -> towerIter(s(c),x,y,exp(y,z)) Qed