↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
dis1: (b)
con1: (b)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
dis_1_in_g1(or_22(B1, B2)) -> if_dis_1_in_1_g3(B1, B2, con_1_in_g1(B1))
con_1_in_g1(and_22(B1, B2)) -> if_con_1_in_1_g3(B1, B2, dis_1_in_g1(B1))
dis_1_in_g1(B) -> if_dis_1_in_3_g2(B, con_1_in_g1(B))
con_1_in_g1(B) -> if_con_1_in_3_g2(B, bool_1_in_g1(B))
bool_1_in_g1(0_0) -> bool_1_out_g1(0_0)
bool_1_in_g1(1_0) -> bool_1_out_g1(1_0)
if_con_1_in_3_g2(B, bool_1_out_g1(B)) -> con_1_out_g1(B)
if_dis_1_in_3_g2(B, con_1_out_g1(B)) -> dis_1_out_g1(B)
if_con_1_in_1_g3(B1, B2, dis_1_out_g1(B1)) -> if_con_1_in_2_g3(B1, B2, con_1_in_g1(B2))
if_con_1_in_2_g3(B1, B2, con_1_out_g1(B2)) -> con_1_out_g1(and_22(B1, B2))
if_dis_1_in_1_g3(B1, B2, con_1_out_g1(B1)) -> if_dis_1_in_2_g3(B1, B2, dis_1_in_g1(B2))
if_dis_1_in_2_g3(B1, B2, dis_1_out_g1(B2)) -> dis_1_out_g1(or_22(B1, B2))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
dis_1_in_g1(or_22(B1, B2)) -> if_dis_1_in_1_g3(B1, B2, con_1_in_g1(B1))
con_1_in_g1(and_22(B1, B2)) -> if_con_1_in_1_g3(B1, B2, dis_1_in_g1(B1))
dis_1_in_g1(B) -> if_dis_1_in_3_g2(B, con_1_in_g1(B))
con_1_in_g1(B) -> if_con_1_in_3_g2(B, bool_1_in_g1(B))
bool_1_in_g1(0_0) -> bool_1_out_g1(0_0)
bool_1_in_g1(1_0) -> bool_1_out_g1(1_0)
if_con_1_in_3_g2(B, bool_1_out_g1(B)) -> con_1_out_g1(B)
if_dis_1_in_3_g2(B, con_1_out_g1(B)) -> dis_1_out_g1(B)
if_con_1_in_1_g3(B1, B2, dis_1_out_g1(B1)) -> if_con_1_in_2_g3(B1, B2, con_1_in_g1(B2))
if_con_1_in_2_g3(B1, B2, con_1_out_g1(B2)) -> con_1_out_g1(and_22(B1, B2))
if_dis_1_in_1_g3(B1, B2, con_1_out_g1(B1)) -> if_dis_1_in_2_g3(B1, B2, dis_1_in_g1(B2))
if_dis_1_in_2_g3(B1, B2, dis_1_out_g1(B2)) -> dis_1_out_g1(or_22(B1, B2))
DIS_1_IN_G1(or_22(B1, B2)) -> IF_DIS_1_IN_1_G3(B1, B2, con_1_in_g1(B1))
DIS_1_IN_G1(or_22(B1, B2)) -> CON_1_IN_G1(B1)
CON_1_IN_G1(and_22(B1, B2)) -> IF_CON_1_IN_1_G3(B1, B2, dis_1_in_g1(B1))
CON_1_IN_G1(and_22(B1, B2)) -> DIS_1_IN_G1(B1)
DIS_1_IN_G1(B) -> IF_DIS_1_IN_3_G2(B, con_1_in_g1(B))
DIS_1_IN_G1(B) -> CON_1_IN_G1(B)
CON_1_IN_G1(B) -> IF_CON_1_IN_3_G2(B, bool_1_in_g1(B))
CON_1_IN_G1(B) -> BOOL_1_IN_G1(B)
IF_CON_1_IN_1_G3(B1, B2, dis_1_out_g1(B1)) -> IF_CON_1_IN_2_G3(B1, B2, con_1_in_g1(B2))
IF_CON_1_IN_1_G3(B1, B2, dis_1_out_g1(B1)) -> CON_1_IN_G1(B2)
IF_DIS_1_IN_1_G3(B1, B2, con_1_out_g1(B1)) -> IF_DIS_1_IN_2_G3(B1, B2, dis_1_in_g1(B2))
IF_DIS_1_IN_1_G3(B1, B2, con_1_out_g1(B1)) -> DIS_1_IN_G1(B2)
dis_1_in_g1(or_22(B1, B2)) -> if_dis_1_in_1_g3(B1, B2, con_1_in_g1(B1))
con_1_in_g1(and_22(B1, B2)) -> if_con_1_in_1_g3(B1, B2, dis_1_in_g1(B1))
dis_1_in_g1(B) -> if_dis_1_in_3_g2(B, con_1_in_g1(B))
con_1_in_g1(B) -> if_con_1_in_3_g2(B, bool_1_in_g1(B))
bool_1_in_g1(0_0) -> bool_1_out_g1(0_0)
bool_1_in_g1(1_0) -> bool_1_out_g1(1_0)
if_con_1_in_3_g2(B, bool_1_out_g1(B)) -> con_1_out_g1(B)
if_dis_1_in_3_g2(B, con_1_out_g1(B)) -> dis_1_out_g1(B)
if_con_1_in_1_g3(B1, B2, dis_1_out_g1(B1)) -> if_con_1_in_2_g3(B1, B2, con_1_in_g1(B2))
if_con_1_in_2_g3(B1, B2, con_1_out_g1(B2)) -> con_1_out_g1(and_22(B1, B2))
if_dis_1_in_1_g3(B1, B2, con_1_out_g1(B1)) -> if_dis_1_in_2_g3(B1, B2, dis_1_in_g1(B2))
if_dis_1_in_2_g3(B1, B2, dis_1_out_g1(B2)) -> dis_1_out_g1(or_22(B1, B2))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
DIS_1_IN_G1(or_22(B1, B2)) -> IF_DIS_1_IN_1_G3(B1, B2, con_1_in_g1(B1))
DIS_1_IN_G1(or_22(B1, B2)) -> CON_1_IN_G1(B1)
CON_1_IN_G1(and_22(B1, B2)) -> IF_CON_1_IN_1_G3(B1, B2, dis_1_in_g1(B1))
CON_1_IN_G1(and_22(B1, B2)) -> DIS_1_IN_G1(B1)
DIS_1_IN_G1(B) -> IF_DIS_1_IN_3_G2(B, con_1_in_g1(B))
DIS_1_IN_G1(B) -> CON_1_IN_G1(B)
CON_1_IN_G1(B) -> IF_CON_1_IN_3_G2(B, bool_1_in_g1(B))
CON_1_IN_G1(B) -> BOOL_1_IN_G1(B)
IF_CON_1_IN_1_G3(B1, B2, dis_1_out_g1(B1)) -> IF_CON_1_IN_2_G3(B1, B2, con_1_in_g1(B2))
IF_CON_1_IN_1_G3(B1, B2, dis_1_out_g1(B1)) -> CON_1_IN_G1(B2)
IF_DIS_1_IN_1_G3(B1, B2, con_1_out_g1(B1)) -> IF_DIS_1_IN_2_G3(B1, B2, dis_1_in_g1(B2))
IF_DIS_1_IN_1_G3(B1, B2, con_1_out_g1(B1)) -> DIS_1_IN_G1(B2)
dis_1_in_g1(or_22(B1, B2)) -> if_dis_1_in_1_g3(B1, B2, con_1_in_g1(B1))
con_1_in_g1(and_22(B1, B2)) -> if_con_1_in_1_g3(B1, B2, dis_1_in_g1(B1))
dis_1_in_g1(B) -> if_dis_1_in_3_g2(B, con_1_in_g1(B))
con_1_in_g1(B) -> if_con_1_in_3_g2(B, bool_1_in_g1(B))
bool_1_in_g1(0_0) -> bool_1_out_g1(0_0)
bool_1_in_g1(1_0) -> bool_1_out_g1(1_0)
if_con_1_in_3_g2(B, bool_1_out_g1(B)) -> con_1_out_g1(B)
if_dis_1_in_3_g2(B, con_1_out_g1(B)) -> dis_1_out_g1(B)
if_con_1_in_1_g3(B1, B2, dis_1_out_g1(B1)) -> if_con_1_in_2_g3(B1, B2, con_1_in_g1(B2))
if_con_1_in_2_g3(B1, B2, con_1_out_g1(B2)) -> con_1_out_g1(and_22(B1, B2))
if_dis_1_in_1_g3(B1, B2, con_1_out_g1(B1)) -> if_dis_1_in_2_g3(B1, B2, dis_1_in_g1(B2))
if_dis_1_in_2_g3(B1, B2, dis_1_out_g1(B2)) -> dis_1_out_g1(or_22(B1, B2))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
IF_DIS_1_IN_1_G3(B1, B2, con_1_out_g1(B1)) -> DIS_1_IN_G1(B2)
IF_CON_1_IN_1_G3(B1, B2, dis_1_out_g1(B1)) -> CON_1_IN_G1(B2)
DIS_1_IN_G1(B) -> CON_1_IN_G1(B)
CON_1_IN_G1(and_22(B1, B2)) -> IF_CON_1_IN_1_G3(B1, B2, dis_1_in_g1(B1))
DIS_1_IN_G1(or_22(B1, B2)) -> CON_1_IN_G1(B1)
CON_1_IN_G1(and_22(B1, B2)) -> DIS_1_IN_G1(B1)
DIS_1_IN_G1(or_22(B1, B2)) -> IF_DIS_1_IN_1_G3(B1, B2, con_1_in_g1(B1))
dis_1_in_g1(or_22(B1, B2)) -> if_dis_1_in_1_g3(B1, B2, con_1_in_g1(B1))
con_1_in_g1(and_22(B1, B2)) -> if_con_1_in_1_g3(B1, B2, dis_1_in_g1(B1))
dis_1_in_g1(B) -> if_dis_1_in_3_g2(B, con_1_in_g1(B))
con_1_in_g1(B) -> if_con_1_in_3_g2(B, bool_1_in_g1(B))
bool_1_in_g1(0_0) -> bool_1_out_g1(0_0)
bool_1_in_g1(1_0) -> bool_1_out_g1(1_0)
if_con_1_in_3_g2(B, bool_1_out_g1(B)) -> con_1_out_g1(B)
if_dis_1_in_3_g2(B, con_1_out_g1(B)) -> dis_1_out_g1(B)
if_con_1_in_1_g3(B1, B2, dis_1_out_g1(B1)) -> if_con_1_in_2_g3(B1, B2, con_1_in_g1(B2))
if_con_1_in_2_g3(B1, B2, con_1_out_g1(B2)) -> con_1_out_g1(and_22(B1, B2))
if_dis_1_in_1_g3(B1, B2, con_1_out_g1(B1)) -> if_dis_1_in_2_g3(B1, B2, dis_1_in_g1(B2))
if_dis_1_in_2_g3(B1, B2, dis_1_out_g1(B2)) -> dis_1_out_g1(or_22(B1, B2))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
IF_DIS_1_IN_1_G2(B2, con_1_out_g) -> DIS_1_IN_G1(B2)
IF_CON_1_IN_1_G2(B2, dis_1_out_g) -> CON_1_IN_G1(B2)
DIS_1_IN_G1(B) -> CON_1_IN_G1(B)
CON_1_IN_G1(and_22(B1, B2)) -> IF_CON_1_IN_1_G2(B2, dis_1_in_g1(B1))
DIS_1_IN_G1(or_22(B1, B2)) -> CON_1_IN_G1(B1)
CON_1_IN_G1(and_22(B1, B2)) -> DIS_1_IN_G1(B1)
DIS_1_IN_G1(or_22(B1, B2)) -> IF_DIS_1_IN_1_G2(B2, con_1_in_g1(B1))
dis_1_in_g1(or_22(B1, B2)) -> if_dis_1_in_1_g2(B2, con_1_in_g1(B1))
con_1_in_g1(and_22(B1, B2)) -> if_con_1_in_1_g2(B2, dis_1_in_g1(B1))
dis_1_in_g1(B) -> if_dis_1_in_3_g1(con_1_in_g1(B))
con_1_in_g1(B) -> if_con_1_in_3_g1(bool_1_in_g1(B))
bool_1_in_g1(0_0) -> bool_1_out_g
bool_1_in_g1(1_0) -> bool_1_out_g
if_con_1_in_3_g1(bool_1_out_g) -> con_1_out_g
if_dis_1_in_3_g1(con_1_out_g) -> dis_1_out_g
if_con_1_in_1_g2(B2, dis_1_out_g) -> if_con_1_in_2_g1(con_1_in_g1(B2))
if_con_1_in_2_g1(con_1_out_g) -> con_1_out_g
if_dis_1_in_1_g2(B2, con_1_out_g) -> if_dis_1_in_2_g1(dis_1_in_g1(B2))
if_dis_1_in_2_g1(dis_1_out_g) -> dis_1_out_g
dis_1_in_g1(x0)
con_1_in_g1(x0)
bool_1_in_g1(x0)
if_con_1_in_3_g1(x0)
if_dis_1_in_3_g1(x0)
if_con_1_in_1_g2(x0, x1)
if_con_1_in_2_g1(x0)
if_dis_1_in_1_g2(x0, x1)
if_dis_1_in_2_g1(x0)
From the DPs we obtained the following set of size-change graphs: