↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
bin_tree1: (b)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
bin_tree_1_in_g1(void_0) -> bin_tree_1_out_g1(void_0)
bin_tree_1_in_g1(tree_33(underscore, Left, Right)) -> if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_in_g1(Left))
if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_in_g1(Right))
if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_out_g1(Right)) -> bin_tree_1_out_g1(tree_33(underscore, Left, Right))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
bin_tree_1_in_g1(void_0) -> bin_tree_1_out_g1(void_0)
bin_tree_1_in_g1(tree_33(underscore, Left, Right)) -> if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_in_g1(Left))
if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_in_g1(Right))
if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_out_g1(Right)) -> bin_tree_1_out_g1(tree_33(underscore, Left, Right))
BIN_TREE_1_IN_G1(tree_33(underscore, Left, Right)) -> IF_BIN_TREE_1_IN_1_G4(underscore, Left, Right, bin_tree_1_in_g1(Left))
BIN_TREE_1_IN_G1(tree_33(underscore, Left, Right)) -> BIN_TREE_1_IN_G1(Left)
IF_BIN_TREE_1_IN_1_G4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> IF_BIN_TREE_1_IN_2_G4(underscore, Left, Right, bin_tree_1_in_g1(Right))
IF_BIN_TREE_1_IN_1_G4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> BIN_TREE_1_IN_G1(Right)
bin_tree_1_in_g1(void_0) -> bin_tree_1_out_g1(void_0)
bin_tree_1_in_g1(tree_33(underscore, Left, Right)) -> if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_in_g1(Left))
if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_in_g1(Right))
if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_out_g1(Right)) -> bin_tree_1_out_g1(tree_33(underscore, Left, Right))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
BIN_TREE_1_IN_G1(tree_33(underscore, Left, Right)) -> IF_BIN_TREE_1_IN_1_G4(underscore, Left, Right, bin_tree_1_in_g1(Left))
BIN_TREE_1_IN_G1(tree_33(underscore, Left, Right)) -> BIN_TREE_1_IN_G1(Left)
IF_BIN_TREE_1_IN_1_G4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> IF_BIN_TREE_1_IN_2_G4(underscore, Left, Right, bin_tree_1_in_g1(Right))
IF_BIN_TREE_1_IN_1_G4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> BIN_TREE_1_IN_G1(Right)
bin_tree_1_in_g1(void_0) -> bin_tree_1_out_g1(void_0)
bin_tree_1_in_g1(tree_33(underscore, Left, Right)) -> if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_in_g1(Left))
if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_in_g1(Right))
if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_out_g1(Right)) -> bin_tree_1_out_g1(tree_33(underscore, Left, Right))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
IF_BIN_TREE_1_IN_1_G4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> BIN_TREE_1_IN_G1(Right)
BIN_TREE_1_IN_G1(tree_33(underscore, Left, Right)) -> BIN_TREE_1_IN_G1(Left)
BIN_TREE_1_IN_G1(tree_33(underscore, Left, Right)) -> IF_BIN_TREE_1_IN_1_G4(underscore, Left, Right, bin_tree_1_in_g1(Left))
bin_tree_1_in_g1(void_0) -> bin_tree_1_out_g1(void_0)
bin_tree_1_in_g1(tree_33(underscore, Left, Right)) -> if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_in_g1(Left))
if_bin_tree_1_in_1_g4(underscore, Left, Right, bin_tree_1_out_g1(Left)) -> if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_in_g1(Right))
if_bin_tree_1_in_2_g4(underscore, Left, Right, bin_tree_1_out_g1(Right)) -> bin_tree_1_out_g1(tree_33(underscore, Left, Right))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
IF_BIN_TREE_1_IN_1_G2(Right, bin_tree_1_out_g) -> BIN_TREE_1_IN_G1(Right)
BIN_TREE_1_IN_G1(tree_33(underscore, Left, Right)) -> BIN_TREE_1_IN_G1(Left)
BIN_TREE_1_IN_G1(tree_33(underscore, Left, Right)) -> IF_BIN_TREE_1_IN_1_G2(Right, bin_tree_1_in_g1(Left))
bin_tree_1_in_g1(void_0) -> bin_tree_1_out_g
bin_tree_1_in_g1(tree_33(underscore, Left, Right)) -> if_bin_tree_1_in_1_g2(Right, bin_tree_1_in_g1(Left))
if_bin_tree_1_in_1_g2(Right, bin_tree_1_out_g) -> if_bin_tree_1_in_2_g1(bin_tree_1_in_g1(Right))
if_bin_tree_1_in_2_g1(bin_tree_1_out_g) -> bin_tree_1_out_g
bin_tree_1_in_g1(x0)
if_bin_tree_1_in_1_g2(x0, x1)
if_bin_tree_1_in_2_g1(x0)
From the DPs we obtained the following set of size-change graphs: