You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Putting the general versions of variables into the precision instead of the instance versions makes Theta not be able to verify some tasks, while allowing some previously unverified tasks to be verified.
General versions of variables are put into the precision if both reverseLookup and additionalLookup are used in changeVars, while instances are used if reverseLookup is omitted.
For recursive tasks:
Fibonacci02.c, fibo_10-2.c, fibo_2calls_10-1.c, fibo_2calls_6-1.c, fibo_2calls_8-1.c, fibo_7-1.c can only be verified with general vars, not with instances,
Ackermann02.c, Addition02.c, BallRajamani-SPIN2000-Fig1.c can only be verified with instances, not with general vars.
Explicit abstraction performs better with general vars (49 vs. 39), while predicate abstraction solves significantly more tasks with instances (15 vs. 44).
For multithreaded tasks, general vars are preferred, as there were over 200 tasks that Theta can only solve with general vars and not with instances (see #244 (comment)).
This behavior does not seem to be by-design and should be investigated.
The text was updated successfully, but these errors were encountered:
AdamZsofi
added
core
Issue is core/algorithm and not formalism specific
xcfa
Issue is XCFA specific (not core or XSTS or other formalisms)
and removed
core
Issue is core/algorithm and not formalism specific
labels
Nov 14, 2024
Putting the general versions of variables into the precision instead of the instance versions makes Theta not be able to verify some tasks, while allowing some previously unverified tasks to be verified.
theta/subprojects/xcfa/xcfa-analysis/src/main/java/hu/bme/mit/theta/xcfa/analysis/XcfaPrecRefiner.kt
Lines 45 to 57 in 22257ee
General versions of variables are put into the precision if both
reverseLookup
andadditionalLookup
are used inchangeVars
, while instances are used ifreverseLookup
is omitted.For recursive tasks:
Fibonacci02.c
,fibo_10-2.c
,fibo_2calls_10-1.c
,fibo_2calls_6-1.c
,fibo_2calls_8-1.c
,fibo_7-1.c
can only be verified with general vars, not with instances,Ackermann02.c
,Addition02.c
,BallRajamani-SPIN2000-Fig1.c
can only be verified with instances, not with general vars.For multithreaded tasks, general vars are preferred, as there were over 200 tasks that Theta can only solve with general vars and not with instances (see #244 (comment)).
This behavior does not seem to be by-design and should be investigated.
The text was updated successfully, but these errors were encountered: