# LTS Termination Proof

by T2Cert

## Input

Integer Transition System
• Initial Location: 7
• Transitions: (pre-variables and post-variables)  0 0 1: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 − 2⋅x39 ≤ 0 ∧ 1 − arg2 ≤ 0 ∧ 2⋅x39 − 2⋅x40 ≤ 0 ∧ −2⋅x39 + 2⋅x40 ≤ 0 ∧ − x39 ≤ 0 ∧ 1 − arg1 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 ∧ − arg1P + arg1P ≤ 0 ∧ arg1P − arg1P ≤ 0 ∧ − arg1 + arg1 ≤ 0 ∧ arg1 − arg1 ≤ 0 1 1 2: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 − 2⋅x45 ≤ 0 ∧ 1 − arg2 ≤ 0 ∧ 2⋅x45 − 2⋅x46 ≤ 0 ∧ −2⋅x45 + 2⋅x46 ≤ 0 ∧ − x45 ≤ 0 ∧ 1 − arg1 ≤ 0 ∧ 3 − arg1P ≤ 0 ∧ 2⋅x45 − 2⋅x46 ≤ 0 ∧ −1 − 2⋅x45 + 2⋅x46 ≤ 0 ∧ − arg2P ≤ 0 ∧ arg2P ≤ 0 ∧ 1 − arg3P + 2⋅x45 ≤ 0 ∧ −1 + arg3P − 2⋅x45 ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg2P + arg2 ≤ 0 ∧ arg2P − arg2 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 2 2 3: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ −2 + arg2 ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg1P ≤ 0 ∧ 4 − arg1 + arg3 ≤ 0 ∧ − arg3P ≤ 0 ∧ arg3P ≤ 0 ∧ arg3 − arg4P ≤ 0 ∧ − arg3 + arg4P ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 3 3 2: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ 3 − arg3 ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg1P ≤ 0 ∧ 4 − arg1 + arg4 ≤ 0 ∧ 1 − arg2P + arg2 ≤ 0 ∧ −1 + arg2P − arg2 ≤ 0 ∧ − arg3P + arg4 ≤ 0 ∧ arg3P − arg4 ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg2P + arg2 ≤ 0 ∧ arg2P − arg2 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 3 4 3: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 1 + arg2 − arg4 ≤ 0 ∧ −2 + arg3 ≤ 0 ∧ 1 + arg3 − x18 ≤ 0 ∧ − x18 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg1P ≤ 0 ∧ 4 − arg1 + arg4 ≤ 0 ∧ 1 − arg3P + arg3 ≤ 0 ∧ −1 + arg3P − arg3 ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − arg4P + arg4P ≤ 0 ∧ arg4P − arg4P ≤ 0 ∧ − arg4 + arg4 ≤ 0 ∧ arg4 − arg4 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 2 5 4: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 2 − arg3 ≤ 0 ∧ 3 − arg2 ≤ 0 ∧ 1 − arg3 + x50 ≤ 0 ∧ 1 − arg3 + x51 ≤ 0 ∧ − arg1 + x52 ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − x52 ≤ 0 ∧ 4 − arg1 + arg3 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg3P + arg3P ≤ 0 ∧ arg3P − arg3P ≤ 0 ∧ − arg3 + arg3 ≤ 0 ∧ arg3 − arg3 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 ∧ − arg1P + arg1P ≤ 0 ∧ arg1P − arg1P ≤ 0 ∧ − arg1 + arg1 ≤ 0 ∧ arg1 − arg1 ≤ 0 4 6 5: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 2 − arg3 ≤ 0 ∧ 3 − arg2 ≤ 0 ∧ 1 − arg3 + x57 ≤ 0 ∧ 1 − arg3 + x58 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg1P ≤ 0 ∧ 4 − arg1 + arg3 ≤ 0 ∧ − arg3 + 2⋅x57 ≤ 0 ∧ −1 + arg3 − 2⋅x57 ≤ 0 ∧ −1 + arg3 − 2⋅x58 ≤ 0 ∧ − arg3 + 2⋅x58 ≤ 0 ∧ − arg2P ≤ 0 ∧ arg2P ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg2P + arg2 ≤ 0 ∧ arg2P − arg2 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg3P + arg3P ≤ 0 ∧ arg3P − arg3P ≤ 0 ∧ − arg3 + arg3 ≤ 0 ∧ arg3 − arg3 ≤ 0 5 7 6: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ 1 + arg2 − arg3 ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg1P ≤ 0 ∧ 4 − arg1 + arg3 ≤ 0 ∧ − arg3P ≤ 0 ∧ arg3P ≤ 0 ∧ arg3 − arg4P ≤ 0 ∧ − arg3 + arg4P ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 6 8 5: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg3 + arg4 ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg1P ≤ 0 ∧ 4 − arg1 + arg4 ≤ 0 ∧ 1 − arg2P + arg2 ≤ 0 ∧ −1 + arg2P − arg2 ≤ 0 ∧ − arg3P + arg4 ≤ 0 ∧ arg3P − arg4 ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg2P + arg2 ≤ 0 ∧ arg2P − arg2 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 6 9 6: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ 1 + arg3 − arg4 ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg1P ≤ 0 ∧ 4 − arg1 + arg4 ≤ 0 ∧ 1 − arg3P + arg3 ≤ 0 ∧ −1 + arg3P − arg3 ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg4P + arg4P ≤ 0 ∧ arg4P − arg4P ≤ 0 ∧ − arg4 + arg4 ≤ 0 ∧ arg4 − arg4 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 7 10 0: 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ 0 ≤ 0 ∧ − arg1P + arg1 ≤ 0 ∧ arg1P − arg1 ≤ 0 ∧ − arg2P + arg2 ≤ 0 ∧ arg2P − arg2 ≤ 0 ∧ − arg3P + arg3 ≤ 0 ∧ arg3P − arg3 ≤ 0 ∧ − arg4P + arg4 ≤ 0 ∧ arg4P − arg4 ≤ 0 ∧ − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0

## Proof

The following invariants are asserted.

 0: TRUE 1: 1 − arg1 ≤ 0 ∧ 1 − arg2 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 2: 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 3: 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 4: 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg2 ≤ 0 ∧ 2 − arg3 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 ∧ 3 − x52 ≤ 0 5: 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 ∧ 3 − x52 ≤ 0 6: 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 ∧ 3 − x52 ≤ 0 7: TRUE

The invariants are proved as follows.

### IMPACT Invariant Proof

• nodes (location) invariant:  0 (0) TRUE 1 (1) 1 − arg1 ≤ 0 ∧ 1 − arg2 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 2 (2) 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 3 (3) 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 4 (4) 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ 3 − arg2 ≤ 0 ∧ 2 − arg3 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 ∧ 3 − x52 ≤ 0 5 (5) 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 ∧ 3 − x52 ≤ 0 6 (6) 3 − arg1P ≤ 0 ∧ 3 − arg1 ≤ 0 ∧ − x39 ≤ 0 ∧ 3 − x41 ≤ 0 ∧ − x45 ≤ 0 ∧ 3 − x52 ≤ 0 7 (7) TRUE
• initial node: 7
• cover edges:
• transition edges:  0 0 1 1 1 2 2 2 3 2 5 4 3 3 2 3 4 3 4 6 5 5 7 6 6 8 5 6 9 6 7 10 0

### 2 Switch to Cooperation Termination Proof

We consider the following cutpoint-transitions:
 2 11 2: − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg4P + arg4P ≤ 0 ∧ arg4P − arg4P ≤ 0 ∧ − arg4 + arg4 ≤ 0 ∧ arg4 − arg4 ≤ 0 ∧ − arg3P + arg3P ≤ 0 ∧ arg3P − arg3P ≤ 0 ∧ − arg3 + arg3 ≤ 0 ∧ arg3 − arg3 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 ∧ − arg1P + arg1P ≤ 0 ∧ arg1P − arg1P ≤ 0 ∧ − arg1 + arg1 ≤ 0 ∧ arg1 − arg1 ≤ 0 3 18 3: − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg4P + arg4P ≤ 0 ∧ arg4P − arg4P ≤ 0 ∧ − arg4 + arg4 ≤ 0 ∧ arg4 − arg4 ≤ 0 ∧ − arg3P + arg3P ≤ 0 ∧ arg3P − arg3P ≤ 0 ∧ − arg3 + arg3 ≤ 0 ∧ arg3 − arg3 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 ∧ − arg1P + arg1P ≤ 0 ∧ arg1P − arg1P ≤ 0 ∧ − arg1 + arg1 ≤ 0 ∧ arg1 − arg1 ≤ 0 5 25 5: − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg4P + arg4P ≤ 0 ∧ arg4P − arg4P ≤ 0 ∧ − arg4 + arg4 ≤ 0 ∧ arg4 − arg4 ≤ 0 ∧ − arg3P + arg3P ≤ 0 ∧ arg3P − arg3P ≤ 0 ∧ − arg3 + arg3 ≤ 0 ∧ arg3 − arg3 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 ∧ − arg1P + arg1P ≤ 0 ∧ arg1P − arg1P ≤ 0 ∧ − arg1 + arg1 ≤ 0 ∧ arg1 − arg1 ≤ 0 6 32 6: − x58 + x58 ≤ 0 ∧ x58 − x58 ≤ 0 ∧ − x57 + x57 ≤ 0 ∧ x57 − x57 ≤ 0 ∧ − x52 + x52 ≤ 0 ∧ x52 − x52 ≤ 0 ∧ − x51 + x51 ≤ 0 ∧ x51 − x51 ≤ 0 ∧ − x50 + x50 ≤ 0 ∧ x50 − x50 ≤ 0 ∧ − x46 + x46 ≤ 0 ∧ x46 − x46 ≤ 0 ∧ − x45 + x45 ≤ 0 ∧ x45 − x45 ≤ 0 ∧ − x41 + x41 ≤ 0 ∧ x41 − x41 ≤ 0 ∧ − x40 + x40 ≤ 0 ∧ x40 − x40 ≤ 0 ∧ − x39 + x39 ≤ 0 ∧ x39 − x39 ≤ 0 ∧ − x18 + x18 ≤ 0 ∧ x18 − x18 ≤ 0 ∧ − arg4P + arg4P ≤ 0 ∧ arg4P − arg4P ≤ 0 ∧ − arg4 + arg4 ≤ 0 ∧ arg4 − arg4 ≤ 0 ∧ − arg3P + arg3P ≤ 0 ∧ arg3P − arg3P ≤ 0 ∧ − arg3 + arg3 ≤ 0 ∧ arg3 − arg3 ≤ 0 ∧ − arg2P + arg2P ≤ 0 ∧ arg2P − arg2P ≤ 0 ∧ − arg2 + arg2 ≤ 0 ∧ arg2 − arg2 ≤ 0 ∧ − arg1P + arg1P ≤ 0 ∧ arg1P − arg1P ≤ 0 ∧ − arg1 + arg1 ≤ 0 ∧ arg1 − arg1 ≤ 0
and for every transition t, a duplicate t is considered.

### 3 Transition Removal

We remove transitions 0, 1, 5, 6, 10 using the following ranking functions, which are bounded by −23.

 7: 0 0: 0 1: 0 2: 0 3: 0 4: 0 5: 0 6: 0 7: −7 0: −8 1: −9 2: −10 3: −10 2_var_snapshot: −10 2*: −10 3_var_snapshot: −10 3*: −10 4: −15 5: −16 6: −16 5_var_snapshot: −16 5*: −16 6_var_snapshot: −16 6*: −16

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

2* 14 2: x58 + x58 ≤ 0x58x58 ≤ 0x57 + x57 ≤ 0x57x57 ≤ 0x52 + x52 ≤ 0x52x52 ≤ 0x51 + x51 ≤ 0x51x51 ≤ 0x50 + x50 ≤ 0x50x50 ≤ 0x46 + x46 ≤ 0x46x46 ≤ 0x45 + x45 ≤ 0x45x45 ≤ 0x41 + x41 ≤ 0x41x41 ≤ 0x40 + x40 ≤ 0x40x40 ≤ 0x39 + x39 ≤ 0x39x39 ≤ 0x18 + x18 ≤ 0x18x18 ≤ 0arg4P + arg4P ≤ 0arg4Parg4P ≤ 0arg4 + arg4 ≤ 0arg4arg4 ≤ 0arg3P + arg3P ≤ 0arg3Parg3P ≤ 0arg3 + arg3 ≤ 0arg3arg3 ≤ 0arg2P + arg2P ≤ 0arg2Parg2P ≤ 0arg2 + arg2 ≤ 0arg2arg2 ≤ 0arg1P + arg1P ≤ 0arg1Parg1P ≤ 0arg1 + arg1 ≤ 0arg1arg1 ≤ 0

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

2 12 2_var_snapshot: x58 + x58 ≤ 0x58x58 ≤ 0x57 + x57 ≤ 0x57x57 ≤ 0x52 + x52 ≤ 0x52x52 ≤ 0x51 + x51 ≤ 0x51x51 ≤ 0x50 + x50 ≤ 0x50x50 ≤ 0x46 + x46 ≤ 0x46x46 ≤ 0x45 + x45 ≤ 0x45x45 ≤ 0x41 + x41 ≤ 0x41x41 ≤ 0x40 + x40 ≤ 0x40x40 ≤ 0x39 + x39 ≤ 0x39x39 ≤ 0x18 + x18 ≤ 0x18x18 ≤ 0arg4P + arg4P ≤ 0arg4Parg4P ≤ 0arg4 + arg4 ≤ 0arg4arg4 ≤ 0arg3P + arg3P ≤ 0arg3Parg3P ≤ 0arg3 + arg3 ≤ 0arg3arg3 ≤ 0arg2P + arg2P ≤ 0arg2Parg2P ≤ 0arg2 + arg2 ≤ 0arg2arg2 ≤ 0arg1P + arg1P ≤ 0arg1Parg1P ≤ 0arg1 + arg1 ≤ 0arg1arg1 ≤ 0

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

3* 21 3: x58 + x58 ≤ 0x58x58 ≤ 0x57 + x57 ≤ 0x57x57 ≤ 0x52 + x52 ≤ 0x52x52 ≤ 0x51 + x51 ≤ 0x51x51 ≤ 0x50 + x50 ≤ 0x50x50 ≤ 0x46 + x46 ≤ 0x46x46 ≤ 0x45 + x45 ≤ 0x45x45 ≤ 0x41 + x41 ≤ 0x41x41 ≤ 0x40 + x40 ≤ 0x40x40 ≤ 0x39 + x39 ≤ 0x39x39 ≤ 0x18 + x18 ≤ 0x18x18 ≤ 0arg4P + arg4P ≤ 0arg4Parg4P ≤ 0arg4 + arg4 ≤ 0arg4arg4 ≤ 0arg3P + arg3P ≤ 0arg3Parg3P ≤ 0arg3 + arg3 ≤ 0arg3arg3 ≤ 0arg2P + arg2P ≤ 0arg2Parg2P ≤ 0arg2 + arg2 ≤ 0arg2arg2 ≤ 0arg1P + arg1P ≤ 0arg1Parg1P ≤ 0arg1 + arg1 ≤ 0arg1arg1 ≤ 0

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

3 19 3_var_snapshot: x58 + x58 ≤ 0x58x58 ≤ 0x57 + x57 ≤ 0x57x57 ≤ 0x52 + x52 ≤ 0x52x52 ≤ 0x51 + x51 ≤ 0x51x51 ≤ 0x50 + x50 ≤ 0x50x50 ≤ 0x46 + x46 ≤ 0x46x46 ≤ 0x45 + x45 ≤ 0x45x45 ≤ 0x41 + x41 ≤ 0x41x41 ≤ 0x40 + x40 ≤ 0x40x40 ≤ 0x39 + x39 ≤ 0x39x39 ≤ 0x18 + x18 ≤ 0x18x18 ≤ 0arg4P + arg4P ≤ 0arg4Parg4P ≤ 0arg4 + arg4 ≤ 0arg4arg4 ≤ 0arg3P + arg3P ≤ 0arg3Parg3P ≤ 0arg3 + arg3 ≤ 0arg3arg3 ≤ 0arg2P + arg2P ≤ 0arg2Parg2P ≤ 0arg2 + arg2 ≤ 0arg2arg2 ≤ 0arg1P + arg1P ≤ 0arg1Parg1P ≤ 0arg1 + arg1 ≤ 0arg1arg1 ≤ 0

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

5* 28 5: x58 + x58 ≤ 0x58x58 ≤ 0x57 + x57 ≤ 0x57x57 ≤ 0x52 + x52 ≤ 0x52x52 ≤ 0x51 + x51 ≤ 0x51x51 ≤ 0x50 + x50 ≤ 0x50x50 ≤ 0x46 + x46 ≤ 0x46x46 ≤ 0x45 + x45 ≤ 0x45x45 ≤ 0x41 + x41 ≤ 0x41x41 ≤ 0x40 + x40 ≤ 0x40x40 ≤ 0x39 + x39 ≤ 0x39x39 ≤ 0x18 + x18 ≤ 0x18x18 ≤ 0arg4P + arg4P ≤ 0arg4Parg4P ≤ 0arg4 + arg4 ≤ 0arg4arg4 ≤ 0arg3P + arg3P ≤ 0arg3Parg3P ≤ 0arg3 + arg3 ≤ 0arg3arg3 ≤ 0arg2P + arg2P ≤ 0arg2Parg2P ≤ 0arg2 + arg2 ≤ 0arg2arg2 ≤ 0arg1P + arg1P ≤ 0arg1Parg1P ≤ 0arg1 + arg1 ≤ 0arg1arg1 ≤ 0

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

5 26 5_var_snapshot: x58 + x58 ≤ 0x58x58 ≤ 0x57 + x57 ≤ 0x57x57 ≤ 0x52 + x52 ≤ 0x52x52 ≤ 0x51 + x51 ≤ 0x51x51 ≤ 0x50 + x50 ≤ 0x50x50 ≤ 0x46 + x46 ≤ 0x46x46 ≤ 0x45 + x45 ≤ 0x45x45 ≤ 0x41 + x41 ≤ 0x41x41 ≤ 0x40 + x40 ≤ 0x40x40 ≤ 0x39 + x39 ≤ 0x39x39 ≤ 0x18 + x18 ≤ 0x18x18 ≤ 0arg4P + arg4P ≤ 0arg4Parg4P ≤ 0arg4 + arg4 ≤ 0arg4arg4 ≤ 0arg3P + arg3P ≤ 0arg3Parg3P ≤ 0arg3 + arg3 ≤ 0arg3arg3 ≤ 0arg2P + arg2P ≤ 0arg2Parg2P ≤ 0arg2 + arg2 ≤ 0arg2arg2 ≤ 0arg1P + arg1P ≤ 0arg1Parg1P ≤ 0arg1 + arg1 ≤ 0arg1arg1 ≤ 0

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

6* 35 6: x58 + x58 ≤ 0x58x58 ≤ 0x57 + x57 ≤ 0x57x57 ≤ 0x52 + x52 ≤ 0x52x52 ≤ 0x51 + x51 ≤ 0x51x51 ≤ 0x50 + x50 ≤ 0x50x50 ≤ 0x46 + x46 ≤ 0x46x46 ≤ 0x45 + x45 ≤ 0x45x45 ≤ 0x41 + x41 ≤ 0x41x41 ≤ 0x40 + x40 ≤ 0x40x40 ≤ 0x39 + x39 ≤ 0x39x39 ≤ 0x18 + x18 ≤ 0x18x18 ≤ 0arg4P + arg4P ≤ 0arg4Parg4P ≤ 0arg4 + arg4 ≤ 0arg4arg4 ≤ 0arg3P + arg3P ≤ 0arg3Parg3P ≤ 0arg3 + arg3 ≤ 0arg3arg3 ≤ 0arg2P + arg2P ≤ 0arg2Parg2P ≤ 0arg2 + arg2 ≤ 0arg2arg2 ≤ 0arg1P + arg1P ≤ 0arg1Parg1P ≤ 0arg1 + arg1 ≤ 0arg1arg1 ≤ 0

The following skip-transition is inserted and corresponding redirections w.r.t. the old location are performed.

6 33 6_var_snapshot: x58 + x58 ≤ 0x58x58 ≤ 0x57 + x57 ≤ 0x57x57 ≤ 0x52 + x52 ≤ 0x52x52 ≤ 0x51 + x51 ≤ 0x51x51 ≤ 0x50 + x50 ≤ 0x50x50 ≤ 0x46 + x46 ≤ 0x46x46 ≤ 0x45 + x45 ≤ 0x45x45 ≤ 0x41 + x41 ≤ 0x41x41 ≤ 0x40 + x40 ≤ 0x40x40 ≤ 0x39 + x39 ≤ 0x39x39 ≤ 0x18 + x18 ≤ 0x18x18 ≤ 0arg4P + arg4P ≤ 0arg4Parg4P ≤ 0arg4 + arg4 ≤ 0arg4arg4 ≤ 0arg3P + arg3P ≤ 0arg3Parg3P ≤ 0arg3 + arg3 ≤ 0arg3arg3 ≤ 0arg2P + arg2P ≤ 0arg2Parg2P ≤ 0arg2 + arg2 ≤ 0arg2arg2 ≤ 0arg1P + arg1P ≤ 0arg1Parg1P ≤ 0arg1 + arg1 ≤ 0arg1arg1 ≤ 0

### 12 SCC Decomposition

We consider subproblems for each of the 2 SCC(s) of the program graph.

### 12.1 SCC Subproblem 1/2

Here we consider the SCC { 5, 6, 5_var_snapshot, 5*, 6_var_snapshot, 6* }.

### 12.1.1 Transition Removal

We remove transition 7 using the following ranking functions, which are bounded by 4.

 5: 2 − 4⋅arg2 + 4⋅arg3 6: −4⋅arg2 + 4⋅arg4 5_var_snapshot: 1 − 4⋅arg2 + 4⋅arg3 5*: 3 − 4⋅arg2 + 4⋅arg3 6_var_snapshot: −4⋅arg2 + 4⋅arg4 6*: −4⋅arg2 + 4⋅arg4

### 12.1.2 Transition Removal

We remove transitions 26, 28, 8 using the following ranking functions, which are bounded by −3.

 5: −2 6: 0 5_var_snapshot: − arg1P 5*: −1 6_var_snapshot: 0 6*: 0

### 12.1.3 Transition Removal

We remove transition 9 using the following ranking functions, which are bounded by 2.

 5: 0 6: 1 − 3⋅arg3 + 3⋅arg4 5_var_snapshot: 0 5*: 0 6_var_snapshot: −3⋅arg3 + 3⋅arg4 6*: 2 − 3⋅arg3 + 3⋅arg4

### 12.1.4 Transition Removal

We remove transitions 33, 35 using the following ranking functions, which are bounded by −1.

 5: 0 6: 0 5_var_snapshot: 0 5*: 0 6_var_snapshot: − arg1P 6*: x41

### 12.1.5 Splitting Cut-Point Transitions

We consider 2 subproblems corresponding to sets of cut-point transitions as follows.

### 12.1.5.1 Cut-Point Subproblem 1/2

Here we consider cut-point transition 25.

### 12.1.5.1.1 Splitting Cut-Point Transitions

There remain no cut-point transition to consider. Hence the cooperation termination is trivial.

### 12.1.5.2 Cut-Point Subproblem 2/2

Here we consider cut-point transition 32.

### 12.1.5.2.1 Splitting Cut-Point Transitions

There remain no cut-point transition to consider. Hence the cooperation termination is trivial.

### 12.2 SCC Subproblem 2/2

Here we consider the SCC { 2, 3, 2_var_snapshot, 2*, 3_var_snapshot, 3* }.

### 12.2.1 Transition Removal

We remove transition 2 using the following ranking functions, which are bounded by −14.

 2: 2 − 7⋅arg2 3: −7⋅arg2 2_var_snapshot: 1 − 7⋅arg2 2*: 3 − 7⋅arg2 3_var_snapshot: −7⋅arg2 3*: −7⋅arg2

### 12.2.2 Transition Removal

We remove transitions 12, 14, 3 using the following ranking functions, which are bounded by −1.

 2: 0 3: 2⋅arg1 2_var_snapshot: −1 2*: 3 3_var_snapshot: 2⋅arg1 3*: 2⋅arg1

### 12.2.3 Transition Removal

We remove transition 4 using the following ranking functions, which are bounded by −7.

 2: 0 3: 1 − 3⋅arg3 2_var_snapshot: 0 2*: 0 3_var_snapshot: −3⋅arg3 3*: 2 − 3⋅arg3

### 12.2.4 Transition Removal

We remove transitions 19, 21 using the following ranking functions, which are bounded by −2.

 2: 0 3: −1 2_var_snapshot: 0 2*: 0 3_var_snapshot: −2 3*: 0

### 12.2.5 Splitting Cut-Point Transitions

We consider 2 subproblems corresponding to sets of cut-point transitions as follows.

### 12.2.5.1 Cut-Point Subproblem 1/2

Here we consider cut-point transition 11.

### 12.2.5.1.1 Splitting Cut-Point Transitions

There remain no cut-point transition to consider. Hence the cooperation termination is trivial.

### 12.2.5.2 Cut-Point Subproblem 2/2

Here we consider cut-point transition 18.

### 12.2.5.2.1 Splitting Cut-Point Transitions

There remain no cut-point transition to consider. Hence the cooperation termination is trivial.

T2Cert

• version: 1.0