YES proof of prog.inttrs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given IRSwT could be proven: (0) IRSwT (1) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (2) IRSwT (3) IRSwTTerminationDigraphProof [EQUIVALENT, 137 ms] (4) TRUE ---------------------------------------- (0) Obligation: Rules: l0(iHAT0, jHAT0, tmp1HAT0, tmp2HAT0, tmp3HAT0) -> l1(iHATpost, jHATpost, tmp1HATpost, tmp2HATpost, tmp3HATpost) :|: tmp3HAT0 = tmp3HATpost && tmp2HAT0 = tmp2HATpost && tmp1HAT0 = tmp1HATpost && jHAT0 = jHATpost && iHAT0 = iHATpost l2(x, x1, x2, x3, x4) -> l0(x5, x6, x7, x8, x9) :|: x4 = x9 && x3 = x8 && x2 = x7 && x1 = x6 && x = x5 l3(x10, x11, x12, x13, x14) -> l2(x15, x16, x17, x18, x19) :|: x19 = x19 && x18 = x18 && x17 = x17 && x16 = 1 && x15 = 0 l4(x20, x21, x22, x23, x24) -> l3(x25, x26, x27, x28, x29) :|: x24 = x29 && x23 = x28 && x22 = x27 && x21 = x26 && x20 = x25 Start term: l4(iHAT0, jHAT0, tmp1HAT0, tmp2HAT0, tmp3HAT0) ---------------------------------------- (1) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (2) Obligation: Rules: l0(iHAT0, jHAT0, tmp1HAT0, tmp2HAT0, tmp3HAT0) -> l1(iHATpost, jHATpost, tmp1HATpost, tmp2HATpost, tmp3HATpost) :|: tmp3HAT0 = tmp3HATpost && tmp2HAT0 = tmp2HATpost && tmp1HAT0 = tmp1HATpost && jHAT0 = jHATpost && iHAT0 = iHATpost l2(x, x1, x2, x3, x4) -> l0(x5, x6, x7, x8, x9) :|: x4 = x9 && x3 = x8 && x2 = x7 && x1 = x6 && x = x5 l3(x10, x11, x12, x13, x14) -> l2(x15, x16, x17, x18, x19) :|: x19 = x19 && x18 = x18 && x17 = x17 && x16 = 1 && x15 = 0 l4(x20, x21, x22, x23, x24) -> l3(x25, x26, x27, x28, x29) :|: x24 = x29 && x23 = x28 && x22 = x27 && x21 = x26 && x20 = x25 Start term: l4(iHAT0, jHAT0, tmp1HAT0, tmp2HAT0, tmp3HAT0) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) l0(iHAT0, jHAT0, tmp1HAT0, tmp2HAT0, tmp3HAT0) -> l1(iHATpost, jHATpost, tmp1HATpost, tmp2HATpost, tmp3HATpost) :|: tmp3HAT0 = tmp3HATpost && tmp2HAT0 = tmp2HATpost && tmp1HAT0 = tmp1HATpost && jHAT0 = jHATpost && iHAT0 = iHATpost (2) l2(x, x1, x2, x3, x4) -> l0(x5, x6, x7, x8, x9) :|: x4 = x9 && x3 = x8 && x2 = x7 && x1 = x6 && x = x5 (3) l3(x10, x11, x12, x13, x14) -> l2(x15, x16, x17, x18, x19) :|: x19 = x19 && x18 = x18 && x17 = x17 && x16 = 1 && x15 = 0 (4) l4(x20, x21, x22, x23, x24) -> l3(x25, x26, x27, x28, x29) :|: x24 = x29 && x23 = x28 && x22 = x27 && x21 = x26 && x20 = x25 Arcs: (2) -> (1) (3) -> (2) (4) -> (3) This digraph is fully evaluated! ---------------------------------------- (4) TRUE