NO Initial ITS Start location: l8 0: l0 -> l1 : Pdo^0'=Pdo^post0, IoCreateDevice^0'=IoCreateDevice^post0, rho_1^0'=rho_1^post0, conditional^0'=conditional^post0, PPBunlockInits^0'=PPBunlockInits^post0, DName^0'=DName^post0, num^0'=num^post0, Pdolen^0'=Pdolen^post0, PPBlockInits^0'=PPBlockInits^post0, status^0'=status^post0, i^0'=i^post0, (-status^post0+status^0 == 0 /\ -conditional^post0+conditional^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post0 == 0 /\ DName^0-DName^post0 == 0 /\ -num^post0+num^0 == 0 /\ -1+conditional^0 <= 0 /\ -i^post0+i^0 == 0 /\ -Pdolen^post0+Pdolen^0 == 0 /\ -PPBlockInits^post0+PPBlockInits^0 == 0 /\ Pdo^0-Pdo^post0 == 0 /\ rho_1^0-rho_1^post0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post0 == 0), cost: 1 1: l0 -> l2 : Pdo^0'=Pdo^post1, IoCreateDevice^0'=IoCreateDevice^post1, rho_1^0'=rho_1^post1, conditional^0'=conditional^post1, PPBunlockInits^0'=PPBunlockInits^post1, DName^0'=DName^post1, num^0'=num^post1, Pdolen^0'=Pdolen^post1, PPBlockInits^0'=PPBlockInits^post1, status^0'=status^post1, i^0'=i^post1, (Pdo^0-Pdo^post1 == 0 /\ rho_1^0-rho_1^post1 == 0 /\ -PPBunlockInits^post1+PPBunlockInits^0 == 0 /\ -1+num^post1-num^0 == 0 /\ -PPBlockInits^post1+PPBlockInits^0 == 0 /\ 2-conditional^0 <= 0 /\ conditional^0-conditional^post1 == 0 /\ -DName^post1+DName^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post1 == 0 /\ Pdolen^0-Pdolen^post1 == 0 /\ -status^post1+status^0 == 0 /\ -i^post1+i^0 == 0), cost: 1 4: l1 -> l4 : Pdo^0'=Pdo^post4, IoCreateDevice^0'=IoCreateDevice^post4, rho_1^0'=rho_1^post4, conditional^0'=conditional^post4, PPBunlockInits^0'=PPBunlockInits^post4, DName^0'=DName^post4, num^0'=num^post4, Pdolen^0'=Pdolen^post4, PPBlockInits^0'=PPBlockInits^post4, status^0'=status^post4, i^0'=i^post4, (-status^post4+status^0 == 0 /\ -IoCreateDevice^post4+IoCreateDevice^0 == 0 /\ num^0-num^post4 == 0 /\ 1-rho_1^0 <= 0 /\ -i^post4+i^0 == 0 /\ 1-rho_1^0+rho_1^post4 == 0 /\ -PPBlockInits^post4+PPBlockInits^0 == 0 /\ Pdo^0-Pdo^post4 == 0 /\ conditional^0-conditional^post4 == 0 /\ PPBunlockInits^0-PPBunlockInits^post4 == 0 /\ Pdolen^0-Pdolen^post4 == 0 /\ -DName^post4+DName^0 == 0), cost: 1 6: l1 -> l5 : Pdo^0'=Pdo^post6, IoCreateDevice^0'=IoCreateDevice^post6, rho_1^0'=rho_1^post6, conditional^0'=conditional^post6, PPBunlockInits^0'=PPBunlockInits^post6, DName^0'=DName^post6, num^0'=num^post6, Pdolen^0'=Pdolen^post6, PPBlockInits^0'=PPBlockInits^post6, status^0'=status^post6, i^0'=i^post6, (-DName^post6+DName^0 == 0 /\ rho_1^0 <= 0 /\ Pdo^0-Pdo^post6 == 0 /\ conditional^0-conditional^post6 == 0 /\ -status^post6+status^0 == 0 /\ -1+PPBunlockInits^post6 == 0 /\ -i^post6+i^0 == 0 /\ num^post6 == 0 /\ IoCreateDevice^0-IoCreateDevice^post6 == 0 /\ Pdolen^0-Pdolen^post6 == 0 /\ -PPBlockInits^post6+PPBlockInits^0 == 0 /\ rho_1^0-rho_1^post6 == 0), cost: 1 9: l2 -> l1 : Pdo^0'=Pdo^post9, IoCreateDevice^0'=IoCreateDevice^post9, rho_1^0'=rho_1^post9, conditional^0'=conditional^post9, PPBunlockInits^0'=PPBunlockInits^post9, DName^0'=DName^post9, num^0'=num^post9, Pdolen^0'=Pdolen^post9, PPBlockInits^0'=PPBlockInits^post9, status^0'=status^post9, i^0'=i^post9, (-PPBunlockInits^post9+PPBunlockInits^0 == 0 /\ conditional^0-conditional^post9 == 0 /\ -i^post9+i^0 == 0 /\ status^post9 == 0 /\ -IoCreateDevice^post9+IoCreateDevice^0 == 0 /\ num^0-num^post9 == 0 /\ Pdo^0-Pdo^post9 == 0 /\ -PPBlockInits^post9+PPBlockInits^0 == 0 /\ rho_1^0-rho_1^post9 == 0 /\ Pdolen^0-i^0 <= 0 /\ Pdolen^0-Pdolen^post9 == 0 /\ -DName^post9+DName^0 == 0), cost: 1 10: l2 -> l6 : Pdo^0'=Pdo^post10, IoCreateDevice^0'=IoCreateDevice^post10, rho_1^0'=rho_1^post10, conditional^0'=conditional^post10, PPBunlockInits^0'=PPBunlockInits^post10, DName^0'=DName^post10, num^0'=num^post10, Pdolen^0'=Pdolen^post10, PPBlockInits^0'=PPBlockInits^post10, status^0'=status^post10, i^0'=i^post10, (0 == 0 /\ Pdo^0-Pdo^post10 == 0 /\ num^0-num^post10 == 0 /\ -rho_1^post10+rho_1^0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post10 == 0 /\ -Pdolen^post10+Pdolen^0 == 0 /\ -conditional^post10+conditional^0 == 0 /\ 1-Pdolen^0+i^0 <= 0 /\ IoCreateDevice^0-IoCreateDevice^post10 == 0 /\ status^post10 == 0 /\ -i^post10+i^0 == 0 /\ -1+PPBlockInits^post10 == 0), cost: 1 2: l3 -> l2 : Pdo^0'=Pdo^post2, IoCreateDevice^0'=IoCreateDevice^post2, rho_1^0'=rho_1^post2, conditional^0'=conditional^post2, PPBunlockInits^0'=PPBunlockInits^post2, DName^0'=DName^post2, num^0'=num^post2, Pdolen^0'=Pdolen^post2, PPBlockInits^0'=PPBlockInits^post2, status^0'=status^post2, i^0'=i^post2, (PPBunlockInits^0-PPBunlockInits^post2 == 0 /\ -DName^post2+DName^0 == 0 /\ -rho_1^post2+rho_1^0 == 0 /\ num^0-num^post2 == 0 /\ -1+conditional^0 <= 0 /\ IoCreateDevice^post2 == 0 /\ -Pdolen^post2+Pdolen^0 == 0 /\ -1+status^post2 == 0 /\ -1+i^post2-i^0 == 0 /\ Pdo^0-Pdo^post2 == 0 /\ -PPBlockInits^post2+PPBlockInits^0 == 0 /\ conditional^0-conditional^post2 == 0), cost: 1 3: l3 -> l0 : Pdo^0'=Pdo^post3, IoCreateDevice^0'=IoCreateDevice^post3, rho_1^0'=rho_1^post3, conditional^0'=conditional^post3, PPBunlockInits^0'=PPBunlockInits^post3, DName^0'=DName^post3, num^0'=num^post3, Pdolen^0'=Pdolen^post3, PPBlockInits^0'=PPBlockInits^post3, status^0'=status^post3, i^0'=i^post3, (0 == 0 /\ -status^post3+status^0 == 0 /\ Pdo^post3 == 0 /\ -PPBunlockInits^post3+PPBunlockInits^0 == 0 /\ 2-conditional^0 <= 0 /\ -num^post3+num^0 == 0 /\ PPBlockInits^0-PPBlockInits^post3 == 0 /\ rho_1^0-rho_1^post3 == 0 /\ Pdolen^0-Pdolen^post3 == 0 /\ -i^post3+i^0 == 0 /\ IoCreateDevice^post3 == 0 /\ -DName^post3+DName^0 == 0), cost: 1 5: l4 -> l1 : Pdo^0'=Pdo^post5, IoCreateDevice^0'=IoCreateDevice^post5, rho_1^0'=rho_1^post5, conditional^0'=conditional^post5, PPBunlockInits^0'=PPBunlockInits^post5, DName^0'=DName^post5, num^0'=num^post5, Pdolen^0'=Pdolen^post5, PPBlockInits^0'=PPBlockInits^post5, status^0'=status^post5, i^0'=i^post5, (-Pdolen^post5+Pdolen^0 == 0 /\ -PPBlockInits^post5+PPBlockInits^0 == 0 /\ -status^post5+status^0 == 0 /\ -i^post5+i^0 == 0 /\ -conditional^post5+conditional^0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post5 == 0 /\ -num^post5+num^0 == 0 /\ Pdo^0-Pdo^post5 == 0 /\ IoCreateDevice^0-IoCreateDevice^post5 == 0 /\ DName^0-DName^post5 == 0 /\ rho_1^0-rho_1^post5 == 0), cost: 1 7: l6 -> l1 : Pdo^0'=Pdo^post7, IoCreateDevice^0'=IoCreateDevice^post7, rho_1^0'=rho_1^post7, conditional^0'=conditional^post7, PPBunlockInits^0'=PPBunlockInits^post7, DName^0'=DName^post7, num^0'=num^post7, Pdolen^0'=Pdolen^post7, PPBlockInits^0'=PPBlockInits^post7, status^0'=status^post7, i^0'=i^post7, (-PPBlockInits^post7+PPBlockInits^0 == 0 /\ -conditional^post7+conditional^0 == 0 /\ -i^post7+i^0 == 0 /\ -DName^post7+DName^0 == 0 /\ num^0-num^post7 == 0 /\ PPBunlockInits^0-PPBunlockInits^post7 == 0 /\ IoCreateDevice^0-IoCreateDevice^post7 == 0 /\ DName^0 <= 0 /\ Pdo^0-Pdo^post7 == 0 /\ rho_1^0-rho_1^post7 == 0 /\ -status^post7+status^0 == 0 /\ -Pdolen^post7+Pdolen^0 == 0), cost: 1 8: l6 -> l3 : Pdo^0'=Pdo^post8, IoCreateDevice^0'=IoCreateDevice^post8, rho_1^0'=rho_1^post8, conditional^0'=conditional^post8, PPBunlockInits^0'=PPBunlockInits^post8, DName^0'=DName^post8, num^0'=num^post8, Pdolen^0'=Pdolen^post8, PPBlockInits^0'=PPBlockInits^post8, status^0'=status^post8, i^0'=i^post8, (0 == 0 /\ PPBlockInits^0-PPBlockInits^post8 == 0 /\ -status^post8+status^0 == 0 /\ DName^0-DName^post8 == 0 /\ -num^post8+num^0 == 0 /\ -Pdolen^post8+Pdolen^0 == 0 /\ rho_1^0-rho_1^post8 == 0 /\ PPBunlockInits^0-PPBunlockInits^post8 == 0 /\ -i^post8+i^0 == 0 /\ Pdo^0-Pdo^post8 == 0 /\ 1-DName^0 <= 0 /\ -1+IoCreateDevice^post8 == 0), cost: 1 11: l7 -> l2 : Pdo^0'=Pdo^post11, IoCreateDevice^0'=IoCreateDevice^post11, rho_1^0'=rho_1^post11, conditional^0'=conditional^post11, PPBunlockInits^0'=PPBunlockInits^post11, DName^0'=DName^post11, num^0'=num^post11, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=PPBlockInits^post11, status^0'=status^post11, i^0'=i^post11, (0 == 0 /\ Pdo^0-Pdo^post11 == 0 /\ PPBunlockInits^post11 == 0 /\ rho_1^0-rho_1^post11 == 0 /\ status^post11 == 0 /\ DName^0-DName^post11 == 0 /\ -num^post11+num^0 == 0 /\ IoCreateDevice^post11 == 0 /\ conditional^0-conditional^post11 == 0 /\ -1+PPBlockInits^post11 == 0), cost: 1 12: l8 -> l7 : Pdo^0'=Pdo^post12, IoCreateDevice^0'=IoCreateDevice^post12, rho_1^0'=rho_1^post12, conditional^0'=conditional^post12, PPBunlockInits^0'=PPBunlockInits^post12, DName^0'=DName^post12, num^0'=num^post12, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=PPBlockInits^post12, status^0'=status^post12, i^0'=i^post12, (PPBunlockInits^0-PPBunlockInits^post12 == 0 /\ -DName^post12+DName^0 == 0 /\ num^0-num^post12 == 0 /\ -Pdolen^post12+Pdolen^0 == 0 /\ -status^post12+status^0 == 0 /\ -i^post12+i^0 == 0 /\ -rho_1^post12+rho_1^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post12 == 0 /\ Pdo^0-Pdo^post12 == 0 /\ conditional^0-conditional^post12 == 0 /\ -PPBlockInits^post12+PPBlockInits^0 == 0), cost: 1 Removed unreachable rules and leafs Start location: l8 0: l0 -> l1 : Pdo^0'=Pdo^post0, IoCreateDevice^0'=IoCreateDevice^post0, rho_1^0'=rho_1^post0, conditional^0'=conditional^post0, PPBunlockInits^0'=PPBunlockInits^post0, DName^0'=DName^post0, num^0'=num^post0, Pdolen^0'=Pdolen^post0, PPBlockInits^0'=PPBlockInits^post0, status^0'=status^post0, i^0'=i^post0, (-status^post0+status^0 == 0 /\ -conditional^post0+conditional^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post0 == 0 /\ DName^0-DName^post0 == 0 /\ -num^post0+num^0 == 0 /\ -1+conditional^0 <= 0 /\ -i^post0+i^0 == 0 /\ -Pdolen^post0+Pdolen^0 == 0 /\ -PPBlockInits^post0+PPBlockInits^0 == 0 /\ Pdo^0-Pdo^post0 == 0 /\ rho_1^0-rho_1^post0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post0 == 0), cost: 1 1: l0 -> l2 : Pdo^0'=Pdo^post1, IoCreateDevice^0'=IoCreateDevice^post1, rho_1^0'=rho_1^post1, conditional^0'=conditional^post1, PPBunlockInits^0'=PPBunlockInits^post1, DName^0'=DName^post1, num^0'=num^post1, Pdolen^0'=Pdolen^post1, PPBlockInits^0'=PPBlockInits^post1, status^0'=status^post1, i^0'=i^post1, (Pdo^0-Pdo^post1 == 0 /\ rho_1^0-rho_1^post1 == 0 /\ -PPBunlockInits^post1+PPBunlockInits^0 == 0 /\ -1+num^post1-num^0 == 0 /\ -PPBlockInits^post1+PPBlockInits^0 == 0 /\ 2-conditional^0 <= 0 /\ conditional^0-conditional^post1 == 0 /\ -DName^post1+DName^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post1 == 0 /\ Pdolen^0-Pdolen^post1 == 0 /\ -status^post1+status^0 == 0 /\ -i^post1+i^0 == 0), cost: 1 4: l1 -> l4 : Pdo^0'=Pdo^post4, IoCreateDevice^0'=IoCreateDevice^post4, rho_1^0'=rho_1^post4, conditional^0'=conditional^post4, PPBunlockInits^0'=PPBunlockInits^post4, DName^0'=DName^post4, num^0'=num^post4, Pdolen^0'=Pdolen^post4, PPBlockInits^0'=PPBlockInits^post4, status^0'=status^post4, i^0'=i^post4, (-status^post4+status^0 == 0 /\ -IoCreateDevice^post4+IoCreateDevice^0 == 0 /\ num^0-num^post4 == 0 /\ 1-rho_1^0 <= 0 /\ -i^post4+i^0 == 0 /\ 1-rho_1^0+rho_1^post4 == 0 /\ -PPBlockInits^post4+PPBlockInits^0 == 0 /\ Pdo^0-Pdo^post4 == 0 /\ conditional^0-conditional^post4 == 0 /\ PPBunlockInits^0-PPBunlockInits^post4 == 0 /\ Pdolen^0-Pdolen^post4 == 0 /\ -DName^post4+DName^0 == 0), cost: 1 9: l2 -> l1 : Pdo^0'=Pdo^post9, IoCreateDevice^0'=IoCreateDevice^post9, rho_1^0'=rho_1^post9, conditional^0'=conditional^post9, PPBunlockInits^0'=PPBunlockInits^post9, DName^0'=DName^post9, num^0'=num^post9, Pdolen^0'=Pdolen^post9, PPBlockInits^0'=PPBlockInits^post9, status^0'=status^post9, i^0'=i^post9, (-PPBunlockInits^post9+PPBunlockInits^0 == 0 /\ conditional^0-conditional^post9 == 0 /\ -i^post9+i^0 == 0 /\ status^post9 == 0 /\ -IoCreateDevice^post9+IoCreateDevice^0 == 0 /\ num^0-num^post9 == 0 /\ Pdo^0-Pdo^post9 == 0 /\ -PPBlockInits^post9+PPBlockInits^0 == 0 /\ rho_1^0-rho_1^post9 == 0 /\ Pdolen^0-i^0 <= 0 /\ Pdolen^0-Pdolen^post9 == 0 /\ -DName^post9+DName^0 == 0), cost: 1 10: l2 -> l6 : Pdo^0'=Pdo^post10, IoCreateDevice^0'=IoCreateDevice^post10, rho_1^0'=rho_1^post10, conditional^0'=conditional^post10, PPBunlockInits^0'=PPBunlockInits^post10, DName^0'=DName^post10, num^0'=num^post10, Pdolen^0'=Pdolen^post10, PPBlockInits^0'=PPBlockInits^post10, status^0'=status^post10, i^0'=i^post10, (0 == 0 /\ Pdo^0-Pdo^post10 == 0 /\ num^0-num^post10 == 0 /\ -rho_1^post10+rho_1^0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post10 == 0 /\ -Pdolen^post10+Pdolen^0 == 0 /\ -conditional^post10+conditional^0 == 0 /\ 1-Pdolen^0+i^0 <= 0 /\ IoCreateDevice^0-IoCreateDevice^post10 == 0 /\ status^post10 == 0 /\ -i^post10+i^0 == 0 /\ -1+PPBlockInits^post10 == 0), cost: 1 2: l3 -> l2 : Pdo^0'=Pdo^post2, IoCreateDevice^0'=IoCreateDevice^post2, rho_1^0'=rho_1^post2, conditional^0'=conditional^post2, PPBunlockInits^0'=PPBunlockInits^post2, DName^0'=DName^post2, num^0'=num^post2, Pdolen^0'=Pdolen^post2, PPBlockInits^0'=PPBlockInits^post2, status^0'=status^post2, i^0'=i^post2, (PPBunlockInits^0-PPBunlockInits^post2 == 0 /\ -DName^post2+DName^0 == 0 /\ -rho_1^post2+rho_1^0 == 0 /\ num^0-num^post2 == 0 /\ -1+conditional^0 <= 0 /\ IoCreateDevice^post2 == 0 /\ -Pdolen^post2+Pdolen^0 == 0 /\ -1+status^post2 == 0 /\ -1+i^post2-i^0 == 0 /\ Pdo^0-Pdo^post2 == 0 /\ -PPBlockInits^post2+PPBlockInits^0 == 0 /\ conditional^0-conditional^post2 == 0), cost: 1 3: l3 -> l0 : Pdo^0'=Pdo^post3, IoCreateDevice^0'=IoCreateDevice^post3, rho_1^0'=rho_1^post3, conditional^0'=conditional^post3, PPBunlockInits^0'=PPBunlockInits^post3, DName^0'=DName^post3, num^0'=num^post3, Pdolen^0'=Pdolen^post3, PPBlockInits^0'=PPBlockInits^post3, status^0'=status^post3, i^0'=i^post3, (0 == 0 /\ -status^post3+status^0 == 0 /\ Pdo^post3 == 0 /\ -PPBunlockInits^post3+PPBunlockInits^0 == 0 /\ 2-conditional^0 <= 0 /\ -num^post3+num^0 == 0 /\ PPBlockInits^0-PPBlockInits^post3 == 0 /\ rho_1^0-rho_1^post3 == 0 /\ Pdolen^0-Pdolen^post3 == 0 /\ -i^post3+i^0 == 0 /\ IoCreateDevice^post3 == 0 /\ -DName^post3+DName^0 == 0), cost: 1 5: l4 -> l1 : Pdo^0'=Pdo^post5, IoCreateDevice^0'=IoCreateDevice^post5, rho_1^0'=rho_1^post5, conditional^0'=conditional^post5, PPBunlockInits^0'=PPBunlockInits^post5, DName^0'=DName^post5, num^0'=num^post5, Pdolen^0'=Pdolen^post5, PPBlockInits^0'=PPBlockInits^post5, status^0'=status^post5, i^0'=i^post5, (-Pdolen^post5+Pdolen^0 == 0 /\ -PPBlockInits^post5+PPBlockInits^0 == 0 /\ -status^post5+status^0 == 0 /\ -i^post5+i^0 == 0 /\ -conditional^post5+conditional^0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post5 == 0 /\ -num^post5+num^0 == 0 /\ Pdo^0-Pdo^post5 == 0 /\ IoCreateDevice^0-IoCreateDevice^post5 == 0 /\ DName^0-DName^post5 == 0 /\ rho_1^0-rho_1^post5 == 0), cost: 1 7: l6 -> l1 : Pdo^0'=Pdo^post7, IoCreateDevice^0'=IoCreateDevice^post7, rho_1^0'=rho_1^post7, conditional^0'=conditional^post7, PPBunlockInits^0'=PPBunlockInits^post7, DName^0'=DName^post7, num^0'=num^post7, Pdolen^0'=Pdolen^post7, PPBlockInits^0'=PPBlockInits^post7, status^0'=status^post7, i^0'=i^post7, (-PPBlockInits^post7+PPBlockInits^0 == 0 /\ -conditional^post7+conditional^0 == 0 /\ -i^post7+i^0 == 0 /\ -DName^post7+DName^0 == 0 /\ num^0-num^post7 == 0 /\ PPBunlockInits^0-PPBunlockInits^post7 == 0 /\ IoCreateDevice^0-IoCreateDevice^post7 == 0 /\ DName^0 <= 0 /\ Pdo^0-Pdo^post7 == 0 /\ rho_1^0-rho_1^post7 == 0 /\ -status^post7+status^0 == 0 /\ -Pdolen^post7+Pdolen^0 == 0), cost: 1 8: l6 -> l3 : Pdo^0'=Pdo^post8, IoCreateDevice^0'=IoCreateDevice^post8, rho_1^0'=rho_1^post8, conditional^0'=conditional^post8, PPBunlockInits^0'=PPBunlockInits^post8, DName^0'=DName^post8, num^0'=num^post8, Pdolen^0'=Pdolen^post8, PPBlockInits^0'=PPBlockInits^post8, status^0'=status^post8, i^0'=i^post8, (0 == 0 /\ PPBlockInits^0-PPBlockInits^post8 == 0 /\ -status^post8+status^0 == 0 /\ DName^0-DName^post8 == 0 /\ -num^post8+num^0 == 0 /\ -Pdolen^post8+Pdolen^0 == 0 /\ rho_1^0-rho_1^post8 == 0 /\ PPBunlockInits^0-PPBunlockInits^post8 == 0 /\ -i^post8+i^0 == 0 /\ Pdo^0-Pdo^post8 == 0 /\ 1-DName^0 <= 0 /\ -1+IoCreateDevice^post8 == 0), cost: 1 11: l7 -> l2 : Pdo^0'=Pdo^post11, IoCreateDevice^0'=IoCreateDevice^post11, rho_1^0'=rho_1^post11, conditional^0'=conditional^post11, PPBunlockInits^0'=PPBunlockInits^post11, DName^0'=DName^post11, num^0'=num^post11, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=PPBlockInits^post11, status^0'=status^post11, i^0'=i^post11, (0 == 0 /\ Pdo^0-Pdo^post11 == 0 /\ PPBunlockInits^post11 == 0 /\ rho_1^0-rho_1^post11 == 0 /\ status^post11 == 0 /\ DName^0-DName^post11 == 0 /\ -num^post11+num^0 == 0 /\ IoCreateDevice^post11 == 0 /\ conditional^0-conditional^post11 == 0 /\ -1+PPBlockInits^post11 == 0), cost: 1 12: l8 -> l7 : Pdo^0'=Pdo^post12, IoCreateDevice^0'=IoCreateDevice^post12, rho_1^0'=rho_1^post12, conditional^0'=conditional^post12, PPBunlockInits^0'=PPBunlockInits^post12, DName^0'=DName^post12, num^0'=num^post12, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=PPBlockInits^post12, status^0'=status^post12, i^0'=i^post12, (PPBunlockInits^0-PPBunlockInits^post12 == 0 /\ -DName^post12+DName^0 == 0 /\ num^0-num^post12 == 0 /\ -Pdolen^post12+Pdolen^0 == 0 /\ -status^post12+status^0 == 0 /\ -i^post12+i^0 == 0 /\ -rho_1^post12+rho_1^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post12 == 0 /\ Pdo^0-Pdo^post12 == 0 /\ conditional^0-conditional^post12 == 0 /\ -PPBlockInits^post12+PPBlockInits^0 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l1 : Pdo^0'=Pdo^post0, IoCreateDevice^0'=IoCreateDevice^post0, rho_1^0'=rho_1^post0, conditional^0'=conditional^post0, PPBunlockInits^0'=PPBunlockInits^post0, DName^0'=DName^post0, num^0'=num^post0, Pdolen^0'=Pdolen^post0, PPBlockInits^0'=PPBlockInits^post0, status^0'=status^post0, i^0'=i^post0, (-status^post0+status^0 == 0 /\ -conditional^post0+conditional^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post0 == 0 /\ DName^0-DName^post0 == 0 /\ -num^post0+num^0 == 0 /\ -1+conditional^0 <= 0 /\ -i^post0+i^0 == 0 /\ -Pdolen^post0+Pdolen^0 == 0 /\ -PPBlockInits^post0+PPBlockInits^0 == 0 /\ Pdo^0-Pdo^post0 == 0 /\ rho_1^0-rho_1^post0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post0 == 0), cost: 1 New rule: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 Applied preprocessing Original rule: l0 -> l2 : Pdo^0'=Pdo^post1, IoCreateDevice^0'=IoCreateDevice^post1, rho_1^0'=rho_1^post1, conditional^0'=conditional^post1, PPBunlockInits^0'=PPBunlockInits^post1, DName^0'=DName^post1, num^0'=num^post1, Pdolen^0'=Pdolen^post1, PPBlockInits^0'=PPBlockInits^post1, status^0'=status^post1, i^0'=i^post1, (Pdo^0-Pdo^post1 == 0 /\ rho_1^0-rho_1^post1 == 0 /\ -PPBunlockInits^post1+PPBunlockInits^0 == 0 /\ -1+num^post1-num^0 == 0 /\ -PPBlockInits^post1+PPBlockInits^0 == 0 /\ 2-conditional^0 <= 0 /\ conditional^0-conditional^post1 == 0 /\ -DName^post1+DName^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post1 == 0 /\ Pdolen^0-Pdolen^post1 == 0 /\ -status^post1+status^0 == 0 /\ -i^post1+i^0 == 0), cost: 1 New rule: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 Applied preprocessing Original rule: l3 -> l2 : Pdo^0'=Pdo^post2, IoCreateDevice^0'=IoCreateDevice^post2, rho_1^0'=rho_1^post2, conditional^0'=conditional^post2, PPBunlockInits^0'=PPBunlockInits^post2, DName^0'=DName^post2, num^0'=num^post2, Pdolen^0'=Pdolen^post2, PPBlockInits^0'=PPBlockInits^post2, status^0'=status^post2, i^0'=i^post2, (PPBunlockInits^0-PPBunlockInits^post2 == 0 /\ -DName^post2+DName^0 == 0 /\ -rho_1^post2+rho_1^0 == 0 /\ num^0-num^post2 == 0 /\ -1+conditional^0 <= 0 /\ IoCreateDevice^post2 == 0 /\ -Pdolen^post2+Pdolen^0 == 0 /\ -1+status^post2 == 0 /\ -1+i^post2-i^0 == 0 /\ Pdo^0-Pdo^post2 == 0 /\ -PPBlockInits^post2+PPBlockInits^0 == 0 /\ conditional^0-conditional^post2 == 0), cost: 1 New rule: l3 -> l2 : IoCreateDevice^0'=0, status^0'=1, i^0'=1+i^0, -1+conditional^0 <= 0, cost: 1 Applied preprocessing Original rule: l3 -> l0 : Pdo^0'=Pdo^post3, IoCreateDevice^0'=IoCreateDevice^post3, rho_1^0'=rho_1^post3, conditional^0'=conditional^post3, PPBunlockInits^0'=PPBunlockInits^post3, DName^0'=DName^post3, num^0'=num^post3, Pdolen^0'=Pdolen^post3, PPBlockInits^0'=PPBlockInits^post3, status^0'=status^post3, i^0'=i^post3, (0 == 0 /\ -status^post3+status^0 == 0 /\ Pdo^post3 == 0 /\ -PPBunlockInits^post3+PPBunlockInits^0 == 0 /\ 2-conditional^0 <= 0 /\ -num^post3+num^0 == 0 /\ PPBlockInits^0-PPBlockInits^post3 == 0 /\ rho_1^0-rho_1^post3 == 0 /\ Pdolen^0-Pdolen^post3 == 0 /\ -i^post3+i^0 == 0 /\ IoCreateDevice^post3 == 0 /\ -DName^post3+DName^0 == 0), cost: 1 New rule: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 Applied preprocessing Original rule: l1 -> l4 : Pdo^0'=Pdo^post4, IoCreateDevice^0'=IoCreateDevice^post4, rho_1^0'=rho_1^post4, conditional^0'=conditional^post4, PPBunlockInits^0'=PPBunlockInits^post4, DName^0'=DName^post4, num^0'=num^post4, Pdolen^0'=Pdolen^post4, PPBlockInits^0'=PPBlockInits^post4, status^0'=status^post4, i^0'=i^post4, (-status^post4+status^0 == 0 /\ -IoCreateDevice^post4+IoCreateDevice^0 == 0 /\ num^0-num^post4 == 0 /\ 1-rho_1^0 <= 0 /\ -i^post4+i^0 == 0 /\ 1-rho_1^0+rho_1^post4 == 0 /\ -PPBlockInits^post4+PPBlockInits^0 == 0 /\ Pdo^0-Pdo^post4 == 0 /\ conditional^0-conditional^post4 == 0 /\ PPBunlockInits^0-PPBunlockInits^post4 == 0 /\ Pdolen^0-Pdolen^post4 == 0 /\ -DName^post4+DName^0 == 0), cost: 1 New rule: l1 -> l4 : rho_1^0'=-1+rho_1^0, -1+rho_1^0 >= 0, cost: 1 Applied preprocessing Original rule: l4 -> l1 : Pdo^0'=Pdo^post5, IoCreateDevice^0'=IoCreateDevice^post5, rho_1^0'=rho_1^post5, conditional^0'=conditional^post5, PPBunlockInits^0'=PPBunlockInits^post5, DName^0'=DName^post5, num^0'=num^post5, Pdolen^0'=Pdolen^post5, PPBlockInits^0'=PPBlockInits^post5, status^0'=status^post5, i^0'=i^post5, (-Pdolen^post5+Pdolen^0 == 0 /\ -PPBlockInits^post5+PPBlockInits^0 == 0 /\ -status^post5+status^0 == 0 /\ -i^post5+i^0 == 0 /\ -conditional^post5+conditional^0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post5 == 0 /\ -num^post5+num^0 == 0 /\ Pdo^0-Pdo^post5 == 0 /\ IoCreateDevice^0-IoCreateDevice^post5 == 0 /\ DName^0-DName^post5 == 0 /\ rho_1^0-rho_1^post5 == 0), cost: 1 New rule: l4 -> l1 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l1 : Pdo^0'=Pdo^post7, IoCreateDevice^0'=IoCreateDevice^post7, rho_1^0'=rho_1^post7, conditional^0'=conditional^post7, PPBunlockInits^0'=PPBunlockInits^post7, DName^0'=DName^post7, num^0'=num^post7, Pdolen^0'=Pdolen^post7, PPBlockInits^0'=PPBlockInits^post7, status^0'=status^post7, i^0'=i^post7, (-PPBlockInits^post7+PPBlockInits^0 == 0 /\ -conditional^post7+conditional^0 == 0 /\ -i^post7+i^0 == 0 /\ -DName^post7+DName^0 == 0 /\ num^0-num^post7 == 0 /\ PPBunlockInits^0-PPBunlockInits^post7 == 0 /\ IoCreateDevice^0-IoCreateDevice^post7 == 0 /\ DName^0 <= 0 /\ Pdo^0-Pdo^post7 == 0 /\ rho_1^0-rho_1^post7 == 0 /\ -status^post7+status^0 == 0 /\ -Pdolen^post7+Pdolen^0 == 0), cost: 1 New rule: l6 -> l1 : DName^0 <= 0, cost: 1 Applied preprocessing Original rule: l6 -> l3 : Pdo^0'=Pdo^post8, IoCreateDevice^0'=IoCreateDevice^post8, rho_1^0'=rho_1^post8, conditional^0'=conditional^post8, PPBunlockInits^0'=PPBunlockInits^post8, DName^0'=DName^post8, num^0'=num^post8, Pdolen^0'=Pdolen^post8, PPBlockInits^0'=PPBlockInits^post8, status^0'=status^post8, i^0'=i^post8, (0 == 0 /\ PPBlockInits^0-PPBlockInits^post8 == 0 /\ -status^post8+status^0 == 0 /\ DName^0-DName^post8 == 0 /\ -num^post8+num^0 == 0 /\ -Pdolen^post8+Pdolen^0 == 0 /\ rho_1^0-rho_1^post8 == 0 /\ PPBunlockInits^0-PPBunlockInits^post8 == 0 /\ -i^post8+i^0 == 0 /\ Pdo^0-Pdo^post8 == 0 /\ 1-DName^0 <= 0 /\ -1+IoCreateDevice^post8 == 0), cost: 1 New rule: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, -1+DName^0 >= 0, cost: 1 Applied preprocessing Original rule: l2 -> l1 : Pdo^0'=Pdo^post9, IoCreateDevice^0'=IoCreateDevice^post9, rho_1^0'=rho_1^post9, conditional^0'=conditional^post9, PPBunlockInits^0'=PPBunlockInits^post9, DName^0'=DName^post9, num^0'=num^post9, Pdolen^0'=Pdolen^post9, PPBlockInits^0'=PPBlockInits^post9, status^0'=status^post9, i^0'=i^post9, (-PPBunlockInits^post9+PPBunlockInits^0 == 0 /\ conditional^0-conditional^post9 == 0 /\ -i^post9+i^0 == 0 /\ status^post9 == 0 /\ -IoCreateDevice^post9+IoCreateDevice^0 == 0 /\ num^0-num^post9 == 0 /\ Pdo^0-Pdo^post9 == 0 /\ -PPBlockInits^post9+PPBlockInits^0 == 0 /\ rho_1^0-rho_1^post9 == 0 /\ Pdolen^0-i^0 <= 0 /\ Pdolen^0-Pdolen^post9 == 0 /\ -DName^post9+DName^0 == 0), cost: 1 New rule: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 Applied preprocessing Original rule: l2 -> l6 : Pdo^0'=Pdo^post10, IoCreateDevice^0'=IoCreateDevice^post10, rho_1^0'=rho_1^post10, conditional^0'=conditional^post10, PPBunlockInits^0'=PPBunlockInits^post10, DName^0'=DName^post10, num^0'=num^post10, Pdolen^0'=Pdolen^post10, PPBlockInits^0'=PPBlockInits^post10, status^0'=status^post10, i^0'=i^post10, (0 == 0 /\ Pdo^0-Pdo^post10 == 0 /\ num^0-num^post10 == 0 /\ -rho_1^post10+rho_1^0 == 0 /\ PPBunlockInits^0-PPBunlockInits^post10 == 0 /\ -Pdolen^post10+Pdolen^0 == 0 /\ -conditional^post10+conditional^0 == 0 /\ 1-Pdolen^0+i^0 <= 0 /\ IoCreateDevice^0-IoCreateDevice^post10 == 0 /\ status^post10 == 0 /\ -i^post10+i^0 == 0 /\ -1+PPBlockInits^post10 == 0), cost: 1 New rule: l2 -> l6 : DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 Applied preprocessing Original rule: l7 -> l2 : Pdo^0'=Pdo^post11, IoCreateDevice^0'=IoCreateDevice^post11, rho_1^0'=rho_1^post11, conditional^0'=conditional^post11, PPBunlockInits^0'=PPBunlockInits^post11, DName^0'=DName^post11, num^0'=num^post11, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=PPBlockInits^post11, status^0'=status^post11, i^0'=i^post11, (0 == 0 /\ Pdo^0-Pdo^post11 == 0 /\ PPBunlockInits^post11 == 0 /\ rho_1^0-rho_1^post11 == 0 /\ status^post11 == 0 /\ DName^0-DName^post11 == 0 /\ -num^post11+num^0 == 0 /\ IoCreateDevice^post11 == 0 /\ conditional^0-conditional^post11 == 0 /\ -1+PPBlockInits^post11 == 0), cost: 1 New rule: l7 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 1 Applied preprocessing Original rule: l8 -> l7 : Pdo^0'=Pdo^post12, IoCreateDevice^0'=IoCreateDevice^post12, rho_1^0'=rho_1^post12, conditional^0'=conditional^post12, PPBunlockInits^0'=PPBunlockInits^post12, DName^0'=DName^post12, num^0'=num^post12, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=PPBlockInits^post12, status^0'=status^post12, i^0'=i^post12, (PPBunlockInits^0-PPBunlockInits^post12 == 0 /\ -DName^post12+DName^0 == 0 /\ num^0-num^post12 == 0 /\ -Pdolen^post12+Pdolen^0 == 0 /\ -status^post12+status^0 == 0 /\ -i^post12+i^0 == 0 /\ -rho_1^post12+rho_1^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post12 == 0 /\ Pdo^0-Pdo^post12 == 0 /\ conditional^0-conditional^post12 == 0 /\ -PPBlockInits^post12+PPBlockInits^0 == 0), cost: 1 New rule: l8 -> l7 : TRUE, cost: 1 Simplified rules Start location: l8 13: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 14: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 17: l1 -> l4 : rho_1^0'=-1+rho_1^0, -1+rho_1^0 >= 0, cost: 1 21: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 22: l2 -> l6 : DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 15: l3 -> l2 : IoCreateDevice^0'=0, status^0'=1, i^0'=1+i^0, -1+conditional^0 <= 0, cost: 1 16: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 18: l4 -> l1 : TRUE, cost: 1 19: l6 -> l1 : DName^0 <= 0, cost: 1 20: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, -1+DName^0 >= 0, cost: 1 23: l7 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 1 24: l8 -> l7 : TRUE, cost: 1 Eliminating location l7 by chaining: Applied chaining First rule: l8 -> l7 : TRUE, cost: 1 Second rule: l7 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 1 New rule: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Applied deletion Removed the following rules: 23 24 Eliminating location l4 by chaining: Applied chaining First rule: l1 -> l4 : rho_1^0'=-1+rho_1^0, -1+rho_1^0 >= 0, cost: 1 Second rule: l4 -> l1 : TRUE, cost: 1 New rule: l1 -> l1 : rho_1^0'=-1+rho_1^0, -1+rho_1^0 >= 0, cost: 2 Applied deletion Removed the following rules: 17 18 Eliminated locations on linear paths Start location: l8 13: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 14: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 26: l1 -> l1 : rho_1^0'=-1+rho_1^0, -1+rho_1^0 >= 0, cost: 2 21: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 22: l2 -> l6 : DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 15: l3 -> l2 : IoCreateDevice^0'=0, status^0'=1, i^0'=1+i^0, -1+conditional^0 <= 0, cost: 1 16: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 19: l6 -> l1 : DName^0 <= 0, cost: 1 20: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, -1+DName^0 >= 0, cost: 1 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Applied acceleration Original rule: l1 -> l1 : rho_1^0'=-1+rho_1^0, -1+rho_1^0 >= 0, cost: 2 New rule: l1 -> l1 : rho_1^0'=rho_1^0-n, (n >= 0 /\ rho_1^0-n >= 0), cost: 2*n Sub-proof via acceration calculus written to file:///tmp/tmpnam_oAbmnh.txt Applied instantiation Original rule: l1 -> l1 : rho_1^0'=rho_1^0-n, (n >= 0 /\ rho_1^0-n >= 0), cost: 2*n New rule: l1 -> l1 : rho_1^0'=0, (0 >= 0 /\ rho_1^0 >= 0), cost: 2*rho_1^0 Applied simplification Original rule: l1 -> l1 : rho_1^0'=0, (0 >= 0 /\ rho_1^0 >= 0), cost: 2*rho_1^0 New rule: l1 -> l1 : rho_1^0'=0, rho_1^0 >= 0, cost: 2*rho_1^0 Applied deletion Removed the following rules: 26 Accelerated simple loops Start location: l8 13: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 14: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 28: l1 -> l1 : rho_1^0'=0, rho_1^0 >= 0, cost: 2*rho_1^0 21: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 22: l2 -> l6 : DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 15: l3 -> l2 : IoCreateDevice^0'=0, status^0'=1, i^0'=1+i^0, -1+conditional^0 <= 0, cost: 1 16: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 19: l6 -> l1 : DName^0 <= 0, cost: 1 20: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, -1+DName^0 >= 0, cost: 1 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Applied chaining First rule: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 Second rule: l1 -> l1 : rho_1^0'=0, rho_1^0 >= 0, cost: 2*rho_1^0 New rule: l0 -> l1 : rho_1^0'=0, (rho_1^0 >= 0 /\ -1+conditional^0 <= 0), cost: 1+2*rho_1^0 Applied chaining First rule: l6 -> l1 : DName^0 <= 0, cost: 1 Second rule: l1 -> l1 : rho_1^0'=0, rho_1^0 >= 0, cost: 2*rho_1^0 New rule: l6 -> l1 : rho_1^0'=0, (rho_1^0 >= 0 /\ DName^0 <= 0), cost: 1+2*rho_1^0 Applied chaining First rule: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 Second rule: l1 -> l1 : rho_1^0'=0, rho_1^0 >= 0, cost: 2*rho_1^0 New rule: l2 -> l1 : rho_1^0'=0, status^0'=0, (rho_1^0 >= 0 /\ Pdolen^0-i^0 <= 0), cost: 1+2*rho_1^0 Applied deletion Removed the following rules: 28 Chained accelerated rules with incoming rules Start location: l8 13: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 14: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 29: l0 -> l1 : rho_1^0'=0, (rho_1^0 >= 0 /\ -1+conditional^0 <= 0), cost: 1+2*rho_1^0 21: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 22: l2 -> l6 : DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 31: l2 -> l1 : rho_1^0'=0, status^0'=0, (rho_1^0 >= 0 /\ Pdolen^0-i^0 <= 0), cost: 1+2*rho_1^0 15: l3 -> l2 : IoCreateDevice^0'=0, status^0'=1, i^0'=1+i^0, -1+conditional^0 <= 0, cost: 1 16: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 19: l6 -> l1 : DName^0 <= 0, cost: 1 20: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, -1+DName^0 >= 0, cost: 1 30: l6 -> l1 : rho_1^0'=0, (rho_1^0 >= 0 /\ DName^0 <= 0), cost: 1+2*rho_1^0 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Removed unreachable locations and irrelevant leafs Start location: l8 14: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 22: l2 -> l6 : DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 15: l3 -> l2 : IoCreateDevice^0'=0, status^0'=1, i^0'=1+i^0, -1+conditional^0 <= 0, cost: 1 16: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 20: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, -1+DName^0 >= 0, cost: 1 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Eliminating location l6 by chaining: Applied chaining First rule: l2 -> l6 : DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 Second rule: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, -1+DName^0 >= 0, cost: 1 New rule: l2 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0), cost: 2 Applied deletion Removed the following rules: 20 22 Eliminating location l0 by chaining: Applied chaining First rule: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 Second rule: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 New rule: l3 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^0 >= 0 /\ -2+conditional^post3 >= 0), cost: 2 Applied deletion Removed the following rules: 14 16 Eliminated locations on linear paths Start location: l8 32: l2 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0), cost: 2 15: l3 -> l2 : IoCreateDevice^0'=0, status^0'=1, i^0'=1+i^0, -1+conditional^0 <= 0, cost: 1 33: l3 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^0 >= 0 /\ -2+conditional^post3 >= 0), cost: 2 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Eliminating location l3 by chaining: Applied chaining First rule: l2 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0), cost: 2 Second rule: l3 -> l2 : IoCreateDevice^0'=0, status^0'=1, i^0'=1+i^0, -1+conditional^0 <= 0, cost: 1 New rule: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=1+i^0, (-1+conditional^post8 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0), cost: 3 Applied chaining First rule: l2 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=0, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0), cost: 2 Second rule: l3 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^0 >= 0 /\ -2+conditional^post3 >= 0), cost: 2 New rule: l2 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, DName^0'=DName^post10, num^0'=1+num^0, PPBlockInits^0'=1, status^0'=0, (-2+conditional^post8 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: 4 Applied deletion Removed the following rules: 15 32 33 Eliminated locations on tree-shaped paths Start location: l8 34: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=1+i^0, (-1+conditional^post8 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0), cost: 3 35: l2 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, DName^0'=DName^post10, num^0'=1+num^0, PPBlockInits^0'=1, status^0'=0, (-2+conditional^post8 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: 4 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Applied simplification Original rule: l2 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, DName^0'=DName^post10, num^0'=1+num^0, PPBlockInits^0'=1, status^0'=0, (-2+conditional^post8 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: 4 New rule: l2 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, DName^0'=DName^post10, num^0'=1+num^0, PPBlockInits^0'=1, status^0'=0, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: 4 Simplified simple loops Start location: l8 34: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=1+i^0, (-1+conditional^post8 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0), cost: 3 36: l2 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, DName^0'=DName^post10, num^0'=1+num^0, PPBlockInits^0'=1, status^0'=0, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: 4 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Applied acceleration Original rule: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=1+i^0, (-1+conditional^post8 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0), cost: 3 New rule: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=n0+i^0, (-n0+Pdolen^0-i^0 >= 0 /\ -1+n0 >= 0 /\ 1-conditional^post8 >= 0 /\ -1+DName^post10 >= 0), cost: 3*n0 Sub-proof via acceration calculus written to file:///tmp/tmpnam_AipMcL.txt Applied instantiation Original rule: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=n0+i^0, (-n0+Pdolen^0-i^0 >= 0 /\ -1+n0 >= 0 /\ 1-conditional^post8 >= 0 /\ -1+DName^post10 >= 0), cost: 3*n0 New rule: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=Pdolen^0, (0 >= 0 /\ -1+Pdolen^0-i^0 >= 0 /\ 1-conditional^post8 >= 0 /\ -1+DName^post10 >= 0), cost: 3*Pdolen^0-3*i^0 Applied nonterm Original rule: l2 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, DName^0'=DName^post10, num^0'=1+num^0, PPBlockInits^0'=1, status^0'=0, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: 4 New rule: l2 -> [10] : (-1+Pdolen^0-i^0 >= 0 /\ -1+n1 >= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: NONTERM Sub-proof via acceration calculus written to file:///tmp/tmpnam_eKHLgi.txt Applied simplification Original rule: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=Pdolen^0, (0 >= 0 /\ -1+Pdolen^0-i^0 >= 0 /\ 1-conditional^post8 >= 0 /\ -1+DName^post10 >= 0), cost: 3*Pdolen^0-3*i^0 New rule: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=Pdolen^0, (-1+Pdolen^0-i^0 >= 0 /\ -1+conditional^post8 <= 0 /\ -1+DName^post10 >= 0), cost: 3*Pdolen^0-3*i^0 Applied deletion Removed the following rules: 34 36 Accelerated simple loops Start location: l8 38: l2 -> [10] : (-1+Pdolen^0-i^0 >= 0 /\ -1+n1 >= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: NONTERM 39: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=Pdolen^0, (-1+Pdolen^0-i^0 >= 0 /\ -1+conditional^post8 <= 0 /\ -1+DName^post10 >= 0), cost: 3*Pdolen^0-3*i^0 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Applied chaining First rule: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Second rule: l2 -> [10] : (-1+Pdolen^0-i^0 >= 0 /\ -1+n1 >= 0 /\ -1+DName^post10 >= 0 /\ -2+conditional^post3 >= 0), cost: NONTERM New rule: l8 -> [10] : 0 == 0, cost: NONTERM Applied chaining First rule: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 Second rule: l2 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, DName^0'=DName^post10, PPBlockInits^0'=1, status^0'=1, i^0'=Pdolen^0, (-1+Pdolen^0-i^0 >= 0 /\ -1+conditional^post8 <= 0 /\ -1+DName^post10 >= 0), cost: 3*Pdolen^0-3*i^0 New rule: l8 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, PPBunlockInits^0'=0, DName^0'=DName^post10, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=1, i^0'=Pdolen^post11, (-1+conditional^post8 <= 0 /\ -1+Pdolen^post11-i^post11 >= 0 /\ -1+DName^post10 >= 0), cost: 2+3*Pdolen^post11-3*i^post11 Applied deletion Removed the following rules: 38 39 Chained accelerated rules with incoming rules Start location: l8 25: l8 -> l2 : IoCreateDevice^0'=0, PPBunlockInits^0'=0, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=0, i^0'=i^post11, 0 == 0, cost: 2 40: l8 -> [10] : 0 == 0, cost: NONTERM 41: l8 -> l2 : IoCreateDevice^0'=0, conditional^0'=conditional^post8, PPBunlockInits^0'=0, DName^0'=DName^post10, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=1, status^0'=1, i^0'=Pdolen^post11, (-1+conditional^post8 <= 0 /\ -1+Pdolen^post11-i^post11 >= 0 /\ -1+DName^post10 >= 0), cost: 2+3*Pdolen^post11-3*i^post11 Removed unreachable locations and irrelevant leafs Start location: l8 40: l8 -> [10] : 0 == 0, cost: NONTERM Computing asymptotic complexity Proved nontermination of rule 40 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: 0 == 0