↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
p1: (b)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
p_1_in_g1(cons_22(X, nil_0)) -> p_1_out_g1(cons_22(X, nil_0))
p_1_in_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> if_p_1_in_1_g4(X, Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
p_1_in_g1(cons_22(0_0, Xs)) -> if_p_1_in_3_g2(Xs, p_1_in_g1(Xs))
if_p_1_in_3_g2(Xs, p_1_out_g1(Xs)) -> p_1_out_g1(cons_22(0_0, Xs))
if_p_1_in_1_g4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> if_p_1_in_2_g4(X, Y, Xs, p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
if_p_1_in_2_g4(X, Y, Xs, p_1_out_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))) -> p_1_out_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
p_1_in_g1(cons_22(X, nil_0)) -> p_1_out_g1(cons_22(X, nil_0))
p_1_in_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> if_p_1_in_1_g4(X, Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
p_1_in_g1(cons_22(0_0, Xs)) -> if_p_1_in_3_g2(Xs, p_1_in_g1(Xs))
if_p_1_in_3_g2(Xs, p_1_out_g1(Xs)) -> p_1_out_g1(cons_22(0_0, Xs))
if_p_1_in_1_g4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> if_p_1_in_2_g4(X, Y, Xs, p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
if_p_1_in_2_g4(X, Y, Xs, p_1_out_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))) -> p_1_out_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs)))
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> IF_P_1_IN_1_G4(X, Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> P_1_IN_G1(cons_22(X, cons_22(Y, Xs)))
P_1_IN_G1(cons_22(0_0, Xs)) -> IF_P_1_IN_3_G2(Xs, p_1_in_g1(Xs))
P_1_IN_G1(cons_22(0_0, Xs)) -> P_1_IN_G1(Xs)
IF_P_1_IN_1_G4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> IF_P_1_IN_2_G4(X, Y, Xs, p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
IF_P_1_IN_1_G4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> P_1_IN_G1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))
p_1_in_g1(cons_22(X, nil_0)) -> p_1_out_g1(cons_22(X, nil_0))
p_1_in_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> if_p_1_in_1_g4(X, Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
p_1_in_g1(cons_22(0_0, Xs)) -> if_p_1_in_3_g2(Xs, p_1_in_g1(Xs))
if_p_1_in_3_g2(Xs, p_1_out_g1(Xs)) -> p_1_out_g1(cons_22(0_0, Xs))
if_p_1_in_1_g4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> if_p_1_in_2_g4(X, Y, Xs, p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
if_p_1_in_2_g4(X, Y, Xs, p_1_out_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))) -> p_1_out_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs)))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> IF_P_1_IN_1_G4(X, Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> P_1_IN_G1(cons_22(X, cons_22(Y, Xs)))
P_1_IN_G1(cons_22(0_0, Xs)) -> IF_P_1_IN_3_G2(Xs, p_1_in_g1(Xs))
P_1_IN_G1(cons_22(0_0, Xs)) -> P_1_IN_G1(Xs)
IF_P_1_IN_1_G4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> IF_P_1_IN_2_G4(X, Y, Xs, p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
IF_P_1_IN_1_G4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> P_1_IN_G1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))
p_1_in_g1(cons_22(X, nil_0)) -> p_1_out_g1(cons_22(X, nil_0))
p_1_in_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> if_p_1_in_1_g4(X, Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
p_1_in_g1(cons_22(0_0, Xs)) -> if_p_1_in_3_g2(Xs, p_1_in_g1(Xs))
if_p_1_in_3_g2(Xs, p_1_out_g1(Xs)) -> p_1_out_g1(cons_22(0_0, Xs))
if_p_1_in_1_g4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> if_p_1_in_2_g4(X, Y, Xs, p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
if_p_1_in_2_g4(X, Y, Xs, p_1_out_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))) -> p_1_out_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs)))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
P_1_IN_G1(cons_22(0_0, Xs)) -> P_1_IN_G1(Xs)
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> IF_P_1_IN_1_G4(X, Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
IF_P_1_IN_1_G4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> P_1_IN_G1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> P_1_IN_G1(cons_22(X, cons_22(Y, Xs)))
p_1_in_g1(cons_22(X, nil_0)) -> p_1_out_g1(cons_22(X, nil_0))
p_1_in_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> if_p_1_in_1_g4(X, Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
p_1_in_g1(cons_22(0_0, Xs)) -> if_p_1_in_3_g2(Xs, p_1_in_g1(Xs))
if_p_1_in_3_g2(Xs, p_1_out_g1(Xs)) -> p_1_out_g1(cons_22(0_0, Xs))
if_p_1_in_1_g4(X, Y, Xs, p_1_out_g1(cons_22(X, cons_22(Y, Xs)))) -> if_p_1_in_2_g4(X, Y, Xs, p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
if_p_1_in_2_g4(X, Y, Xs, p_1_out_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))) -> p_1_out_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs)))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
P_1_IN_G1(cons_22(0_0, Xs)) -> P_1_IN_G1(Xs)
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> IF_P_1_IN_1_G3(Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
IF_P_1_IN_1_G3(Y, Xs, p_1_out_g) -> P_1_IN_G1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> P_1_IN_G1(cons_22(X, cons_22(Y, Xs)))
p_1_in_g1(cons_22(X, nil_0)) -> p_1_out_g
p_1_in_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> if_p_1_in_1_g3(Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
p_1_in_g1(cons_22(0_0, Xs)) -> if_p_1_in_3_g1(p_1_in_g1(Xs))
if_p_1_in_3_g1(p_1_out_g) -> p_1_out_g
if_p_1_in_1_g3(Y, Xs, p_1_out_g) -> if_p_1_in_2_g1(p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
if_p_1_in_2_g1(p_1_out_g) -> p_1_out_g
p_1_in_g1(x0)
if_p_1_in_3_g1(x0)
if_p_1_in_1_g3(x0, x1, x2)
if_p_1_in_2_g1(x0)
The remaining Dependency Pairs were at least non-strictly be oriented.
P_1_IN_G1(cons_22(0_0, Xs)) -> P_1_IN_G1(Xs)
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> IF_P_1_IN_1_G3(Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
With the implicit AFS there is no usable rule.
IF_P_1_IN_1_G3(Y, Xs, p_1_out_g) -> P_1_IN_G1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> P_1_IN_G1(cons_22(X, cons_22(Y, Xs)))
Used ordering: POLO with Polynomial interpretation:
POL(nil_0) = 0
POL(0_0) = 0
POL(IF_P_1_IN_1_G3(x1, x2, x3)) = 1 + x2
POL(if_p_1_in_2_g1(x1)) = 0
POL(s_11(x1)) = 0
POL(if_p_1_in_1_g3(x1, x2, x3)) = 0
POL(if_p_1_in_3_g1(x1)) = 0
POL(p_1_in_g1(x1)) = 0
POL(cons_22(x1, x2)) = 1 + x2
POL(p_1_out_g) = 0
POL(P_1_IN_G1(x1)) = x1
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
↳ QDP
↳ DependencyGraphProof
IF_P_1_IN_1_G3(Y, Xs, p_1_out_g) -> P_1_IN_G1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs))
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> P_1_IN_G1(cons_22(X, cons_22(Y, Xs)))
p_1_in_g1(cons_22(X, nil_0)) -> p_1_out_g
p_1_in_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> if_p_1_in_1_g3(Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
p_1_in_g1(cons_22(0_0, Xs)) -> if_p_1_in_3_g1(p_1_in_g1(Xs))
if_p_1_in_3_g1(p_1_out_g) -> p_1_out_g
if_p_1_in_1_g3(Y, Xs, p_1_out_g) -> if_p_1_in_2_g1(p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
if_p_1_in_2_g1(p_1_out_g) -> p_1_out_g
p_1_in_g1(x0)
if_p_1_in_3_g1(x0)
if_p_1_in_1_g3(x0, x1, x2)
if_p_1_in_2_g1(x0)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> P_1_IN_G1(cons_22(X, cons_22(Y, Xs)))
p_1_in_g1(cons_22(X, nil_0)) -> p_1_out_g
p_1_in_g1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> if_p_1_in_1_g3(Y, Xs, p_1_in_g1(cons_22(X, cons_22(Y, Xs))))
p_1_in_g1(cons_22(0_0, Xs)) -> if_p_1_in_3_g1(p_1_in_g1(Xs))
if_p_1_in_3_g1(p_1_out_g) -> p_1_out_g
if_p_1_in_1_g3(Y, Xs, p_1_out_g) -> if_p_1_in_2_g1(p_1_in_g1(cons_22(s_11(s_11(s_11(s_11(Y)))), Xs)))
if_p_1_in_2_g1(p_1_out_g) -> p_1_out_g
p_1_in_g1(x0)
if_p_1_in_3_g1(x0)
if_p_1_in_1_g3(x0, x1, x2)
if_p_1_in_2_g1(x0)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
P_1_IN_G1(cons_22(s_11(s_11(X)), cons_22(Y, Xs))) -> P_1_IN_G1(cons_22(X, cons_22(Y, Xs)))
p_1_in_g1(x0)
if_p_1_in_3_g1(x0)
if_p_1_in_1_g3(x0, x1, x2)
if_p_1_in_2_g1(x0)
Order:Homeomorphic Embedding Order
AFS:
s_11(x1) = s_11(x1)
cons_22(x1, x2) = x1
From the DPs we obtained the following set of size-change graphs:
We oriented the following set of usable rules.
none