Beyer, DirkJakobs, Marie-ChristineLemberger, ThomasWehrheim, HeikeBecker, SteffenBogicevic, IvanHerzwurm, GeorgWagner, Stefan2019-03-142019-03-142019978-3-88579-686-2https://dl.gi.de/handle/20.500.12116/20907Software verification received lots of attention in the past two decades. Nonetheless, it remains an extremely difficult problem. Some verification tasks cannot be solved automatically by any of today’s verifiers. To still verify such tasks, one can combine the strengths of different verifiers. A promising approach to create combinations is conditional model checking (CMC). In CMC, the first verifier outputs a condition that describes the parts of the program state space that it successfully verified, and the next verifier uses that condition to steer its exploration towards the unverified state space. Despite the benefits of CMC, only few verifiers can handle conditions. To overcome this problem, we propose an automatic plug-and-play extension for verifiers. Instead of modifying verifiers, we suggest to add a preprocessor: the reducer. The reducer takes the condition and the original program and computes a residual program that encodes the unverified state space in program code. We developed one such reducer and use it to integrate existing verifiers and test-case generators into the CMC process. Our experiments show that we can solve many additional verification tasks with this reducer-based construction.enConditional Model CheckingTestingSoftware VerificationSequential CombinationCombining Verifiers in Conditional Model Checking via ReducersText/Conference Paper10.18420/se2019-461617-5468