/export/starexec/sandbox/solver/bin/starexec_run_default /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR l l1 l2 l3 x y) (RULES app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ) Problem 1: Dependency Pairs Processor: -> Pairs: APP(app(l1,l2),l3) -> APP(l1,app(l2,l3)) APP(app(l1,l2),l3) -> APP(l2,l3) APP(cons(x,l1),l2) -> APP(l1,l2) EQ(s(x),s(y)) -> EQ(x,y) IFINTER(false,x,l1,l2) -> INTER(l1,l2) IFINTER(true,x,l1,l2) -> INTER(l1,l2) IFMEM(false,x,l) -> MEM(x,l) INTER(app(l1,l2),l3) -> APP(inter(l1,l3),inter(l2,l3)) INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(cons(x,l1),l2) -> IFINTER(mem(x,l2),x,l1,l2) INTER(cons(x,l1),l2) -> MEM(x,l2) INTER(l1,app(l2,l3)) -> APP(inter(l1,l2),inter(l1,l3)) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) INTER(l1,cons(x,l2)) -> IFINTER(mem(x,l1),x,l2,l1) INTER(l1,cons(x,l2)) -> MEM(x,l1) MEM(x,cons(y,l)) -> EQ(x,y) MEM(x,cons(y,l)) -> IFMEM(eq(x,y),x,l) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false Problem 1: SCC Processor: -> Pairs: APP(app(l1,l2),l3) -> APP(l1,app(l2,l3)) APP(app(l1,l2),l3) -> APP(l2,l3) APP(cons(x,l1),l2) -> APP(l1,l2) EQ(s(x),s(y)) -> EQ(x,y) IFINTER(false,x,l1,l2) -> INTER(l1,l2) IFINTER(true,x,l1,l2) -> INTER(l1,l2) IFMEM(false,x,l) -> MEM(x,l) INTER(app(l1,l2),l3) -> APP(inter(l1,l3),inter(l2,l3)) INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(cons(x,l1),l2) -> IFINTER(mem(x,l2),x,l1,l2) INTER(cons(x,l1),l2) -> MEM(x,l2) INTER(l1,app(l2,l3)) -> APP(inter(l1,l2),inter(l1,l3)) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) INTER(l1,cons(x,l2)) -> IFINTER(mem(x,l1),x,l2,l1) INTER(l1,cons(x,l2)) -> MEM(x,l1) MEM(x,cons(y,l)) -> EQ(x,y) MEM(x,cons(y,l)) -> IFMEM(eq(x,y),x,l) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: EQ(s(x),s(y)) -> EQ(x,y) ->->-> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->->Cycle: ->->-> Pairs: IFMEM(false,x,l) -> MEM(x,l) MEM(x,cons(y,l)) -> IFMEM(eq(x,y),x,l) ->->-> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->->Cycle: ->->-> Pairs: APP(app(l1,l2),l3) -> APP(l1,app(l2,l3)) APP(app(l1,l2),l3) -> APP(l2,l3) APP(cons(x,l1),l2) -> APP(l1,l2) ->->-> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->->Cycle: ->->-> Pairs: IFINTER(false,x,l1,l2) -> INTER(l1,l2) IFINTER(true,x,l1,l2) -> INTER(l1,l2) INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(cons(x,l1),l2) -> IFINTER(mem(x,l2),x,l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) INTER(l1,cons(x,l2)) -> IFINTER(mem(x,l1),x,l2,l1) ->->-> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false The problem is decomposed in 4 subproblems. Problem 1.1: Subterm Processor: -> Pairs: EQ(s(x),s(y)) -> EQ(x,y) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Projection: pi(EQ) = 1 Problem 1.1: SCC Processor: -> Pairs: Empty -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Subterm Processor: -> Pairs: IFMEM(false,x,l) -> MEM(x,l) MEM(x,cons(y,l)) -> IFMEM(eq(x,y),x,l) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Projection: pi(IFMEM) = 3 pi(MEM) = 2 Problem 1.2: SCC Processor: -> Pairs: IFMEM(false,x,l) -> MEM(x,l) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: Subterm Processor: -> Pairs: APP(app(l1,l2),l3) -> APP(l1,app(l2,l3)) APP(app(l1,l2),l3) -> APP(l2,l3) APP(cons(x,l1),l2) -> APP(l1,l2) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Projection: pi(APP) = 1 Problem 1.3: SCC Processor: -> Pairs: Empty -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Reduction Pair Processor: -> Pairs: IFINTER(false,x,l1,l2) -> INTER(l1,l2) IFINTER(true,x,l1,l2) -> INTER(l1,l2) INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(cons(x,l1),l2) -> IFINTER(mem(x,l2),x,l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) INTER(l1,cons(x,l2)) -> IFINTER(mem(x,l1),x,l2,l1) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false -> Usable rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 2.X1 + 2.X2 [eq](X1,X2) = X1 + 2.X2 [ifmem](X1,X2,X3) = 2.X2 [mem](X1,X2) = 2.X1 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [false] = 0 [nil] = 2 [s](X) = 2.X + 2 [true] = 0 [IFINTER](X1,X2,X3,X4) = 2.X1 + 2.X3 + 2.X4 + 1 [INTER](X1,X2) = 2.X1 + 2.X2 Problem 1.4: SCC Processor: -> Pairs: IFINTER(true,x,l1,l2) -> INTER(l1,l2) INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(cons(x,l1),l2) -> IFINTER(mem(x,l2),x,l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) INTER(l1,cons(x,l2)) -> IFINTER(mem(x,l1),x,l2,l1) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: IFINTER(true,x,l1,l2) -> INTER(l1,l2) INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(cons(x,l1),l2) -> IFINTER(mem(x,l2),x,l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) INTER(l1,cons(x,l2)) -> IFINTER(mem(x,l1),x,l2,l1) ->->-> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false Problem 1.4: Reduction Pair Processor: -> Pairs: IFINTER(true,x,l1,l2) -> INTER(l1,l2) INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(cons(x,l1),l2) -> IFINTER(mem(x,l2),x,l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) INTER(l1,cons(x,l2)) -> IFINTER(mem(x,l1),x,l2,l1) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false -> Usable rules: eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [app](X1,X2) = 2.X1 + X2 [eq](X1,X2) = 0 [ifmem](X1,X2,X3) = 2.X2 + 2.X3 + 2 [mem](X1,X2) = 2.X1 + 2.X2 + 2 [0] = 1 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [false] = 0 [nil] = 0 [s](X) = 2 [true] = 0 [IFINTER](X1,X2,X3,X4) = 2.X2 + 2.X3 + 2.X4 + 2 [INTER](X1,X2) = 2.X1 + 2.X2 + 1 Problem 1.4: SCC Processor: -> Pairs: INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(cons(x,l1),l2) -> IFINTER(mem(x,l2),x,l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) INTER(l1,cons(x,l2)) -> IFINTER(mem(x,l1),x,l2,l1) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) ->->-> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false Problem 1.4: Subterm Processor: -> Pairs: INTER(app(l1,l2),l3) -> INTER(l1,l3) INTER(app(l1,l2),l3) -> INTER(l2,l3) INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Projection: pi(INTER) = 1 Problem 1.4: SCC Processor: -> Pairs: INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) ->->-> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false Problem 1.4: Subterm Processor: -> Pairs: INTER(l1,app(l2,l3)) -> INTER(l1,l2) INTER(l1,app(l2,l3)) -> INTER(l1,l3) -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Projection: pi(INTER) = 2 Problem 1.4: SCC Processor: -> Pairs: Empty -> Rules: app(app(l1,l2),l3) -> app(l1,app(l2,l3)) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil,l) -> l eq(0,0) -> true eq(0,s(x)) -> false eq(s(x),0) -> false eq(s(x),s(y)) -> eq(x,y) if(false,x,y) -> y if(true,x,y) -> x ifinter(false,x,l1,l2) -> inter(l1,l2) ifinter(true,x,l1,l2) -> cons(x,inter(l1,l2)) ifmem(false,x,l) -> mem(x,l) ifmem(true,x,l) -> true inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(nil,x) -> nil inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) inter(x,nil) -> nil mem(x,cons(y,l)) -> ifmem(eq(x,y),x,l) mem(x,nil) -> false ->Strongly Connected Components: There is no strongly connected component The problem is finite.