Skip to content

Fix IDE edge functions#528

Merged
pdschubert merged 4 commits intodevelopmentfrom
f-FixIDEEdgeFunctions
Oct 27, 2022
Merged

Fix IDE edge functions#528
pdschubert merged 4 commits intodevelopmentfrom
f-FixIDEEdgeFunctions

Conversation

@fabianbs96
Copy link
Copy Markdown
Member

AllBottom::composeWith did not correctly model function composition semantics in most of phasar's IDE analyses. This PR fixes this.
For future IDE implementations keep the following insights in mind:

  • On $Λ \rightarrow Λ$ edges always attach the EdgeIdentity
  • For any edge functions $f$ and $g$ and edge value $l$ it should hold: $f$-> $composeWith(g)$-> $computeTarget(l) == g$-> $computeTarget(f$-> $computeTarget(l))$, especially:
  • Any edge function $f$ composed with AllBottom should result in AllBottom
  • Any edge function $f$ composed with EdgeIdentity should result in $f$
  • AllBottom should only be composed with AllBottom or EdgeIdentity, otherwise there is a bug in the analysis
  • Policies such as F::composeWith(G) calling G::composeWith(F) are bad and lead to hard-to-find bugs

@fabianbs96 fabianbs96 self-assigned this Oct 26, 2022
@fabianbs96 fabianbs96 changed the title F fix ide edge functions Fix IDE edge functions Oct 26, 2022
@fabianbs96 fabianbs96 marked this pull request as draft October 26, 2022 17:34
@pdschubert
Copy link
Copy Markdown
Member

Is this still a draft or can I start reviewing it?

@pdschubert pdschubert marked this pull request as ready for review October 27, 2022 11:41
@pdschubert pdschubert merged commit 7b7c8de into development Oct 27, 2022
@pdschubert pdschubert deleted the f-FixIDEEdgeFunctions branch October 27, 2022 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants