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