NO Initial ITS Start location: l8 0: l0 -> l1 : DName^0'=DName^post0, Pdolen^0'=Pdolen^post0, PPBlockInits^0'=PPBlockInits^post0, i^0'=i^post0, Pdo^0'=Pdo^post0, status^0'=status^post0, IoCreateDevice^0'=IoCreateDevice^post0, conditional^0'=conditional^post0, PPBunlockInits^0'=PPBunlockInits^post0, num^0'=num^post0, (-1+conditional^0 <= 0 /\ i^0-i^post0 == 0 /\ -PPBunlockInits^post0+PPBunlockInits^0 == 0 /\ -num^post0+num^0 == 0 /\ DName^0-DName^post0 == 0 /\ -Pdo^post0+Pdo^0 == 0 /\ -IoCreateDevice^post0+IoCreateDevice^0 == 0 /\ PPBlockInits^0-PPBlockInits^post0 == 0 /\ Pdolen^0-Pdolen^post0 == 0 /\ -status^post0+status^0 == 0 /\ conditional^0-conditional^post0 == 0), cost: 1 1: l0 -> l2 : DName^0'=DName^post1, Pdolen^0'=Pdolen^post1, PPBlockInits^0'=PPBlockInits^post1, i^0'=i^post1, Pdo^0'=Pdo^post1, status^0'=status^post1, IoCreateDevice^0'=IoCreateDevice^post1, conditional^0'=conditional^post1, PPBunlockInits^0'=PPBunlockInits^post1, num^0'=num^post1, (-IoCreateDevice^post1+IoCreateDevice^0 == 0 /\ i^0-i^post1 == 0 /\ Pdo^0-Pdo^post1 == 0 /\ 2-conditional^0 <= 0 /\ -status^post1+status^0 == 0 /\ DName^0-DName^post1 == 0 /\ -PPBunlockInits^post1+PPBunlockInits^0 == 0 /\ -1+num^post1-num^0 == 0 /\ PPBlockInits^0-PPBlockInits^post1 == 0 /\ conditional^0-conditional^post1 == 0 /\ Pdolen^0-Pdolen^post1 == 0), cost: 1 4: l1 -> l5 : DName^0'=DName^post4, Pdolen^0'=Pdolen^post4, PPBlockInits^0'=PPBlockInits^post4, i^0'=i^post4, Pdo^0'=Pdo^post4, status^0'=status^post4, IoCreateDevice^0'=IoCreateDevice^post4, conditional^0'=conditional^post4, PPBunlockInits^0'=PPBunlockInits^post4, num^0'=num^post4, (Pdolen^0-Pdolen^post4 == 0 /\ Pdo^0-Pdo^post4 == 0 /\ -1+PPBunlockInits^post4 == 0 /\ DName^0-DName^post4 == 0 /\ -IoCreateDevice^post4+IoCreateDevice^0 == 0 /\ i^0-i^post4 == 0 /\ -status^post4+status^0 == 0 /\ num^post4 == 0 /\ -conditional^post4+conditional^0 == 0 /\ PPBlockInits^0-PPBlockInits^post4 == 0), cost: 1 10: l2 -> l1 : DName^0'=DName^post10, Pdolen^0'=Pdolen^post10, PPBlockInits^0'=PPBlockInits^post10, i^0'=i^post10, Pdo^0'=Pdo^post10, status^0'=status^post10, IoCreateDevice^0'=IoCreateDevice^post10, conditional^0'=conditional^post10, PPBunlockInits^0'=PPBunlockInits^post10, num^0'=num^post10, (-PPBunlockInits^post10+PPBunlockInits^0 == 0 /\ status^post10 == 0 /\ Pdolen^0-Pdolen^post10 == 0 /\ PPBlockInits^0-PPBlockInits^post10 == 0 /\ Pdolen^0-i^0 <= 0 /\ -Pdo^post10+Pdo^0 == 0 /\ DName^0-DName^post10 == 0 /\ i^0-i^post10 == 0 /\ -num^post10+num^0 == 0 /\ -conditional^post10+conditional^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post10 == 0), cost: 1 11: l2 -> l6 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=PPBlockInits^post11, i^0'=i^post11, Pdo^0'=Pdo^post11, status^0'=status^post11, IoCreateDevice^0'=IoCreateDevice^post11, conditional^0'=conditional^post11, PPBunlockInits^0'=PPBunlockInits^post11, num^0'=num^post11, (0 == 0 /\ Pdolen^0-Pdolen^post11 == 0 /\ status^post11 == 0 /\ -1+PPBlockInits^post11 == 0 /\ -num^post11+num^0 == 0 /\ -conditional^post11+conditional^0 == 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -PPBunlockInits^post11+PPBunlockInits^0 == 0 /\ -Pdo^post11+Pdo^0 == 0 /\ -IoCreateDevice^post11+IoCreateDevice^0 == 0 /\ i^0-i^post11 == 0), cost: 1 2: l3 -> l4 : DName^0'=DName^post2, Pdolen^0'=Pdolen^post2, PPBlockInits^0'=PPBlockInits^post2, i^0'=i^post2, Pdo^0'=Pdo^post2, status^0'=status^post2, IoCreateDevice^0'=IoCreateDevice^post2, conditional^0'=conditional^post2, PPBunlockInits^0'=PPBunlockInits^post2, num^0'=num^post2, (IoCreateDevice^post2 == 0 /\ -PPBunlockInits^post2+PPBunlockInits^0 == 0 /\ -1+conditional^0 <= 0 /\ conditional^0-conditional^post2 == 0 /\ PPBlockInits^0-PPBlockInits^post2 == 0 /\ -num^post2+num^0 == 0 /\ DName^0-DName^post2 == 0 /\ -Pdolen^post2+Pdolen^0 == 0 /\ -Pdo^post2+Pdo^0 == 0 /\ i^0-i^post2 == 0 /\ -1+status^post2 == 0), cost: 1 3: l3 -> l0 : DName^0'=DName^post3, Pdolen^0'=Pdolen^post3, PPBlockInits^0'=PPBlockInits^post3, i^0'=i^post3, Pdo^0'=Pdo^post3, status^0'=status^post3, IoCreateDevice^0'=IoCreateDevice^post3, conditional^0'=conditional^post3, PPBunlockInits^0'=PPBunlockInits^post3, num^0'=num^post3, (0 == 0 /\ IoCreateDevice^post3 == 0 /\ i^0-i^post3 == 0 /\ -status^post3+status^0 == 0 /\ 2-conditional^0 <= 0 /\ DName^0-DName^post3 == 0 /\ -num^post3+num^0 == 0 /\ Pdo^post3 == 0 /\ -PPBunlockInits^post3+PPBunlockInits^0 == 0 /\ PPBlockInits^0-PPBlockInits^post3 == 0 /\ Pdolen^0-Pdolen^post3 == 0), cost: 1 8: l4 -> l2 : DName^0'=DName^post8, Pdolen^0'=Pdolen^post8, PPBlockInits^0'=PPBlockInits^post8, i^0'=i^post8, Pdo^0'=Pdo^post8, status^0'=status^post8, IoCreateDevice^0'=IoCreateDevice^post8, conditional^0'=conditional^post8, PPBunlockInits^0'=PPBunlockInits^post8, num^0'=num^post8, (PPBlockInits^0-PPBlockInits^post8 == 0 /\ status^0-status^post8 == 0 /\ -PPBunlockInits^post8+PPBunlockInits^0 == 0 /\ DName^0-DName^post8 == 0 /\ -IoCreateDevice^post8+IoCreateDevice^0 == 0 /\ 1+i^post8-i^0 == 0 /\ -conditional^post8+conditional^0 == 0 /\ -num^post8+num^0 == 0 /\ Pdolen^0-Pdolen^post8 == 0 /\ Pdo^0-Pdo^post8 == 0), cost: 1 9: l4 -> l2 : DName^0'=DName^post9, Pdolen^0'=Pdolen^post9, PPBlockInits^0'=PPBlockInits^post9, i^0'=i^post9, Pdo^0'=Pdo^post9, status^0'=status^post9, IoCreateDevice^0'=IoCreateDevice^post9, conditional^0'=conditional^post9, PPBunlockInits^0'=PPBunlockInits^post9, num^0'=num^post9, (-num^post9+num^0 == 0 /\ -conditional^post9+conditional^0 == 0 /\ status^0-status^post9 == 0 /\ -Pdo^post9+Pdo^0 == 0 /\ DName^0-DName^post9 == 0 /\ -1-i^0+i^post9 == 0 /\ -PPBunlockInits^post9+PPBunlockInits^0 == 0 /\ PPBlockInits^0-PPBlockInits^post9 == 0 /\ IoCreateDevice^0-IoCreateDevice^post9 == 0 /\ Pdolen^0-Pdolen^post9 == 0), cost: 1 5: l5 -> l1 : DName^0'=DName^post5, Pdolen^0'=Pdolen^post5, PPBlockInits^0'=PPBlockInits^post5, i^0'=i^post5, Pdo^0'=Pdo^post5, status^0'=status^post5, IoCreateDevice^0'=IoCreateDevice^post5, conditional^0'=conditional^post5, PPBunlockInits^0'=PPBunlockInits^post5, num^0'=num^post5, (status^0-status^post5 == 0 /\ DName^0-DName^post5 == 0 /\ -PPBunlockInits^post5+PPBunlockInits^0 == 0 /\ PPBlockInits^0-PPBlockInits^post5 == 0 /\ -IoCreateDevice^post5+IoCreateDevice^0 == 0 /\ Pdolen^0-Pdolen^post5 == 0 /\ -conditional^post5+conditional^0 == 0 /\ Pdo^0-Pdo^post5 == 0 /\ -i^post5+i^0 == 0 /\ num^0-num^post5 == 0), cost: 1 6: l6 -> l1 : DName^0'=DName^post6, Pdolen^0'=Pdolen^post6, PPBlockInits^0'=PPBlockInits^post6, i^0'=i^post6, Pdo^0'=Pdo^post6, status^0'=status^post6, IoCreateDevice^0'=IoCreateDevice^post6, conditional^0'=conditional^post6, PPBunlockInits^0'=PPBunlockInits^post6, num^0'=num^post6, (DName^0 <= 0 /\ -conditional^post6+conditional^0 == 0 /\ -i^post6+i^0 == 0 /\ -num^post6+num^0 == 0 /\ status^0-status^post6 == 0 /\ DName^0-DName^post6 == 0 /\ -PPBunlockInits^post6+PPBunlockInits^0 == 0 /\ PPBlockInits^0-PPBlockInits^post6 == 0 /\ Pdolen^0-Pdolen^post6 == 0 /\ -IoCreateDevice^post6+IoCreateDevice^0 == 0 /\ Pdo^0-Pdo^post6 == 0), cost: 1 7: l6 -> l3 : DName^0'=DName^post7, Pdolen^0'=Pdolen^post7, PPBlockInits^0'=PPBlockInits^post7, i^0'=i^post7, Pdo^0'=Pdo^post7, status^0'=status^post7, IoCreateDevice^0'=IoCreateDevice^post7, conditional^0'=conditional^post7, PPBunlockInits^0'=PPBunlockInits^post7, num^0'=num^post7, (0 == 0 /\ Pdolen^0-Pdolen^post7 == 0 /\ -Pdo^post7+Pdo^0 == 0 /\ -1+IoCreateDevice^post7 == 0 /\ DName^0-DName^post7 == 0 /\ 1-DName^0 <= 0 /\ i^0-i^post7 == 0 /\ -status^post7+status^0 == 0 /\ -num^post7+num^0 == 0 /\ PPBlockInits^0-PPBlockInits^post7 == 0 /\ -PPBunlockInits^post7+PPBunlockInits^0 == 0), cost: 1 12: l7 -> l2 : DName^0'=DName^post12, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=PPBlockInits^post12, i^0'=i^post12, Pdo^0'=Pdo^post12, status^0'=status^post12, IoCreateDevice^0'=IoCreateDevice^post12, conditional^0'=conditional^post12, PPBunlockInits^0'=PPBunlockInits^post12, num^0'=num^post12, (0 == 0 /\ Pdo^0-Pdo^post12 == 0 /\ IoCreateDevice^post12 == 0 /\ -num^post12+num^0 == 0 /\ status^post12 == 0 /\ DName^0-DName^post12 == 0 /\ -1+PPBlockInits^post12 == 0 /\ PPBunlockInits^post12 == 0 /\ conditional^0-conditional^post12 == 0), cost: 1 13: l8 -> l7 : DName^0'=DName^post13, Pdolen^0'=Pdolen^post13, PPBlockInits^0'=PPBlockInits^post13, i^0'=i^post13, Pdo^0'=Pdo^post13, status^0'=status^post13, IoCreateDevice^0'=IoCreateDevice^post13, conditional^0'=conditional^post13, PPBunlockInits^0'=PPBunlockInits^post13, num^0'=num^post13, (-PPBunlockInits^post13+PPBunlockInits^0 == 0 /\ Pdolen^0-Pdolen^post13 == 0 /\ DName^0-DName^post13 == 0 /\ Pdo^0-Pdo^post13 == 0 /\ i^0-i^post13 == 0 /\ -IoCreateDevice^post13+IoCreateDevice^0 == 0 /\ -conditional^post13+conditional^0 == 0 /\ -status^post13+status^0 == 0 /\ PPBlockInits^0-PPBlockInits^post13 == 0 /\ -num^post13+num^0 == 0), cost: 1 Applied preprocessing Original rule: l0 -> l1 : DName^0'=DName^post0, Pdolen^0'=Pdolen^post0, PPBlockInits^0'=PPBlockInits^post0, i^0'=i^post0, Pdo^0'=Pdo^post0, status^0'=status^post0, IoCreateDevice^0'=IoCreateDevice^post0, conditional^0'=conditional^post0, PPBunlockInits^0'=PPBunlockInits^post0, num^0'=num^post0, (-1+conditional^0 <= 0 /\ i^0-i^post0 == 0 /\ -PPBunlockInits^post0+PPBunlockInits^0 == 0 /\ -num^post0+num^0 == 0 /\ DName^0-DName^post0 == 0 /\ -Pdo^post0+Pdo^0 == 0 /\ -IoCreateDevice^post0+IoCreateDevice^0 == 0 /\ PPBlockInits^0-PPBlockInits^post0 == 0 /\ Pdolen^0-Pdolen^post0 == 0 /\ -status^post0+status^0 == 0 /\ conditional^0-conditional^post0 == 0), cost: 1 New rule: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 Applied preprocessing Original rule: l0 -> l2 : DName^0'=DName^post1, Pdolen^0'=Pdolen^post1, PPBlockInits^0'=PPBlockInits^post1, i^0'=i^post1, Pdo^0'=Pdo^post1, status^0'=status^post1, IoCreateDevice^0'=IoCreateDevice^post1, conditional^0'=conditional^post1, PPBunlockInits^0'=PPBunlockInits^post1, num^0'=num^post1, (-IoCreateDevice^post1+IoCreateDevice^0 == 0 /\ i^0-i^post1 == 0 /\ Pdo^0-Pdo^post1 == 0 /\ 2-conditional^0 <= 0 /\ -status^post1+status^0 == 0 /\ DName^0-DName^post1 == 0 /\ -PPBunlockInits^post1+PPBunlockInits^0 == 0 /\ -1+num^post1-num^0 == 0 /\ PPBlockInits^0-PPBlockInits^post1 == 0 /\ conditional^0-conditional^post1 == 0 /\ Pdolen^0-Pdolen^post1 == 0), cost: 1 New rule: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 Applied preprocessing Original rule: l3 -> l4 : DName^0'=DName^post2, Pdolen^0'=Pdolen^post2, PPBlockInits^0'=PPBlockInits^post2, i^0'=i^post2, Pdo^0'=Pdo^post2, status^0'=status^post2, IoCreateDevice^0'=IoCreateDevice^post2, conditional^0'=conditional^post2, PPBunlockInits^0'=PPBunlockInits^post2, num^0'=num^post2, (IoCreateDevice^post2 == 0 /\ -PPBunlockInits^post2+PPBunlockInits^0 == 0 /\ -1+conditional^0 <= 0 /\ conditional^0-conditional^post2 == 0 /\ PPBlockInits^0-PPBlockInits^post2 == 0 /\ -num^post2+num^0 == 0 /\ DName^0-DName^post2 == 0 /\ -Pdolen^post2+Pdolen^0 == 0 /\ -Pdo^post2+Pdo^0 == 0 /\ i^0-i^post2 == 0 /\ -1+status^post2 == 0), cost: 1 New rule: l3 -> l4 : status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 1 Applied preprocessing Original rule: l3 -> l0 : DName^0'=DName^post3, Pdolen^0'=Pdolen^post3, PPBlockInits^0'=PPBlockInits^post3, i^0'=i^post3, Pdo^0'=Pdo^post3, status^0'=status^post3, IoCreateDevice^0'=IoCreateDevice^post3, conditional^0'=conditional^post3, PPBunlockInits^0'=PPBunlockInits^post3, num^0'=num^post3, (0 == 0 /\ IoCreateDevice^post3 == 0 /\ i^0-i^post3 == 0 /\ -status^post3+status^0 == 0 /\ 2-conditional^0 <= 0 /\ DName^0-DName^post3 == 0 /\ -num^post3+num^0 == 0 /\ Pdo^post3 == 0 /\ -PPBunlockInits^post3+PPBunlockInits^0 == 0 /\ PPBlockInits^0-PPBlockInits^post3 == 0 /\ Pdolen^0-Pdolen^post3 == 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 -> l5 : DName^0'=DName^post4, Pdolen^0'=Pdolen^post4, PPBlockInits^0'=PPBlockInits^post4, i^0'=i^post4, Pdo^0'=Pdo^post4, status^0'=status^post4, IoCreateDevice^0'=IoCreateDevice^post4, conditional^0'=conditional^post4, PPBunlockInits^0'=PPBunlockInits^post4, num^0'=num^post4, (Pdolen^0-Pdolen^post4 == 0 /\ Pdo^0-Pdo^post4 == 0 /\ -1+PPBunlockInits^post4 == 0 /\ DName^0-DName^post4 == 0 /\ -IoCreateDevice^post4+IoCreateDevice^0 == 0 /\ i^0-i^post4 == 0 /\ -status^post4+status^0 == 0 /\ num^post4 == 0 /\ -conditional^post4+conditional^0 == 0 /\ PPBlockInits^0-PPBlockInits^post4 == 0), cost: 1 New rule: l1 -> l5 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 1 Applied preprocessing Original rule: l5 -> l1 : DName^0'=DName^post5, Pdolen^0'=Pdolen^post5, PPBlockInits^0'=PPBlockInits^post5, i^0'=i^post5, Pdo^0'=Pdo^post5, status^0'=status^post5, IoCreateDevice^0'=IoCreateDevice^post5, conditional^0'=conditional^post5, PPBunlockInits^0'=PPBunlockInits^post5, num^0'=num^post5, (status^0-status^post5 == 0 /\ DName^0-DName^post5 == 0 /\ -PPBunlockInits^post5+PPBunlockInits^0 == 0 /\ PPBlockInits^0-PPBlockInits^post5 == 0 /\ -IoCreateDevice^post5+IoCreateDevice^0 == 0 /\ Pdolen^0-Pdolen^post5 == 0 /\ -conditional^post5+conditional^0 == 0 /\ Pdo^0-Pdo^post5 == 0 /\ -i^post5+i^0 == 0 /\ num^0-num^post5 == 0), cost: 1 New rule: l5 -> l1 : TRUE, cost: 1 Applied preprocessing Original rule: l6 -> l1 : DName^0'=DName^post6, Pdolen^0'=Pdolen^post6, PPBlockInits^0'=PPBlockInits^post6, i^0'=i^post6, Pdo^0'=Pdo^post6, status^0'=status^post6, IoCreateDevice^0'=IoCreateDevice^post6, conditional^0'=conditional^post6, PPBunlockInits^0'=PPBunlockInits^post6, num^0'=num^post6, (DName^0 <= 0 /\ -conditional^post6+conditional^0 == 0 /\ -i^post6+i^0 == 0 /\ -num^post6+num^0 == 0 /\ status^0-status^post6 == 0 /\ DName^0-DName^post6 == 0 /\ -PPBunlockInits^post6+PPBunlockInits^0 == 0 /\ PPBlockInits^0-PPBlockInits^post6 == 0 /\ Pdolen^0-Pdolen^post6 == 0 /\ -IoCreateDevice^post6+IoCreateDevice^0 == 0 /\ Pdo^0-Pdo^post6 == 0), cost: 1 New rule: l6 -> l1 : DName^0 <= 0, cost: 1 Applied preprocessing Original rule: l6 -> l3 : DName^0'=DName^post7, Pdolen^0'=Pdolen^post7, PPBlockInits^0'=PPBlockInits^post7, i^0'=i^post7, Pdo^0'=Pdo^post7, status^0'=status^post7, IoCreateDevice^0'=IoCreateDevice^post7, conditional^0'=conditional^post7, PPBunlockInits^0'=PPBunlockInits^post7, num^0'=num^post7, (0 == 0 /\ Pdolen^0-Pdolen^post7 == 0 /\ -Pdo^post7+Pdo^0 == 0 /\ -1+IoCreateDevice^post7 == 0 /\ DName^0-DName^post7 == 0 /\ 1-DName^0 <= 0 /\ i^0-i^post7 == 0 /\ -status^post7+status^0 == 0 /\ -num^post7+num^0 == 0 /\ PPBlockInits^0-PPBlockInits^post7 == 0 /\ -PPBunlockInits^post7+PPBunlockInits^0 == 0), cost: 1 New rule: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post7, -1+DName^0 >= 0, cost: 1 Applied preprocessing Original rule: l4 -> l2 : DName^0'=DName^post8, Pdolen^0'=Pdolen^post8, PPBlockInits^0'=PPBlockInits^post8, i^0'=i^post8, Pdo^0'=Pdo^post8, status^0'=status^post8, IoCreateDevice^0'=IoCreateDevice^post8, conditional^0'=conditional^post8, PPBunlockInits^0'=PPBunlockInits^post8, num^0'=num^post8, (PPBlockInits^0-PPBlockInits^post8 == 0 /\ status^0-status^post8 == 0 /\ -PPBunlockInits^post8+PPBunlockInits^0 == 0 /\ DName^0-DName^post8 == 0 /\ -IoCreateDevice^post8+IoCreateDevice^0 == 0 /\ 1+i^post8-i^0 == 0 /\ -conditional^post8+conditional^0 == 0 /\ -num^post8+num^0 == 0 /\ Pdolen^0-Pdolen^post8 == 0 /\ Pdo^0-Pdo^post8 == 0), cost: 1 New rule: l4 -> l2 : i^0'=-1+i^0, TRUE, cost: 1 Applied preprocessing Original rule: l4 -> l2 : DName^0'=DName^post9, Pdolen^0'=Pdolen^post9, PPBlockInits^0'=PPBlockInits^post9, i^0'=i^post9, Pdo^0'=Pdo^post9, status^0'=status^post9, IoCreateDevice^0'=IoCreateDevice^post9, conditional^0'=conditional^post9, PPBunlockInits^0'=PPBunlockInits^post9, num^0'=num^post9, (-num^post9+num^0 == 0 /\ -conditional^post9+conditional^0 == 0 /\ status^0-status^post9 == 0 /\ -Pdo^post9+Pdo^0 == 0 /\ DName^0-DName^post9 == 0 /\ -1-i^0+i^post9 == 0 /\ -PPBunlockInits^post9+PPBunlockInits^0 == 0 /\ PPBlockInits^0-PPBlockInits^post9 == 0 /\ IoCreateDevice^0-IoCreateDevice^post9 == 0 /\ Pdolen^0-Pdolen^post9 == 0), cost: 1 New rule: l4 -> l2 : i^0'=1+i^0, TRUE, cost: 1 Applied preprocessing Original rule: l2 -> l1 : DName^0'=DName^post10, Pdolen^0'=Pdolen^post10, PPBlockInits^0'=PPBlockInits^post10, i^0'=i^post10, Pdo^0'=Pdo^post10, status^0'=status^post10, IoCreateDevice^0'=IoCreateDevice^post10, conditional^0'=conditional^post10, PPBunlockInits^0'=PPBunlockInits^post10, num^0'=num^post10, (-PPBunlockInits^post10+PPBunlockInits^0 == 0 /\ status^post10 == 0 /\ Pdolen^0-Pdolen^post10 == 0 /\ PPBlockInits^0-PPBlockInits^post10 == 0 /\ Pdolen^0-i^0 <= 0 /\ -Pdo^post10+Pdo^0 == 0 /\ DName^0-DName^post10 == 0 /\ i^0-i^post10 == 0 /\ -num^post10+num^0 == 0 /\ -conditional^post10+conditional^0 == 0 /\ IoCreateDevice^0-IoCreateDevice^post10 == 0), cost: 1 New rule: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 Applied preprocessing Original rule: l2 -> l6 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post11, PPBlockInits^0'=PPBlockInits^post11, i^0'=i^post11, Pdo^0'=Pdo^post11, status^0'=status^post11, IoCreateDevice^0'=IoCreateDevice^post11, conditional^0'=conditional^post11, PPBunlockInits^0'=PPBunlockInits^post11, num^0'=num^post11, (0 == 0 /\ Pdolen^0-Pdolen^post11 == 0 /\ status^post11 == 0 /\ -1+PPBlockInits^post11 == 0 /\ -num^post11+num^0 == 0 /\ -conditional^post11+conditional^0 == 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -PPBunlockInits^post11+PPBunlockInits^0 == 0 /\ -Pdo^post11+Pdo^0 == 0 /\ -IoCreateDevice^post11+IoCreateDevice^0 == 0 /\ i^0-i^post11 == 0), cost: 1 New rule: l2 -> l6 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 Applied preprocessing Original rule: l7 -> l2 : DName^0'=DName^post12, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=PPBlockInits^post12, i^0'=i^post12, Pdo^0'=Pdo^post12, status^0'=status^post12, IoCreateDevice^0'=IoCreateDevice^post12, conditional^0'=conditional^post12, PPBunlockInits^0'=PPBunlockInits^post12, num^0'=num^post12, (0 == 0 /\ Pdo^0-Pdo^post12 == 0 /\ IoCreateDevice^post12 == 0 /\ -num^post12+num^0 == 0 /\ status^post12 == 0 /\ DName^0-DName^post12 == 0 /\ -1+PPBlockInits^post12 == 0 /\ PPBunlockInits^post12 == 0 /\ conditional^0-conditional^post12 == 0), cost: 1 New rule: l7 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 1 Applied preprocessing Original rule: l8 -> l7 : DName^0'=DName^post13, Pdolen^0'=Pdolen^post13, PPBlockInits^0'=PPBlockInits^post13, i^0'=i^post13, Pdo^0'=Pdo^post13, status^0'=status^post13, IoCreateDevice^0'=IoCreateDevice^post13, conditional^0'=conditional^post13, PPBunlockInits^0'=PPBunlockInits^post13, num^0'=num^post13, (-PPBunlockInits^post13+PPBunlockInits^0 == 0 /\ Pdolen^0-Pdolen^post13 == 0 /\ DName^0-DName^post13 == 0 /\ Pdo^0-Pdo^post13 == 0 /\ i^0-i^post13 == 0 /\ -IoCreateDevice^post13+IoCreateDevice^0 == 0 /\ -conditional^post13+conditional^0 == 0 /\ -status^post13+status^0 == 0 /\ PPBlockInits^0-PPBlockInits^post13 == 0 /\ -num^post13+num^0 == 0), cost: 1 New rule: l8 -> l7 : TRUE, cost: 1 Simplified rules Start location: l8 14: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 15: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 18: l1 -> l5 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 1 24: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 25: l2 -> l6 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 16: l3 -> l4 : status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 1 17: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 22: l4 -> l2 : i^0'=-1+i^0, TRUE, cost: 1 23: l4 -> l2 : i^0'=1+i^0, TRUE, cost: 1 19: l5 -> l1 : TRUE, cost: 1 20: l6 -> l1 : DName^0 <= 0, cost: 1 21: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post7, -1+DName^0 >= 0, cost: 1 26: l7 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 1 27: l8 -> l7 : TRUE, cost: 1 Eliminating location l7 by chaining: Applied chaining First rule: l8 -> l7 : TRUE, cost: 1 Second rule: l7 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 1 New rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Applied deletion Removed the following rules: 26 27 Eliminating location l5 by chaining: Applied chaining First rule: l1 -> l5 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 1 Second rule: l5 -> l1 : TRUE, cost: 1 New rule: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2 Applied deletion Removed the following rules: 18 19 Eliminated locations on linear paths Start location: l8 14: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 15: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 29: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2 24: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 25: l2 -> l6 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 16: l3 -> l4 : status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 1 17: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 22: l4 -> l2 : i^0'=-1+i^0, TRUE, cost: 1 23: l4 -> l2 : i^0'=1+i^0, TRUE, cost: 1 20: l6 -> l1 : DName^0 <= 0, cost: 1 21: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post7, -1+DName^0 >= 0, cost: 1 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Applied nonterm Original rule: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2 New rule: l1 -> [9] : TRUE, cost: NONTERM Applied acceleration Original rule: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2 New rule: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2*n0 Applied deletion Removed the following rules: 29 Accelerated simple loops Start location: l8 14: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 15: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 30: l1 -> [9] : TRUE, cost: NONTERM 31: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2*n0 24: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 25: l2 -> l6 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 16: l3 -> l4 : status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 1 17: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 22: l4 -> l2 : i^0'=-1+i^0, TRUE, cost: 1 23: l4 -> l2 : i^0'=1+i^0, TRUE, cost: 1 20: l6 -> l1 : DName^0 <= 0, cost: 1 21: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post7, -1+DName^0 >= 0, cost: 1 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Applied chaining First rule: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 Second rule: l1 -> [9] : TRUE, cost: NONTERM New rule: l0 -> [9] : -1+conditional^0 <= 0, cost: NONTERM Applied chaining First rule: l6 -> l1 : DName^0 <= 0, cost: 1 Second rule: l1 -> [9] : TRUE, cost: NONTERM New rule: l6 -> [9] : DName^0 <= 0, cost: NONTERM Applied chaining First rule: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 Second rule: l1 -> [9] : TRUE, cost: NONTERM New rule: l2 -> [9] : Pdolen^0-i^0 <= 0, cost: NONTERM Applied chaining First rule: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 Second rule: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2*n0 New rule: l0 -> l1 : PPBunlockInits^0'=1, num^0'=0, -1+conditional^0 <= 0, cost: 1+2*n0 Applied chaining First rule: l6 -> l1 : DName^0 <= 0, cost: 1 Second rule: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2*n0 New rule: l6 -> l1 : PPBunlockInits^0'=1, num^0'=0, DName^0 <= 0, cost: 1+2*n0 Applied chaining First rule: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 Second rule: l1 -> l1 : PPBunlockInits^0'=1, num^0'=0, TRUE, cost: 2*n0 New rule: l2 -> l1 : status^0'=0, PPBunlockInits^0'=1, num^0'=0, Pdolen^0-i^0 <= 0, cost: 1+2*n0 Applied deletion Removed the following rules: 30 31 Chained accelerated rules with incoming rules Start location: l8 14: l0 -> l1 : -1+conditional^0 <= 0, cost: 1 15: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 32: l0 -> [9] : -1+conditional^0 <= 0, cost: NONTERM 35: l0 -> l1 : PPBunlockInits^0'=1, num^0'=0, -1+conditional^0 <= 0, cost: 1+2*n0 24: l2 -> l1 : status^0'=0, Pdolen^0-i^0 <= 0, cost: 1 25: l2 -> l6 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 34: l2 -> [9] : Pdolen^0-i^0 <= 0, cost: NONTERM 37: l2 -> l1 : status^0'=0, PPBunlockInits^0'=1, num^0'=0, Pdolen^0-i^0 <= 0, cost: 1+2*n0 16: l3 -> l4 : status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 1 17: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 22: l4 -> l2 : i^0'=-1+i^0, TRUE, cost: 1 23: l4 -> l2 : i^0'=1+i^0, TRUE, cost: 1 20: l6 -> l1 : DName^0 <= 0, cost: 1 21: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post7, -1+DName^0 >= 0, cost: 1 33: l6 -> [9] : DName^0 <= 0, cost: NONTERM 36: l6 -> l1 : PPBunlockInits^0'=1, num^0'=0, DName^0 <= 0, cost: 1+2*n0 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Removed unreachable locations and irrelevant leafs Start location: l8 15: l0 -> l2 : num^0'=1+num^0, -2+conditional^0 >= 0, cost: 1 32: l0 -> [9] : -1+conditional^0 <= 0, cost: NONTERM 25: l2 -> l6 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 34: l2 -> [9] : Pdolen^0-i^0 <= 0, cost: NONTERM 16: l3 -> l4 : status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 1 17: l3 -> l0 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, -2+conditional^0 >= 0, cost: 1 22: l4 -> l2 : i^0'=-1+i^0, TRUE, cost: 1 23: l4 -> l2 : i^0'=1+i^0, TRUE, cost: 1 21: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post7, -1+DName^0 >= 0, cost: 1 33: l6 -> [9] : DName^0 <= 0, cost: NONTERM 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Eliminating location l6 by chaining: Applied chaining First rule: l2 -> l6 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 Second rule: l6 -> l3 : IoCreateDevice^0'=1, conditional^0'=conditional^post7, -1+DName^0 >= 0, cost: 1 New rule: l2 -> l3 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, IoCreateDevice^0'=1, conditional^0'=conditional^post7, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 2 Applied chaining First rule: l2 -> l6 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, 1-Pdolen^0+i^0 <= 0, cost: 1 Second rule: l6 -> [9] : DName^0 <= 0, cost: NONTERM New rule: l2 -> [9] : (1-Pdolen^0+i^0 <= 0 /\ DName^post11 <= 0), cost: NONTERM Applied deletion Removed the following rules: 21 25 33 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^post3 >= 0 /\ -2+conditional^0 >= 0), cost: 2 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 -> [9] : -1+conditional^0 <= 0, cost: NONTERM New rule: l3 -> [9] : (-1+conditional^post3 <= 0 /\ -2+conditional^0 >= 0), cost: NONTERM Applied deletion Removed the following rules: 15 17 32 Eliminating location l4 by chaining: Applied chaining First rule: l3 -> l4 : status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 1 Second rule: l4 -> l2 : i^0'=-1+i^0, TRUE, cost: 1 New rule: l3 -> l2 : i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 2 Applied chaining First rule: l3 -> l4 : status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 1 Second rule: l4 -> l2 : i^0'=1+i^0, TRUE, cost: 1 New rule: l3 -> l2 : i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 2 Applied deletion Removed the following rules: 16 22 23 Eliminated locations on tree-shaped paths Start location: l8 34: l2 -> [9] : Pdolen^0-i^0 <= 0, cost: NONTERM 38: l2 -> l3 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, IoCreateDevice^0'=1, conditional^0'=conditional^post7, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 2 39: l2 -> [9] : (1-Pdolen^0+i^0 <= 0 /\ DName^post11 <= 0), cost: NONTERM 40: l3 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ -2+conditional^0 >= 0), cost: 2 41: l3 -> [9] : (-1+conditional^post3 <= 0 /\ -2+conditional^0 >= 0), cost: NONTERM 42: l3 -> l2 : i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 2 43: l3 -> l2 : i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 2 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Applied merging first rule: l2 -> [9] : Pdolen^0-i^0 <= 0, cost: NONTERM second rule: l2 -> [9] : (1-Pdolen^0+i^0 <= 0 /\ DName^post11 <= 0), cost: NONTERM new rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0), cost: NONTERM Merged rules Start location: l8 38: l2 -> l3 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, IoCreateDevice^0'=1, conditional^0'=conditional^post7, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 2 44: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0), cost: NONTERM 40: l3 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ -2+conditional^0 >= 0), cost: 2 41: l3 -> [9] : (-1+conditional^post3 <= 0 /\ -2+conditional^0 >= 0), cost: NONTERM 42: l3 -> l2 : i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 2 43: l3 -> l2 : i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 2 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Eliminating location l3 by chaining: Applied chaining First rule: l2 -> l3 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, IoCreateDevice^0'=1, conditional^0'=conditional^post7, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 2 Second rule: l3 -> l2 : Pdo^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ -2+conditional^0 >= 0), cost: 2 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -2+conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: 4 Applied chaining First rule: l2 -> l3 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, IoCreateDevice^0'=1, conditional^0'=conditional^post7, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 2 Second rule: l3 -> [9] : (-1+conditional^post3 <= 0 /\ -2+conditional^0 >= 0), cost: NONTERM New rule: l2 -> [9] : (1-Pdolen^0+i^0 <= 0 /\ -1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied chaining First rule: l2 -> l3 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, IoCreateDevice^0'=1, conditional^0'=conditional^post7, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 2 Second rule: l3 -> l2 : i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 2 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Applied chaining First rule: l2 -> l3 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=0, IoCreateDevice^0'=1, conditional^0'=conditional^post7, (1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 2 Second rule: l3 -> l2 : i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, -1+conditional^0 <= 0, cost: 2 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Applied deletion Removed the following rules: 38 40 41 42 43 Eliminated locations on tree-shaped paths Start location: l8 44: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0), cost: NONTERM 45: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -2+conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: 4 46: l2 -> [9] : (1-Pdolen^0+i^0 <= 0 /\ -1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 47: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 48: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Applied merging first rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0), cost: NONTERM second rule: l2 -> [9] : (1-Pdolen^0+i^0 <= 0 /\ -1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM new rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM Merged rules Start location: l8 45: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -2+conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: 4 47: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 48: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 49: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -2+conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Simplified simple loops Start location: l8 47: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 48: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 49: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM 50: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Applied nonterm Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied acceleration Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-n5+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*n5 Applied acceleration Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0+n7, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+n7 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ Pdolen^0-i^0-n7 >= 0), cost: 4*n7 Applied instantiation Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0+n7, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+n7 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ Pdolen^0-i^0-n7 >= 0), cost: 4*n7 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=Pdolen^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*Pdolen^0-4*i^0 Applied nonterm Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> [10] : (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied acceleration Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=n9+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*n9 Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 Applied nonterm Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 New rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied acceleration Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n11 Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n11 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n11 Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 Applied nonterm Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 New rule: l2 -> [10] : (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied acceleration Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=n13+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n13 Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> [10] : (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l2 -> [10] : (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=n13+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n13 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+n13+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n13 Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (2-Pdolen^0+i^0 <= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 8 Applied nonterm Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (2-Pdolen^0+i^0 <= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 8 New rule: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied acceleration Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (2-Pdolen^0+i^0 <= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 8 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: 8*n15 Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM New rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: 8*n15 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n15 Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=1+num^0, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 Applied nonterm Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=1+num^0, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 New rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied acceleration Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=1+num^0, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 8 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n19 Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l2 -> [10] : (Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied chaining First rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n19 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n19 Applied simplification Original rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l2 -> [10] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-n5+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*n5 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-n5+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*n5 Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=Pdolen^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*Pdolen^0-4*i^0 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=Pdolen^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*Pdolen^0-4*i^0 Applied simplification Original rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l2 -> [10] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied simplification Original rule: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM New rule: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n11 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n11 Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n11 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n11 Applied simplification Original rule: l2 -> [10] : (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l2 -> [10] : (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+n13+num^0, (-2+conditional^post3 >= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n13 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+n13+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n13 Applied simplification Original rule: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM New rule: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied simplification Original rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l2 -> [10] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0), cost: 8*n15 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 8*n15 Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n15 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n15 Applied simplification Original rule: l2 -> [10] : (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l2 -> [10] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM Applied simplification Original rule: l2 -> [10] : (Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM New rule: l2 -> [10] : (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (1-conditional^post7 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n19 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n19 Applied simplification Original rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (Pdolen^0-i^0 >= 0 /\ 1-conditional^post7 >= 0 /\ -1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n19 New rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n19 Applied deletion Removed the following rules: 47 48 50 Applied deletion Removed the following rules: 54 60 72 75 76 82 Accelerated simple loops Start location: l8 49: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM 55: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=n9+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*n9 62: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=n13+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n13 73: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-n5+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*n5 74: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=Pdolen^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*Pdolen^0-4*i^0 77: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n11 78: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n11 79: l2 -> [10] : (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM 80: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+n13+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n13 81: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 83: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 8*n15 84: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n15 85: l2 -> [10] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM 86: l2 -> [10] : (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 87: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n19 88: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n19 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=n9+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*n9 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=n9+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n9 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=n13+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n13 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n13+i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=n13+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n13 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-n5+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*n5 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n5+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n5 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=Pdolen^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4*Pdolen^0-4*i^0 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=Pdolen^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*Pdolen^post12-4*i^post12 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n11 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n11 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n11 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=1+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 6+8*n11 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> [10] : (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l8 -> [10] : 0 == 0, cost: NONTERM Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n13, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, num^0'=1+n13+num^0, (-2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n13 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n13+i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=1+n13+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n13 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> [10] : (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM New rule: l8 -> [10] : 0 == 0, cost: NONTERM Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-2+Pdolen^0-i^0 >= 0 /\ -1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0), cost: 8*n15 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 2+8*n15 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 4+8*n15 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-1+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n15 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> [10] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: NONTERM New rule: l8 -> [10] : 0 == 0, cost: NONTERM Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> [10] : (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM New rule: l8 -> [10] : 0 == 0, cost: NONTERM Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -1+Pdolen^0-i^0 >= 0), cost: 8*n19 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n19+i^post12, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n19 Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> l2 : DName^0'=DName^post11, PPBlockInits^0'=1, i^0'=-1+i^0-n19, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ 1-Pdolen^0+i^0 <= 0 /\ -1+DName^post11 >= 0), cost: 4+8*n19 New rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-1-n19+i^post12, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ 1-Pdolen^post12+i^post12 <= 0), cost: 6+8*n19 Applied deletion Removed the following rules: 55 62 73 74 77 78 79 80 81 83 84 85 86 87 88 Chained accelerated rules with incoming rules Start location: l8 49: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM 28: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 89: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=n9+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n9 90: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n13+i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=n13+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n13 91: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n5+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n5 92: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=Pdolen^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*Pdolen^post12-4*i^post12 93: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n11 94: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=1+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 6+8*n11 95: l8 -> [10] : 0 == 0, cost: NONTERM 96: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n13+i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=1+n13+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n13 97: l8 -> [10] : 0 == 0, cost: NONTERM 98: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 2+8*n15 99: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-1+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n15 100: l8 -> [10] : 0 == 0, cost: NONTERM 101: l8 -> [10] : 0 == 0, cost: NONTERM 102: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n19+i^post12, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n19 103: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-1-n19+i^post12, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ 1-Pdolen^post12+i^post12 <= 0), cost: 6+8*n19 Eliminating location l2 by chaining: Applied chaining First rule: l8 -> l2 : Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=0, IoCreateDevice^0'=0, PPBunlockInits^0'=0, 0 == 0, cost: 2 Second rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM New rule: l8 -> [9] : (0 == 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ Pdolen^post12-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM Applied simplification Original rule: l8 -> [9] : (0 == 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ Pdolen^post12-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM New rule: l8 -> [9] : (Pdolen^post12-i^post12 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM Applied chaining First rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n13+i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=n13+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n13 Second rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ Pdolen^post12+n13-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM Applied simplification Original rule: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ Pdolen^post12+n13-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ Pdolen^post12+n13-i^post12 <= 0), cost: NONTERM Applied chaining First rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n5+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n5 Second rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ n5+Pdolen^post12-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM Applied simplification Original rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ n5+Pdolen^post12-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ n5+Pdolen^post12-i^post12 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied chaining First rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=Pdolen^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*Pdolen^post12-4*i^post12 Second rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ 0 <= 0 \/ DName^post11 <= 0)), cost: NONTERM Applied simplification Original rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ 0 <= 0 \/ DName^post11 <= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied chaining First rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n13+i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=1+n13+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n13 Second rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ Pdolen^post12+n13-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM Applied simplification Original rule: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ Pdolen^post12+n13-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ Pdolen^post12+n13-i^post12 <= 0), cost: NONTERM Applied chaining First rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-n19+i^post12, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n19 Second rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ Pdolen^post12+n19-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM Applied simplification Original rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ Pdolen^post12+n19-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ Pdolen^post12+n19-i^post12 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM Applied chaining First rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-1-n19+i^post12, Pdo^0'=0, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, num^0'=n19+num^0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ 1-Pdolen^post12+i^post12 <= 0), cost: 6+8*n19 Second rule: l2 -> [9] : (Pdolen^0-i^0 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ 1-Pdolen^post12+i^post12 <= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ 1+Pdolen^post12+n19-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM Applied simplification Original rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ 1-Pdolen^post12+i^post12 <= 0 /\ ((-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0) \/ 1+Pdolen^post12+n19-i^post12 <= 0 \/ DName^post11 <= 0)), cost: NONTERM New rule: l8 -> [9] : (-1+conditional^post7 <= 0 /\ 1+Pdolen^post12+n19-i^post12 <= 0 /\ -1+DName^post11 >= 0 /\ 1-Pdolen^post12+i^post12 <= 0), cost: NONTERM Applied partial deletion Original rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, Pdo^0'=0, status^0'=0, IoCreateDevice^0'=0, conditional^0'=conditional^post3, PPBunlockInits^0'=0, num^0'=n9+num^0, (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n9 New rule: l8 -> [11] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n9 Applied partial deletion Original rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n11 New rule: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n11 Applied partial deletion Original rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=1+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 6+8*n11 New rule: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 6+8*n11 Applied partial deletion Original rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 2+8*n15 New rule: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 2+8*n15 Applied partial deletion Original rule: l8 -> l2 : DName^0'=DName^post11, Pdolen^0'=Pdolen^post12, PPBlockInits^0'=1, i^0'=-1+i^post12, status^0'=1, IoCreateDevice^0'=0, conditional^0'=conditional^post7, PPBunlockInits^0'=0, (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n15 New rule: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n15 Applied deletion Removed the following rules: 28 49 89 90 91 92 93 94 96 98 99 102 103 Eliminated locations on tree-shaped paths Start location: l8 95: l8 -> [10] : 0 == 0, cost: NONTERM 97: l8 -> [10] : 0 == 0, cost: NONTERM 100: l8 -> [10] : 0 == 0, cost: NONTERM 101: l8 -> [10] : 0 == 0, cost: NONTERM 104: l8 -> [9] : (Pdolen^post12-i^post12 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM 105: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ Pdolen^post12+n13-i^post12 <= 0), cost: NONTERM 106: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ n5+Pdolen^post12-i^post12 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 107: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 108: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ Pdolen^post12+n13-i^post12 <= 0), cost: NONTERM 109: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ Pdolen^post12+n19-i^post12 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 110: l8 -> [9] : (-1+conditional^post7 <= 0 /\ 1+Pdolen^post12+n19-i^post12 <= 0 /\ -1+DName^post11 >= 0 /\ 1-Pdolen^post12+i^post12 <= 0), cost: NONTERM 111: l8 -> [11] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n9 112: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n11 113: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 6+8*n11 114: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 2+8*n15 115: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n15 Removed duplicate rules (ignoring updates) Start location: l8 101: l8 -> [10] : 0 == 0, cost: NONTERM 104: l8 -> [9] : (Pdolen^post12-i^post12 <= 0 \/ DName^post11 <= 0 \/ (-1+conditional^post3 <= 0 /\ -2+conditional^post7 >= 0)), cost: NONTERM 106: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ n5+Pdolen^post12-i^post12 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 107: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 108: l8 -> [9] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0 /\ Pdolen^post12+n13-i^post12 <= 0), cost: NONTERM 109: l8 -> [9] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ Pdolen^post12+n19-i^post12 <= 0 /\ -1+DName^post11 >= 0), cost: NONTERM 110: l8 -> [9] : (-1+conditional^post7 <= 0 /\ 1+Pdolen^post12+n19-i^post12 <= 0 /\ -1+DName^post11 >= 0 /\ 1-Pdolen^post12+i^post12 <= 0), cost: NONTERM 111: l8 -> [11] : (-1+Pdolen^post12-i^post12 >= 0 /\ -2+conditional^post3 >= 0 /\ -1+DName^post11 >= 0), cost: 2+4*n9 112: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 2+8*n11 113: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 6+8*n11 114: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+DName^post11 >= 0 /\ -2+Pdolen^post12-i^post12 >= 0), cost: 2+8*n15 115: l8 -> [11] : (-1+conditional^post7 <= 0 /\ -1+Pdolen^post12-i^post12 >= 0 /\ -1+DName^post11 >= 0), cost: 6+8*n15 Computing asymptotic complexity Proved nontermination of rule 101 via SMT. Proved the following lower bound Complexity: Nonterm Cpx degree: Nonterm Solved cost: NONTERM Rule cost: NONTERM Rule guard: 0 == 0