MAYBE Problem: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Proof: DP Processor: DPs: eq#(s(n),s(m)) -> eq#(n,m) le#(s(n),s(m)) -> le#(n,m) min#(cons(n,cons(m,x))) -> le#(n,m) min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) if_min#(true(),cons(n,cons(m,x))) -> min#(cons(n,x)) if_min#(false(),cons(n,cons(m,x))) -> min#(cons(m,x)) replace#(n,m,cons(k,x)) -> eq#(n,k) replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) if_replace#(false(),n,m,cons(k,x)) -> replace#(n,m,x) sort#(cons(n,x)) -> replace#(min(cons(n,x)),n,x) sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) sort#(cons(n,x)) -> min#(cons(n,x)) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Usable Rule Processor: DPs: eq#(s(n),s(m)) -> eq#(n,m) le#(s(n),s(m)) -> le#(n,m) min#(cons(n,cons(m,x))) -> le#(n,m) min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) if_min#(true(),cons(n,cons(m,x))) -> min#(cons(n,x)) if_min#(false(),cons(n,cons(m,x))) -> min#(cons(m,x)) replace#(n,m,cons(k,x)) -> eq#(n,k) replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) if_replace#(false(),n,m,cons(k,x)) -> replace#(n,m,x) sort#(cons(n,x)) -> replace#(min(cons(n,x)),n,x) sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) sort#(cons(n,x)) -> min#(cons(n,x)) TRS: le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) TDG Processor: DPs: eq#(s(n),s(m)) -> eq#(n,m) le#(s(n),s(m)) -> le#(n,m) min#(cons(n,cons(m,x))) -> le#(n,m) min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) if_min#(true(),cons(n,cons(m,x))) -> min#(cons(n,x)) if_min#(false(),cons(n,cons(m,x))) -> min#(cons(m,x)) replace#(n,m,cons(k,x)) -> eq#(n,k) replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) if_replace#(false(),n,m,cons(k,x)) -> replace#(n,m,x) sort#(cons(n,x)) -> replace#(min(cons(n,x)),n,x) sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) sort#(cons(n,x)) -> min#(cons(n,x)) TRS: le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) graph: sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) -> sort#(cons(n,x)) -> min#(cons(n,x)) sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) -> sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) -> sort#(cons(n,x)) -> replace#(min(cons(n,x)),n,x) sort#(cons(n,x)) -> replace#(min(cons(n,x)),n,x) -> replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) sort#(cons(n,x)) -> replace#(min(cons(n,x)),n,x) -> replace#(n,m,cons(k,x)) -> eq#(n,k) sort#(cons(n,x)) -> min#(cons(n,x)) -> min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) sort#(cons(n,x)) -> min#(cons(n,x)) -> min#(cons(n,cons(m,x))) -> le#(n,m) if_replace#(false(),n,m,cons(k,x)) -> replace#(n,m,x) -> replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) if_replace#(false(),n,m,cons(k,x)) -> replace#(n,m,x) -> replace#(n,m,cons(k,x)) -> eq#(n,k) replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) -> if_replace#(false(),n,m,cons(k,x)) -> replace#(n,m,x) replace#(n,m,cons(k,x)) -> eq#(n,k) -> eq#(s(n),s(m)) -> eq#(n,m) if_min#(false(),cons(n,cons(m,x))) -> min#(cons(m,x)) -> min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) if_min#(false(),cons(n,cons(m,x))) -> min#(cons(m,x)) -> min#(cons(n,cons(m,x))) -> le#(n,m) if_min#(true(),cons(n,cons(m,x))) -> min#(cons(n,x)) -> min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) if_min#(true(),cons(n,cons(m,x))) -> min#(cons(n,x)) -> min#(cons(n,cons(m,x))) -> le#(n,m) min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) -> if_min#(false(),cons(n,cons(m,x))) -> min#(cons(m,x)) min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) -> if_min#(true(),cons(n,cons(m,x))) -> min#(cons(n,x)) min#(cons(n,cons(m,x))) -> le#(n,m) -> le#(s(n),s(m)) -> le#(n,m) le#(s(n),s(m)) -> le#(n,m) -> le#(s(n),s(m)) -> le#(n,m) eq#(s(n),s(m)) -> eq#(n,m) -> eq#(s(n),s(m)) -> eq#(n,m) Restore Modifier: DPs: eq#(s(n),s(m)) -> eq#(n,m) le#(s(n),s(m)) -> le#(n,m) min#(cons(n,cons(m,x))) -> le#(n,m) min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) if_min#(true(),cons(n,cons(m,x))) -> min#(cons(n,x)) if_min#(false(),cons(n,cons(m,x))) -> min#(cons(m,x)) replace#(n,m,cons(k,x)) -> eq#(n,k) replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) if_replace#(false(),n,m,cons(k,x)) -> replace#(n,m,x) sort#(cons(n,x)) -> replace#(min(cons(n,x)),n,x) sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) sort#(cons(n,x)) -> min#(cons(n,x)) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) SCC Processor: #sccs: 5 #rules: 8 #arcs: 20/144 DPs: sort#(cons(n,x)) -> sort#(replace(min(cons(n,x)),n,x)) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Matrix Interpretation Processor: dimension: 1 interpretation: [sort#](x0) = x0, [sort](x0) = x0, [if_replace](x0, x1, x2, x3) = x3, [replace](x0, x1, x2) = x2, [if_min](x0, x1) = 0, [min](x0) = 0, [cons](x0, x1) = x1 + 1, [nil] = 1, [le](x0, x1) = 1, [false] = 1, [s](x0) = 0, [true] = 0, [eq](x0, x1) = 1, [0] = 0 orientation: sort#(cons(n,x)) = x + 1 >= x = sort#(replace(min(cons(n,x)),n,x)) eq(0(),0()) = 1 >= 0 = true() eq(0(),s(m)) = 1 >= 1 = false() eq(s(n),0()) = 1 >= 1 = false() eq(s(n),s(m)) = 1 >= 1 = eq(n,m) le(0(),m) = 1 >= 0 = true() le(s(n),0()) = 1 >= 1 = false() le(s(n),s(m)) = 1 >= 1 = le(n,m) min(cons(0(),nil())) = 0 >= 0 = 0() min(cons(s(n),nil())) = 0 >= 0 = s(n) min(cons(n,cons(m,x))) = 0 >= 0 = if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) = 0 >= 0 = min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) = 0 >= 0 = min(cons(m,x)) replace(n,m,nil()) = 1 >= 1 = nil() replace(n,m,cons(k,x)) = x + 1 >= x + 1 = if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) = x + 1 >= x + 1 = cons(m,x) if_replace(false(),n,m,cons(k,x)) = x + 1 >= x + 1 = cons(k,replace(n,m,x)) sort(nil()) = 1 >= 1 = nil() sort(cons(n,x)) = x + 1 >= x + 1 = cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) problem: DPs: TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Qed DPs: min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) if_min#(true(),cons(n,cons(m,x))) -> min#(cons(n,x)) if_min#(false(),cons(n,cons(m,x))) -> min#(cons(m,x)) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Matrix Interpretation Processor: dimension: 1 interpretation: [if_min#](x0, x1) = x1, [min#](x0) = x0, [sort](x0) = x0, [if_replace](x0, x1, x2, x3) = x3, [replace](x0, x1, x2) = x2, [if_min](x0, x1) = x1, [min](x0) = x0, [cons](x0, x1) = x1 + 1, [nil] = 1, [le](x0, x1) = 1, [false] = 0, [s](x0) = 0, [true] = 0, [eq](x0, x1) = 0, [0] = 0 orientation: min#(cons(n,cons(m,x))) = x + 2 >= x + 2 = if_min#(le(n,m),cons(n,cons(m,x))) if_min#(true(),cons(n,cons(m,x))) = x + 2 >= x + 1 = min#(cons(n,x)) if_min#(false(),cons(n,cons(m,x))) = x + 2 >= x + 1 = min#(cons(m,x)) eq(0(),0()) = 0 >= 0 = true() eq(0(),s(m)) = 0 >= 0 = false() eq(s(n),0()) = 0 >= 0 = false() eq(s(n),s(m)) = 0 >= 0 = eq(n,m) le(0(),m) = 1 >= 0 = true() le(s(n),0()) = 1 >= 0 = false() le(s(n),s(m)) = 1 >= 1 = le(n,m) min(cons(0(),nil())) = 2 >= 0 = 0() min(cons(s(n),nil())) = 2 >= 0 = s(n) min(cons(n,cons(m,x))) = x + 2 >= x + 2 = if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) = x + 2 >= x + 1 = min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) = x + 2 >= x + 1 = min(cons(m,x)) replace(n,m,nil()) = 1 >= 1 = nil() replace(n,m,cons(k,x)) = x + 1 >= x + 1 = if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) = x + 1 >= x + 1 = cons(m,x) if_replace(false(),n,m,cons(k,x)) = x + 1 >= x + 1 = cons(k,replace(n,m,x)) sort(nil()) = 1 >= 1 = nil() sort(cons(n,x)) = x + 1 >= x + 1 = cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) problem: DPs: min#(cons(n,cons(m,x))) -> if_min#(le(n,m),cons(n,cons(m,x))) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Matrix Interpretation Processor: dimension: 1 interpretation: [if_min#](x0, x1) = 0, [min#](x0) = 1, [sort](x0) = 0, [if_replace](x0, x1, x2, x3) = 0, [replace](x0, x1, x2) = 0, [if_min](x0, x1) = 0, [min](x0) = 0, [cons](x0, x1) = 0, [nil] = 0, [le](x0, x1) = 0, [false] = 0, [s](x0) = 0, [true] = 0, [eq](x0, x1) = 0, [0] = 0 orientation: min#(cons(n,cons(m,x))) = 1 >= 0 = if_min#(le(n,m),cons(n,cons(m,x))) eq(0(),0()) = 0 >= 0 = true() eq(0(),s(m)) = 0 >= 0 = false() eq(s(n),0()) = 0 >= 0 = false() eq(s(n),s(m)) = 0 >= 0 = eq(n,m) le(0(),m) = 0 >= 0 = true() le(s(n),0()) = 0 >= 0 = false() le(s(n),s(m)) = 0 >= 0 = le(n,m) min(cons(0(),nil())) = 0 >= 0 = 0() min(cons(s(n),nil())) = 0 >= 0 = s(n) min(cons(n,cons(m,x))) = 0 >= 0 = if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) = 0 >= 0 = min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) = 0 >= 0 = min(cons(m,x)) replace(n,m,nil()) = 0 >= 0 = nil() replace(n,m,cons(k,x)) = 0 >= 0 = if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) = 0 >= 0 = cons(m,x) if_replace(false(),n,m,cons(k,x)) = 0 >= 0 = cons(k,replace(n,m,x)) sort(nil()) = 0 >= 0 = nil() sort(cons(n,x)) = 0 >= 0 = cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) problem: DPs: TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Qed DPs: le#(s(n),s(m)) -> le#(n,m) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Open DPs: replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) if_replace#(false(),n,m,cons(k,x)) -> replace#(n,m,x) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Matrix Interpretation Processor: dimension: 1 interpretation: [if_replace#](x0, x1, x2, x3) = x1 + x3 + 1, [replace#](x0, x1, x2) = x0 + x2 + 1, [sort](x0) = x0 + 1, [if_replace](x0, x1, x2, x3) = x2 + x3, [replace](x0, x1, x2) = x1 + x2, [if_min](x0, x1) = 0, [min](x0) = 0, [cons](x0, x1) = x0 + x1 + 1, [nil] = 0, [le](x0, x1) = 0, [false] = 0, [s](x0) = 0, [true] = 0, [eq](x0, x1) = 1, [0] = 0 orientation: replace#(n,m,cons(k,x)) = k + n + x + 2 >= k + n + x + 2 = if_replace#(eq(n,k),n,m,cons(k,x)) if_replace#(false(),n,m,cons(k,x)) = k + n + x + 2 >= n + x + 1 = replace#(n,m,x) eq(0(),0()) = 1 >= 0 = true() eq(0(),s(m)) = 1 >= 0 = false() eq(s(n),0()) = 1 >= 0 = false() eq(s(n),s(m)) = 1 >= 1 = eq(n,m) le(0(),m) = 0 >= 0 = true() le(s(n),0()) = 0 >= 0 = false() le(s(n),s(m)) = 0 >= 0 = le(n,m) min(cons(0(),nil())) = 0 >= 0 = 0() min(cons(s(n),nil())) = 0 >= 0 = s(n) min(cons(n,cons(m,x))) = 0 >= 0 = if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) = 0 >= 0 = min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) = 0 >= 0 = min(cons(m,x)) replace(n,m,nil()) = m >= 0 = nil() replace(n,m,cons(k,x)) = k + m + x + 1 >= k + m + x + 1 = if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) = k + m + x + 1 >= m + x + 1 = cons(m,x) if_replace(false(),n,m,cons(k,x)) = k + m + x + 1 >= k + m + x + 1 = cons(k,replace(n,m,x)) sort(nil()) = 1 >= 0 = nil() sort(cons(n,x)) = n + x + 2 >= n + x + 2 = cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) problem: DPs: replace#(n,m,cons(k,x)) -> if_replace#(eq(n,k),n,m,cons(k,x)) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Matrix Interpretation Processor: dimension: 1 interpretation: [if_replace#](x0, x1, x2, x3) = 0, [replace#](x0, x1, x2) = 1, [sort](x0) = 0, [if_replace](x0, x1, x2, x3) = 0, [replace](x0, x1, x2) = 0, [if_min](x0, x1) = 0, [min](x0) = 0, [cons](x0, x1) = 0, [nil] = 0, [le](x0, x1) = 0, [false] = 0, [s](x0) = 0, [true] = 0, [eq](x0, x1) = 0, [0] = 0 orientation: replace#(n,m,cons(k,x)) = 1 >= 0 = if_replace#(eq(n,k),n,m,cons(k,x)) eq(0(),0()) = 0 >= 0 = true() eq(0(),s(m)) = 0 >= 0 = false() eq(s(n),0()) = 0 >= 0 = false() eq(s(n),s(m)) = 0 >= 0 = eq(n,m) le(0(),m) = 0 >= 0 = true() le(s(n),0()) = 0 >= 0 = false() le(s(n),s(m)) = 0 >= 0 = le(n,m) min(cons(0(),nil())) = 0 >= 0 = 0() min(cons(s(n),nil())) = 0 >= 0 = s(n) min(cons(n,cons(m,x))) = 0 >= 0 = if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) = 0 >= 0 = min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) = 0 >= 0 = min(cons(m,x)) replace(n,m,nil()) = 0 >= 0 = nil() replace(n,m,cons(k,x)) = 0 >= 0 = if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) = 0 >= 0 = cons(m,x) if_replace(false(),n,m,cons(k,x)) = 0 >= 0 = cons(k,replace(n,m,x)) sort(nil()) = 0 >= 0 = nil() sort(cons(n,x)) = 0 >= 0 = cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) problem: DPs: TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Qed DPs: eq#(s(n),s(m)) -> eq#(n,m) TRS: eq(0(),0()) -> true() eq(0(),s(m)) -> false() eq(s(n),0()) -> false() eq(s(n),s(m)) -> eq(n,m) le(0(),m) -> true() le(s(n),0()) -> false() le(s(n),s(m)) -> le(n,m) min(cons(0(),nil())) -> 0() min(cons(s(n),nil())) -> s(n) min(cons(n,cons(m,x))) -> if_min(le(n,m),cons(n,cons(m,x))) if_min(true(),cons(n,cons(m,x))) -> min(cons(n,x)) if_min(false(),cons(n,cons(m,x))) -> min(cons(m,x)) replace(n,m,nil()) -> nil() replace(n,m,cons(k,x)) -> if_replace(eq(n,k),n,m,cons(k,x)) if_replace(true(),n,m,cons(k,x)) -> cons(m,x) if_replace(false(),n,m,cons(k,x)) -> cons(k,replace(n,m,x)) sort(nil()) -> nil() sort(cons(n,x)) -> cons(min(cons(n,x)),sort(replace(min(cons(n,x)),n,x))) Open