↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
reverse2: (f,b)
reverse3: (f,b,b) (f,f,b)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
REVERSE_2_IN_AG2(X1s, X2s) -> IF_REVERSE_2_IN_1_AG3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
REVERSE_2_IN_AG2(X1s, X2s) -> REVERSE_3_IN_AGG3(X1s, []_0, X2s)
REVERSE_3_IN_AGG3(._22(X, X1s), X2s, Ys) -> IF_REVERSE_3_IN_1_AGG5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
REVERSE_3_IN_AGG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> IF_REVERSE_3_IN_1_AAG5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
REVERSE_2_IN_AG2(X1s, X2s) -> IF_REVERSE_2_IN_1_AG3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
REVERSE_2_IN_AG2(X1s, X2s) -> REVERSE_3_IN_AGG3(X1s, []_0, X2s)
REVERSE_3_IN_AGG3(._22(X, X1s), X2s, Ys) -> IF_REVERSE_3_IN_1_AGG5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
REVERSE_3_IN_AGG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> IF_REVERSE_3_IN_1_AAG5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ PrologToPiTRSProof
REVERSE_3_IN_AAG1(Ys) -> REVERSE_3_IN_AAG1(Ys)
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
REVERSE_2_IN_AG2(X1s, X2s) -> IF_REVERSE_2_IN_1_AG3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
REVERSE_2_IN_AG2(X1s, X2s) -> REVERSE_3_IN_AGG3(X1s, []_0, X2s)
REVERSE_3_IN_AGG3(._22(X, X1s), X2s, Ys) -> IF_REVERSE_3_IN_1_AGG5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
REVERSE_3_IN_AGG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> IF_REVERSE_3_IN_1_AAG5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
REVERSE_2_IN_AG2(X1s, X2s) -> IF_REVERSE_2_IN_1_AG3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
REVERSE_2_IN_AG2(X1s, X2s) -> REVERSE_3_IN_AGG3(X1s, []_0, X2s)
REVERSE_3_IN_AGG3(._22(X, X1s), X2s, Ys) -> IF_REVERSE_3_IN_1_AGG5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
REVERSE_3_IN_AGG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> IF_REVERSE_3_IN_1_AAG5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
reverse_2_in_ag2(X1s, X2s) -> if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_in_agg3(X1s, []_0, X2s))
reverse_3_in_agg3([]_0, Xs, Xs) -> reverse_3_out_agg3([]_0, Xs, Xs)
reverse_3_in_agg3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
reverse_3_in_aag3([]_0, Xs, Xs) -> reverse_3_out_aag3([]_0, Xs, Xs)
reverse_3_in_aag3(._22(X, X1s), X2s, Ys) -> if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_in_aag3(X1s, ._22(X, X2s), Ys))
if_reverse_3_in_1_aag5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_aag3(._22(X, X1s), X2s, Ys)
if_reverse_3_in_1_agg5(X, X1s, X2s, Ys, reverse_3_out_aag3(X1s, ._22(X, X2s), Ys)) -> reverse_3_out_agg3(._22(X, X1s), X2s, Ys)
if_reverse_2_in_1_ag3(X1s, X2s, reverse_3_out_agg3(X1s, []_0, X2s)) -> reverse_2_out_ag2(X1s, X2s)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
REVERSE_3_IN_AAG3(._22(X, X1s), X2s, Ys) -> REVERSE_3_IN_AAG3(X1s, ._22(X, X2s), Ys)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
REVERSE_3_IN_AAG1(Ys) -> REVERSE_3_IN_AAG1(Ys)