@@ -337,10 +337,7 @@ module ProductFlow {
337
337
private predicate fwdReachableInterprocEntry ( Flow1:: PathNode node1 , Flow2:: PathNode node2 ) {
338
338
isSourcePair ( node1 , node2 )
339
339
or
340
- exists ( Flow1:: PathNode pred1 , Flow2:: PathNode pred2 |
341
- fwdReachableInterprocEntry ( pred1 , pred2 ) and
342
- isSuccessor ( pred1 , pred2 , node1 , node2 )
343
- )
340
+ fwdIsSuccessor ( _, _, node1 , node2 )
344
341
}
345
342
346
343
pragma [ assume_small_delta]
@@ -424,11 +421,10 @@ module ProductFlow {
424
421
localPathStep2SuccPlus ( n1 , n2 ) or n1 = n2
425
422
}
426
423
427
- bindingset [ pred1, pred2]
428
- bindingset [ succ1, succ2]
429
- private predicate isSuccessor (
424
+ private predicate fwdIsSuccessor (
430
425
Flow1:: PathNode pred1 , Flow2:: PathNode pred2 , Flow1:: PathNode succ1 , Flow2:: PathNode succ2
431
426
) {
427
+ fwdReachableInterprocEntry ( pred1 , pred2 ) and
432
428
exists ( Flow1:: PathNode mid1 , Flow2:: PathNode mid2 |
433
429
localPathStep1Tc ( pred1 , mid1 ) and
434
430
localPathStep2Tc ( pred2 , mid2 )
@@ -445,13 +441,11 @@ module ProductFlow {
445
441
pragma [ nomagic]
446
442
private predicate revReachableInterprocEntry ( Flow1:: PathNode node1 , Flow2:: PathNode node2 ) {
447
443
fwdReachableInterprocEntry ( node1 , node2 ) and
448
- (
449
- isSinkPair ( node1 , node2 )
450
- or
451
- exists ( Flow1:: PathNode succ1 , Flow2:: PathNode succ2 |
452
- revReachableInterprocEntry ( succ1 , succ2 ) and
453
- isSuccessor ( node1 , node2 , succ1 , succ2 )
454
- )
444
+ isSinkPair ( node1 , node2 )
445
+ or
446
+ exists ( Flow1:: PathNode succ1 , Flow2:: PathNode succ2 |
447
+ revReachableInterprocEntry ( succ1 , succ2 ) and
448
+ fwdIsSuccessor ( node1 , node2 , succ1 , succ2 )
455
449
)
456
450
}
457
451
@@ -464,7 +458,7 @@ module ProductFlow {
464
458
exists ( Flow1:: PathNode n11 , Flow2:: PathNode n12 , Flow1:: PathNode n21 , Flow2:: PathNode n22 |
465
459
n1 = TMkNodePair ( n11 , n12 ) and
466
460
n2 = TMkNodePair ( n21 , n22 ) and
467
- isSuccessor ( n11 , n12 , n21 , n22 )
461
+ fwdIsSuccessor ( n11 , n12 , n21 , n22 )
468
462
)
469
463
}
470
464
0 commit comments