↳ PROLOG
↳ UnrequestedClauseRemoverProof
The clauses
som414(As, Bs, Cs, Ds) :- som33(As, Bs, Es), som33(Es, Cs, Ds).
som424(As, Bs, Cs, Ds) :- som33(Es, Cs, Ds), som33(As, Bs, Es).
can be ignored, as they are not needed by any of the given querys.
Deleting these clauses results in the following prolog program:
som33({}0, Bs, Bs).
som33(As, {}0, As).
som33(.2(A, As), .2(B, Bs), .2(A + B, Cs)) :- som33(As, Bs, Cs).
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
som33: (b,f,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
som3_3_in_gaa3([]_0, Bs, Bs) -> som3_3_out_gaa3([]_0, Bs, Bs)
som3_3_in_gaa3(As, []_0, As) -> som3_3_out_gaa3(As, []_0, As)
som3_3_in_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_in_gaa3(As, Bs, Cs))
if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_out_gaa3(As, Bs, Cs)) -> som3_3_out_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
som3_3_in_gaa3([]_0, Bs, Bs) -> som3_3_out_gaa3([]_0, Bs, Bs)
som3_3_in_gaa3(As, []_0, As) -> som3_3_out_gaa3(As, []_0, As)
som3_3_in_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_in_gaa3(As, Bs, Cs))
if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_out_gaa3(As, Bs, Cs)) -> som3_3_out_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs))
SOM3_3_IN_GAA3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> IF_SOM3_3_IN_1_GAA6(A, As, B, Bs, Cs, som3_3_in_gaa3(As, Bs, Cs))
SOM3_3_IN_GAA3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> SOM3_3_IN_GAA3(As, Bs, Cs)
som3_3_in_gaa3([]_0, Bs, Bs) -> som3_3_out_gaa3([]_0, Bs, Bs)
som3_3_in_gaa3(As, []_0, As) -> som3_3_out_gaa3(As, []_0, As)
som3_3_in_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_in_gaa3(As, Bs, Cs))
if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_out_gaa3(As, Bs, Cs)) -> som3_3_out_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs))
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
SOM3_3_IN_GAA3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> IF_SOM3_3_IN_1_GAA6(A, As, B, Bs, Cs, som3_3_in_gaa3(As, Bs, Cs))
SOM3_3_IN_GAA3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> SOM3_3_IN_GAA3(As, Bs, Cs)
som3_3_in_gaa3([]_0, Bs, Bs) -> som3_3_out_gaa3([]_0, Bs, Bs)
som3_3_in_gaa3(As, []_0, As) -> som3_3_out_gaa3(As, []_0, As)
som3_3_in_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_in_gaa3(As, Bs, Cs))
if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_out_gaa3(As, Bs, Cs)) -> som3_3_out_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs))
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
SOM3_3_IN_GAA3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> SOM3_3_IN_GAA3(As, Bs, Cs)
som3_3_in_gaa3([]_0, Bs, Bs) -> som3_3_out_gaa3([]_0, Bs, Bs)
som3_3_in_gaa3(As, []_0, As) -> som3_3_out_gaa3(As, []_0, As)
som3_3_in_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_in_gaa3(As, Bs, Cs))
if_som3_3_in_1_gaa6(A, As, B, Bs, Cs, som3_3_out_gaa3(As, Bs, Cs)) -> som3_3_out_gaa3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs))
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
SOM3_3_IN_GAA3(._22(A, As), ._22(B, Bs), ._22(+2(A, B), Cs)) -> SOM3_3_IN_GAA3(As, Bs, Cs)
↳ PROLOG
↳ UnrequestedClauseRemoverProof
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
SOM3_3_IN_GAA1(._22(A, As)) -> SOM3_3_IN_GAA1(As)
From the DPs we obtained the following set of size-change graphs: