MAYBE Problem: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Proof: DP Processor: DPs: +#(x,s(y)) -> +#(x,y) *#(x,s(y)) -> *#(x,y) *#(x,s(y)) -> +#(*(x,y),x) ge#(s(x),s(y)) -> ge#(x,y) -#(s(x),s(y)) -> -#(x,y) fact#(x) -> ge#(x,s(s(0()))) fact#(x) -> iffact#(x,ge(x,s(s(0())))) iffact#(x,true()) -> -#(x,s(0())) iffact#(x,true()) -> fact#(-(x,s(0()))) iffact#(x,true()) -> *#(x,fact(-(x,s(0())))) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) TDG Processor: DPs: +#(x,s(y)) -> +#(x,y) *#(x,s(y)) -> *#(x,y) *#(x,s(y)) -> +#(*(x,y),x) ge#(s(x),s(y)) -> ge#(x,y) -#(s(x),s(y)) -> -#(x,y) fact#(x) -> ge#(x,s(s(0()))) fact#(x) -> iffact#(x,ge(x,s(s(0())))) iffact#(x,true()) -> -#(x,s(0())) iffact#(x,true()) -> fact#(-(x,s(0()))) iffact#(x,true()) -> *#(x,fact(-(x,s(0())))) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) graph: iffact#(x,true()) -> fact#(-(x,s(0()))) -> fact#(x) -> iffact#(x,ge(x,s(s(0())))) iffact#(x,true()) -> fact#(-(x,s(0()))) -> fact#(x) -> ge#(x,s(s(0()))) iffact#(x,true()) -> -#(x,s(0())) -> -#(s(x),s(y)) -> -#(x,y) iffact#(x,true()) -> *#(x,fact(-(x,s(0())))) -> *#(x,s(y)) -> +#(*(x,y),x) iffact#(x,true()) -> *#(x,fact(-(x,s(0())))) -> *#(x,s(y)) -> *#(x,y) fact#(x) -> iffact#(x,ge(x,s(s(0())))) -> iffact#(x,true()) -> *#(x,fact(-(x,s(0())))) fact#(x) -> iffact#(x,ge(x,s(s(0())))) -> iffact#(x,true()) -> fact#(-(x,s(0()))) fact#(x) -> iffact#(x,ge(x,s(s(0())))) -> iffact#(x,true()) -> -#(x,s(0())) fact#(x) -> ge#(x,s(s(0()))) -> ge#(s(x),s(y)) -> ge#(x,y) -#(s(x),s(y)) -> -#(x,y) -> -#(s(x),s(y)) -> -#(x,y) ge#(s(x),s(y)) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y) *#(x,s(y)) -> *#(x,y) -> *#(x,s(y)) -> +#(*(x,y),x) *#(x,s(y)) -> *#(x,y) -> *#(x,s(y)) -> *#(x,y) *#(x,s(y)) -> +#(*(x,y),x) -> +#(x,s(y)) -> +#(x,y) +#(x,s(y)) -> +#(x,y) -> +#(x,s(y)) -> +#(x,y) SCC Processor: #sccs: 5 #rules: 6 #arcs: 15/100 DPs: iffact#(x,true()) -> fact#(-(x,s(0()))) fact#(x) -> iffact#(x,ge(x,s(s(0())))) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Open DPs: *#(x,s(y)) -> *#(x,y) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Subterm Criterion Processor: simple projection: pi(*#) = 1 problem: DPs: TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Qed DPs: +#(x,s(y)) -> +#(x,y) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Subterm Criterion Processor: simple projection: pi(+#) = 1 problem: DPs: TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Qed DPs: -#(s(x),s(y)) -> -#(x,y) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Subterm Criterion Processor: simple projection: pi(-#) = 1 problem: DPs: TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Qed DPs: ge#(s(x),s(y)) -> ge#(x,y) TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Subterm Criterion Processor: simple projection: pi(ge#) = 1 problem: DPs: TRS: +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) *(x,0()) -> 0() *(x,s(y)) -> +(*(x,y),x) ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) fact(x) -> iffact(x,ge(x,s(s(0())))) iffact(x,true()) -> *(x,fact(-(x,s(0())))) iffact(x,false()) -> s(0()) Qed