0 Prolog
↳1 PrologToPiTRSProof (⇐)
↳2 PiTRS
↳3 DependencyPairsProof (⇔)
↳4 PiDP
↳5 DependencyGraphProof (⇔)
↳6 PiDP
↳7 PiDPToQDPProof (⇐)
↳8 QDP
↳9 PrologToPiTRSProof (⇐)
↳10 PiTRS
↳11 DependencyPairsProof (⇔)
↳12 PiDP
↳13 DependencyGraphProof (⇔)
↳14 PiDP
↳15 PiDPToQDPProof (⇔)
↳16 QDP
↳17 QDPSizeChangeProof (⇔)
↳18 TRUE
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(B) → U3_G(B, con_in_g(B))
DIS_IN_G(B) → CON_IN_G(B)
CON_IN_G(B) → U6_G(B, bool_in_g(B))
CON_IN_G(B) → BOOL_IN_G(B)
U4_G(B1, B2, dis_out_g(B1)) → U5_G(B1, B2, con_in_g(B2))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
U1_G(B1, B2, con_out_g(B1)) → U2_G(B1, B2, dis_in_g(B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(B) → U3_G(B, con_in_g(B))
DIS_IN_G(B) → CON_IN_G(B)
CON_IN_G(B) → U6_G(B, bool_in_g(B))
CON_IN_G(B) → BOOL_IN_G(B)
U4_G(B1, B2, dis_out_g(B1)) → U5_G(B1, B2, con_in_g(B2))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
U1_G(B1, B2, con_out_g(B1)) → U2_G(B1, B2, dis_in_g(B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(B) → CON_IN_G(B)
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U1_G(B2, con_out_g) → DIS_IN_G(B2)
DIS_IN_G(or(B1, B2)) → U1_G(B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → U4_G(B2, dis_in_g(B1))
U4_G(B2, dis_out_g) → CON_IN_G(B2)
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(B) → CON_IN_G(B)
dis_in_g(or(B1, B2)) → U1_g(B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B2, dis_in_g(B1))
dis_in_g(B) → U3_g(con_in_g(B))
con_in_g(B) → U6_g(bool_in_g(B))
bool_in_g(0) → bool_out_g
bool_in_g(1) → bool_out_g
U6_g(bool_out_g) → con_out_g
U3_g(con_out_g) → dis_out_g
U4_g(B2, dis_out_g) → U5_g(con_in_g(B2))
U5_g(con_out_g) → con_out_g
U1_g(B2, con_out_g) → U2_g(dis_in_g(B2))
U2_g(dis_out_g) → dis_out_g
dis_in_g(x0)
con_in_g(x0)
bool_in_g(x0)
U6_g(x0)
U3_g(x0)
U4_g(x0, x1)
U5_g(x0)
U1_g(x0, x1)
U2_g(x0)
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(B) → U3_G(B, con_in_g(B))
DIS_IN_G(B) → CON_IN_G(B)
CON_IN_G(B) → U6_G(B, bool_in_g(B))
CON_IN_G(B) → BOOL_IN_G(B)
U4_G(B1, B2, dis_out_g(B1)) → U5_G(B1, B2, con_in_g(B2))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
U1_G(B1, B2, con_out_g(B1)) → U2_G(B1, B2, dis_in_g(B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(B) → U3_G(B, con_in_g(B))
DIS_IN_G(B) → CON_IN_G(B)
CON_IN_G(B) → U6_G(B, bool_in_g(B))
CON_IN_G(B) → BOOL_IN_G(B)
U4_G(B1, B2, dis_out_g(B1)) → U5_G(B1, B2, con_in_g(B2))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
U1_G(B1, B2, con_out_g(B1)) → U2_G(B1, B2, dis_in_g(B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(B) → CON_IN_G(B)
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
U1_G(B1, B2, con_out_g(B1)) → DIS_IN_G(B2)
DIS_IN_G(or(B1, B2)) → U1_G(B1, B2, con_in_g(B1))
DIS_IN_G(or(B1, B2)) → CON_IN_G(B1)
CON_IN_G(and(B1, B2)) → U4_G(B1, B2, dis_in_g(B1))
U4_G(B1, B2, dis_out_g(B1)) → CON_IN_G(B2)
CON_IN_G(and(B1, B2)) → DIS_IN_G(B1)
DIS_IN_G(B) → CON_IN_G(B)
dis_in_g(or(B1, B2)) → U1_g(B1, B2, con_in_g(B1))
con_in_g(and(B1, B2)) → U4_g(B1, B2, dis_in_g(B1))
dis_in_g(B) → U3_g(B, con_in_g(B))
con_in_g(B) → U6_g(B, bool_in_g(B))
bool_in_g(0) → bool_out_g(0)
bool_in_g(1) → bool_out_g(1)
U6_g(B, bool_out_g(B)) → con_out_g(B)
U3_g(B, con_out_g(B)) → dis_out_g(B)
U4_g(B1, B2, dis_out_g(B1)) → U5_g(B1, B2, con_in_g(B2))
U5_g(B1, B2, con_out_g(B2)) → con_out_g(and(B1, B2))
U1_g(B1, B2, con_out_g(B1)) → U2_g(B1, B2, dis_in_g(B2))
U2_g(B1, B2, dis_out_g(B2)) → dis_out_g(or(B1, B2))
dis_in_g(x0)
con_in_g(x0)
bool_in_g(x0)
U6_g(x0, x1)
U3_g(x0, x1)
U4_g(x0, x1, x2)
U5_g(x0, x1, x2)
U1_g(x0, x1, x2)
U2_g(x0, x1, x2)
From the DPs we obtained the following set of size-change graphs: