MAYBE

Problem:
 dbl(0()) -> 0()
 dbl(s(X)) -> s(s(dbl(X)))
 dbls(nil()) -> nil()
 dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y))
 sel(0(),cons(X,Y)) -> X
 sel(s(X),cons(Y,Z)) -> sel(X,Z)
 indx(nil(),X) -> nil()
 indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z))
 from(X) -> cons(X,from(s(X)))

Proof:
 DP Processor:
  DPs:
   dbl#(s(X)) -> dbl#(X)
   dbls#(cons(X,Y)) -> dbls#(Y)
   dbls#(cons(X,Y)) -> dbl#(X)
   sel#(s(X),cons(Y,Z)) -> sel#(X,Z)
   indx#(cons(X,Y),Z) -> indx#(Y,Z)
   indx#(cons(X,Y),Z) -> sel#(X,Z)
   from#(X) -> from#(s(X))
  TRS:
   dbl(0()) -> 0()
   dbl(s(X)) -> s(s(dbl(X)))
   dbls(nil()) -> nil()
   dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y))
   sel(0(),cons(X,Y)) -> X
   sel(s(X),cons(Y,Z)) -> sel(X,Z)
   indx(nil(),X) -> nil()
   indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z))
   from(X) -> cons(X,from(s(X)))
  Usable Rule Processor:
   DPs:
    dbl#(s(X)) -> dbl#(X)
    dbls#(cons(X,Y)) -> dbls#(Y)
    dbls#(cons(X,Y)) -> dbl#(X)
    sel#(s(X),cons(Y,Z)) -> sel#(X,Z)
    indx#(cons(X,Y),Z) -> indx#(Y,Z)
    indx#(cons(X,Y),Z) -> sel#(X,Z)
    from#(X) -> from#(s(X))
   TRS:
    
   EDG Processor:
    DPs:
     dbl#(s(X)) -> dbl#(X)
     dbls#(cons(X,Y)) -> dbls#(Y)
     dbls#(cons(X,Y)) -> dbl#(X)
     sel#(s(X),cons(Y,Z)) -> sel#(X,Z)
     indx#(cons(X,Y),Z) -> indx#(Y,Z)
     indx#(cons(X,Y),Z) -> sel#(X,Z)
     from#(X) -> from#(s(X))
    TRS:
     
    graph:
     from#(X) -> from#(s(X)) -> from#(X) -> from#(s(X))
     indx#(cons(X,Y),Z) -> indx#(Y,Z) ->
     indx#(cons(X,Y),Z) -> indx#(Y,Z)
     indx#(cons(X,Y),Z) -> indx#(Y,Z) ->
     indx#(cons(X,Y),Z) -> sel#(X,Z)
     indx#(cons(X,Y),Z) -> sel#(X,Z) ->
     sel#(s(X),cons(Y,Z)) -> sel#(X,Z)
     sel#(s(X),cons(Y,Z)) -> sel#(X,Z) ->
     sel#(s(X),cons(Y,Z)) -> sel#(X,Z)
     dbls#(cons(X,Y)) -> dbls#(Y) -> dbls#(cons(X,Y)) -> dbls#(Y)
     dbls#(cons(X,Y)) -> dbls#(Y) -> dbls#(cons(X,Y)) -> dbl#(X)
     dbls#(cons(X,Y)) -> dbl#(X) -> dbl#(s(X)) -> dbl#(X)
     dbl#(s(X)) -> dbl#(X) -> dbl#(s(X)) -> dbl#(X)
    Restore Modifier:
     DPs:
      dbl#(s(X)) -> dbl#(X)
      dbls#(cons(X,Y)) -> dbls#(Y)
      dbls#(cons(X,Y)) -> dbl#(X)
      sel#(s(X),cons(Y,Z)) -> sel#(X,Z)
      indx#(cons(X,Y),Z) -> indx#(Y,Z)
      indx#(cons(X,Y),Z) -> sel#(X,Z)
      from#(X) -> from#(s(X))
     TRS:
      dbl(0()) -> 0()
      dbl(s(X)) -> s(s(dbl(X)))
      dbls(nil()) -> nil()
      dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y))
      sel(0(),cons(X,Y)) -> X
      sel(s(X),cons(Y,Z)) -> sel(X,Z)
      indx(nil(),X) -> nil()
      indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z))
      from(X) -> cons(X,from(s(X)))
     SCC Processor:
      #sccs: 5
      #rules: 5
      #arcs: 9/49
      DPs:
       dbls#(cons(X,Y)) -> dbls#(Y)
      TRS:
       dbl(0()) -> 0()
       dbl(s(X)) -> s(s(dbl(X)))
       dbls(nil()) -> nil()
       dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y))
       sel(0(),cons(X,Y)) -> X
       sel(s(X),cons(Y,Z)) -> sel(X,Z)
       indx(nil(),X) -> nil()
       indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z))
       from(X) -> cons(X,from(s(X)))
      Open
      
      DPs:
       dbl#(s(X)) -> dbl#(X)
      TRS:
       dbl(0()) -> 0()
       dbl(s(X)) -> s(s(dbl(X)))
       dbls(nil()) -> nil()
       dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y))
       sel(0(),cons(X,Y)) -> X
       sel(s(X),cons(Y,Z)) -> sel(X,Z)
       indx(nil(),X) -> nil()
       indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z))
       from(X) -> cons(X,from(s(X)))
      Open
      
      DPs:
       indx#(cons(X,Y),Z) -> indx#(Y,Z)
      TRS:
       dbl(0()) -> 0()
       dbl(s(X)) -> s(s(dbl(X)))
       dbls(nil()) -> nil()
       dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y))
       sel(0(),cons(X,Y)) -> X
       sel(s(X),cons(Y,Z)) -> sel(X,Z)
       indx(nil(),X) -> nil()
       indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z))
       from(X) -> cons(X,from(s(X)))
      Open
      
      DPs:
       sel#(s(X),cons(Y,Z)) -> sel#(X,Z)
      TRS:
       dbl(0()) -> 0()
       dbl(s(X)) -> s(s(dbl(X)))
       dbls(nil()) -> nil()
       dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y))
       sel(0(),cons(X,Y)) -> X
       sel(s(X),cons(Y,Z)) -> sel(X,Z)
       indx(nil(),X) -> nil()
       indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z))
       from(X) -> cons(X,from(s(X)))
      Open
      
      DPs:
       from#(X) -> from#(s(X))
      TRS:
       dbl(0()) -> 0()
       dbl(s(X)) -> s(s(dbl(X)))
       dbls(nil()) -> nil()
       dbls(cons(X,Y)) -> cons(dbl(X),dbls(Y))
       sel(0(),cons(X,Y)) -> X
       sel(s(X),cons(Y,Z)) -> sel(X,Z)
       indx(nil(),X) -> nil()
       indx(cons(X,Y),Z) -> cons(sel(X,Z),indx(Y,Z))
       from(X) -> cons(X,from(s(X)))
      Open