rev(nil) -> nil

rev(++(

rev1(

rev1(

rev2(

rev2(

R

↳Dependency Pair Analysis

REV(++(x,y)) -> REV1(x,y)

REV(++(x,y)) -> REV2(x,y)

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

REV2(x, ++(y,z)) -> REV(++(x, rev(rev2(y,z))))

REV2(x, ++(y,z)) -> REV(rev2(y,z))

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

Furthermore,

R

↳DPs

→DP Problem 1

↳Argument Filtering and Ordering

→DP Problem 2

↳Remaining

**REV1( x, ++(y, z)) -> REV1(y, z)**

rev(nil) -> nil

rev(++(x,y)) -> ++(rev1(x,y), rev2(x,y))

rev1(x, nil) ->x

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

rev2(x, nil) -> nil

rev2(x, ++(y,z)) -> rev(++(x, rev(rev2(y,z))))

innermost

The following dependency pair can be strictly oriented:

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

There are no usable rules for innermost that need to be oriented.

Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:

++ > REV1

resulting in one new DP problem.

Used Argument Filtering System:

REV1(x,_{1}x) -> REV1(_{2}x,_{1}x)_{2}

++(x,_{1}x) -> ++(_{2}x,_{1}x)_{2}

R

↳DPs

→DP Problem 1

↳AFS

→DP Problem 3

↳Dependency Graph

→DP Problem 2

↳Remaining

rev(nil) -> nil

rev(++(x,y)) -> ++(rev1(x,y), rev2(x,y))

rev1(x, nil) ->x

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

rev2(x, nil) -> nil

rev2(x, ++(y,z)) -> rev(++(x, rev(rev2(y,z))))

innermost

Using the Dependency Graph resulted in no new DP problems.

R

↳DPs

→DP Problem 1

↳AFS

→DP Problem 2

↳Remaining Obligation(s)

The following remains to be proven:

**REV2( x, ++(y, z)) -> REV2(y, z)**

rev(nil) -> nil

rev(++(x,y)) -> ++(rev1(x,y), rev2(x,y))

rev1(x, nil) ->x

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

rev2(x, nil) -> nil

rev2(x, ++(y,z)) -> rev(++(x, rev(rev2(y,z))))

innermost

Duration:

0:02 minutes