/export/starexec/sandbox/solver/bin/starexec_run_default /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR v_NonEmpty:S x:S y:S) (RULES *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ) Problem 1: Innermost Equivalent Processor: -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) -> The term rewriting system is non-overlaping or locally confluent overlay system. Therefore, innermost termination implies termination. Problem 1: Dependency Pairs Processor: -> Pairs: *#(x:S,s(y:S)) -> *#(x:S,y:S) *#(x:S,s(y:S)) -> +#(*(x:S,y:S),x:S) +#(x:S,s(y:S)) -> +#(x:S,y:S) -#(s(x:S),s(y:S)) -> -#(x:S,y:S) FACT(x:S) -> GE(x:S,s(s(0))) FACT(x:S) -> IFFACT(x:S,ge(x:S,s(s(0)))) GE(s(x:S),s(y:S)) -> GE(x:S,y:S) IFFACT(x:S,ttrue) -> *#(x:S,fact(-(x:S,s(0)))) IFFACT(x:S,ttrue) -> -#(x:S,s(0)) IFFACT(x:S,ttrue) -> FACT(-(x:S,s(0))) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) Problem 1: SCC Processor: -> Pairs: *#(x:S,s(y:S)) -> *#(x:S,y:S) *#(x:S,s(y:S)) -> +#(*(x:S,y:S),x:S) +#(x:S,s(y:S)) -> +#(x:S,y:S) -#(s(x:S),s(y:S)) -> -#(x:S,y:S) FACT(x:S) -> GE(x:S,s(s(0))) FACT(x:S) -> IFFACT(x:S,ge(x:S,s(s(0)))) GE(s(x:S),s(y:S)) -> GE(x:S,y:S) IFFACT(x:S,ttrue) -> *#(x:S,fact(-(x:S,s(0)))) IFFACT(x:S,ttrue) -> -#(x:S,s(0)) IFFACT(x:S,ttrue) -> FACT(-(x:S,s(0))) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: GE(s(x:S),s(y:S)) -> GE(x:S,y:S) ->->-> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->->Cycle: ->->-> Pairs: -#(s(x:S),s(y:S)) -> -#(x:S,y:S) ->->-> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->->Cycle: ->->-> Pairs: +#(x:S,s(y:S)) -> +#(x:S,y:S) ->->-> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->->Cycle: ->->-> Pairs: *#(x:S,s(y:S)) -> *#(x:S,y:S) ->->-> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->->Cycle: ->->-> Pairs: FACT(x:S) -> IFFACT(x:S,ge(x:S,s(s(0)))) IFFACT(x:S,ttrue) -> FACT(-(x:S,s(0))) ->->-> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) The problem is decomposed in 5 subproblems. Problem 1.1: Subterm Processor: -> Pairs: GE(s(x:S),s(y:S)) -> GE(x:S,y:S) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Projection: pi(GE) = 1 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: -#(s(x:S),s(y:S)) -> -#(x:S,y:S) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Projection: pi(-#) = 1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Subterm Processor: -> Pairs: +#(x:S,s(y:S)) -> +#(x:S,y:S) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Projection: pi(+#) = 2 Problem 1.3: SCC Processor: -> Pairs: Empty -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Subterm Processor: -> Pairs: *#(x:S,s(y:S)) -> *#(x:S,y:S) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Projection: pi(*#) = 2 Problem 1.4: SCC Processor: -> Pairs: Empty -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.5: Narrowing Processor: -> Pairs: FACT(x:S) -> IFFACT(x:S,ge(x:S,s(s(0)))) IFFACT(x:S,ttrue) -> FACT(-(x:S,s(0))) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Narrowed Pairs: ->->Original Pair: FACT(x:S) -> IFFACT(x:S,ge(x:S,s(s(0)))) ->-> Narrowed pairs: FACT(0) -> IFFACT(0,ffalse) FACT(s(x:S)) -> IFFACT(s(x:S),ge(x:S,s(0))) Problem 1.5: SCC Processor: -> Pairs: FACT(0) -> IFFACT(0,ffalse) FACT(s(x:S)) -> IFFACT(s(x:S),ge(x:S,s(0))) IFFACT(x:S,ttrue) -> FACT(-(x:S,s(0))) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: FACT(s(x:S)) -> IFFACT(s(x:S),ge(x:S,s(0))) IFFACT(x:S,ttrue) -> FACT(-(x:S,s(0))) ->->-> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) Problem 1.5: Narrowing Processor: -> Pairs: FACT(s(x:S)) -> IFFACT(s(x:S),ge(x:S,s(0))) IFFACT(x:S,ttrue) -> FACT(-(x:S,s(0))) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Narrowed Pairs: ->->Original Pair: FACT(s(x:S)) -> IFFACT(s(x:S),ge(x:S,s(0))) ->-> Narrowed pairs: FACT(s(0)) -> IFFACT(s(0),ffalse) FACT(s(s(x:S))) -> IFFACT(s(s(x:S)),ge(x:S,0)) ->->Original Pair: IFFACT(x:S,ttrue) -> FACT(-(x:S,s(0))) ->-> Narrowed pairs: IFFACT(s(x:S),ttrue) -> FACT(-(x:S,0)) Problem 1.5: SCC Processor: -> Pairs: FACT(s(0)) -> IFFACT(s(0),ffalse) FACT(s(s(x:S))) -> IFFACT(s(s(x:S)),ge(x:S,0)) IFFACT(s(x:S),ttrue) -> FACT(-(x:S,0)) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: FACT(s(s(x:S))) -> IFFACT(s(s(x:S)),ge(x:S,0)) IFFACT(s(x:S),ttrue) -> FACT(-(x:S,0)) ->->-> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) Problem 1.5: Reduction Pairs Processor: -> Pairs: FACT(s(s(x:S))) -> IFFACT(s(s(x:S)),ge(x:S,0)) IFFACT(s(x:S),ttrue) -> FACT(-(x:S,0)) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) -> Usable rules: -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [*](X1,X2) = 0 [+](X1,X2) = 0 [-](X1,X2) = 2.X1 + 1 [fact](X) = 0 [ge](X1,X2) = 2.X1 + X2 [iffact](X1,X2) = 0 [0] = 2 [fSNonEmpty] = 0 [false] = 2 [s](X) = 2.X + 2 [true] = 0 [*#](X1,X2) = 0 [+#](X1,X2) = 0 [-#](X1,X2) = 0 [FACT](X) = X + 2 [GE](X1,X2) = 0 [IFFACT](X1,X2) = X1 + 1 Problem 1.5: SCC Processor: -> Pairs: IFFACT(s(x:S),ttrue) -> FACT(-(x:S,0)) -> Rules: *(x:S,0) -> 0 *(x:S,s(y:S)) -> +(*(x:S,y:S),x:S) +(x:S,0) -> x:S +(x:S,s(y:S)) -> s(+(x:S,y:S)) -(s(x:S),s(y:S)) -> -(x:S,y:S) -(x:S,0) -> x:S fact(x:S) -> iffact(x:S,ge(x:S,s(s(0)))) ge(0,s(y:S)) -> ffalse ge(s(x:S),s(y:S)) -> ge(x:S,y:S) ge(x:S,0) -> ttrue iffact(x:S,ffalse) -> s(0) iffact(x:S,ttrue) -> *(x:S,fact(-(x:S,s(0)))) ->Strongly Connected Components: There is no strongly connected component The problem is finite.