Skip to content

Implement lookahead widening - #1484

Draft
RonaldJudin wants to merge 17 commits into
goblint:widen-no-leqfrom
RonaldJudin:lookahead-widening
Draft

Implement lookahead widening#1484
RonaldJudin wants to merge 17 commits into
goblint:widen-no-leqfrom
RonaldJudin:lookahead-widening

Conversation

@RonaldJudin

@RonaldJudin RonaldJudin commented May 24, 2024

Copy link
Copy Markdown

Lookahead widening from https://link.springer.com/chapter/10.1007/11817963_41

TODO

@michael-schwarz

Copy link
Copy Markdown
Member

Is there interest in merging this down the road?

@sim642

sim642 commented Feb 12, 2025

Copy link
Copy Markdown
Member

I'm still interested in having this but haven't worked on this since #1483 is still open as well.

@sim642 sim642 added the pr-dependency Depends or builds on another PR, which should be merged before label Aug 24, 2026
@sim642
sim642 changed the base branch from master to widen-no-leq August 24, 2026 08:22
let special man r f args = lift_fun man S.special ((|>) args % (|>) f % (|>) r)

let enter man r f args =
M.tracel "LA" "enter: %a" D.pretty man.local;
let enter man r f args =
M.tracel "LA" "enter: %a" D.pretty man.local;
let (l1, l2) = lift_fun' man S.enter ((|>) args % (|>) f % (|>) r) in
M.tracel "LA" "enter l1: %a" (Pretty.d_list "\n" D.pretty) l1;
M.tracel "LA" "enter: %a" D.pretty man.local;
let (l1, l2) = lift_fun' man S.enter ((|>) args % (|>) f % (|>) r) in
M.tracel "LA" "enter l1: %a" (Pretty.d_list "\n" D.pretty) l1;
M.tracel "LA" "enter l2: %a" (Pretty.d_list "\n" D.pretty) l2;
@sim642

sim642 commented Aug 26, 2026

Copy link
Copy Markdown
Member

By merging in #2081, I got rid of the AnalysisState.widening hack.
Out of curiosity, I did an SV-COMP run with this: https://goblint.cs.ut.ee/results/383-all-level01-lookahead-widening-after/.

It still comes up with a lot of exceptions and fixpoint errors that need to be fixed.
But interestingly, there are 5 benchmarks where this actually helps (at least at level01).
Overall, it has ~64% CPU time slowdown though, which is expected: it does all transfer functions twice (on the main and on the pilot value).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature pr-dependency Depends or builds on another PR, which should be merged before precision student-job

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants