/export/starexec/sandbox/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- KILLED proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, INF). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 226 ms] (4) CpxRelTRS (5) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (6) TRS for Loop Detection (7) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) typed CpxTrs (11) OrderProof [LOWER BOUND(ID), 0 ms] (12) typed CpxTrs (13) RewriteLemmaProof [LOWER BOUND(ID), 999 ms] (14) BOUNDS(1, INF) (15) RelTrsToTrsProof [UPPER BOUND(ID), 1 ms] (16) CpxTRS (17) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] (18) CpxRelTRS (19) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxWeightedTrs (21) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CpxTypedWeightedTrs (23) CompletionProof [UPPER BOUND(ID), 0 ms] (24) CpxTypedWeightedCompleteTrs (25) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (26) CpxRNTS (27) CompletionProof [UPPER BOUND(ID), 0 ms] (28) CpxTypedWeightedCompleteTrs (29) NarrowingProof [BOTH BOUNDS(ID, ID), 137 ms] (30) CpxTypedWeightedCompleteTrs (31) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (32) CpxRNTS (33) InliningProof [UPPER BOUND(ID), 2009 ms] (34) CpxRNTS (35) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CpxRNTS (37) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CpxRNTS (39) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 170 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 55 ms] (44) CpxRNTS (45) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (46) CpxRNTS (47) IntTrsBoundProof [UPPER BOUND(ID), 4 ms] (48) CpxRNTS (49) IntTrsBoundProof [UPPER BOUND(ID), 1 ms] (50) CpxRNTS (51) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (52) CpxRNTS (53) IntTrsBoundProof [UPPER BOUND(ID), 260 ms] (54) CpxRNTS (55) IntTrsBoundProof [UPPER BOUND(ID), 3 ms] (56) CpxRNTS (57) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (58) CpxRNTS (59) IntTrsBoundProof [UPPER BOUND(ID), 67 ms] (60) CpxRNTS (61) IntTrsBoundProof [UPPER BOUND(ID), 1 ms] (62) CpxRNTS (63) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (64) CpxRNTS (65) IntTrsBoundProof [UPPER BOUND(ID), 543 ms] (66) CpxRNTS (67) IntTrsBoundProof [UPPER BOUND(ID), 165 ms] (68) CpxRNTS (69) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (70) CpxRNTS (71) IntTrsBoundProof [UPPER BOUND(ID), 1960 ms] (72) CpxRNTS (73) IntTrsBoundProof [UPPER BOUND(ID), 418 ms] (74) CpxRNTS (75) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (76) CpxRNTS (77) IntTrsBoundProof [UPPER BOUND(ID), 2660 ms] (78) CpxRNTS (79) IntTrsBoundProof [UPPER BOUND(ID), 713 ms] (80) CpxRNTS (81) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (82) CpxRNTS (83) IntTrsBoundProof [UPPER BOUND(ID), 16.3 s] (84) CpxRNTS (85) IntTrsBoundProof [UPPER BOUND(ID), 328 ms] (86) CpxRNTS (87) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (88) CdtProblem (89) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CdtProblem (91) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (94) CdtProblem (95) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 183 ms] (98) CdtProblem (99) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 540 ms] (100) CdtProblem (101) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (118) CdtProblem (119) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 1 ms] (124) CdtProblem (125) CdtRewritingProof [BOTH BOUNDS(ID, ID), 16 ms] (126) CdtProblem (127) CdtRewritingProof [BOTH BOUNDS(ID, ID), 17 ms] (128) CdtProblem ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(xor(x, y), z) -> xor(and(x, z), and(y, z)) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(xor(x, y), z) -> xor(and(x, z), and(y, z)) The (relative) TRS S consists of the following rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false Rewrite Strategy: INNERMOST ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(xor(x, y), z) -> xor(and(x, z), and(y, z)) The (relative) TRS S consists of the following rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false Rewrite Strategy: INNERMOST ---------------------------------------- (5) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (6) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(xor(x, y), z) -> xor(and(x, z), and(y, z)) The (relative) TRS S consists of the following rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false Rewrite Strategy: INNERMOST ---------------------------------------- (7) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(xor(x, y), z) -> xor(and(x, z), and(y, z)) The (relative) TRS S consists of the following rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false Rewrite Strategy: INNERMOST ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (10) Obligation: Innermost TRS: Rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(xor(x, y), z) -> xor(and(x, z), and(y, z)) encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false Types: not :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor xor :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor true :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor or :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor and :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor implies :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor false :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encArg :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_not :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_or :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_implies :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_and :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_xor :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_not :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_xor :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_true :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_or :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_and :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_implies :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_false :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor hole_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor1_0 :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0 :: Nat -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor ---------------------------------------- (11) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: and, encArg They will be analysed ascendingly in the following order: and < encArg ---------------------------------------- (12) Obligation: Innermost TRS: Rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(xor(x, y), z) -> xor(and(x, z), and(y, z)) encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false Types: not :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor xor :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor true :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor or :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor and :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor implies :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor false :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encArg :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_not :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_or :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_implies :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_and :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_xor :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_not :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_xor :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_true :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_or :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_and :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_implies :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_false :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor hole_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor1_0 :: true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0 :: Nat -> true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor Generator Equations: gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0(0) <=> true gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0(+(x, 1)) <=> cons_not(gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0(x)) The following defined symbols remain to be analysed: and, encArg They will be analysed ascendingly in the following order: and < encArg ---------------------------------------- (13) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: encArg(gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0(+(1, n26_0))) -> *3_0, rt in Omega(0) Induction Base: encArg(gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0(+(1, 0))) Induction Step: encArg(gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0(+(1, +(n26_0, 1)))) ->_R^Omega(0) not(encArg(gen_true:false:cons_not:cons_or:cons_implies:cons_and:cons_xor2_0(+(1, n26_0)))) ->_IH not(*3_0) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (14) BOUNDS(1, INF) ---------------------------------------- (15) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (16) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(xor(x, y), z) -> xor(and(x, z), and(y, z)) encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (17) NonCtorToCtorProof (UPPER BOUND(ID)) transformed non-ctor to ctor-system ---------------------------------------- (18) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: not(x) -> xor(x, true) or(x, y) -> xor(and(x, y), xor(x, y)) implies(x, y) -> xor(and(x, y), xor(x, true)) and(x, true) -> x and(x, false) -> false and(x, x) -> x xor(x, false) -> x xor(x, x) -> false and(c_xor(x, y), z) -> xor(and(x, z), and(y, z)) The (relative) TRS S consists of the following rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(x_1)) -> not(encArg(x_1)) encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) encode_not(x_1) -> not(encArg(x_1)) encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) encode_true -> true encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) encode_false -> false xor(x0, x1) -> c_xor(x0, x1) Rewrite Strategy: INNERMOST ---------------------------------------- (19) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (20) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: not(x) -> xor(x, true) [1] or(x, y) -> xor(and(x, y), xor(x, y)) [1] implies(x, y) -> xor(and(x, y), xor(x, true)) [1] and(x, true) -> x [1] and(x, false) -> false [1] and(x, x) -> x [1] xor(x, false) -> x [1] xor(x, x) -> false [1] and(c_xor(x, y), z) -> xor(and(x, z), and(y, z)) [1] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_not(x_1)) -> not(encArg(x_1)) [0] encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) [0] encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) [0] encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) [0] encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) [0] encode_not(x_1) -> not(encArg(x_1)) [0] encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) [0] encode_true -> true [0] encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) [0] encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) [0] encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] xor(x0, x1) -> c_xor(x0, x1) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (21) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (22) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: not(x) -> xor(x, true) [1] or(x, y) -> xor(and(x, y), xor(x, y)) [1] implies(x, y) -> xor(and(x, y), xor(x, true)) [1] and(x, true) -> x [1] and(x, false) -> false [1] and(x, x) -> x [1] xor(x, false) -> x [1] xor(x, x) -> false [1] and(c_xor(x, y), z) -> xor(and(x, z), and(y, z)) [1] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_not(x_1)) -> not(encArg(x_1)) [0] encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) [0] encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) [0] encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) [0] encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) [0] encode_not(x_1) -> not(encArg(x_1)) [0] encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) [0] encode_true -> true [0] encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) [0] encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) [0] encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] xor(x0, x1) -> c_xor(x0, x1) [0] The TRS has the following type information: not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor c_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor encArg :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor cons_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor encode_false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor Rewrite Strategy: INNERMOST ---------------------------------------- (23) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: encArg(v0) -> null_encArg [0] encode_not(v0) -> null_encode_not [0] encode_xor(v0, v1) -> null_encode_xor [0] encode_true -> null_encode_true [0] encode_or(v0, v1) -> null_encode_or [0] encode_and(v0, v1) -> null_encode_and [0] encode_implies(v0, v1) -> null_encode_implies [0] encode_false -> null_encode_false [0] xor(v0, v1) -> null_xor [0] and(v0, v1) -> null_and [0] And the following fresh constants: null_encArg, null_encode_not, null_encode_xor, null_encode_true, null_encode_or, null_encode_and, null_encode_implies, null_encode_false, null_xor, null_and ---------------------------------------- (24) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: not(x) -> xor(x, true) [1] or(x, y) -> xor(and(x, y), xor(x, y)) [1] implies(x, y) -> xor(and(x, y), xor(x, true)) [1] and(x, true) -> x [1] and(x, false) -> false [1] and(x, x) -> x [1] xor(x, false) -> x [1] xor(x, x) -> false [1] and(c_xor(x, y), z) -> xor(and(x, z), and(y, z)) [1] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_not(x_1)) -> not(encArg(x_1)) [0] encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) [0] encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) [0] encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) [0] encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) [0] encode_not(x_1) -> not(encArg(x_1)) [0] encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) [0] encode_true -> true [0] encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) [0] encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) [0] encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] xor(x0, x1) -> c_xor(x0, x1) [0] encArg(v0) -> null_encArg [0] encode_not(v0) -> null_encode_not [0] encode_xor(v0, v1) -> null_encode_xor [0] encode_true -> null_encode_true [0] encode_or(v0, v1) -> null_encode_or [0] encode_and(v0, v1) -> null_encode_and [0] encode_implies(v0, v1) -> null_encode_implies [0] encode_false -> null_encode_false [0] xor(v0, v1) -> null_xor [0] and(v0, v1) -> null_and [0] The TRS has the following type information: not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and c_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encArg :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encArg :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and Rewrite Strategy: INNERMOST ---------------------------------------- (25) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: true => 1 false => 0 null_encArg => 0 null_encode_not => 0 null_encode_xor => 0 null_encode_true => 0 null_encode_or => 0 null_encode_and => 0 null_encode_implies => 0 null_encode_false => 0 null_xor => 0 null_and => 0 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> x :|: z' = x, x >= 0, z'' = 1 and(z', z'') -{ 1 }-> x :|: z' = x, x >= 0, z'' = x and(z', z'') -{ 1 }-> xor(and(x, z), and(y, z)) :|: z'' = z, z >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' = x, x >= 0 and(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(encArg(x_1)) :|: x_1 >= 0, z' = 1 + x_1 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 encode_and(z', z'') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_and(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_implies(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_not(z') -{ 0 }-> not(encArg(x_1)) :|: x_1 >= 0, z' = x_1 encode_not(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 encode_or(z', z'') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_or(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_xor(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 implies(z', z'') -{ 1 }-> xor(and(x, y), xor(x, 1)) :|: z' = x, z'' = y, x >= 0, y >= 0 not(z') -{ 1 }-> xor(x, 1) :|: z' = x, x >= 0 or(z', z'') -{ 1 }-> xor(and(x, y), xor(x, y)) :|: z' = x, z'' = y, x >= 0, y >= 0 xor(z', z'') -{ 1 }-> x :|: z'' = 0, z' = x, x >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' = x, x >= 0, z'' = x xor(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 xor(z', z'') -{ 0 }-> 1 + x0 + x1 :|: z'' = x1, x0 >= 0, x1 >= 0, z' = x0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (27) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: and_2 implies_2 not_1 or_2 encArg_1 encode_not_1 encode_xor_2 encode_true encode_or_2 encode_and_2 encode_implies_2 encode_false xor_2 Due to the following rules being added: encArg(v0) -> null_encArg [0] encode_not(v0) -> null_encode_not [0] encode_xor(v0, v1) -> null_encode_xor [0] encode_true -> null_encode_true [0] encode_or(v0, v1) -> null_encode_or [0] encode_and(v0, v1) -> null_encode_and [0] encode_implies(v0, v1) -> null_encode_implies [0] encode_false -> null_encode_false [0] xor(v0, v1) -> null_xor [0] and(v0, v1) -> null_and [0] And the following fresh constants: null_encArg, null_encode_not, null_encode_xor, null_encode_true, null_encode_or, null_encode_and, null_encode_implies, null_encode_false, null_xor, null_and ---------------------------------------- (28) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: not(x) -> xor(x, true) [1] or(x, y) -> xor(and(x, y), xor(x, y)) [1] implies(x, y) -> xor(and(x, y), xor(x, true)) [1] and(x, true) -> x [1] and(x, false) -> false [1] and(x, x) -> x [1] xor(x, false) -> x [1] xor(x, x) -> false [1] and(c_xor(x, y), z) -> xor(and(x, z), and(y, z)) [1] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_not(x_1)) -> not(encArg(x_1)) [0] encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) [0] encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) [0] encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) [0] encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) [0] encode_not(x_1) -> not(encArg(x_1)) [0] encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) [0] encode_true -> true [0] encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) [0] encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) [0] encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] xor(x0, x1) -> c_xor(x0, x1) [0] encArg(v0) -> null_encArg [0] encode_not(v0) -> null_encode_not [0] encode_xor(v0, v1) -> null_encode_xor [0] encode_true -> null_encode_true [0] encode_or(v0, v1) -> null_encode_or [0] encode_and(v0, v1) -> null_encode_and [0] encode_implies(v0, v1) -> null_encode_implies [0] encode_false -> null_encode_false [0] xor(v0, v1) -> null_xor [0] and(v0, v1) -> null_and [0] The TRS has the following type information: not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and c_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encArg :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encArg :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and Rewrite Strategy: INNERMOST ---------------------------------------- (29) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (30) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: not(x) -> xor(x, true) [1] or(true, true) -> xor(true, false) [3] or(x, true) -> xor(x, c_xor(x, true)) [2] or(x, true) -> xor(x, null_xor) [2] or(x, false) -> xor(false, x) [3] or(false, false) -> xor(false, false) [3] or(x, false) -> xor(false, c_xor(x, false)) [2] or(x, false) -> xor(false, null_xor) [2] or(false, false) -> xor(false, false) [3] or(x, x) -> xor(x, false) [3] or(x, x) -> xor(x, c_xor(x, x)) [2] or(x, x) -> xor(x, null_xor) [2] or(c_xor(x', y'), false) -> xor(xor(and(x', false), and(y', false)), c_xor(x', y')) [3] or(c_xor(x', y'), c_xor(x', y')) -> xor(xor(and(x', c_xor(x', y')), and(y', c_xor(x', y'))), false) [3] or(c_xor(x', y'), y) -> xor(xor(and(x', y), and(y', y)), c_xor(c_xor(x', y'), y)) [2] or(c_xor(x', y'), y) -> xor(xor(and(x', y), and(y', y)), null_xor) [2] or(x, false) -> xor(null_and, x) [2] or(x, x) -> xor(null_and, false) [2] or(x, y) -> xor(null_and, c_xor(x, y)) [1] or(x, y) -> xor(null_and, null_xor) [1] implies(true, true) -> xor(true, false) [3] implies(x, true) -> xor(x, c_xor(x, true)) [2] implies(x, true) -> xor(x, null_xor) [2] implies(true, false) -> xor(false, false) [3] implies(x, false) -> xor(false, c_xor(x, true)) [2] implies(x, false) -> xor(false, null_xor) [2] implies(true, true) -> xor(true, false) [3] implies(x, x) -> xor(x, c_xor(x, true)) [2] implies(x, x) -> xor(x, null_xor) [2] implies(c_xor(x'', y''), y) -> xor(xor(and(x'', y), and(y'', y)), c_xor(c_xor(x'', y''), true)) [2] implies(c_xor(x'', y''), y) -> xor(xor(and(x'', y), and(y'', y)), null_xor) [2] implies(true, y) -> xor(null_and, false) [2] implies(x, y) -> xor(null_and, c_xor(x, true)) [1] implies(x, y) -> xor(null_and, null_xor) [1] and(x, true) -> x [1] and(x, false) -> false [1] and(x, x) -> x [1] xor(x, false) -> x [1] xor(x, x) -> false [1] and(c_xor(x, y), z) -> xor(and(x, z), and(y, z)) [1] encArg(true) -> true [0] encArg(false) -> false [0] encArg(cons_not(true)) -> not(true) [0] encArg(cons_not(false)) -> not(false) [0] encArg(cons_not(cons_not(x_1'))) -> not(not(encArg(x_1'))) [0] encArg(cons_not(cons_or(x_1'', x_2'))) -> not(or(encArg(x_1''), encArg(x_2'))) [0] encArg(cons_not(cons_implies(x_11, x_2''))) -> not(implies(encArg(x_11), encArg(x_2''))) [0] encArg(cons_not(cons_and(x_12, x_21))) -> not(and(encArg(x_12), encArg(x_21))) [0] encArg(cons_not(cons_xor(x_13, x_22))) -> not(xor(encArg(x_13), encArg(x_22))) [0] encArg(cons_not(x_1)) -> not(null_encArg) [0] encArg(cons_or(x_1, x_2)) -> or(encArg(x_1), encArg(x_2)) [0] encArg(cons_implies(x_1, x_2)) -> implies(encArg(x_1), encArg(x_2)) [0] encArg(cons_and(x_1, x_2)) -> and(encArg(x_1), encArg(x_2)) [0] encArg(cons_xor(x_1, x_2)) -> xor(encArg(x_1), encArg(x_2)) [0] encode_not(true) -> not(true) [0] encode_not(false) -> not(false) [0] encode_not(cons_not(x_1184)) -> not(not(encArg(x_1184))) [0] encode_not(cons_or(x_1185, x_2147)) -> not(or(encArg(x_1185), encArg(x_2147))) [0] encode_not(cons_implies(x_1186, x_2148)) -> not(implies(encArg(x_1186), encArg(x_2148))) [0] encode_not(cons_and(x_1187, x_2149)) -> not(and(encArg(x_1187), encArg(x_2149))) [0] encode_not(cons_xor(x_1188, x_2150)) -> not(xor(encArg(x_1188), encArg(x_2150))) [0] encode_not(x_1) -> not(null_encArg) [0] encode_xor(x_1, x_2) -> xor(encArg(x_1), encArg(x_2)) [0] encode_true -> true [0] encode_or(x_1, x_2) -> or(encArg(x_1), encArg(x_2)) [0] encode_and(x_1, x_2) -> and(encArg(x_1), encArg(x_2)) [0] encode_implies(x_1, x_2) -> implies(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] xor(x0, x1) -> c_xor(x0, x1) [0] encArg(v0) -> null_encArg [0] encode_not(v0) -> null_encode_not [0] encode_xor(v0, v1) -> null_encode_xor [0] encode_true -> null_encode_true [0] encode_or(v0, v1) -> null_encode_or [0] encode_and(v0, v1) -> null_encode_and [0] encode_implies(v0, v1) -> null_encode_implies [0] encode_false -> null_encode_false [0] xor(v0, v1) -> null_xor [0] and(v0, v1) -> null_and [0] The TRS has the following type information: not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and c_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encArg :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and cons_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and -> true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and encode_false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encArg :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_not :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_true :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_or :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_implies :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_encode_false :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_xor :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and null_and :: true:false:c_xor:cons_not:cons_or:cons_implies:cons_and:cons_xor:null_encArg:null_encode_not:null_encode_xor:null_encode_true:null_encode_or:null_encode_and:null_encode_implies:null_encode_false:null_xor:null_and Rewrite Strategy: INNERMOST ---------------------------------------- (31) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: true => 1 false => 0 null_encArg => 0 null_encode_not => 0 null_encode_xor => 0 null_encode_true => 0 null_encode_or => 0 null_encode_and => 0 null_encode_implies => 0 null_encode_false => 0 null_xor => 0 null_and => 0 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> x :|: z' = x, x >= 0, z'' = 1 and(z', z'') -{ 1 }-> x :|: z' = x, x >= 0, z'' = x and(z', z'') -{ 1 }-> xor(and(x, z), and(y, z)) :|: z'' = z, z >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' = x, x >= 0 and(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(x_1'))) :|: x_1' >= 0, z' = 1 + (1 + x_1') encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> not(1) :|: z' = 1 + 1 encArg(z') -{ 0 }-> not(0) :|: z' = 1 + 0 encArg(z') -{ 0 }-> not(0) :|: x_1 >= 0, z' = 1 + x_1 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 encode_and(z', z'') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_and(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_implies(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(x_1184))) :|: z' = 1 + x_1184, x_1184 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> not(1) :|: z' = 1 encode_not(z') -{ 0 }-> not(0) :|: z' = 0 encode_not(z') -{ 0 }-> not(0) :|: x_1 >= 0, z' = x_1 encode_not(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 encode_or(z', z'') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_or(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_xor(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 implies(z', z'') -{ 2 }-> xor(x, 0) :|: z' = x, x >= 0, z'' = 1 implies(z', z'') -{ 2 }-> xor(x, 0) :|: z' = x, x >= 0, z'' = x implies(z', z'') -{ 2 }-> xor(x, 1 + x + 1) :|: z' = x, x >= 0, z'' = 1 implies(z', z'') -{ 2 }-> xor(x, 1 + x + 1) :|: z' = x, x >= 0, z'' = x implies(z', z'') -{ 2 }-> xor(xor(and(x'', y), and(y'', y)), 0) :|: z'' = y, z' = 1 + x'' + y'', y >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', y), and(y'', y)), 1 + (1 + x'' + y'') + 1) :|: z'' = y, z' = 1 + x'' + y'', y >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> xor(1, 0) :|: z' = 1, z'' = 1 implies(z', z'') -{ 3 }-> xor(0, 0) :|: z'' = 0, z' = 1 implies(z', z'') -{ 2 }-> xor(0, 0) :|: z'' = 0, z' = x, x >= 0 implies(z', z'') -{ 2 }-> xor(0, 0) :|: z'' = y, y >= 0, z' = 1 implies(z', z'') -{ 1 }-> xor(0, 0) :|: z' = x, z'' = y, x >= 0, y >= 0 implies(z', z'') -{ 2 }-> xor(0, 1 + x + 1) :|: z'' = 0, z' = x, x >= 0 implies(z', z'') -{ 1 }-> xor(0, 1 + x + 1) :|: z' = x, z'' = y, x >= 0, y >= 0 not(z') -{ 1 }-> xor(x, 1) :|: z' = x, x >= 0 or(z', z'') -{ 2 }-> xor(x, 0) :|: z' = x, x >= 0, z'' = 1 or(z', z'') -{ 3 }-> xor(x, 0) :|: z' = x, x >= 0, z'' = x or(z', z'') -{ 2 }-> xor(x, 0) :|: z' = x, x >= 0, z'' = x or(z', z'') -{ 2 }-> xor(x, 1 + x + x) :|: z' = x, x >= 0, z'' = x or(z', z'') -{ 2 }-> xor(x, 1 + x + 1) :|: z' = x, x >= 0, z'' = 1 or(z', z'') -{ 2 }-> xor(xor(and(x', y), and(y', y)), 0) :|: z'' = y, z' = 1 + x' + y', x' >= 0, y >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', y), and(y', y)), 1 + (1 + x' + y') + y) :|: z'' = y, z' = 1 + x' + y', x' >= 0, y >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(1, 0) :|: z' = 1, z'' = 1 or(z', z'') -{ 3 }-> xor(0, x) :|: z'' = 0, z' = x, x >= 0 or(z', z'') -{ 2 }-> xor(0, x) :|: z'' = 0, z' = x, x >= 0 or(z', z'') -{ 3 }-> xor(0, 0) :|: z'' = 0, z' = 0 or(z', z'') -{ 2 }-> xor(0, 0) :|: z'' = 0, z' = x, x >= 0 or(z', z'') -{ 2 }-> xor(0, 0) :|: z' = x, x >= 0, z'' = x or(z', z'') -{ 1 }-> xor(0, 0) :|: z' = x, z'' = y, x >= 0, y >= 0 or(z', z'') -{ 1 }-> xor(0, 1 + x + y) :|: z' = x, z'' = y, x >= 0, y >= 0 or(z', z'') -{ 2 }-> xor(0, 1 + x + 0) :|: z'' = 0, z' = x, x >= 0 xor(z', z'') -{ 1 }-> x :|: z'' = 0, z' = x, x >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' = x, x >= 0, z'' = x xor(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 xor(z', z'') -{ 0 }-> 1 + x0 + x1 :|: z'' = x1, x0 >= 0, x1 >= 0, z' = x0 ---------------------------------------- (33) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: xor(z', z'') -{ 0 }-> 1 + x0 + x1 :|: z'' = x1, x0 >= 0, x1 >= 0, z' = x0 xor(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 xor(z', z'') -{ 1 }-> x :|: z'' = 0, z' = x, x >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' = x, x >= 0, z'' = x not(z') -{ 1 }-> xor(x, 1) :|: z' = x, x >= 0 ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> x :|: z' = x, x >= 0, z'' = 1 and(z', z'') -{ 1 }-> x :|: z' = x, x >= 0, z'' = x and(z', z'') -{ 1 }-> xor(and(x, z), and(y, z)) :|: z'' = z, z >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' = x, x >= 0 and(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: x_1 >= 0, z' = 1 + x_1, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(x_1'))) :|: x_1' >= 0, z' = 1 + (1 + x_1') encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 encode_and(z', z'') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_and(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_implies(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: x_1 >= 0, z' = x_1, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(x_1184))) :|: z' = 1 + x_1184, x_1184 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 encode_or(z', z'') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_or(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_xor(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' = y, y >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z' = x, x >= 0, z'' = 1, 0 = 0, x = x', x' >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' = x, x >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> x' :|: z' = x, x >= 0, z'' = x, 0 = 0, x = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' = x, z'' = y, x >= 0, y >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', y), and(y'', y)), 0) :|: z'' = y, z' = 1 + x'' + y'', y >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', y), and(y'', y)), 1 + (1 + x'' + y'') + 1) :|: z'' = y, z' = 1 + x'' + y'', y >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = 1, v0 >= 0, v1 >= 0, 1 + x + 1 = v1, x = v0 implies(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, x = v0 implies(z', z'') -{ 3 }-> 0 :|: z' = x, x >= 0, z'' = 1, x = x', x' >= 0, 0 = x' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' = x, x >= 0, v0 >= 0, v1 >= 0, 1 + x + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' = x, x >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = x, x >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = x, v0 >= 0, v1 >= 0, 1 + x + 1 = v1, x = v0 implies(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = x, v0 >= 0, v1 >= 0, 0 = v1, x = v0 implies(z', z'') -{ 3 }-> 0 :|: z' = x, x >= 0, z'' = x, x = x', x' >= 0, 0 = x' implies(z', z'') -{ 2 }-> 0 :|: z'' = y, y >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = y, y >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' = x, z'' = y, x >= 0, y >= 0, v0 >= 0, v1 >= 0, 1 + x + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' = x, z'' = y, x >= 0, y >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' = x, z'' = y, x >= 0, y >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = 1, 1 + x + 1 = x1, x0 >= 0, x1 >= 0, x = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, x = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' = x, x >= 0, 1 + x + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' = x, x >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = x, 1 + x + 1 = x1, x0 >= 0, x1 >= 0, x = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = x, 0 = x1, x0 >= 0, x1 >= 0, x = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = y, y >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' = x, z'' = y, x >= 0, y >= 0, 1 + x + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' = x, z'' = y, x >= 0, y >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 not(z') -{ 1 }-> 0 :|: z' = x, x >= 0, v0 >= 0, v1 >= 0, 1 = v1, x = v0 not(z') -{ 2 }-> 0 :|: z' = x, x >= 0, x = x', x' >= 0, 1 = x' not(z') -{ 1 }-> 1 + x0 + x1 :|: z' = x, x >= 0, 1 = x1, x0 >= 0, x1 >= 0, x = x0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 3 }-> x' :|: z' = x, x >= 0, z'' = 1, 0 = 0, x = x', x' >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' = x, x >= 0, x = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' = x, x >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 4 }-> x' :|: z' = x, x >= 0, z'' = x, 0 = 0, x = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' = x, x >= 0, z'' = x, 0 = 0, x = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' = x, x >= 0, x = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' = x, x >= 0, z'' = x, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' = x, z'' = y, x >= 0, y >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', y), and(y', y)), 0) :|: z'' = y, z' = 1 + x' + y', x' >= 0, y >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', y), and(y', y)), 1 + (1 + x' + y') + y) :|: z'' = y, z' = 1 + x' + y', x' >= 0, y >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = 1, v0 >= 0, v1 >= 0, 1 + x + 1 = v1, x = v0 or(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, x = v0 or(z', z'') -{ 3 }-> 0 :|: z' = x, x >= 0, z'' = 1, x = x', x' >= 0, 0 = x' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = x, x >= 0, v0 >= 0, v1 >= 0, x = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = x, x >= 0, 0 = x', x' >= 0, x = x' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' = x, x >= 0, v0 >= 0, v1 >= 0, 1 + x + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' = x, x >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = x, x >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = x, x >= 0, z'' = x, v0 >= 0, v1 >= 0, 0 = v1, x = v0 or(z', z'') -{ 4 }-> 0 :|: z' = x, x >= 0, z'' = x, x = x', x' >= 0, 0 = x' or(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = x, v0 >= 0, v1 >= 0, 1 + x + x = v1, x = v0 or(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = x, v0 >= 0, v1 >= 0, 0 = v1, x = v0 or(z', z'') -{ 3 }-> 0 :|: z' = x, x >= 0, z'' = x, x = x', x' >= 0, 0 = x' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' = x, x >= 0, v0 >= 0, v1 >= 0, x = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = x, x >= 0, 0 = x', x' >= 0, x = x' or(z', z'') -{ 2 }-> 0 :|: z' = x, x >= 0, z'' = x, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' = x, x >= 0, z'' = x, 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' = x, z'' = y, x >= 0, y >= 0, v0 >= 0, v1 >= 0, 1 + x + y = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' = x, z'' = y, x >= 0, y >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' = x, z'' = y, x >= 0, y >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = 1, 1 + x + 1 = x1, x0 >= 0, x1 >= 0, x = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, x = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = x, x >= 0, x = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' = x, x >= 0, 1 + x + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' = x, x >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = x, 0 = x1, x0 >= 0, x1 >= 0, x = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = x, 1 + x + x = x1, x0 >= 0, x1 >= 0, x = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = x, 0 = x1, x0 >= 0, x1 >= 0, x = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' = x, x >= 0, x = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' = x, x >= 0, z'' = x, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' = x, z'' = y, x >= 0, y >= 0, 1 + x + y = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' = x, z'' = y, x >= 0, y >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 xor(z', z'') -{ 1 }-> x :|: z'' = 0, z' = x, x >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' = x, x >= 0, z'' = x xor(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 xor(z', z'') -{ 0 }-> 1 + x0 + x1 :|: z'' = x1, x0 >= 0, x1 >= 0, z' = x0 ---------------------------------------- (35) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 ---------------------------------------- (37) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { not } { encode_false } { xor } { encode_true } { and } { implies } { or } { encArg } { encode_not } { encode_xor } { encode_implies } { encode_and } { encode_or } ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {not}, {encode_false}, {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} ---------------------------------------- (39) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {not}, {encode_false}, {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: not after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2 + z' ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {not}, {encode_false}, {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: ?, size: O(n^1) [2 + z'] ---------------------------------------- (43) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: not after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encode_false}, {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] ---------------------------------------- (45) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encode_false}, {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] ---------------------------------------- (47) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_false after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encode_false}, {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: ?, size: O(1) [0] ---------------------------------------- (49) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_false after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (51) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (53) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: xor after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z' + z'' ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {xor}, {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: ?, size: O(n^1) [1 + z' + z''] ---------------------------------------- (55) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: xor after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 1 }-> xor(x, 1) :|: z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 1, 1 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' = 0, 0 = x, x >= 0 encode_not(z') -{ 1 }-> xor(x, 1) :|: z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] ---------------------------------------- (57) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] ---------------------------------------- (59) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_true after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encode_true}, {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: ?, size: O(1) [1] ---------------------------------------- (61) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_true after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (63) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (64) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (65) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: and after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2*z' + z'' ---------------------------------------- (66) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {and}, {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: ?, size: O(n^1) [2*z' + z''] ---------------------------------------- (67) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: and after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + 3*z' ---------------------------------------- (68) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> xor(and(x, z''), and(y, z'')) :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 0) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 2 }-> xor(xor(and(x'', z''), and(y'', z'')), 1 + (1 + x'' + y'') + 1) :|: z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 0) :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 2 }-> xor(xor(and(x', z''), and(y', z'')), 1 + (1 + x' + y') + z'') :|: z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 0), and(y', 0)), 1 + x' + y') :|: z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> xor(xor(and(x', 1 + x' + y'), and(y', 1 + x' + y')), 0) :|: z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] ---------------------------------------- (69) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (70) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] ---------------------------------------- (71) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: implies after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 3 + 3*z' + 2*z'' ---------------------------------------- (72) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {implies}, {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] implies: runtime: ?, size: O(n^1) [3 + 3*z' + 2*z''] ---------------------------------------- (73) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: implies after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 4 + 3*z' ---------------------------------------- (74) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] implies: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [3 + 3*z' + 2*z''] ---------------------------------------- (75) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (76) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] implies: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [3 + 3*z' + 2*z''] ---------------------------------------- (77) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: or after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2 + 3*z' + 3*z'' ---------------------------------------- (78) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {or}, {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] implies: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [3 + 3*z' + 2*z''] or: runtime: ?, size: O(n^1) [2 + 3*z' + 3*z''] ---------------------------------------- (79) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: or after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 4 + 3*z' ---------------------------------------- (80) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] implies: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [3 + 3*z' + 2*z''] or: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [2 + 3*z' + 3*z''] ---------------------------------------- (81) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (82) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] implies: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [3 + 3*z' + 2*z''] or: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [2 + 3*z' + 3*z''] ---------------------------------------- (83) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: encArg after applying outer abstraction to obtain an ITS, resulting in: EXP with polynomial bound: ? ---------------------------------------- (84) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] implies: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [3 + 3*z' + 2*z''] or: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [2 + 3*z' + 3*z''] encArg: runtime: ?, size: EXP ---------------------------------------- (85) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encArg after applying outer abstraction to obtain an ITS, resulting in: INF with polynomial bound: ? ---------------------------------------- (86) Obligation: Complexity RNTS consisting of the following rules: and(z', z'') -{ 4 + 3*x + 3*y }-> s30 :|: s28 >= 0, s28 <= 2 * x + z'', s29 >= 0, s29 <= 2 * y + z'', s30 >= 0, s30 <= s28 + s29 + 1, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = 1 and(z', z'') -{ 1 }-> z' :|: z' >= 0, z'' = z' and(z', z'') -{ 1 }-> 0 :|: z'' = 0, z' >= 0 and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encArg(z') -{ 2 }-> s :|: s >= 0, s <= x + 1 + 1, z' = 1 + 1, 1 = x, x >= 0 encArg(z') -{ 2 }-> s' :|: s' >= 0, s' <= x + 1 + 1, z' = 1 + 0, 0 = x, x >= 0 encArg(z') -{ 2 }-> s'' :|: s'' >= 0, s'' <= x + 1 + 1, z' - 1 >= 0, 0 = x, x >= 0 encArg(z') -{ 0 }-> xor(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> or(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> not(xor(encArg(x_13), encArg(x_22))) :|: x_13 >= 0, z' = 1 + (1 + x_13 + x_22), x_22 >= 0 encArg(z') -{ 0 }-> not(or(encArg(x_1''), encArg(x_2'))) :|: x_1'' >= 0, x_2' >= 0, z' = 1 + (1 + x_1'' + x_2') encArg(z') -{ 0 }-> not(not(encArg(z' - 2))) :|: z' - 2 >= 0 encArg(z') -{ 0 }-> not(implies(encArg(x_11), encArg(x_2''))) :|: x_11 >= 0, x_2'' >= 0, z' = 1 + (1 + x_11 + x_2'') encArg(z') -{ 0 }-> not(and(encArg(x_12), encArg(x_21))) :|: z' = 1 + (1 + x_12 + x_21), x_12 >= 0, x_21 >= 0 encArg(z') -{ 0 }-> implies(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> and(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_and(z', z'') -{ 0 }-> and(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_and(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_false -{ 0 }-> 0 :|: encode_implies(z', z'') -{ 0 }-> implies(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_implies(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_not(z') -{ 2 }-> s1 :|: s1 >= 0, s1 <= x + 1 + 1, z' = 1, 1 = x, x >= 0 encode_not(z') -{ 2 }-> s2 :|: s2 >= 0, s2 <= x + 1 + 1, z' = 0, 0 = x, x >= 0 encode_not(z') -{ 2 }-> s3 :|: s3 >= 0, s3 <= x + 1 + 1, z' >= 0, 0 = x, x >= 0 encode_not(z') -{ 0 }-> not(xor(encArg(x_1188), encArg(x_2150))) :|: z' = 1 + x_1188 + x_2150, x_1188 >= 0, x_2150 >= 0 encode_not(z') -{ 0 }-> not(or(encArg(x_1185), encArg(x_2147))) :|: x_1185 >= 0, z' = 1 + x_1185 + x_2147, x_2147 >= 0 encode_not(z') -{ 0 }-> not(not(encArg(z' - 1))) :|: z' - 1 >= 0 encode_not(z') -{ 0 }-> not(implies(encArg(x_1186), encArg(x_2148))) :|: z' = 1 + x_1186 + x_2148, x_1186 >= 0, x_2148 >= 0 encode_not(z') -{ 0 }-> not(and(encArg(x_1187), encArg(x_2149))) :|: x_2149 >= 0, z' = 1 + x_1187 + x_2149, x_1187 >= 0 encode_not(z') -{ 0 }-> 0 :|: z' >= 0 encode_or(z', z'') -{ 0 }-> or(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_or(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 encode_true -{ 0 }-> 1 :|: encode_true -{ 0 }-> 0 :|: encode_xor(z', z'') -{ 0 }-> xor(encArg(z'), encArg(z'')) :|: z' >= 0, z'' >= 0 encode_xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s23 :|: s20 >= 0, s20 <= 2 * x'' + z'', s21 >= 0, s21 <= 2 * y'' + z'', s22 >= 0, s22 <= s20 + s21 + 1, s23 >= 0, s23 <= s22 + (1 + (1 + x'' + y'') + 1) + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 6 + 3*x'' + 3*y'' }-> s27 :|: s24 >= 0, s24 <= 2 * x'' + z'', s25 >= 0, s25 <= 2 * y'' + z'', s26 >= 0, s26 <= s24 + s25 + 1, s27 >= 0, s27 <= s26 + 0 + 1, z' = 1 + x'' + y'', z'' >= 0, y'' >= 0, x'' >= 0 implies(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 implies(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x :|: z'' >= 0, z' = 1, 0 = 0, 0 = x, x >= 0 implies(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 implies(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 implies(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + 1 = v1 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 implies(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' implies(z', z'') -{ 2 }-> 0 :|: z'' >= 0, z' = 1, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 3 }-> 0 :|: z'' >= 0, z' = 1, 0 = x, x >= 0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 1 = v1, 0 = v0 implies(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 implies(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 implies(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' >= 0, z' = 1, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + 1 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + 1 = x1, x1 >= 0 implies(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 not(z') -{ 1 }-> 0 :|: z' >= 0, v1 >= 0, 1 = v1 not(z') -{ 2 }-> 0 :|: z' >= 0, 1 = z' not(z') -{ 1 }-> 1 + z' + x1 :|: z' >= 0, 1 = x1, x1 >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s11 :|: s8 >= 0, s8 <= 2 * x' + (1 + x' + y'), s9 >= 0, s9 <= 2 * y' + (1 + x' + y'), s10 >= 0, s10 <= s8 + s9 + 1, s11 >= 0, s11 <= s10 + 0 + 1, z'' = 1 + x' + y', z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s15 :|: s12 >= 0, s12 <= 2 * x' + z'', s13 >= 0, s13 <= 2 * y' + z'', s14 >= 0, s14 <= s12 + s13 + 1, s15 >= 0, s15 <= s14 + (1 + (1 + x' + y') + z'') + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 6 + 3*x' + 3*y' }-> s19 :|: s16 >= 0, s16 <= 2 * x' + z'', s17 >= 0, s17 <= 2 * y' + z'', s18 >= 0, s18 <= s16 + s17 + 1, s19 >= 0, s19 <= s18 + 0 + 1, z' = 1 + x' + y', x' >= 0, z'' >= 0, y' >= 0 or(z', z'') -{ 7 + 3*x' + 3*y' }-> s7 :|: s4 >= 0, s4 <= 2 * x' + 0, s5 >= 0, s5 <= 2 * y' + 0, s6 >= 0, s6 <= s4 + s5 + 1, s7 >= 0, s7 <= s6 + (1 + x' + y') + 1, z'' = 0, z' = 1 + x' + y', x' >= 0, y' >= 0 or(z', z'') -{ 4 }-> x :|: z' = 1, z'' = 1, 0 = 0, 1 = x, x >= 0 or(z', z'') -{ 4 }-> x :|: z'' = 0, z' = 0, 0 = 0, 0 = x, x >= 0 or(z', z'') -{ 4 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z'' = 0, z' >= 0, z' = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> x' :|: z' >= 0, z'' = z', 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 2 }-> x' :|: z' >= 0, z'' >= 0, 0 = 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = 1, 0 = 0 or(z', z'') -{ 4 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> z' :|: z' >= 0, z'' = z', 0 = 0 or(z', z'') -{ 3 }-> 0 :|: z' = 1, z'' = 1, v0 >= 0, v1 >= 0, 0 = v1, 1 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 1 + z' + 1 = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = 1, v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = 1, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' = 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 4 }-> 0 :|: z'' = 0, z' = 0, 0 = x, x >= 0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 1 + z' + 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 4 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 1 + z' + z' = v1 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v1 >= 0, 0 = v1 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = z' or(z', z'') -{ 2 }-> 0 :|: z'' = 0, z' >= 0, v0 >= 0, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z'' = 0, z' >= 0, 0 = z' or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' = z', v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 3 }-> 0 :|: z' >= 0, z'' = z', 0 = x', x' >= 0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 1 + z' + z'' = v1, 0 = v0 or(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' >= 0, v0 >= 0, v1 >= 0, 0 = v1, 0 = v0 or(z', z'') -{ 2 }-> 0 :|: z' >= 0, z'' >= 0, 0 = x', x' >= 0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z' = 1, z'' = 1, 0 = x1, x0 >= 0, x1 >= 0, 1 = x0 or(z', z'') -{ 3 }-> 1 + x0 + x1 :|: z'' = 0, z' = 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 1 + z' + 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z'' = 0, z' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + x1 :|: z' >= 0, z'' = z', 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 1 + z' + z'' = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 1 }-> 1 + x0 + x1 :|: z' >= 0, z'' >= 0, 0 = x1, x0 >= 0, x1 >= 0, 0 = x0 or(z', z'') -{ 3 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + x0 + z' :|: z'' = 0, z' >= 0, x0 >= 0, 0 = x0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 1 + z' + 1 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = 1, 0 = x1, x1 >= 0 or(z', z'') -{ 3 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 1 + z' + z' = x1, x1 >= 0 or(z', z'') -{ 2 }-> 1 + z' + x1 :|: z' >= 0, z'' = z', 0 = x1, x1 >= 0 xor(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 xor(z', z'') -{ 1 }-> 0 :|: z' >= 0, z'' = z' xor(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 xor(z', z'') -{ 0 }-> 1 + z' + z'' :|: z' >= 0, z'' >= 0 Function symbols to be analyzed: {encArg}, {encode_not}, {encode_xor}, {encode_implies}, {encode_and}, {encode_or} Previous analysis results are: not: runtime: O(1) [2], size: O(n^1) [2 + z'] encode_false: runtime: O(1) [0], size: O(1) [0] xor: runtime: O(1) [1], size: O(n^1) [1 + z' + z''] encode_true: runtime: O(1) [0], size: O(1) [1] and: runtime: O(n^1) [1 + 3*z'], size: O(n^1) [2*z' + z''] implies: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [3 + 3*z' + 2*z''] or: runtime: O(n^1) [4 + 3*z'], size: O(n^1) [2 + 3*z' + 3*z''] encArg: runtime: INF, size: EXP ---------------------------------------- (87) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS to CDT ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) encode_not(z0) -> not(encArg(z0)) encode_xor(z0, z1) -> xor(encArg(z0), encArg(z1)) encode_true -> true encode_or(z0, z1) -> or(encArg(z0), encArg(z1)) encode_and(z0, z1) -> and(encArg(z0), encArg(z1)) encode_implies(z0, z1) -> implies(encArg(z0), encArg(z1)) encode_false -> false not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(true) -> c ENCARG(false) -> c1 ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_NOT(z0) -> c7(NOT(encArg(z0)), ENCARG(z0)) ENCODE_XOR(z0, z1) -> c8(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_TRUE -> c9 ENCODE_OR(z0, z1) -> c10(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_AND(z0, z1) -> c11(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_IMPLIES(z0, z1) -> c12(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_FALSE -> c13 NOT(z0) -> c14(XOR(z0, true)) OR(z0, z1) -> c15(XOR(and(z0, z1), xor(z0, z1)), AND(z0, z1), XOR(z0, z1)) IMPLIES(z0, z1) -> c16(XOR(and(z0, z1), xor(z0, true)), AND(z0, z1), XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 S tuples: NOT(z0) -> c14(XOR(z0, true)) OR(z0, z1) -> c15(XOR(and(z0, z1), xor(z0, z1)), AND(z0, z1), XOR(z0, z1)) IMPLIES(z0, z1) -> c16(XOR(and(z0, z1), xor(z0, true)), AND(z0, z1), XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples:none Defined Rule Symbols: not_1, or_2, implies_2, and_2, xor_2, encArg_1, encode_not_1, encode_xor_2, encode_true, encode_or_2, encode_and_2, encode_implies_2, encode_false Defined Pair Symbols: ENCARG_1, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_TRUE, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, ENCODE_FALSE, NOT_1, OR_2, IMPLIES_2, AND_2, XOR_2 Compound Symbols: c, c1, c2_2, c3_3, c4_3, c5_3, c6_3, c7_2, c8_3, c9, c10_3, c11_3, c12_3, c13, c14_1, c15_3, c16_3, c17, c18, c19, c20_3, c21, c22 ---------------------------------------- (89) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ENCARG(true) -> c ENCODE_TRUE -> c9 ENCARG(false) -> c1 ENCODE_FALSE -> c13 ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) encode_not(z0) -> not(encArg(z0)) encode_xor(z0, z1) -> xor(encArg(z0), encArg(z1)) encode_true -> true encode_or(z0, z1) -> or(encArg(z0), encArg(z1)) encode_and(z0, z1) -> and(encArg(z0), encArg(z1)) encode_implies(z0, z1) -> implies(encArg(z0), encArg(z1)) encode_false -> false not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_NOT(z0) -> c7(NOT(encArg(z0)), ENCARG(z0)) ENCODE_XOR(z0, z1) -> c8(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_OR(z0, z1) -> c10(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_AND(z0, z1) -> c11(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_IMPLIES(z0, z1) -> c12(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) OR(z0, z1) -> c15(XOR(and(z0, z1), xor(z0, z1)), AND(z0, z1), XOR(z0, z1)) IMPLIES(z0, z1) -> c16(XOR(and(z0, z1), xor(z0, true)), AND(z0, z1), XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 S tuples: NOT(z0) -> c14(XOR(z0, true)) OR(z0, z1) -> c15(XOR(and(z0, z1), xor(z0, z1)), AND(z0, z1), XOR(z0, z1)) IMPLIES(z0, z1) -> c16(XOR(and(z0, z1), xor(z0, true)), AND(z0, z1), XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples:none Defined Rule Symbols: not_1, or_2, implies_2, and_2, xor_2, encArg_1, encode_not_1, encode_xor_2, encode_true, encode_or_2, encode_and_2, encode_implies_2, encode_false Defined Pair Symbols: ENCARG_1, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, NOT_1, OR_2, IMPLIES_2, AND_2, XOR_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c7_2, c8_3, c10_3, c11_3, c12_3, c14_1, c15_3, c16_3, c17, c18, c19, c20_3, c21, c22 ---------------------------------------- (91) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) encode_not(z0) -> not(encArg(z0)) encode_xor(z0, z1) -> xor(encArg(z0), encArg(z1)) encode_true -> true encode_or(z0, z1) -> or(encArg(z0), encArg(z1)) encode_and(z0, z1) -> and(encArg(z0), encArg(z1)) encode_implies(z0, z1) -> implies(encArg(z0), encArg(z1)) encode_false -> false not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_NOT(z0) -> c(ENCARG(z0)) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_XOR(z0, z1) -> c(ENCARG(z0)) ENCODE_XOR(z0, z1) -> c(ENCARG(z1)) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(ENCARG(z0)) ENCODE_OR(z0, z1) -> c(ENCARG(z1)) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(ENCARG(z0)) ENCODE_AND(z0, z1) -> c(ENCARG(z1)) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(ENCARG(z0)) ENCODE_IMPLIES(z0, z1) -> c(ENCARG(z1)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) S tuples: NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) K tuples:none Defined Rule Symbols: not_1, or_2, implies_2, and_2, xor_2, encArg_1, encode_not_1, encode_xor_2, encode_true, encode_or_2, encode_and_2, encode_implies_2, encode_false Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (93) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 9 leading nodes: ENCODE_NOT(z0) -> c(ENCARG(z0)) ENCODE_XOR(z0, z1) -> c(ENCARG(z0)) ENCODE_XOR(z0, z1) -> c(ENCARG(z1)) ENCODE_OR(z0, z1) -> c(ENCARG(z0)) ENCODE_OR(z0, z1) -> c(ENCARG(z1)) ENCODE_AND(z0, z1) -> c(ENCARG(z0)) ENCODE_AND(z0, z1) -> c(ENCARG(z1)) ENCODE_IMPLIES(z0, z1) -> c(ENCARG(z0)) ENCODE_IMPLIES(z0, z1) -> c(ENCARG(z1)) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) encode_not(z0) -> not(encArg(z0)) encode_xor(z0, z1) -> xor(encArg(z0), encArg(z1)) encode_true -> true encode_or(z0, z1) -> or(encArg(z0), encArg(z1)) encode_and(z0, z1) -> and(encArg(z0), encArg(z1)) encode_implies(z0, z1) -> implies(encArg(z0), encArg(z1)) encode_false -> false not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) S tuples: NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) K tuples:none Defined Rule Symbols: not_1, or_2, implies_2, and_2, xor_2, encArg_1, encode_not_1, encode_xor_2, encode_true, encode_or_2, encode_and_2, encode_implies_2, encode_false Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (95) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: encode_not(z0) -> not(encArg(z0)) encode_xor(z0, z1) -> xor(encArg(z0), encArg(z1)) encode_true -> true encode_or(z0, z1) -> or(encArg(z0), encArg(z1)) encode_and(z0, z1) -> and(encArg(z0), encArg(z1)) encode_implies(z0, z1) -> implies(encArg(z0), encArg(z1)) encode_false -> false ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) S tuples: NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) K tuples:none Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (97) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) We considered the (Usable) Rules:none And the Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) The order we found is given by the following interpretation: Polynomial interpretation : POL(AND(x_1, x_2)) = 0 POL(ENCARG(x_1)) = x_1 POL(ENCODE_AND(x_1, x_2)) = x_1 POL(ENCODE_IMPLIES(x_1, x_2)) = [1] + x_1 + x_2 POL(ENCODE_NOT(x_1)) = [1] POL(ENCODE_OR(x_1, x_2)) = 0 POL(ENCODE_XOR(x_1, x_2)) = x_1 + x_2 POL(IMPLIES(x_1, x_2)) = [1] POL(NOT(x_1)) = [1] POL(OR(x_1, x_2)) = 0 POL(XOR(x_1, x_2)) = 0 POL(and(x_1, x_2)) = 0 POL(c(x_1)) = x_1 POL(c14(x_1)) = x_1 POL(c17) = 0 POL(c18) = 0 POL(c19) = 0 POL(c2(x_1, x_2)) = x_1 + x_2 POL(c20(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c21) = 0 POL(c22) = 0 POL(c3(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c4(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c5(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c6(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(cons_and(x_1, x_2)) = [1] + x_1 + x_2 POL(cons_implies(x_1, x_2)) = [1] + x_1 + x_2 POL(cons_not(x_1)) = [1] + x_1 POL(cons_or(x_1, x_2)) = [1] + x_1 + x_2 POL(cons_xor(x_1, x_2)) = [1] + x_1 + x_2 POL(encArg(x_1)) = [1] + x_1 POL(false) = [1] POL(implies(x_1, x_2)) = [1] + x_1 + x_2 POL(not(x_1)) = [1] + x_1 POL(or(x_1, x_2)) = [1] + x_1 + x_2 POL(true) = [1] POL(xor(x_1, x_2)) = 0 ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (99) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) We considered the (Usable) Rules:none And the Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) The order we found is given by the following interpretation: Polynomial interpretation : POL(AND(x_1, x_2)) = 0 POL(ENCARG(x_1)) = x_1^2 POL(ENCODE_AND(x_1, x_2)) = [2] + [2]x_1 + x_2 + x_2^2 + [2]x_1*x_2 + x_1^2 POL(ENCODE_IMPLIES(x_1, x_2)) = [2] + [2]x_1 + [2]x_2 + [2]x_2^2 + [2]x_1*x_2 + [2]x_1^2 POL(ENCODE_NOT(x_1)) = [2] + [2]x_1 + [2]x_1^2 POL(ENCODE_OR(x_1, x_2)) = [2] + [2]x_1 + [2]x_2 + [2]x_2^2 + x_1*x_2 + [2]x_1^2 POL(ENCODE_XOR(x_1, x_2)) = [1] + [2]x_2^2 + [2]x_1*x_2 + [2]x_1^2 POL(IMPLIES(x_1, x_2)) = 0 POL(NOT(x_1)) = 0 POL(OR(x_1, x_2)) = [2] POL(XOR(x_1, x_2)) = 0 POL(and(x_1, x_2)) = 0 POL(c(x_1)) = x_1 POL(c14(x_1)) = x_1 POL(c17) = 0 POL(c18) = 0 POL(c19) = 0 POL(c2(x_1, x_2)) = x_1 + x_2 POL(c20(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c21) = 0 POL(c22) = 0 POL(c3(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c4(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c5(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c6(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(cons_and(x_1, x_2)) = [1] + x_1 + x_2 POL(cons_implies(x_1, x_2)) = x_1 + x_2 POL(cons_not(x_1)) = x_1 POL(cons_or(x_1, x_2)) = [2] + x_1 + x_2 POL(cons_xor(x_1, x_2)) = x_1 + x_2 POL(encArg(x_1)) = 0 POL(false) = 0 POL(implies(x_1, x_2)) = 0 POL(not(x_1)) = 0 POL(or(x_1, x_2)) = [2]x_1^2 POL(true) = 0 POL(xor(x_1, x_2)) = 0 ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (101) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) by OR(z0, false) -> c(XOR(and(z0, false), z0)) OR(z0, z0) -> c(XOR(and(z0, z0), false)) OR(z0, true) -> c(XOR(z0, xor(z0, true))) OR(z0, false) -> c(XOR(false, xor(z0, false))) OR(z0, z0) -> c(XOR(z0, xor(z0, z0))) OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, false) -> c(XOR(and(z0, false), z0)) OR(z0, z0) -> c(XOR(and(z0, z0), false)) OR(z0, true) -> c(XOR(z0, xor(z0, true))) OR(z0, false) -> c(XOR(false, xor(z0, false))) OR(z0, z0) -> c(XOR(z0, xor(z0, z0))) OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (103) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) by IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, false) -> c(XOR(and(z0, false), z0)) OR(z0, z0) -> c(XOR(and(z0, z0), false)) OR(z0, true) -> c(XOR(z0, xor(z0, true))) OR(z0, false) -> c(XOR(false, xor(z0, false))) OR(z0, z0) -> c(XOR(z0, xor(z0, z0))) OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace OR(z0, false) -> c(XOR(and(z0, false), z0)) by OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z0) -> c(XOR(and(z0, z0), false)) OR(z0, true) -> c(XOR(z0, xor(z0, true))) OR(z0, false) -> c(XOR(false, xor(z0, false))) OR(z0, z0) -> c(XOR(z0, xor(z0, z0))) OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (107) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace OR(z0, z0) -> c(XOR(and(z0, z0), false)) by OR(true, true) -> c(XOR(true, false)) OR(false, false) -> c(XOR(false, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, true) -> c(XOR(z0, xor(z0, true))) OR(z0, false) -> c(XOR(false, xor(z0, false))) OR(z0, z0) -> c(XOR(z0, xor(z0, z0))) OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace OR(z0, true) -> c(XOR(z0, xor(z0, true))) by OR(true, true) -> c(XOR(true, false)) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, false) -> c(XOR(false, xor(z0, false))) OR(z0, z0) -> c(XOR(z0, xor(z0, z0))) OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (111) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace OR(z0, false) -> c(XOR(false, xor(z0, false))) by OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z0) -> c(XOR(z0, xor(z0, z0))) OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (113) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace OR(z0, z0) -> c(XOR(z0, xor(z0, z0))) by OR(false, false) -> c(XOR(false, false)) OR(z0, z0) -> c(XOR(z0, false)) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (115) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace OR(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), z2))) by OR(xor(x0, x1), false) -> c(XOR(xor(and(x0, false), and(x1, false)), xor(x0, x1))) OR(xor(x0, x1), xor(x0, x1)) -> c(XOR(xor(and(x0, xor(x0, x1)), and(x1, xor(x0, x1))), false)) OR(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) OR(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), false))) OR(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), z0))) OR(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), z2))) OR(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) OR(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), false))) OR(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), z0))) OR(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), z2))) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) OR(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) OR(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), false))) OR(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), z0))) OR(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), z2))) OR(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) OR(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), false))) OR(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), z0))) OR(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), z2))) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace IMPLIES(z0, true) -> c(XOR(z0, xor(z0, true))) by IMPLIES(true, true) -> c(XOR(true, false)) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) OR(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) OR(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), false))) OR(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), z0))) OR(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), z2))) OR(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) OR(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), false))) OR(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), z0))) OR(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), z2))) IMPLIES(true, true) -> c(XOR(true, false)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (119) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace IMPLIES(z0, false) -> c(XOR(false, xor(z0, true))) by IMPLIES(true, false) -> c(XOR(false, false)) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) OR(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) OR(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), false))) OR(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), z0))) OR(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), z2))) OR(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) OR(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), false))) OR(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), z0))) OR(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), z2))) IMPLIES(true, true) -> c(XOR(true, false)) IMPLIES(true, false) -> c(XOR(false, false)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (121) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace IMPLIES(z0, z0) -> c(XOR(z0, xor(z0, true))) by IMPLIES(true, true) -> c(XOR(true, false)) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) OR(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) OR(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), false))) OR(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), z0))) OR(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), z2))) OR(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) OR(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), false))) OR(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), z0))) OR(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), z2))) IMPLIES(true, true) -> c(XOR(true, false)) IMPLIES(true, false) -> c(XOR(false, false)) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (123) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace IMPLIES(xor(z0, z1), z2) -> c(XOR(xor(and(z0, z2), and(z1, z2)), xor(xor(z0, z1), true))) by IMPLIES(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) IMPLIES(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), true))) IMPLIES(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), true))) IMPLIES(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), true))) IMPLIES(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) IMPLIES(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), true))) IMPLIES(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), true))) IMPLIES(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), true))) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) OR(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) OR(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), false))) OR(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), z0))) OR(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), z2))) OR(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) OR(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), false))) OR(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), z0))) OR(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), z2))) IMPLIES(true, true) -> c(XOR(true, false)) IMPLIES(true, false) -> c(XOR(false, false)) IMPLIES(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) IMPLIES(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), true))) IMPLIES(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), true))) IMPLIES(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), true))) IMPLIES(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) IMPLIES(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), true))) IMPLIES(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), true))) IMPLIES(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), true))) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (125) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace OR(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), false))) by OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), false), xor(z0, z1))) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) OR(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) OR(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), z0))) OR(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), z2))) OR(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) OR(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), false))) OR(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), z0))) OR(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), z2))) IMPLIES(true, true) -> c(XOR(true, false)) IMPLIES(true, false) -> c(XOR(false, false)) IMPLIES(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) IMPLIES(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), true))) IMPLIES(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), true))) IMPLIES(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), true))) IMPLIES(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) IMPLIES(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), true))) IMPLIES(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), true))) IMPLIES(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), true))) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), false), xor(z0, z1))) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1 ---------------------------------------- (127) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace OR(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), false))) by OR(xor(z0, z1), false) -> c(XOR(xor(false, and(z1, false)), xor(z0, z1))) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: encArg(true) -> true encArg(false) -> false encArg(cons_not(z0)) -> not(encArg(z0)) encArg(cons_or(z0, z1)) -> or(encArg(z0), encArg(z1)) encArg(cons_implies(z0, z1)) -> implies(encArg(z0), encArg(z1)) encArg(cons_and(z0, z1)) -> and(encArg(z0), encArg(z1)) encArg(cons_xor(z0, z1)) -> xor(encArg(z0), encArg(z1)) not(z0) -> xor(z0, true) or(z0, z1) -> xor(and(z0, z1), xor(z0, z1)) implies(z0, z1) -> xor(and(z0, z1), xor(z0, true)) and(z0, true) -> z0 and(z0, false) -> false and(z0, z0) -> z0 and(xor(z0, z1), z2) -> xor(and(z0, z2), and(z1, z2)) xor(z0, false) -> z0 xor(z0, z0) -> false Tuples: ENCARG(cons_not(z0)) -> c2(NOT(encArg(z0)), ENCARG(z0)) ENCARG(cons_or(z0, z1)) -> c3(OR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_implies(z0, z1)) -> c4(IMPLIES(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_and(z0, z1)) -> c5(AND(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_xor(z0, z1)) -> c6(XOR(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) NOT(z0) -> c14(XOR(z0, true)) AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 ENCODE_NOT(z0) -> c(NOT(encArg(z0))) ENCODE_XOR(z0, z1) -> c(XOR(encArg(z0), encArg(z1))) ENCODE_OR(z0, z1) -> c(OR(encArg(z0), encArg(z1))) ENCODE_AND(z0, z1) -> c(AND(encArg(z0), encArg(z1))) ENCODE_IMPLIES(z0, z1) -> c(IMPLIES(encArg(z0), encArg(z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) IMPLIES(true, x1) -> c(XOR(and(true, x1), false)) OR(z0, false) -> c(XOR(false, z0)) OR(false, false) -> c(XOR(false, false)) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), and(z1, false)), xor(z0, z1))) OR(true, true) -> c(XOR(true, false)) OR(z0, z0) -> c(XOR(z0, false)) OR(xor(z0, z1), xor(z0, z1)) -> c(XOR(xor(and(z0, xor(z0, z1)), and(z1, xor(z0, z1))), false)) OR(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) OR(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), z0))) OR(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), z2))) OR(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) OR(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), z0))) OR(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), z2))) IMPLIES(true, true) -> c(XOR(true, false)) IMPLIES(true, false) -> c(XOR(false, false)) IMPLIES(xor(x0, z0), true) -> c(XOR(xor(and(x0, true), z0), xor(xor(x0, z0), true))) IMPLIES(xor(x0, z0), false) -> c(XOR(xor(and(x0, false), false), xor(xor(x0, z0), true))) IMPLIES(xor(x0, z0), z0) -> c(XOR(xor(and(x0, z0), z0), xor(xor(x0, z0), true))) IMPLIES(xor(x0, xor(z0, z1)), z2) -> c(XOR(xor(and(x0, z2), xor(and(z0, z2), and(z1, z2))), xor(xor(x0, xor(z0, z1)), true))) IMPLIES(xor(z0, x1), true) -> c(XOR(xor(z0, and(x1, true)), xor(xor(z0, x1), true))) IMPLIES(xor(z0, x1), false) -> c(XOR(xor(false, and(x1, false)), xor(xor(z0, x1), true))) IMPLIES(xor(z0, x1), z0) -> c(XOR(xor(z0, and(x1, z0)), xor(xor(z0, x1), true))) IMPLIES(xor(xor(z0, z1), x1), z2) -> c(XOR(xor(xor(and(z0, z2), and(z1, z2)), and(x1, z2)), xor(xor(xor(z0, z1), x1), true))) OR(xor(z0, z1), false) -> c(XOR(xor(and(z0, false), false), xor(z0, z1))) OR(xor(z0, z1), false) -> c(XOR(xor(false, and(z1, false)), xor(z0, z1))) S tuples: AND(z0, true) -> c17 AND(z0, false) -> c18 AND(z0, z0) -> c19 AND(xor(z0, z1), z2) -> c20(XOR(and(z0, z2), and(z1, z2)), AND(z0, z2), AND(z1, z2)) XOR(z0, false) -> c21 XOR(z0, z0) -> c22 K tuples: NOT(z0) -> c14(XOR(z0, true)) IMPLIES(z0, z1) -> c(XOR(and(z0, z1), xor(z0, true))) IMPLIES(z0, z1) -> c(AND(z0, z1)) IMPLIES(z0, z1) -> c(XOR(z0, true)) OR(z0, z1) -> c(XOR(and(z0, z1), xor(z0, z1))) OR(z0, z1) -> c(AND(z0, z1)) OR(z0, z1) -> c(XOR(z0, z1)) Defined Rule Symbols: encArg_1, not_1, or_2, implies_2, and_2, xor_2 Defined Pair Symbols: ENCARG_1, NOT_1, AND_2, XOR_2, ENCODE_NOT_1, ENCODE_XOR_2, ENCODE_OR_2, ENCODE_AND_2, ENCODE_IMPLIES_2, OR_2, IMPLIES_2 Compound Symbols: c2_2, c3_3, c4_3, c5_3, c6_3, c14_1, c17, c18, c19, c20_3, c21, c22, c_1