merge(nil,

merge(

merge(.(

++(nil,

++(.(

if(true,

if(false,

R

↳Dependency Pair Analysis

MERGE(.(x,y), .(u,v)) -> IF(< (x,u), .(x, merge(y, .(u,v))), .(u, merge(.(x,y),v)))

MERGE(.(x,y), .(u,v)) -> MERGE(y, .(u,v))

MERGE(.(x,y), .(u,v)) -> MERGE(.(x,y),v)

++'(.(x,y),z) -> ++'(y,z)

Furthermore,

R

↳DPs

→DP Problem 1

↳Polynomial Ordering

→DP Problem 2

↳Polo

**MERGE(.( x, y), .(u, v)) -> MERGE(.(x, y), v)**

merge(nil,y) ->y

merge(x, nil) ->x

merge(.(x,y), .(u,v)) -> if(< (x,u), .(x, merge(y, .(u,v))), .(u, merge(.(x,y),v)))

++(nil,y) ->y

++(.(x,y),z) -> .(x, ++(y,z))

if(true,x,y) ->x

if(false,x,y) ->x

innermost

The following dependency pair can be strictly oriented:

MERGE(.(x,y), .(u,v)) -> MERGE(y, .(u,v))

There are no usable rules for innermost w.r.t. to the implicit AFS that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:

_{ }^{ }POL(.(x)_{1}, x_{2})= 1 + x _{2}_{ }^{ }_{ }^{ }POL(MERGE(x)_{1}, x_{2})= x _{1}_{ }^{ }

resulting in one new DP problem.

R

↳DPs

→DP Problem 1

↳Polo

→DP Problem 3

↳Polynomial Ordering

→DP Problem 2

↳Polo

**MERGE(.( x, y), .(u, v)) -> MERGE(.(x, y), v)**

merge(nil,y) ->y

merge(x, nil) ->x

merge(.(x,y), .(u,v)) -> if(< (x,u), .(x, merge(y, .(u,v))), .(u, merge(.(x,y),v)))

++(nil,y) ->y

++(.(x,y),z) -> .(x, ++(y,z))

if(true,x,y) ->x

if(false,x,y) ->x

innermost

The following dependency pair can be strictly oriented:

MERGE(.(x,y), .(u,v)) -> MERGE(.(x,y),v)

There are no usable rules for innermost w.r.t. to the implicit AFS that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:

_{ }^{ }POL(.(x)_{1}, x_{2})= 1 + x _{2}_{ }^{ }_{ }^{ }POL(MERGE(x)_{1}, x_{2})= x _{2}_{ }^{ }

resulting in one new DP problem.

R

↳DPs

→DP Problem 1

↳Polo

→DP Problem 3

↳Polo

...

→DP Problem 4

↳Dependency Graph

→DP Problem 2

↳Polo

merge(nil,y) ->y

merge(x, nil) ->x

merge(.(x,y), .(u,v)) -> if(< (x,u), .(x, merge(y, .(u,v))), .(u, merge(.(x,y),v)))

++(nil,y) ->y

++(.(x,y),z) -> .(x, ++(y,z))

if(true,x,y) ->x

if(false,x,y) ->x

innermost

Using the Dependency Graph resulted in no new DP problems.

R

↳DPs

→DP Problem 1

↳Polo

→DP Problem 2

↳Polynomial Ordering

**++'(.( x, y), z) -> ++'(y, z)**

merge(nil,y) ->y

merge(x, nil) ->x

merge(.(x,y), .(u,v)) -> if(< (x,u), .(x, merge(y, .(u,v))), .(u, merge(.(x,y),v)))

++(nil,y) ->y

++(.(x,y),z) -> .(x, ++(y,z))

if(true,x,y) ->x

if(false,x,y) ->x

innermost

The following dependency pair can be strictly oriented:

++'(.(x,y),z) -> ++'(y,z)

There are no usable rules for innermost w.r.t. to the implicit AFS that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:

_{ }^{ }POL(++'(x)_{1}, x_{2})= x _{1}_{ }^{ }_{ }^{ }POL(.(x)_{1}, x_{2})= 1 + x _{2}_{ }^{ }

resulting in one new DP problem.

R

↳DPs

→DP Problem 1

↳Polo

→DP Problem 2

↳Polo

→DP Problem 5

↳Dependency Graph

merge(nil,y) ->y

merge(x, nil) ->x

merge(.(x,y), .(u,v)) -> if(< (x,u), .(x, merge(y, .(u,v))), .(u, merge(.(x,y),v)))

++(nil,y) ->y

++(.(x,y),z) -> .(x, ++(y,z))

if(true,x,y) ->x

if(false,x,y) ->x

innermost

Using the Dependency Graph resulted in no new DP problems.

Duration:

0:00 minutes