/export/starexec/sandbox2/solver/bin/starexec_run_default /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR v_NonEmpty:S x:S y:S z:S) (RULES ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ) Problem 1: Dependency Pairs Processor: -> Pairs: ++#(++(x:S,y:S),z:S) -> ++#(x:S,++(y:S,z:S)) ++#(++(x:S,y:S),z:S) -> ++#(y:S,z:S) FLATTEN(++(unit(x:S),y:S)) -> ++#(flatten(x:S),flatten(y:S)) FLATTEN(++(unit(x:S),y:S)) -> FLATTEN(x:S) FLATTEN(++(unit(x:S),y:S)) -> FLATTEN(y:S) FLATTEN(++(x:S,y:S)) -> ++#(flatten(x:S),flatten(y:S)) FLATTEN(++(x:S,y:S)) -> FLATTEN(x:S) FLATTEN(++(x:S,y:S)) -> FLATTEN(y:S) FLATTEN(unit(x:S)) -> FLATTEN(x:S) REV(++(x:S,y:S)) -> ++#(rev(y:S),rev(x:S)) REV(++(x:S,y:S)) -> REV(x:S) REV(++(x:S,y:S)) -> REV(y:S) -> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) Problem 1: SCC Processor: -> Pairs: ++#(++(x:S,y:S),z:S) -> ++#(x:S,++(y:S,z:S)) ++#(++(x:S,y:S),z:S) -> ++#(y:S,z:S) FLATTEN(++(unit(x:S),y:S)) -> ++#(flatten(x:S),flatten(y:S)) FLATTEN(++(unit(x:S),y:S)) -> FLATTEN(x:S) FLATTEN(++(unit(x:S),y:S)) -> FLATTEN(y:S) FLATTEN(++(x:S,y:S)) -> ++#(flatten(x:S),flatten(y:S)) FLATTEN(++(x:S,y:S)) -> FLATTEN(x:S) FLATTEN(++(x:S,y:S)) -> FLATTEN(y:S) FLATTEN(unit(x:S)) -> FLATTEN(x:S) REV(++(x:S,y:S)) -> ++#(rev(y:S),rev(x:S)) REV(++(x:S,y:S)) -> REV(x:S) REV(++(x:S,y:S)) -> REV(y:S) -> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: ++#(++(x:S,y:S),z:S) -> ++#(x:S,++(y:S,z:S)) ++#(++(x:S,y:S),z:S) -> ++#(y:S,z:S) ->->-> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->->Cycle: ->->-> Pairs: FLATTEN(++(unit(x:S),y:S)) -> FLATTEN(x:S) FLATTEN(++(unit(x:S),y:S)) -> FLATTEN(y:S) FLATTEN(++(x:S,y:S)) -> FLATTEN(x:S) FLATTEN(++(x:S,y:S)) -> FLATTEN(y:S) FLATTEN(unit(x:S)) -> FLATTEN(x:S) ->->-> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->->Cycle: ->->-> Pairs: REV(++(x:S,y:S)) -> REV(x:S) REV(++(x:S,y:S)) -> REV(y:S) ->->-> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) The problem is decomposed in 3 subproblems. Problem 1.1: Subterm Processor: -> Pairs: ++#(++(x:S,y:S),z:S) -> ++#(x:S,++(y:S,z:S)) ++#(++(x:S,y:S),z:S) -> ++#(y:S,z:S) -> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->Projection: pi(++#) = 1 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: FLATTEN(++(unit(x:S),y:S)) -> FLATTEN(x:S) FLATTEN(++(unit(x:S),y:S)) -> FLATTEN(y:S) FLATTEN(++(x:S,y:S)) -> FLATTEN(x:S) FLATTEN(++(x:S,y:S)) -> FLATTEN(y:S) FLATTEN(unit(x:S)) -> FLATTEN(x:S) -> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->Projection: pi(FLATTEN) = 1 Problem 1.2: SCC Processor: -> Pairs: Empty -> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Subterm Processor: -> Pairs: REV(++(x:S,y:S)) -> REV(x:S) REV(++(x:S,y:S)) -> REV(y:S) -> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->Projection: pi(REV) = 1 Problem 1.3: SCC Processor: -> Pairs: Empty -> Rules: ++(++(x:S,y:S),z:S) -> ++(x:S,++(y:S,z:S)) ++(nil,y:S) -> y:S ++(x:S,nil) -> x:S flatten(++(unit(x:S),y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(++(x:S,y:S)) -> ++(flatten(x:S),flatten(y:S)) flatten(flatten(x:S)) -> flatten(x:S) flatten(nil) -> nil flatten(unit(x:S)) -> flatten(x:S) rev(++(x:S,y:S)) -> ++(rev(y:S),rev(x:S)) rev(rev(x:S)) -> x:S rev(nil) -> nil rev(unit(x:S)) -> unit(x:S) ->Strongly Connected Components: There is no strongly connected component The problem is finite.