Dear Omar,
thank you for your interest in CPAchecker.
Am 20.08.23 um 20:09 schrieb Omar bataineh:
> We attempt to improve/refine an initial set of invariants generated for a
> loop L using the CPAChecker. We assume we have a starting collection of
> dynamically generated invariants (In_1,..., In_n). Can we apply
> reachability analysis techniques for this specific task by checking, for
> instance, the following reachability property?
> G (L.F => (In_1 /... /In_n)), where F is the collection of program L's
> final/halting locations and G is the global temporal operator.
This would be equivalent to simply asserting the invariants whenever the
program exits, right? So yes, this would be possible and the easiest way
is usually to just add these asserts.
> What is the most effective way to generate or refine program invariants
> with CPAChecker?
This question is quite broad and it depends somewhat on what you want to
do. We have for example one analysis that does not find 1-inductive
invariants, but k-inductive invariants (for some k), is this enough?
1-inductive invariants are produced for example by our configuration
using predicate abstraction, i.e. "-predicateAnalysis".
This will provide invariants in output/invariants.txt
Greetings
Philipp
--
Philipp Wendler
Software and Computational Systems Lab
LMU Munich, Germany
Oettingenstr. 67 Raum F008 - Tel.: 089/2180-9181