./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/goblint-regression/13-privatized_41-traces-ex-7_unknown_1_pos.i --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/goblint-regression/13-privatized_41-traces-ex-7_unknown_1_pos.i -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 64b25926fb6c7e27855d812b862643321480d6d0eb308c80224ee02bfde27516 --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 20:40:48,844 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 20:40:48,848 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 20:40:48,877 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 20:40:48,877 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 20:40:48,880 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 20:40:48,882 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 20:40:48,887 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 20:40:48,889 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 20:40:48,892 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 20:40:48,893 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 20:40:48,894 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 20:40:48,895 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 20:40:48,897 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 20:40:48,898 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 20:40:48,899 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 20:40:48,900 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 20:40:48,901 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 20:40:48,905 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 20:40:48,906 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 20:40:48,910 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 20:40:48,911 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 20:40:48,912 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 20:40:48,913 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 20:40:48,918 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 20:40:48,921 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 20:40:48,921 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 20:40:48,922 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 20:40:48,923 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 20:40:48,924 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 20:40:48,925 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 20:40:48,925 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 20:40:48,926 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 20:40:48,927 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 20:40:48,928 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 20:40:48,928 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 20:40:48,929 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 20:40:48,930 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 20:40:48,930 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 20:40:48,931 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 20:40:48,932 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 20:40:48,932 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2022-02-20 20:40:48,959 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 20:40:48,959 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 20:40:48,960 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 20:40:48,960 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 20:40:48,961 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 20:40:48,961 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 20:40:48,961 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 20:40:48,962 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 20:40:48,962 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 20:40:48,962 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 20:40:48,963 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 20:40:48,963 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 20:40:48,963 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 20:40:48,963 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 20:40:48,963 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 20:40:48,964 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 20:40:48,964 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 20:40:48,964 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 20:40:48,964 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 20:40:48,964 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 20:40:48,964 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 20:40:48,965 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 20:40:48,965 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 20:40:48,965 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 20:40:48,965 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 20:40:48,965 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 20:40:48,966 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 20:40:48,966 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 20:40:48,966 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 20:40:48,966 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 20:40:48,966 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 20:40:48,967 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 20:40:48,967 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 20:40:48,967 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> 64b25926fb6c7e27855d812b862643321480d6d0eb308c80224ee02bfde27516 [2022-02-20 20:40:49,178 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 20:40:49,198 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 20:40:49,200 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 20:40:49,201 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 20:40:49,202 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 20:40:49,203 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/goblint-regression/13-privatized_41-traces-ex-7_unknown_1_pos.i [2022-02-20 20:40:49,266 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/0b4102f96/4f7a610efac248c48ecf9638a79ec851/FLAG3dd4654a9 [2022-02-20 20:40:49,685 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 20:40:49,685 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/goblint-regression/13-privatized_41-traces-ex-7_unknown_1_pos.i [2022-02-20 20:40:49,695 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/0b4102f96/4f7a610efac248c48ecf9638a79ec851/FLAG3dd4654a9 [2022-02-20 20:40:50,048 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/0b4102f96/4f7a610efac248c48ecf9638a79ec851 [2022-02-20 20:40:50,050 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 20:40:50,052 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 20:40:50,053 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 20:40:50,053 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 20:40:50,060 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 20:40:50,061 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,062 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@7b4be0cd and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50, skipping insertion in model container [2022-02-20 20:40:50,062 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,070 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 20:40:50,117 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 20:40:50,249 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/goblint-regression/13-privatized_41-traces-ex-7_unknown_1_pos.i[1097,1110] [2022-02-20 20:40:50,394 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 20:40:50,407 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 20:40:50,419 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/goblint-regression/13-privatized_41-traces-ex-7_unknown_1_pos.i[1097,1110] [2022-02-20 20:40:50,462 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 20:40:50,496 INFO L208 MainTranslator]: Completed translation [2022-02-20 20:40:50,496 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50 WrapperNode [2022-02-20 20:40:50,496 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 20:40:50,497 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 20:40:50,498 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 20:40:50,498 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 20:40:50,503 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,514 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,532 INFO L137 Inliner]: procedures = 162, calls = 28, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 48 [2022-02-20 20:40:50,533 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 20:40:50,533 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 20:40:50,534 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 20:40:50,534 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 20:40:50,539 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,539 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,541 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,542 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,547 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,554 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,557 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,564 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 20:40:50,565 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 20:40:50,565 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 20:40:50,565 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 20:40:50,568 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (1/1) ... [2022-02-20 20:40:50,578 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 20:40:50,586 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 20:40:50,596 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 20:40:50,597 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 20:40:50,626 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-02-20 20:40:50,626 INFO L130 BoogieDeclarations]: Found specification of procedure #PthreadsMutexLock [2022-02-20 20:40:50,626 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 20:40:50,627 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-02-20 20:40:50,627 INFO L130 BoogieDeclarations]: Found specification of procedure t_fun [2022-02-20 20:40:50,627 INFO L138 BoogieDeclarations]: Found implementation of procedure t_fun [2022-02-20 20:40:50,627 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 20:40:50,627 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 20:40:50,627 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 20:40:50,627 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 20:40:50,629 WARN L208 CfgBuilder]: User set CodeBlockSize to SequenceOfStatements but program contains fork statements. Overwriting the user preferences and setting CodeBlockSize to SingleStatement [2022-02-20 20:40:50,713 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 20:40:50,714 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 20:40:50,822 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 20:40:50,829 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 20:40:50,829 INFO L299 CfgBuilder]: Removed 0 assume(true) statements. [2022-02-20 20:40:50,831 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 08:40:50 BoogieIcfgContainer [2022-02-20 20:40:50,831 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 20:40:50,832 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 20:40:50,832 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 20:40:50,835 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 20:40:50,835 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 08:40:50" (1/3) ... [2022-02-20 20:40:50,835 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@79ec4ac2 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 08:40:50, skipping insertion in model container [2022-02-20 20:40:50,836 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 08:40:50" (2/3) ... [2022-02-20 20:40:50,836 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@79ec4ac2 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 08:40:50, skipping insertion in model container [2022-02-20 20:40:50,836 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 08:40:50" (3/3) ... [2022-02-20 20:40:50,837 INFO L111 eAbstractionObserver]: Analyzing ICFG 13-privatized_41-traces-ex-7_unknown_1_pos.i [2022-02-20 20:40:50,841 WARN L150 ceAbstractionStarter]: Switching off computation of Hoare annotation because input is a concurrent program [2022-02-20 20:40:50,841 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:false NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 20:40:50,841 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-02-20 20:40:50,841 INFO L534 ceAbstractionStarter]: Constructing petrified ICFG for 1 thread instances. [2022-02-20 20:40:50,874 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#in~arg.offset| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,875 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#in~arg.base| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,875 WARN L322 ript$VariableManager]: TermVariabe t_funThread1of1ForFork0_~arg.base not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,875 WARN L322 ript$VariableManager]: TermVariabe t_funThread1of1ForFork0_~arg.offset not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,876 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#in~arg.offset| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,876 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#in~arg.base| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,876 WARN L322 ript$VariableManager]: TermVariabe t_funThread1of1ForFork0_~arg.base not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,876 WARN L322 ript$VariableManager]: TermVariabe t_funThread1of1ForFork0_~arg.offset not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,877 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet1| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,877 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet1| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,877 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet1| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,878 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet1| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,878 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet2| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,878 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet2| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,879 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet2| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,879 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet2| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,880 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#res.offset| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,880 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#res.base| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,881 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#res.offset| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,881 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#res.base| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,884 WARN L322 ript$VariableManager]: TermVariabe t_funThread1of1ForFork0_~arg.offset not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,884 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet1| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,885 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#res.base| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,885 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#t~nondet2| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,885 WARN L322 ript$VariableManager]: TermVariabe t_funThread1of1ForFork0_~arg.base not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,885 WARN L322 ript$VariableManager]: TermVariabe |t_funThread1of1ForFork0_#res.offset| not constructed by VariableManager. Cannot ensure absence of name clashes. [2022-02-20 20:40:50,887 INFO L148 ThreadInstanceAdder]: Constructed 0 joinOtherThreadTransitions. [2022-02-20 20:40:50,951 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 20:40:50,956 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 20:40:50,957 INFO L340 AbstractCegarLoop]: Starting to check reachability of 2 error locations. [2022-02-20 20:40:50,969 INFO L74 FinitePrefix]: Start finitePrefix. Operand has 69 places, 66 transitions, 137 flow [2022-02-20 20:40:51,025 INFO L129 PetriNetUnfolder]: 1/65 cut-off events. [2022-02-20 20:40:51,026 INFO L130 PetriNetUnfolder]: For 0/0 co-relation queries the response was YES. [2022-02-20 20:40:51,028 INFO L84 FinitePrefix]: Finished finitePrefix Result has 69 conditions, 65 events. 1/65 cut-off events. For 0/0 co-relation queries the response was YES. Maximal size of possible extension queue 3. Compared 26 event pairs, 0 based on Foata normal form. 0/63 useless extension candidates. Maximal degree in co-relation 33. Up to 2 conditions per place. [2022-02-20 20:40:51,030 INFO L82 GeneralOperation]: Start removeDead. Operand has 69 places, 66 transitions, 137 flow [2022-02-20 20:40:51,034 INFO L88 GeneralOperation]: Finished RemoveDead, result has has 59 places, 55 transitions, 113 flow [2022-02-20 20:40:51,056 INFO L129 PetriNetUnfolder]: 0/54 cut-off events. [2022-02-20 20:40:51,056 INFO L130 PetriNetUnfolder]: For 0/0 co-relation queries the response was YES. [2022-02-20 20:40:51,057 INFO L246 CegarLoopForPetriNet]: Found error trace [2022-02-20 20:40:51,057 INFO L254 CegarLoopForPetriNet]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 20:40:51,058 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0INUSE_VIOLATION] === [2022-02-20 20:40:51,062 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 20:40:51,062 INFO L85 PathProgramCache]: Analyzing trace with hash 1593244809, now seen corresponding path program 1 times [2022-02-20 20:40:51,080 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 20:40:51,082 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1721696424] [2022-02-20 20:40:51,082 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 20:40:51,083 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 20:40:51,236 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 20:40:51,492 INFO L290 TraceCheckUtils]: 0: Hoare triple {72#true} [118] ULTIMATE.startENTRY-->L-1: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {72#true} is VALID [2022-02-20 20:40:51,492 INFO L290 TraceCheckUtils]: 1: Hoare triple {72#true} [103] L-1-->L-1-1: Formula: (and (= |v_#NULL.base_1| 0) (= |v_#NULL.offset_1| 0)) InVars {} OutVars{#NULL.offset=|v_#NULL.offset_1|, #NULL.base=|v_#NULL.base_1|} AuxVars[] AssignedVars[#NULL.offset, #NULL.base] {72#true} is VALID [2022-02-20 20:40:51,493 INFO L290 TraceCheckUtils]: 2: Hoare triple {72#true} [126] L-1-1-->L-1-2: Formula: (= (select |v_#valid_1| 0) 0) InVars {#valid=|v_#valid_1|} OutVars{#valid=|v_#valid_1|} AuxVars[] AssignedVars[] {72#true} is VALID [2022-02-20 20:40:51,493 INFO L290 TraceCheckUtils]: 3: Hoare triple {72#true} [130] L-1-2-->L18: Formula: (< 0 |v_#StackHeapBarrier_1|) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_1|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_1|} AuxVars[] AssignedVars[] {72#true} is VALID [2022-02-20 20:40:51,493 INFO L290 TraceCheckUtils]: 4: Hoare triple {72#true} [89] L18-->L18-1: Formula: (and (= (select |v_#valid_2| 1) 1) (= 2 (select |v_#length_1| 1))) InVars {#length=|v_#length_1|, #valid=|v_#valid_2|} OutVars{#length=|v_#length_1|, #valid=|v_#valid_2|} AuxVars[] AssignedVars[] {72#true} is VALID [2022-02-20 20:40:51,493 INFO L290 TraceCheckUtils]: 5: Hoare triple {72#true} [119] L18-1-->L18-2: Formula: (= 48 (select (select |v_#memory_int_1| 1) 0)) InVars {#memory_int=|v_#memory_int_1|} OutVars{#memory_int=|v_#memory_int_1|} AuxVars[] AssignedVars[] {72#true} is VALID [2022-02-20 20:40:51,494 INFO L290 TraceCheckUtils]: 6: Hoare triple {72#true} [109] L18-2-->L18-3: Formula: (= (select (select |v_#memory_int_2| 1) 1) 0) InVars {#memory_int=|v_#memory_int_2|} OutVars{#memory_int=|v_#memory_int_2|} AuxVars[] AssignedVars[] {72#true} is VALID [2022-02-20 20:40:51,494 INFO L290 TraceCheckUtils]: 7: Hoare triple {72#true} [112] L18-3-->L18-4: Formula: (and (= 45 (select |v_#length_2| 2)) (= (select |v_#valid_3| 2) 1)) InVars {#length=|v_#length_2|, #valid=|v_#valid_3|} OutVars{#length=|v_#length_2|, #valid=|v_#valid_3|} AuxVars[] AssignedVars[] {72#true} is VALID [2022-02-20 20:40:51,499 INFO L290 TraceCheckUtils]: 8: Hoare triple {72#true} [113] L18-4-->L682: Formula: (= v_~g~0_1 0) InVars {} OutVars{~g~0=v_~g~0_1} AuxVars[] AssignedVars[~g~0] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,500 INFO L290 TraceCheckUtils]: 9: Hoare triple {74#(= ~g~0 0)} [74] L682-->L682-1: Formula: (and (= |v_~#A~0.offset_1| 0) (= 3 |v_~#A~0.base_1|)) InVars {} OutVars{~#A~0.offset=|v_~#A~0.offset_1|, ~#A~0.base=|v_~#A~0.base_1|} AuxVars[] AssignedVars[~#A~0.offset, ~#A~0.base] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,501 INFO L290 TraceCheckUtils]: 10: Hoare triple {74#(= ~g~0 0)} [90] L682-1-->L682-2: Formula: (and (= (select |v_#length_3| 3) 24) (= (select |v_#valid_4| 3) 1)) InVars {#length=|v_#length_3|, #valid=|v_#valid_4|} OutVars{#length=|v_#length_3|, #valid=|v_#valid_4|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,501 INFO L290 TraceCheckUtils]: 11: Hoare triple {74#(= ~g~0 0)} [76] L682-2-->L682-3: Formula: (= (select (select |v_#memory_int_3| |v_~#A~0.base_2|) |v_~#A~0.offset_2|) 0) InVars {#memory_int=|v_#memory_int_3|, ~#A~0.offset=|v_~#A~0.offset_2|, ~#A~0.base=|v_~#A~0.base_2|} OutVars{#memory_int=|v_#memory_int_3|, ~#A~0.offset=|v_~#A~0.offset_2|, ~#A~0.base=|v_~#A~0.base_2|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,502 INFO L290 TraceCheckUtils]: 12: Hoare triple {74#(= ~g~0 0)} [129] L682-3-->L682-4: Formula: (= (select (select |v_#memory_int_4| |v_~#A~0.base_3|) (+ |v_~#A~0.offset_3| 4)) 0) InVars {#memory_int=|v_#memory_int_4|, ~#A~0.offset=|v_~#A~0.offset_3|, ~#A~0.base=|v_~#A~0.base_3|} OutVars{#memory_int=|v_#memory_int_4|, ~#A~0.offset=|v_~#A~0.offset_3|, ~#A~0.base=|v_~#A~0.base_3|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,503 INFO L290 TraceCheckUtils]: 13: Hoare triple {74#(= ~g~0 0)} [98] L682-4-->L682-5: Formula: (= (select (select |v_#memory_int_5| |v_~#A~0.base_4|) (+ |v_~#A~0.offset_4| 8)) 0) InVars {#memory_int=|v_#memory_int_5|, ~#A~0.offset=|v_~#A~0.offset_4|, ~#A~0.base=|v_~#A~0.base_4|} OutVars{#memory_int=|v_#memory_int_5|, ~#A~0.offset=|v_~#A~0.offset_4|, ~#A~0.base=|v_~#A~0.base_4|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,504 INFO L290 TraceCheckUtils]: 14: Hoare triple {74#(= ~g~0 0)} [134] L682-5-->L682-6: Formula: (= (select (select |v_#memory_int_6| |v_~#A~0.base_5|) (+ |v_~#A~0.offset_5| 12)) ~unnamed1~0~PTHREAD_MUTEX_TIMED_NP) InVars {#memory_int=|v_#memory_int_6|, ~#A~0.offset=|v_~#A~0.offset_5|, ~#A~0.base=|v_~#A~0.base_5|} OutVars{#memory_int=|v_#memory_int_6|, ~#A~0.offset=|v_~#A~0.offset_5|, ~#A~0.base=|v_~#A~0.base_5|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,508 INFO L290 TraceCheckUtils]: 15: Hoare triple {74#(= ~g~0 0)} [82] L682-6-->L682-7: Formula: (= (select (select |v_#memory_int_7| |v_~#A~0.base_6|) (+ |v_~#A~0.offset_6| 16)) 0) InVars {#memory_int=|v_#memory_int_7|, ~#A~0.offset=|v_~#A~0.offset_6|, ~#A~0.base=|v_~#A~0.base_6|} OutVars{#memory_int=|v_#memory_int_7|, ~#A~0.offset=|v_~#A~0.offset_6|, ~#A~0.base=|v_~#A~0.base_6|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,508 INFO L290 TraceCheckUtils]: 16: Hoare triple {74#(= ~g~0 0)} [121] L682-7-->L683: Formula: (and (= |v_~#D~0.offset_1| 0) (= |v_~#D~0.base_1| 4)) InVars {} OutVars{~#D~0.offset=|v_~#D~0.offset_1|, ~#D~0.base=|v_~#D~0.base_1|} AuxVars[] AssignedVars[~#D~0.base, ~#D~0.offset] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,509 INFO L290 TraceCheckUtils]: 17: Hoare triple {74#(= ~g~0 0)} [77] L683-->L683-1: Formula: (and (= (select |v_#length_4| 4) 24) (= (select |v_#valid_5| 4) 1)) InVars {#length=|v_#length_4|, #valid=|v_#valid_5|} OutVars{#length=|v_#length_4|, #valid=|v_#valid_5|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,509 INFO L290 TraceCheckUtils]: 18: Hoare triple {74#(= ~g~0 0)} [117] L683-1-->L683-2: Formula: (= (select (select |v_#memory_int_8| |v_~#D~0.base_2|) |v_~#D~0.offset_2|) 0) InVars {#memory_int=|v_#memory_int_8|, ~#D~0.base=|v_~#D~0.base_2|, ~#D~0.offset=|v_~#D~0.offset_2|} OutVars{#memory_int=|v_#memory_int_8|, ~#D~0.base=|v_~#D~0.base_2|, ~#D~0.offset=|v_~#D~0.offset_2|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,510 INFO L290 TraceCheckUtils]: 19: Hoare triple {74#(= ~g~0 0)} [101] L683-2-->L683-3: Formula: (= (select (select |v_#memory_int_9| |v_~#D~0.base_3|) (+ |v_~#D~0.offset_3| 4)) 0) InVars {#memory_int=|v_#memory_int_9|, ~#D~0.base=|v_~#D~0.base_3|, ~#D~0.offset=|v_~#D~0.offset_3|} OutVars{#memory_int=|v_#memory_int_9|, ~#D~0.base=|v_~#D~0.base_3|, ~#D~0.offset=|v_~#D~0.offset_3|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,511 INFO L290 TraceCheckUtils]: 20: Hoare triple {74#(= ~g~0 0)} [122] L683-3-->L683-4: Formula: (= (select (select |v_#memory_int_10| |v_~#D~0.base_4|) (+ |v_~#D~0.offset_4| 8)) 0) InVars {#memory_int=|v_#memory_int_10|, ~#D~0.base=|v_~#D~0.base_4|, ~#D~0.offset=|v_~#D~0.offset_4|} OutVars{#memory_int=|v_#memory_int_10|, ~#D~0.base=|v_~#D~0.base_4|, ~#D~0.offset=|v_~#D~0.offset_4|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,512 INFO L290 TraceCheckUtils]: 21: Hoare triple {74#(= ~g~0 0)} [73] L683-4-->L683-5: Formula: (= (select (select |v_#memory_int_11| |v_~#D~0.base_5|) (+ |v_~#D~0.offset_5| 12)) ~unnamed1~0~PTHREAD_MUTEX_TIMED_NP) InVars {#memory_int=|v_#memory_int_11|, ~#D~0.base=|v_~#D~0.base_5|, ~#D~0.offset=|v_~#D~0.offset_5|} OutVars{#memory_int=|v_#memory_int_11|, ~#D~0.base=|v_~#D~0.base_5|, ~#D~0.offset=|v_~#D~0.offset_5|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,513 INFO L290 TraceCheckUtils]: 22: Hoare triple {74#(= ~g~0 0)} [123] L683-5-->L683-6: Formula: (= (select (select |v_#memory_int_12| |v_~#D~0.base_6|) (+ |v_~#D~0.offset_6| 16)) 0) InVars {#memory_int=|v_#memory_int_12|, ~#D~0.base=|v_~#D~0.base_6|, ~#D~0.offset=|v_~#D~0.offset_6|} OutVars{#memory_int=|v_#memory_int_12|, ~#D~0.base=|v_~#D~0.base_6|, ~#D~0.offset=|v_~#D~0.offset_6|} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,514 INFO L290 TraceCheckUtils]: 23: Hoare triple {74#(= ~g~0 0)} [99] L683-6-->L-1-3: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,515 INFO L290 TraceCheckUtils]: 24: Hoare triple {74#(= ~g~0 0)} [133] L-1-3-->L-1-4: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,515 INFO L290 TraceCheckUtils]: 25: Hoare triple {74#(= ~g~0 0)} [111] L-1-4-->L-1-5: Formula: true InVars {} OutVars{ULTIMATE.start_main_#res#1=|v_ULTIMATE.start_main_#res#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#res#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,516 INFO L290 TraceCheckUtils]: 26: Hoare triple {74#(= ~g~0 0)} [81] L-1-5-->L693: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet4#1=|v_ULTIMATE.start_main_#t~nondet4#1_1|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_1|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_1|, ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_1|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_1|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet4#1, ULTIMATE.start_main_~#id~0#1.base, ULTIMATE.start_main_#t~nondet5#1, ULTIMATE.start_main_#t~nondet6#1, ULTIMATE.start_main_~#id~0#1.offset, ULTIMATE.start_main_#t~pre3#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,517 INFO L290 TraceCheckUtils]: 27: Hoare triple {74#(= ~g~0 0)} [120] L693-->L693-1: Formula: (and (not (= |v_ULTIMATE.start_main_~#id~0#1.base_2| 0)) (= (store |v_#length_6| |v_ULTIMATE.start_main_~#id~0#1.base_2| 4) |v_#length_5|) (= |v_#valid_6| (store |v_#valid_7| |v_ULTIMATE.start_main_~#id~0#1.base_2| 1)) (= |v_ULTIMATE.start_main_~#id~0#1.offset_2| 0) (= (select |v_#valid_7| |v_ULTIMATE.start_main_~#id~0#1.base_2|) 0) (< |v_#StackHeapBarrier_2| |v_ULTIMATE.start_main_~#id~0#1.base_2|)) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_6|, #valid=|v_#valid_7|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_5|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_2|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_2|, #valid=|v_#valid_6|} AuxVars[] AssignedVars[ULTIMATE.start_main_~#id~0#1.base, #valid, #length, ULTIMATE.start_main_~#id~0#1.offset] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,517 INFO L290 TraceCheckUtils]: 28: Hoare triple {74#(= ~g~0 0)} [75] L693-1-->L694: Formula: (= |v_ULTIMATE.start_main_#t~pre3#1_2| |v_#pthreadsForks_1|) InVars {#pthreadsForks=|v_#pthreadsForks_1|} OutVars{#pthreadsForks=|v_#pthreadsForks_1|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_2|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre3#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,518 INFO L290 TraceCheckUtils]: 29: Hoare triple {74#(= ~g~0 0)} [85] L694-->L694-1: Formula: (= (+ 1 |v_#pthreadsForks_3|) |v_#pthreadsForks_2|) InVars {#pthreadsForks=|v_#pthreadsForks_3|} OutVars{#pthreadsForks=|v_#pthreadsForks_2|} AuxVars[] AssignedVars[#pthreadsForks] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,519 INFO L290 TraceCheckUtils]: 30: Hoare triple {74#(= ~g~0 0)} [107] L694-1-->L694-2: Formula: (= |v_#memory_int_13| (store |v_#memory_int_14| |v_ULTIMATE.start_main_~#id~0#1.base_3| (store (select |v_#memory_int_14| |v_ULTIMATE.start_main_~#id~0#1.base_3|) |v_ULTIMATE.start_main_~#id~0#1.offset_3| |v_ULTIMATE.start_main_#t~pre3#1_3|))) InVars {#memory_int=|v_#memory_int_14|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_3|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_3|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_3|} OutVars{#memory_int=|v_#memory_int_13|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_3|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_3|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_3|} AuxVars[] AssignedVars[#memory_int] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,520 INFO L290 TraceCheckUtils]: 31: Hoare triple {74#(= ~g~0 0)} [148] L694-2-->t_funENTRY: Formula: (and (= |v_t_funThread1of1ForFork0_#in~arg.base_4| 0) (= |v_ULTIMATE.start_main_#t~pre3#1_6| v_t_funThread1of1ForFork0_thidvar0_2) (= v_t_funThread1of1ForFork0_thidvar1_2 0) (= |v_t_funThread1of1ForFork0_#in~arg.offset_4| 0)) InVars {ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_6|} OutVars{t_funThread1of1ForFork0_#in~arg.offset=|v_t_funThread1of1ForFork0_#in~arg.offset_4|, t_funThread1of1ForFork0_~arg.offset=v_t_funThread1of1ForFork0_~arg.offset_4, t_funThread1of1ForFork0_#t~nondet1=|v_t_funThread1of1ForFork0_#t~nondet1_6|, t_funThread1of1ForFork0_thidvar1=v_t_funThread1of1ForFork0_thidvar1_2, t_funThread1of1ForFork0_#res.base=|v_t_funThread1of1ForFork0_#res.base_4|, t_funThread1of1ForFork0_#t~nondet2=|v_t_funThread1of1ForFork0_#t~nondet2_6|, t_funThread1of1ForFork0_#in~arg.base=|v_t_funThread1of1ForFork0_#in~arg.base_4|, t_funThread1of1ForFork0_~arg.base=v_t_funThread1of1ForFork0_~arg.base_4, t_funThread1of1ForFork0_thidvar0=v_t_funThread1of1ForFork0_thidvar0_2, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_6|, t_funThread1of1ForFork0_#res.offset=|v_t_funThread1of1ForFork0_#res.offset_4|} AuxVars[] AssignedVars[t_funThread1of1ForFork0_#in~arg.offset, t_funThread1of1ForFork0_~arg.offset, t_funThread1of1ForFork0_#t~nondet1, t_funThread1of1ForFork0_thidvar1, t_funThread1of1ForFork0_#res.base, t_funThread1of1ForFork0_#t~nondet2, t_funThread1of1ForFork0_#in~arg.base, t_funThread1of1ForFork0_~arg.base, t_funThread1of1ForFork0_thidvar0, t_funThread1of1ForFork0_#res.offset] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,520 INFO L290 TraceCheckUtils]: 32: Hoare triple {74#(= ~g~0 0)} [80] L694-3-->L694-4: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_4|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre3#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,521 INFO L290 TraceCheckUtils]: 33: Hoare triple {74#(= ~g~0 0)} [84] L694-4-->L695: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet4#1=|v_ULTIMATE.start_main_#t~nondet4#1_2|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet4#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,521 INFO L290 TraceCheckUtils]: 34: Hoare triple {74#(= ~g~0 0)} [131] L695-->L695-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_2| |v_~#D~0.base_7|))) (and (= (select .cse0 |v_~#D~0.offset_7|) 0) (= |v_ULTIMATE.start_main_#t~nondet5#1_2| 0) (= |v_#pthreadsMutex_1| (store |v_#pthreadsMutex_2| |v_~#D~0.base_7| (store .cse0 |v_~#D~0.offset_7| 1))))) InVars {#pthreadsMutex=|v_#pthreadsMutex_2|, ~#D~0.base=|v_~#D~0.base_7|, ~#D~0.offset=|v_~#D~0.offset_7|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_1|, ~#D~0.base=|v_~#D~0.base_7|, ~#D~0.offset=|v_~#D~0.offset_7|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_2|} AuxVars[] AssignedVars[#pthreadsMutex, ULTIMATE.start_main_#t~nondet5#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,522 INFO L290 TraceCheckUtils]: 35: Hoare triple {74#(= ~g~0 0)} [102] L695-1-->L696: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet5#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,523 INFO L290 TraceCheckUtils]: 36: Hoare triple {74#(= ~g~0 0)} [114] L696-->L696-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_4| |v_~#A~0.base_7|))) (and (= (select .cse0 |v_~#A~0.offset_7|) 0) (= |v_ULTIMATE.start_main_#t~nondet6#1_2| 0) (= |v_#pthreadsMutex_3| (store |v_#pthreadsMutex_4| |v_~#A~0.base_7| (store .cse0 |v_~#A~0.offset_7| 1))))) InVars {#pthreadsMutex=|v_#pthreadsMutex_4|, ~#A~0.offset=|v_~#A~0.offset_7|, ~#A~0.base=|v_~#A~0.base_7|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_3|, ~#A~0.offset=|v_~#A~0.offset_7|, ~#A~0.base=|v_~#A~0.base_7|, ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_2|} AuxVars[] AssignedVars[#pthreadsMutex, ULTIMATE.start_main_#t~nondet6#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,524 INFO L290 TraceCheckUtils]: 37: Hoare triple {74#(= ~g~0 0)} [100] L696-1-->L697: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet6#1] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,527 INFO L290 TraceCheckUtils]: 38: Hoare triple {74#(= ~g~0 0)} [94] L697-->L698: Formula: (= |v_#pthreadsMutex_5| (store |v_#pthreadsMutex_6| |v_~#D~0.base_8| (store (select |v_#pthreadsMutex_6| |v_~#D~0.base_8|) |v_~#D~0.offset_8| 0))) InVars {#pthreadsMutex=|v_#pthreadsMutex_6|, ~#D~0.base=|v_~#D~0.base_8|, ~#D~0.offset=|v_~#D~0.offset_8|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_5|, ~#D~0.base=|v_~#D~0.base_8|, ~#D~0.offset=|v_~#D~0.offset_8|} AuxVars[] AssignedVars[#pthreadsMutex] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,528 INFO L290 TraceCheckUtils]: 39: Hoare triple {74#(= ~g~0 0)} [92] L698-->L698-1: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {74#(= ~g~0 0)} is VALID [2022-02-20 20:40:51,529 INFO L290 TraceCheckUtils]: 40: Hoare triple {74#(= ~g~0 0)} [91] L698-1-->L698-2: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_1| (ite (= v_~g~0_2 0) 1 0)) InVars {~g~0=v_~g~0_2} OutVars{ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_1|, ~g~0=v_~g~0_2} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_#in~cond#1] {75#(not (= |ULTIMATE.start___VERIFIER_assert_#in~cond#1| 0))} is VALID [2022-02-20 20:40:51,529 INFO L290 TraceCheckUtils]: 41: Hoare triple {75#(not (= |ULTIMATE.start___VERIFIER_assert_#in~cond#1| 0))} [116] L698-2-->L19: Formula: true InVars {} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_1|} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_~cond#1] {75#(not (= |ULTIMATE.start___VERIFIER_assert_#in~cond#1| 0))} is VALID [2022-02-20 20:40:51,530 INFO L290 TraceCheckUtils]: 42: Hoare triple {75#(not (= |ULTIMATE.start___VERIFIER_assert_#in~cond#1| 0))} [93] L19-->L19-1: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_~cond#1_2| |v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|) InVars {ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_2|, ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_~cond#1] {76#(not (= |ULTIMATE.start___VERIFIER_assert_~cond#1| 0))} is VALID [2022-02-20 20:40:51,531 INFO L290 TraceCheckUtils]: 43: Hoare triple {76#(not (= |ULTIMATE.start___VERIFIER_assert_~cond#1| 0))} [86] L19-1-->L19-2: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_~cond#1_3| 0) InVars {ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_3|} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_3|} AuxVars[] AssignedVars[] {73#false} is VALID [2022-02-20 20:40:51,532 INFO L290 TraceCheckUtils]: 44: Hoare triple {73#false} [96] L19-2-->ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {73#false} is VALID [2022-02-20 20:40:51,533 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 20:40:51,534 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 20:40:51,537 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1721696424] [2022-02-20 20:40:51,538 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1721696424] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 20:40:51,539 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 20:40:51,539 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-02-20 20:40:51,541 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1215579596] [2022-02-20 20:40:51,543 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 20:40:51,554 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 9.0) internal successors, (45), 5 states have internal predecessors, (45), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Word has length 45 [2022-02-20 20:40:51,555 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 20:40:51,558 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 9.0) internal successors, (45), 5 states have internal predecessors, (45), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:51,608 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 20:40:51,608 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-02-20 20:40:51,608 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 20:40:51,636 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-02-20 20:40:51,636 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 20:40:51,638 INFO L499 CegarLoopForPetriNet]: Number of universal loopers: 56 out of 66 [2022-02-20 20:40:51,642 INFO L92 encePairwiseOnDemand]: Start differencePairwiseOnDemand. First operand has 59 places, 55 transitions, 113 flow. Second operand has 5 states, 5 states have (on average 57.2) internal successors, (286), 5 states have internal predecessors, (286), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:51,642 INFO L101 encePairwiseOnDemand]: Universal subtrahend loopers provided by user. [2022-02-20 20:40:51,642 INFO L102 encePairwiseOnDemand]: Number of universal subtrahend loopers: 56 of 66 [2022-02-20 20:40:51,643 INFO L74 FinitePrefix]: Start finitePrefix. Operand will be constructed on-demand [2022-02-20 20:40:51,746 INFO L129 PetriNetUnfolder]: 2/71 cut-off events. [2022-02-20 20:40:51,747 INFO L130 PetriNetUnfolder]: For 1/1 co-relation queries the response was YES. [2022-02-20 20:40:51,747 INFO L84 FinitePrefix]: Finished finitePrefix Result has 91 conditions, 71 events. 2/71 cut-off events. For 1/1 co-relation queries the response was YES. Maximal size of possible extension queue 5. Compared 77 event pairs, 0 based on Foata normal form. 2/73 useless extension candidates. Maximal degree in co-relation 52. Up to 6 conditions per place. [2022-02-20 20:40:51,748 INFO L132 encePairwiseOnDemand]: 61/66 looper letters, 5 selfloop transitions, 2 changer transitions 7/62 dead transitions. [2022-02-20 20:40:51,748 INFO L138 encePairwiseOnDemand]: Finished differencePairwiseOnDemand. Result has 65 places, 62 transitions, 155 flow [2022-02-20 20:40:51,749 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 20:40:51,750 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2022-02-20 20:40:51,773 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 408 transitions. [2022-02-20 20:40:51,775 INFO L544 CegarLoopForPetriNet]: DFA transition density 0.8831168831168831 [2022-02-20 20:40:51,776 INFO L72 ComplementDD]: Start complementDD. Operand 7 states and 408 transitions. [2022-02-20 20:40:51,776 INFO L73 IsDeterministic]: Start isDeterministic. Operand 7 states and 408 transitions. [2022-02-20 20:40:51,777 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2022-02-20 20:40:51,781 INFO L117 ReachableStatesCopy]: Start reachableStatesCopy. Operand 7 states and 408 transitions. [2022-02-20 20:40:51,785 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends has 8 states, 7 states have (on average 58.285714285714285) internal successors, (408), 7 states have internal predecessors, (408), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:51,794 INFO L131 ReachableStatesCopy]: Finished reachableStatesCopy Result has 8 states, 8 states have (on average 66.0) internal successors, (528), 8 states have internal predecessors, (528), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:51,797 INFO L81 ComplementDD]: Finished complementDD. Result has 8 states, 8 states have (on average 66.0) internal successors, (528), 8 states have internal predecessors, (528), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:51,799 INFO L186 Difference]: Start difference. First operand has 59 places, 55 transitions, 113 flow. Second operand 7 states and 408 transitions. [2022-02-20 20:40:51,800 INFO L82 GeneralOperation]: Start removeRedundantFlow. Operand has 65 places, 62 transitions, 155 flow [2022-02-20 20:40:51,803 INFO L88 GeneralOperation]: Finished removeRedundantFlow, result has has 64 places, 62 transitions, 154 flow, removed 0 selfloop flow, removed 1 redundant places. [2022-02-20 20:40:51,806 INFO L242 Difference]: Finished difference. Result has 69 places, 55 transitions, 128 flow [2022-02-20 20:40:51,812 INFO L317 CegarLoopForPetriNet]: {PETRI_ALPHABET=66, PETRI_DIFFERENCE_MINUEND_FLOW=112, PETRI_DIFFERENCE_MINUEND_PLACES=58, PETRI_DIFFERENCE_MINUEND_TRANSITIONS=55, PETRI_DIFFERENCE_SUBTRAHEND_LETTERS_WITH_MORE_CHANGERS_THAN_LOOPERS=2, PETRI_DIFFERENCE_SUBTRAHEND_LOOPER_ONLY_LETTERS=53, PETRI_DIFFERENCE_SUBTRAHEND_STATES=7, PETRI_FLOW=128, PETRI_PLACES=69, PETRI_TRANSITIONS=55} [2022-02-20 20:40:51,815 INFO L334 CegarLoopForPetriNet]: 59 programPoint places, 10 predicate places. [2022-02-20 20:40:51,817 INFO L111 iNet2FiniteAutomaton]: Start petriNet2FiniteAutomaton. Operand has 69 places, 55 transitions, 128 flow [2022-02-20 20:40:51,830 INFO L133 iNet2FiniteAutomaton]: Finished petriNet2FiniteAutomaton. Result has 156 states, 155 states have (on average 1.6451612903225807) internal successors, (255), 155 states have internal predecessors, (255), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:51,831 INFO L78 Accepts]: Start accepts. Automaton has has 156 states, 155 states have (on average 1.6451612903225807) internal successors, (255), 155 states have internal predecessors, (255), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Word has length 45 [2022-02-20 20:40:51,832 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 20:40:51,832 INFO L470 AbstractCegarLoop]: Abstraction has has 69 places, 55 transitions, 128 flow [2022-02-20 20:40:51,833 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 57.2) internal successors, (286), 5 states have internal predecessors, (286), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:51,833 INFO L246 CegarLoopForPetriNet]: Found error trace [2022-02-20 20:40:51,833 INFO L254 CegarLoopForPetriNet]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 20:40:51,833 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 20:40:51,833 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0INUSE_VIOLATION] === [2022-02-20 20:40:51,834 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 20:40:51,834 INFO L85 PathProgramCache]: Analyzing trace with hash 982120582, now seen corresponding path program 1 times [2022-02-20 20:40:51,834 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 20:40:51,835 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [820507539] [2022-02-20 20:40:51,835 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 20:40:51,836 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 20:40:51,871 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 20:40:52,004 INFO L290 TraceCheckUtils]: 0: Hoare triple {246#true} [118] ULTIMATE.startENTRY-->L-1: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {246#true} is VALID [2022-02-20 20:40:52,004 INFO L290 TraceCheckUtils]: 1: Hoare triple {246#true} [103] L-1-->L-1-1: Formula: (and (= |v_#NULL.base_1| 0) (= |v_#NULL.offset_1| 0)) InVars {} OutVars{#NULL.offset=|v_#NULL.offset_1|, #NULL.base=|v_#NULL.base_1|} AuxVars[] AssignedVars[#NULL.offset, #NULL.base] {246#true} is VALID [2022-02-20 20:40:52,005 INFO L290 TraceCheckUtils]: 2: Hoare triple {246#true} [126] L-1-1-->L-1-2: Formula: (= (select |v_#valid_1| 0) 0) InVars {#valid=|v_#valid_1|} OutVars{#valid=|v_#valid_1|} AuxVars[] AssignedVars[] {246#true} is VALID [2022-02-20 20:40:52,005 INFO L290 TraceCheckUtils]: 3: Hoare triple {246#true} [130] L-1-2-->L18: Formula: (< 0 |v_#StackHeapBarrier_1|) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_1|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_1|} AuxVars[] AssignedVars[] {246#true} is VALID [2022-02-20 20:40:52,009 INFO L290 TraceCheckUtils]: 4: Hoare triple {246#true} [89] L18-->L18-1: Formula: (and (= (select |v_#valid_2| 1) 1) (= 2 (select |v_#length_1| 1))) InVars {#length=|v_#length_1|, #valid=|v_#valid_2|} OutVars{#length=|v_#length_1|, #valid=|v_#valid_2|} AuxVars[] AssignedVars[] {246#true} is VALID [2022-02-20 20:40:52,010 INFO L290 TraceCheckUtils]: 5: Hoare triple {246#true} [119] L18-1-->L18-2: Formula: (= 48 (select (select |v_#memory_int_1| 1) 0)) InVars {#memory_int=|v_#memory_int_1|} OutVars{#memory_int=|v_#memory_int_1|} AuxVars[] AssignedVars[] {246#true} is VALID [2022-02-20 20:40:52,011 INFO L290 TraceCheckUtils]: 6: Hoare triple {246#true} [109] L18-2-->L18-3: Formula: (= (select (select |v_#memory_int_2| 1) 1) 0) InVars {#memory_int=|v_#memory_int_2|} OutVars{#memory_int=|v_#memory_int_2|} AuxVars[] AssignedVars[] {246#true} is VALID [2022-02-20 20:40:52,014 INFO L290 TraceCheckUtils]: 7: Hoare triple {246#true} [112] L18-3-->L18-4: Formula: (and (= 45 (select |v_#length_2| 2)) (= (select |v_#valid_3| 2) 1)) InVars {#length=|v_#length_2|, #valid=|v_#valid_3|} OutVars{#length=|v_#length_2|, #valid=|v_#valid_3|} AuxVars[] AssignedVars[] {246#true} is VALID [2022-02-20 20:40:52,015 INFO L290 TraceCheckUtils]: 8: Hoare triple {246#true} [113] L18-4-->L682: Formula: (= v_~g~0_1 0) InVars {} OutVars{~g~0=v_~g~0_1} AuxVars[] AssignedVars[~g~0] {246#true} is VALID [2022-02-20 20:40:52,016 INFO L290 TraceCheckUtils]: 9: Hoare triple {246#true} [74] L682-->L682-1: Formula: (and (= |v_~#A~0.offset_1| 0) (= 3 |v_~#A~0.base_1|)) InVars {} OutVars{~#A~0.offset=|v_~#A~0.offset_1|, ~#A~0.base=|v_~#A~0.base_1|} AuxVars[] AssignedVars[~#A~0.offset, ~#A~0.base] {248#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,016 INFO L290 TraceCheckUtils]: 10: Hoare triple {248#(<= |~#A~0.base| 3)} [90] L682-1-->L682-2: Formula: (and (= (select |v_#length_3| 3) 24) (= (select |v_#valid_4| 3) 1)) InVars {#length=|v_#length_3|, #valid=|v_#valid_4|} OutVars{#length=|v_#length_3|, #valid=|v_#valid_4|} AuxVars[] AssignedVars[] {248#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,017 INFO L290 TraceCheckUtils]: 11: Hoare triple {248#(<= |~#A~0.base| 3)} [76] L682-2-->L682-3: Formula: (= (select (select |v_#memory_int_3| |v_~#A~0.base_2|) |v_~#A~0.offset_2|) 0) InVars {#memory_int=|v_#memory_int_3|, ~#A~0.offset=|v_~#A~0.offset_2|, ~#A~0.base=|v_~#A~0.base_2|} OutVars{#memory_int=|v_#memory_int_3|, ~#A~0.offset=|v_~#A~0.offset_2|, ~#A~0.base=|v_~#A~0.base_2|} AuxVars[] AssignedVars[] {248#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,019 INFO L290 TraceCheckUtils]: 12: Hoare triple {248#(<= |~#A~0.base| 3)} [129] L682-3-->L682-4: Formula: (= (select (select |v_#memory_int_4| |v_~#A~0.base_3|) (+ |v_~#A~0.offset_3| 4)) 0) InVars {#memory_int=|v_#memory_int_4|, ~#A~0.offset=|v_~#A~0.offset_3|, ~#A~0.base=|v_~#A~0.base_3|} OutVars{#memory_int=|v_#memory_int_4|, ~#A~0.offset=|v_~#A~0.offset_3|, ~#A~0.base=|v_~#A~0.base_3|} AuxVars[] AssignedVars[] {248#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,020 INFO L290 TraceCheckUtils]: 13: Hoare triple {248#(<= |~#A~0.base| 3)} [98] L682-4-->L682-5: Formula: (= (select (select |v_#memory_int_5| |v_~#A~0.base_4|) (+ |v_~#A~0.offset_4| 8)) 0) InVars {#memory_int=|v_#memory_int_5|, ~#A~0.offset=|v_~#A~0.offset_4|, ~#A~0.base=|v_~#A~0.base_4|} OutVars{#memory_int=|v_#memory_int_5|, ~#A~0.offset=|v_~#A~0.offset_4|, ~#A~0.base=|v_~#A~0.base_4|} AuxVars[] AssignedVars[] {248#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,020 INFO L290 TraceCheckUtils]: 14: Hoare triple {248#(<= |~#A~0.base| 3)} [134] L682-5-->L682-6: Formula: (= (select (select |v_#memory_int_6| |v_~#A~0.base_5|) (+ |v_~#A~0.offset_5| 12)) ~unnamed1~0~PTHREAD_MUTEX_TIMED_NP) InVars {#memory_int=|v_#memory_int_6|, ~#A~0.offset=|v_~#A~0.offset_5|, ~#A~0.base=|v_~#A~0.base_5|} OutVars{#memory_int=|v_#memory_int_6|, ~#A~0.offset=|v_~#A~0.offset_5|, ~#A~0.base=|v_~#A~0.base_5|} AuxVars[] AssignedVars[] {248#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,021 INFO L290 TraceCheckUtils]: 15: Hoare triple {248#(<= |~#A~0.base| 3)} [82] L682-6-->L682-7: Formula: (= (select (select |v_#memory_int_7| |v_~#A~0.base_6|) (+ |v_~#A~0.offset_6| 16)) 0) InVars {#memory_int=|v_#memory_int_7|, ~#A~0.offset=|v_~#A~0.offset_6|, ~#A~0.base=|v_~#A~0.base_6|} OutVars{#memory_int=|v_#memory_int_7|, ~#A~0.offset=|v_~#A~0.offset_6|, ~#A~0.base=|v_~#A~0.base_6|} AuxVars[] AssignedVars[] {248#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,022 INFO L290 TraceCheckUtils]: 16: Hoare triple {248#(<= |~#A~0.base| 3)} [121] L682-7-->L683: Formula: (and (= |v_~#D~0.offset_1| 0) (= |v_~#D~0.base_1| 4)) InVars {} OutVars{~#D~0.offset=|v_~#D~0.offset_1|, ~#D~0.base=|v_~#D~0.base_1|} AuxVars[] AssignedVars[~#D~0.base, ~#D~0.offset] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,023 INFO L290 TraceCheckUtils]: 17: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [77] L683-->L683-1: Formula: (and (= (select |v_#length_4| 4) 24) (= (select |v_#valid_5| 4) 1)) InVars {#length=|v_#length_4|, #valid=|v_#valid_5|} OutVars{#length=|v_#length_4|, #valid=|v_#valid_5|} AuxVars[] AssignedVars[] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,023 INFO L290 TraceCheckUtils]: 18: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [117] L683-1-->L683-2: Formula: (= (select (select |v_#memory_int_8| |v_~#D~0.base_2|) |v_~#D~0.offset_2|) 0) InVars {#memory_int=|v_#memory_int_8|, ~#D~0.base=|v_~#D~0.base_2|, ~#D~0.offset=|v_~#D~0.offset_2|} OutVars{#memory_int=|v_#memory_int_8|, ~#D~0.base=|v_~#D~0.base_2|, ~#D~0.offset=|v_~#D~0.offset_2|} AuxVars[] AssignedVars[] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,024 INFO L290 TraceCheckUtils]: 19: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [101] L683-2-->L683-3: Formula: (= (select (select |v_#memory_int_9| |v_~#D~0.base_3|) (+ |v_~#D~0.offset_3| 4)) 0) InVars {#memory_int=|v_#memory_int_9|, ~#D~0.base=|v_~#D~0.base_3|, ~#D~0.offset=|v_~#D~0.offset_3|} OutVars{#memory_int=|v_#memory_int_9|, ~#D~0.base=|v_~#D~0.base_3|, ~#D~0.offset=|v_~#D~0.offset_3|} AuxVars[] AssignedVars[] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,024 INFO L290 TraceCheckUtils]: 20: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [122] L683-3-->L683-4: Formula: (= (select (select |v_#memory_int_10| |v_~#D~0.base_4|) (+ |v_~#D~0.offset_4| 8)) 0) InVars {#memory_int=|v_#memory_int_10|, ~#D~0.base=|v_~#D~0.base_4|, ~#D~0.offset=|v_~#D~0.offset_4|} OutVars{#memory_int=|v_#memory_int_10|, ~#D~0.base=|v_~#D~0.base_4|, ~#D~0.offset=|v_~#D~0.offset_4|} AuxVars[] AssignedVars[] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,025 INFO L290 TraceCheckUtils]: 21: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [73] L683-4-->L683-5: Formula: (= (select (select |v_#memory_int_11| |v_~#D~0.base_5|) (+ |v_~#D~0.offset_5| 12)) ~unnamed1~0~PTHREAD_MUTEX_TIMED_NP) InVars {#memory_int=|v_#memory_int_11|, ~#D~0.base=|v_~#D~0.base_5|, ~#D~0.offset=|v_~#D~0.offset_5|} OutVars{#memory_int=|v_#memory_int_11|, ~#D~0.base=|v_~#D~0.base_5|, ~#D~0.offset=|v_~#D~0.offset_5|} AuxVars[] AssignedVars[] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,026 INFO L290 TraceCheckUtils]: 22: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [123] L683-5-->L683-6: Formula: (= (select (select |v_#memory_int_12| |v_~#D~0.base_6|) (+ |v_~#D~0.offset_6| 16)) 0) InVars {#memory_int=|v_#memory_int_12|, ~#D~0.base=|v_~#D~0.base_6|, ~#D~0.offset=|v_~#D~0.offset_6|} OutVars{#memory_int=|v_#memory_int_12|, ~#D~0.base=|v_~#D~0.base_6|, ~#D~0.offset=|v_~#D~0.offset_6|} AuxVars[] AssignedVars[] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,026 INFO L290 TraceCheckUtils]: 23: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [99] L683-6-->L-1-3: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,027 INFO L290 TraceCheckUtils]: 24: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [133] L-1-3-->L-1-4: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,027 INFO L290 TraceCheckUtils]: 25: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [111] L-1-4-->L-1-5: Formula: true InVars {} OutVars{ULTIMATE.start_main_#res#1=|v_ULTIMATE.start_main_#res#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#res#1] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,028 INFO L290 TraceCheckUtils]: 26: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [81] L-1-5-->L693: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet4#1=|v_ULTIMATE.start_main_#t~nondet4#1_1|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_1|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_1|, ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_1|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_1|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet4#1, ULTIMATE.start_main_~#id~0#1.base, ULTIMATE.start_main_#t~nondet5#1, ULTIMATE.start_main_#t~nondet6#1, ULTIMATE.start_main_~#id~0#1.offset, ULTIMATE.start_main_#t~pre3#1] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,029 INFO L290 TraceCheckUtils]: 27: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [120] L693-->L693-1: Formula: (and (not (= |v_ULTIMATE.start_main_~#id~0#1.base_2| 0)) (= (store |v_#length_6| |v_ULTIMATE.start_main_~#id~0#1.base_2| 4) |v_#length_5|) (= |v_#valid_6| (store |v_#valid_7| |v_ULTIMATE.start_main_~#id~0#1.base_2| 1)) (= |v_ULTIMATE.start_main_~#id~0#1.offset_2| 0) (= (select |v_#valid_7| |v_ULTIMATE.start_main_~#id~0#1.base_2|) 0) (< |v_#StackHeapBarrier_2| |v_ULTIMATE.start_main_~#id~0#1.base_2|)) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_6|, #valid=|v_#valid_7|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_5|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_2|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_2|, #valid=|v_#valid_6|} AuxVars[] AssignedVars[ULTIMATE.start_main_~#id~0#1.base, #valid, #length, ULTIMATE.start_main_~#id~0#1.offset] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,029 INFO L290 TraceCheckUtils]: 28: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [75] L693-1-->L694: Formula: (= |v_ULTIMATE.start_main_#t~pre3#1_2| |v_#pthreadsForks_1|) InVars {#pthreadsForks=|v_#pthreadsForks_1|} OutVars{#pthreadsForks=|v_#pthreadsForks_1|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_2|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre3#1] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,030 INFO L290 TraceCheckUtils]: 29: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [85] L694-->L694-1: Formula: (= (+ 1 |v_#pthreadsForks_3|) |v_#pthreadsForks_2|) InVars {#pthreadsForks=|v_#pthreadsForks_3|} OutVars{#pthreadsForks=|v_#pthreadsForks_2|} AuxVars[] AssignedVars[#pthreadsForks] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,031 INFO L290 TraceCheckUtils]: 30: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [107] L694-1-->L694-2: Formula: (= |v_#memory_int_13| (store |v_#memory_int_14| |v_ULTIMATE.start_main_~#id~0#1.base_3| (store (select |v_#memory_int_14| |v_ULTIMATE.start_main_~#id~0#1.base_3|) |v_ULTIMATE.start_main_~#id~0#1.offset_3| |v_ULTIMATE.start_main_#t~pre3#1_3|))) InVars {#memory_int=|v_#memory_int_14|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_3|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_3|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_3|} OutVars{#memory_int=|v_#memory_int_13|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_3|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_3|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_3|} AuxVars[] AssignedVars[#memory_int] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,031 INFO L290 TraceCheckUtils]: 31: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [148] L694-2-->t_funENTRY: Formula: (and (= |v_t_funThread1of1ForFork0_#in~arg.base_4| 0) (= |v_ULTIMATE.start_main_#t~pre3#1_6| v_t_funThread1of1ForFork0_thidvar0_2) (= v_t_funThread1of1ForFork0_thidvar1_2 0) (= |v_t_funThread1of1ForFork0_#in~arg.offset_4| 0)) InVars {ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_6|} OutVars{t_funThread1of1ForFork0_#in~arg.offset=|v_t_funThread1of1ForFork0_#in~arg.offset_4|, t_funThread1of1ForFork0_~arg.offset=v_t_funThread1of1ForFork0_~arg.offset_4, t_funThread1of1ForFork0_#t~nondet1=|v_t_funThread1of1ForFork0_#t~nondet1_6|, t_funThread1of1ForFork0_thidvar1=v_t_funThread1of1ForFork0_thidvar1_2, t_funThread1of1ForFork0_#res.base=|v_t_funThread1of1ForFork0_#res.base_4|, t_funThread1of1ForFork0_#t~nondet2=|v_t_funThread1of1ForFork0_#t~nondet2_6|, t_funThread1of1ForFork0_#in~arg.base=|v_t_funThread1of1ForFork0_#in~arg.base_4|, t_funThread1of1ForFork0_~arg.base=v_t_funThread1of1ForFork0_~arg.base_4, t_funThread1of1ForFork0_thidvar0=v_t_funThread1of1ForFork0_thidvar0_2, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_6|, t_funThread1of1ForFork0_#res.offset=|v_t_funThread1of1ForFork0_#res.offset_4|} AuxVars[] AssignedVars[t_funThread1of1ForFork0_#in~arg.offset, t_funThread1of1ForFork0_~arg.offset, t_funThread1of1ForFork0_#t~nondet1, t_funThread1of1ForFork0_thidvar1, t_funThread1of1ForFork0_#res.base, t_funThread1of1ForFork0_#t~nondet2, t_funThread1of1ForFork0_#in~arg.base, t_funThread1of1ForFork0_~arg.base, t_funThread1of1ForFork0_thidvar0, t_funThread1of1ForFork0_#res.offset] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,032 INFO L290 TraceCheckUtils]: 32: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [137] t_funENTRY-->L685: Formula: (and (= |v_t_funThread1of1ForFork0_#in~arg.base_1| v_t_funThread1of1ForFork0_~arg.base_1) (= v_t_funThread1of1ForFork0_~arg.offset_1 |v_t_funThread1of1ForFork0_#in~arg.offset_1|)) InVars {t_funThread1of1ForFork0_#in~arg.base=|v_t_funThread1of1ForFork0_#in~arg.base_1|, t_funThread1of1ForFork0_#in~arg.offset=|v_t_funThread1of1ForFork0_#in~arg.offset_1|} OutVars{t_funThread1of1ForFork0_#in~arg.base=|v_t_funThread1of1ForFork0_#in~arg.base_1|, t_funThread1of1ForFork0_#in~arg.offset=|v_t_funThread1of1ForFork0_#in~arg.offset_1|, t_funThread1of1ForFork0_~arg.base=v_t_funThread1of1ForFork0_~arg.base_1, t_funThread1of1ForFork0_~arg.offset=v_t_funThread1of1ForFork0_~arg.offset_1} AuxVars[] AssignedVars[t_funThread1of1ForFork0_~arg.offset, t_funThread1of1ForFork0_~arg.base] {249#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,033 INFO L290 TraceCheckUtils]: 33: Hoare triple {249#(not (= |~#A~0.base| |~#D~0.base|))} [138] L685-->L685-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_14| |v_~#D~0.base_10|))) (and (= (select .cse0 |v_~#D~0.offset_10|) 0) (= |v_t_funThread1of1ForFork0_#t~nondet1_1| 0) (= |v_#pthreadsMutex_13| (store |v_#pthreadsMutex_14| |v_~#D~0.base_10| (store .cse0 |v_~#D~0.offset_10| 1))))) InVars {#pthreadsMutex=|v_#pthreadsMutex_14|, ~#D~0.base=|v_~#D~0.base_10|, ~#D~0.offset=|v_~#D~0.offset_10|} OutVars{t_funThread1of1ForFork0_#t~nondet1=|v_t_funThread1of1ForFork0_#t~nondet1_1|, #pthreadsMutex=|v_#pthreadsMutex_13|, ~#D~0.base=|v_~#D~0.base_10|, ~#D~0.offset=|v_~#D~0.offset_10|} AuxVars[] AssignedVars[#pthreadsMutex, t_funThread1of1ForFork0_#t~nondet1] {250#(and (= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} is VALID [2022-02-20 20:40:52,033 INFO L290 TraceCheckUtils]: 34: Hoare triple {250#(and (= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} [139] L685-1-->L686: Formula: true InVars {} OutVars{t_funThread1of1ForFork0_#t~nondet1=|v_t_funThread1of1ForFork0_#t~nondet1_3|} AuxVars[] AssignedVars[t_funThread1of1ForFork0_#t~nondet1] {250#(and (= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} is VALID [2022-02-20 20:40:52,036 INFO L290 TraceCheckUtils]: 35: Hoare triple {250#(and (= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} [140] L686-->L686-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_8| |v_~#A~0.base_8|))) (and (= |v_t_funThread1of1ForFork0_#t~nondet2_1| 0) (= |v_#pthreadsMutex_7| (store |v_#pthreadsMutex_8| |v_~#A~0.base_8| (store .cse0 |v_~#A~0.offset_8| 1))) (= (select .cse0 |v_~#A~0.offset_8|) 0))) InVars {#pthreadsMutex=|v_#pthreadsMutex_8|, ~#A~0.offset=|v_~#A~0.offset_8|, ~#A~0.base=|v_~#A~0.base_8|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_7|, t_funThread1of1ForFork0_#t~nondet2=|v_t_funThread1of1ForFork0_#t~nondet2_1|, ~#A~0.offset=|v_~#A~0.offset_8|, ~#A~0.base=|v_~#A~0.base_8|} AuxVars[] AssignedVars[#pthreadsMutex, t_funThread1of1ForFork0_#t~nondet2] {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} is VALID [2022-02-20 20:40:52,037 INFO L290 TraceCheckUtils]: 36: Hoare triple {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} [141] L686-1-->L687: Formula: true InVars {} OutVars{t_funThread1of1ForFork0_#t~nondet2=|v_t_funThread1of1ForFork0_#t~nondet2_3|} AuxVars[] AssignedVars[t_funThread1of1ForFork0_#t~nondet2] {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} is VALID [2022-02-20 20:40:52,037 INFO L290 TraceCheckUtils]: 37: Hoare triple {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} [142] L687-->L688: Formula: (= 17 v_~g~0_3) InVars {} OutVars{~g~0=v_~g~0_3} AuxVars[] AssignedVars[~g~0] {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} is VALID [2022-02-20 20:40:52,038 INFO L290 TraceCheckUtils]: 38: Hoare triple {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} [80] L694-3-->L694-4: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_4|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre3#1] {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} is VALID [2022-02-20 20:40:52,038 INFO L290 TraceCheckUtils]: 39: Hoare triple {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} [84] L694-4-->L695: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet4#1=|v_ULTIMATE.start_main_#t~nondet4#1_2|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet4#1] {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} is VALID [2022-02-20 20:40:52,039 INFO L290 TraceCheckUtils]: 40: Hoare triple {251#(= (select (select |#pthreadsMutex| |~#D~0.base|) |~#D~0.offset|) 1)} [131] L695-->L695-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_2| |v_~#D~0.base_7|))) (and (= (select .cse0 |v_~#D~0.offset_7|) 0) (= |v_ULTIMATE.start_main_#t~nondet5#1_2| 0) (= |v_#pthreadsMutex_1| (store |v_#pthreadsMutex_2| |v_~#D~0.base_7| (store .cse0 |v_~#D~0.offset_7| 1))))) InVars {#pthreadsMutex=|v_#pthreadsMutex_2|, ~#D~0.base=|v_~#D~0.base_7|, ~#D~0.offset=|v_~#D~0.offset_7|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_1|, ~#D~0.base=|v_~#D~0.base_7|, ~#D~0.offset=|v_~#D~0.offset_7|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_2|} AuxVars[] AssignedVars[#pthreadsMutex, ULTIMATE.start_main_#t~nondet5#1] {247#false} is VALID [2022-02-20 20:40:52,039 INFO L290 TraceCheckUtils]: 41: Hoare triple {247#false} [102] L695-1-->L696: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet5#1] {247#false} is VALID [2022-02-20 20:40:52,040 INFO L290 TraceCheckUtils]: 42: Hoare triple {247#false} [114] L696-->L696-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_4| |v_~#A~0.base_7|))) (and (= (select .cse0 |v_~#A~0.offset_7|) 0) (= |v_ULTIMATE.start_main_#t~nondet6#1_2| 0) (= |v_#pthreadsMutex_3| (store |v_#pthreadsMutex_4| |v_~#A~0.base_7| (store .cse0 |v_~#A~0.offset_7| 1))))) InVars {#pthreadsMutex=|v_#pthreadsMutex_4|, ~#A~0.offset=|v_~#A~0.offset_7|, ~#A~0.base=|v_~#A~0.base_7|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_3|, ~#A~0.offset=|v_~#A~0.offset_7|, ~#A~0.base=|v_~#A~0.base_7|, ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_2|} AuxVars[] AssignedVars[#pthreadsMutex, ULTIMATE.start_main_#t~nondet6#1] {247#false} is VALID [2022-02-20 20:40:52,040 INFO L290 TraceCheckUtils]: 43: Hoare triple {247#false} [100] L696-1-->L697: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet6#1] {247#false} is VALID [2022-02-20 20:40:52,040 INFO L290 TraceCheckUtils]: 44: Hoare triple {247#false} [94] L697-->L698: Formula: (= |v_#pthreadsMutex_5| (store |v_#pthreadsMutex_6| |v_~#D~0.base_8| (store (select |v_#pthreadsMutex_6| |v_~#D~0.base_8|) |v_~#D~0.offset_8| 0))) InVars {#pthreadsMutex=|v_#pthreadsMutex_6|, ~#D~0.base=|v_~#D~0.base_8|, ~#D~0.offset=|v_~#D~0.offset_8|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_5|, ~#D~0.base=|v_~#D~0.base_8|, ~#D~0.offset=|v_~#D~0.offset_8|} AuxVars[] AssignedVars[#pthreadsMutex] {247#false} is VALID [2022-02-20 20:40:52,041 INFO L290 TraceCheckUtils]: 45: Hoare triple {247#false} [92] L698-->L698-1: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {247#false} is VALID [2022-02-20 20:40:52,041 INFO L290 TraceCheckUtils]: 46: Hoare triple {247#false} [91] L698-1-->L698-2: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_1| (ite (= v_~g~0_2 0) 1 0)) InVars {~g~0=v_~g~0_2} OutVars{ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_1|, ~g~0=v_~g~0_2} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_#in~cond#1] {247#false} is VALID [2022-02-20 20:40:52,041 INFO L290 TraceCheckUtils]: 47: Hoare triple {247#false} [116] L698-2-->L19: Formula: true InVars {} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_1|} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_~cond#1] {247#false} is VALID [2022-02-20 20:40:52,041 INFO L290 TraceCheckUtils]: 48: Hoare triple {247#false} [93] L19-->L19-1: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_~cond#1_2| |v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|) InVars {ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_2|, ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_~cond#1] {247#false} is VALID [2022-02-20 20:40:52,041 INFO L290 TraceCheckUtils]: 49: Hoare triple {247#false} [86] L19-1-->L19-2: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_~cond#1_3| 0) InVars {ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_3|} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_3|} AuxVars[] AssignedVars[] {247#false} is VALID [2022-02-20 20:40:52,042 INFO L290 TraceCheckUtils]: 50: Hoare triple {247#false} [96] L19-2-->ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {247#false} is VALID [2022-02-20 20:40:52,043 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 20:40:52,043 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 20:40:52,044 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [820507539] [2022-02-20 20:40:52,044 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [820507539] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 20:40:52,044 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 20:40:52,044 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-02-20 20:40:52,044 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1858986599] [2022-02-20 20:40:52,045 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 20:40:52,047 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 8.5) internal successors, (51), 6 states have internal predecessors, (51), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Word has length 51 [2022-02-20 20:40:52,049 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 20:40:52,051 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 6 states, 6 states have (on average 8.5) internal successors, (51), 6 states have internal predecessors, (51), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,102 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 20:40:52,103 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-02-20 20:40:52,103 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 20:40:52,103 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-02-20 20:40:52,104 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2022-02-20 20:40:52,106 INFO L499 CegarLoopForPetriNet]: Number of universal loopers: 44 out of 66 [2022-02-20 20:40:52,107 INFO L92 encePairwiseOnDemand]: Start differencePairwiseOnDemand. First operand has 69 places, 55 transitions, 128 flow. Second operand has 6 states, 6 states have (on average 47.0) internal successors, (282), 6 states have internal predecessors, (282), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,107 INFO L101 encePairwiseOnDemand]: Universal subtrahend loopers provided by user. [2022-02-20 20:40:52,109 INFO L102 encePairwiseOnDemand]: Number of universal subtrahend loopers: 44 of 66 [2022-02-20 20:40:52,109 INFO L74 FinitePrefix]: Start finitePrefix. Operand will be constructed on-demand [2022-02-20 20:40:52,263 INFO L129 PetriNetUnfolder]: 1/69 cut-off events. [2022-02-20 20:40:52,263 INFO L130 PetriNetUnfolder]: For 3/3 co-relation queries the response was YES. [2022-02-20 20:40:52,264 INFO L84 FinitePrefix]: Finished finitePrefix Result has 116 conditions, 69 events. 1/69 cut-off events. For 3/3 co-relation queries the response was YES. Maximal size of possible extension queue 3. Compared 43 event pairs, 1 based on Foata normal form. 5/74 useless extension candidates. Maximal degree in co-relation 104. Up to 11 conditions per place. [2022-02-20 20:40:52,265 INFO L132 encePairwiseOnDemand]: 60/66 looper letters, 14 selfloop transitions, 6 changer transitions 0/55 dead transitions. [2022-02-20 20:40:52,265 INFO L138 encePairwiseOnDemand]: Finished differencePairwiseOnDemand. Result has 69 places, 55 transitions, 168 flow [2022-02-20 20:40:52,265 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-02-20 20:40:52,265 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2022-02-20 20:40:52,274 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 242 transitions. [2022-02-20 20:40:52,274 INFO L544 CegarLoopForPetriNet]: DFA transition density 0.7333333333333333 [2022-02-20 20:40:52,274 INFO L72 ComplementDD]: Start complementDD. Operand 5 states and 242 transitions. [2022-02-20 20:40:52,274 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5 states and 242 transitions. [2022-02-20 20:40:52,275 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2022-02-20 20:40:52,275 INFO L117 ReachableStatesCopy]: Start reachableStatesCopy. Operand 5 states and 242 transitions. [2022-02-20 20:40:52,277 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends has 6 states, 5 states have (on average 48.4) internal successors, (242), 5 states have internal predecessors, (242), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,279 INFO L131 ReachableStatesCopy]: Finished reachableStatesCopy Result has 6 states, 6 states have (on average 66.0) internal successors, (396), 6 states have internal predecessors, (396), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,280 INFO L81 ComplementDD]: Finished complementDD. Result has 6 states, 6 states have (on average 66.0) internal successors, (396), 6 states have internal predecessors, (396), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,280 INFO L186 Difference]: Start difference. First operand has 69 places, 55 transitions, 128 flow. Second operand 5 states and 242 transitions. [2022-02-20 20:40:52,280 INFO L82 GeneralOperation]: Start removeRedundantFlow. Operand has 69 places, 55 transitions, 168 flow [2022-02-20 20:40:52,324 INFO L88 GeneralOperation]: Finished removeRedundantFlow, result has has 63 places, 55 transitions, 156 flow, removed 4 selfloop flow, removed 6 redundant places. [2022-02-20 20:40:52,327 INFO L242 Difference]: Finished difference. Result has 63 places, 55 transitions, 128 flow [2022-02-20 20:40:52,327 INFO L317 CegarLoopForPetriNet]: {PETRI_ALPHABET=66, PETRI_DIFFERENCE_MINUEND_FLOW=116, PETRI_DIFFERENCE_MINUEND_PLACES=59, PETRI_DIFFERENCE_MINUEND_TRANSITIONS=55, PETRI_DIFFERENCE_SUBTRAHEND_LETTERS_WITH_MORE_CHANGERS_THAN_LOOPERS=6, PETRI_DIFFERENCE_SUBTRAHEND_LOOPER_ONLY_LETTERS=49, PETRI_DIFFERENCE_SUBTRAHEND_STATES=5, PETRI_FLOW=128, PETRI_PLACES=63, PETRI_TRANSITIONS=55} [2022-02-20 20:40:52,328 INFO L334 CegarLoopForPetriNet]: 59 programPoint places, 4 predicate places. [2022-02-20 20:40:52,328 INFO L111 iNet2FiniteAutomaton]: Start petriNet2FiniteAutomaton. Operand has 63 places, 55 transitions, 128 flow [2022-02-20 20:40:52,345 INFO L133 iNet2FiniteAutomaton]: Finished petriNet2FiniteAutomaton. Result has 132 states, 131 states have (on average 1.5038167938931297) internal successors, (197), 131 states have internal predecessors, (197), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,347 INFO L78 Accepts]: Start accepts. Automaton has has 132 states, 131 states have (on average 1.5038167938931297) internal successors, (197), 131 states have internal predecessors, (197), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Word has length 51 [2022-02-20 20:40:52,347 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 20:40:52,347 INFO L470 AbstractCegarLoop]: Abstraction has has 63 places, 55 transitions, 128 flow [2022-02-20 20:40:52,348 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 6 states have (on average 47.0) internal successors, (282), 6 states have internal predecessors, (282), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,348 INFO L246 CegarLoopForPetriNet]: Found error trace [2022-02-20 20:40:52,349 INFO L254 CegarLoopForPetriNet]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 20:40:52,349 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2022-02-20 20:40:52,349 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0INUSE_VIOLATION] === [2022-02-20 20:40:52,353 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 20:40:52,354 INFO L85 PathProgramCache]: Analyzing trace with hash -144193612, now seen corresponding path program 2 times [2022-02-20 20:40:52,354 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 20:40:52,354 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1414575889] [2022-02-20 20:40:52,354 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 20:40:52,355 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 20:40:52,395 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 20:40:52,514 INFO L290 TraceCheckUtils]: 0: Hoare triple {390#true} [118] ULTIMATE.startENTRY-->L-1: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {390#true} is VALID [2022-02-20 20:40:52,515 INFO L290 TraceCheckUtils]: 1: Hoare triple {390#true} [103] L-1-->L-1-1: Formula: (and (= |v_#NULL.base_1| 0) (= |v_#NULL.offset_1| 0)) InVars {} OutVars{#NULL.offset=|v_#NULL.offset_1|, #NULL.base=|v_#NULL.base_1|} AuxVars[] AssignedVars[#NULL.offset, #NULL.base] {390#true} is VALID [2022-02-20 20:40:52,515 INFO L290 TraceCheckUtils]: 2: Hoare triple {390#true} [126] L-1-1-->L-1-2: Formula: (= (select |v_#valid_1| 0) 0) InVars {#valid=|v_#valid_1|} OutVars{#valid=|v_#valid_1|} AuxVars[] AssignedVars[] {390#true} is VALID [2022-02-20 20:40:52,515 INFO L290 TraceCheckUtils]: 3: Hoare triple {390#true} [130] L-1-2-->L18: Formula: (< 0 |v_#StackHeapBarrier_1|) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_1|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_1|} AuxVars[] AssignedVars[] {390#true} is VALID [2022-02-20 20:40:52,515 INFO L290 TraceCheckUtils]: 4: Hoare triple {390#true} [89] L18-->L18-1: Formula: (and (= (select |v_#valid_2| 1) 1) (= 2 (select |v_#length_1| 1))) InVars {#length=|v_#length_1|, #valid=|v_#valid_2|} OutVars{#length=|v_#length_1|, #valid=|v_#valid_2|} AuxVars[] AssignedVars[] {390#true} is VALID [2022-02-20 20:40:52,516 INFO L290 TraceCheckUtils]: 5: Hoare triple {390#true} [119] L18-1-->L18-2: Formula: (= 48 (select (select |v_#memory_int_1| 1) 0)) InVars {#memory_int=|v_#memory_int_1|} OutVars{#memory_int=|v_#memory_int_1|} AuxVars[] AssignedVars[] {390#true} is VALID [2022-02-20 20:40:52,516 INFO L290 TraceCheckUtils]: 6: Hoare triple {390#true} [109] L18-2-->L18-3: Formula: (= (select (select |v_#memory_int_2| 1) 1) 0) InVars {#memory_int=|v_#memory_int_2|} OutVars{#memory_int=|v_#memory_int_2|} AuxVars[] AssignedVars[] {390#true} is VALID [2022-02-20 20:40:52,516 INFO L290 TraceCheckUtils]: 7: Hoare triple {390#true} [112] L18-3-->L18-4: Formula: (and (= 45 (select |v_#length_2| 2)) (= (select |v_#valid_3| 2) 1)) InVars {#length=|v_#length_2|, #valid=|v_#valid_3|} OutVars{#length=|v_#length_2|, #valid=|v_#valid_3|} AuxVars[] AssignedVars[] {390#true} is VALID [2022-02-20 20:40:52,516 INFO L290 TraceCheckUtils]: 8: Hoare triple {390#true} [113] L18-4-->L682: Formula: (= v_~g~0_1 0) InVars {} OutVars{~g~0=v_~g~0_1} AuxVars[] AssignedVars[~g~0] {390#true} is VALID [2022-02-20 20:40:52,517 INFO L290 TraceCheckUtils]: 9: Hoare triple {390#true} [74] L682-->L682-1: Formula: (and (= |v_~#A~0.offset_1| 0) (= 3 |v_~#A~0.base_1|)) InVars {} OutVars{~#A~0.offset=|v_~#A~0.offset_1|, ~#A~0.base=|v_~#A~0.base_1|} AuxVars[] AssignedVars[~#A~0.offset, ~#A~0.base] {392#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,517 INFO L290 TraceCheckUtils]: 10: Hoare triple {392#(<= |~#A~0.base| 3)} [90] L682-1-->L682-2: Formula: (and (= (select |v_#length_3| 3) 24) (= (select |v_#valid_4| 3) 1)) InVars {#length=|v_#length_3|, #valid=|v_#valid_4|} OutVars{#length=|v_#length_3|, #valid=|v_#valid_4|} AuxVars[] AssignedVars[] {392#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,518 INFO L290 TraceCheckUtils]: 11: Hoare triple {392#(<= |~#A~0.base| 3)} [76] L682-2-->L682-3: Formula: (= (select (select |v_#memory_int_3| |v_~#A~0.base_2|) |v_~#A~0.offset_2|) 0) InVars {#memory_int=|v_#memory_int_3|, ~#A~0.offset=|v_~#A~0.offset_2|, ~#A~0.base=|v_~#A~0.base_2|} OutVars{#memory_int=|v_#memory_int_3|, ~#A~0.offset=|v_~#A~0.offset_2|, ~#A~0.base=|v_~#A~0.base_2|} AuxVars[] AssignedVars[] {392#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,518 INFO L290 TraceCheckUtils]: 12: Hoare triple {392#(<= |~#A~0.base| 3)} [129] L682-3-->L682-4: Formula: (= (select (select |v_#memory_int_4| |v_~#A~0.base_3|) (+ |v_~#A~0.offset_3| 4)) 0) InVars {#memory_int=|v_#memory_int_4|, ~#A~0.offset=|v_~#A~0.offset_3|, ~#A~0.base=|v_~#A~0.base_3|} OutVars{#memory_int=|v_#memory_int_4|, ~#A~0.offset=|v_~#A~0.offset_3|, ~#A~0.base=|v_~#A~0.base_3|} AuxVars[] AssignedVars[] {392#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,519 INFO L290 TraceCheckUtils]: 13: Hoare triple {392#(<= |~#A~0.base| 3)} [98] L682-4-->L682-5: Formula: (= (select (select |v_#memory_int_5| |v_~#A~0.base_4|) (+ |v_~#A~0.offset_4| 8)) 0) InVars {#memory_int=|v_#memory_int_5|, ~#A~0.offset=|v_~#A~0.offset_4|, ~#A~0.base=|v_~#A~0.base_4|} OutVars{#memory_int=|v_#memory_int_5|, ~#A~0.offset=|v_~#A~0.offset_4|, ~#A~0.base=|v_~#A~0.base_4|} AuxVars[] AssignedVars[] {392#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,519 INFO L290 TraceCheckUtils]: 14: Hoare triple {392#(<= |~#A~0.base| 3)} [134] L682-5-->L682-6: Formula: (= (select (select |v_#memory_int_6| |v_~#A~0.base_5|) (+ |v_~#A~0.offset_5| 12)) ~unnamed1~0~PTHREAD_MUTEX_TIMED_NP) InVars {#memory_int=|v_#memory_int_6|, ~#A~0.offset=|v_~#A~0.offset_5|, ~#A~0.base=|v_~#A~0.base_5|} OutVars{#memory_int=|v_#memory_int_6|, ~#A~0.offset=|v_~#A~0.offset_5|, ~#A~0.base=|v_~#A~0.base_5|} AuxVars[] AssignedVars[] {392#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,520 INFO L290 TraceCheckUtils]: 15: Hoare triple {392#(<= |~#A~0.base| 3)} [82] L682-6-->L682-7: Formula: (= (select (select |v_#memory_int_7| |v_~#A~0.base_6|) (+ |v_~#A~0.offset_6| 16)) 0) InVars {#memory_int=|v_#memory_int_7|, ~#A~0.offset=|v_~#A~0.offset_6|, ~#A~0.base=|v_~#A~0.base_6|} OutVars{#memory_int=|v_#memory_int_7|, ~#A~0.offset=|v_~#A~0.offset_6|, ~#A~0.base=|v_~#A~0.base_6|} AuxVars[] AssignedVars[] {392#(<= |~#A~0.base| 3)} is VALID [2022-02-20 20:40:52,520 INFO L290 TraceCheckUtils]: 16: Hoare triple {392#(<= |~#A~0.base| 3)} [121] L682-7-->L683: Formula: (and (= |v_~#D~0.offset_1| 0) (= |v_~#D~0.base_1| 4)) InVars {} OutVars{~#D~0.offset=|v_~#D~0.offset_1|, ~#D~0.base=|v_~#D~0.base_1|} AuxVars[] AssignedVars[~#D~0.base, ~#D~0.offset] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,521 INFO L290 TraceCheckUtils]: 17: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [77] L683-->L683-1: Formula: (and (= (select |v_#length_4| 4) 24) (= (select |v_#valid_5| 4) 1)) InVars {#length=|v_#length_4|, #valid=|v_#valid_5|} OutVars{#length=|v_#length_4|, #valid=|v_#valid_5|} AuxVars[] AssignedVars[] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,521 INFO L290 TraceCheckUtils]: 18: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [117] L683-1-->L683-2: Formula: (= (select (select |v_#memory_int_8| |v_~#D~0.base_2|) |v_~#D~0.offset_2|) 0) InVars {#memory_int=|v_#memory_int_8|, ~#D~0.base=|v_~#D~0.base_2|, ~#D~0.offset=|v_~#D~0.offset_2|} OutVars{#memory_int=|v_#memory_int_8|, ~#D~0.base=|v_~#D~0.base_2|, ~#D~0.offset=|v_~#D~0.offset_2|} AuxVars[] AssignedVars[] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,522 INFO L290 TraceCheckUtils]: 19: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [101] L683-2-->L683-3: Formula: (= (select (select |v_#memory_int_9| |v_~#D~0.base_3|) (+ |v_~#D~0.offset_3| 4)) 0) InVars {#memory_int=|v_#memory_int_9|, ~#D~0.base=|v_~#D~0.base_3|, ~#D~0.offset=|v_~#D~0.offset_3|} OutVars{#memory_int=|v_#memory_int_9|, ~#D~0.base=|v_~#D~0.base_3|, ~#D~0.offset=|v_~#D~0.offset_3|} AuxVars[] AssignedVars[] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,522 INFO L290 TraceCheckUtils]: 20: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [122] L683-3-->L683-4: Formula: (= (select (select |v_#memory_int_10| |v_~#D~0.base_4|) (+ |v_~#D~0.offset_4| 8)) 0) InVars {#memory_int=|v_#memory_int_10|, ~#D~0.base=|v_~#D~0.base_4|, ~#D~0.offset=|v_~#D~0.offset_4|} OutVars{#memory_int=|v_#memory_int_10|, ~#D~0.base=|v_~#D~0.base_4|, ~#D~0.offset=|v_~#D~0.offset_4|} AuxVars[] AssignedVars[] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,523 INFO L290 TraceCheckUtils]: 21: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [73] L683-4-->L683-5: Formula: (= (select (select |v_#memory_int_11| |v_~#D~0.base_5|) (+ |v_~#D~0.offset_5| 12)) ~unnamed1~0~PTHREAD_MUTEX_TIMED_NP) InVars {#memory_int=|v_#memory_int_11|, ~#D~0.base=|v_~#D~0.base_5|, ~#D~0.offset=|v_~#D~0.offset_5|} OutVars{#memory_int=|v_#memory_int_11|, ~#D~0.base=|v_~#D~0.base_5|, ~#D~0.offset=|v_~#D~0.offset_5|} AuxVars[] AssignedVars[] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,524 INFO L290 TraceCheckUtils]: 22: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [123] L683-5-->L683-6: Formula: (= (select (select |v_#memory_int_12| |v_~#D~0.base_6|) (+ |v_~#D~0.offset_6| 16)) 0) InVars {#memory_int=|v_#memory_int_12|, ~#D~0.base=|v_~#D~0.base_6|, ~#D~0.offset=|v_~#D~0.offset_6|} OutVars{#memory_int=|v_#memory_int_12|, ~#D~0.base=|v_~#D~0.base_6|, ~#D~0.offset=|v_~#D~0.offset_6|} AuxVars[] AssignedVars[] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,524 INFO L290 TraceCheckUtils]: 23: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [99] L683-6-->L-1-3: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,524 INFO L290 TraceCheckUtils]: 24: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [133] L-1-3-->L-1-4: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,525 INFO L290 TraceCheckUtils]: 25: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [111] L-1-4-->L-1-5: Formula: true InVars {} OutVars{ULTIMATE.start_main_#res#1=|v_ULTIMATE.start_main_#res#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#res#1] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,525 INFO L290 TraceCheckUtils]: 26: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [81] L-1-5-->L693: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet4#1=|v_ULTIMATE.start_main_#t~nondet4#1_1|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_1|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_1|, ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_1|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_1|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet4#1, ULTIMATE.start_main_~#id~0#1.base, ULTIMATE.start_main_#t~nondet5#1, ULTIMATE.start_main_#t~nondet6#1, ULTIMATE.start_main_~#id~0#1.offset, ULTIMATE.start_main_#t~pre3#1] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,526 INFO L290 TraceCheckUtils]: 27: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [120] L693-->L693-1: Formula: (and (not (= |v_ULTIMATE.start_main_~#id~0#1.base_2| 0)) (= (store |v_#length_6| |v_ULTIMATE.start_main_~#id~0#1.base_2| 4) |v_#length_5|) (= |v_#valid_6| (store |v_#valid_7| |v_ULTIMATE.start_main_~#id~0#1.base_2| 1)) (= |v_ULTIMATE.start_main_~#id~0#1.offset_2| 0) (= (select |v_#valid_7| |v_ULTIMATE.start_main_~#id~0#1.base_2|) 0) (< |v_#StackHeapBarrier_2| |v_ULTIMATE.start_main_~#id~0#1.base_2|)) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_6|, #valid=|v_#valid_7|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_5|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_2|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_2|, #valid=|v_#valid_6|} AuxVars[] AssignedVars[ULTIMATE.start_main_~#id~0#1.base, #valid, #length, ULTIMATE.start_main_~#id~0#1.offset] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,527 INFO L290 TraceCheckUtils]: 28: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [75] L693-1-->L694: Formula: (= |v_ULTIMATE.start_main_#t~pre3#1_2| |v_#pthreadsForks_1|) InVars {#pthreadsForks=|v_#pthreadsForks_1|} OutVars{#pthreadsForks=|v_#pthreadsForks_1|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_2|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre3#1] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,527 INFO L290 TraceCheckUtils]: 29: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [85] L694-->L694-1: Formula: (= (+ 1 |v_#pthreadsForks_3|) |v_#pthreadsForks_2|) InVars {#pthreadsForks=|v_#pthreadsForks_3|} OutVars{#pthreadsForks=|v_#pthreadsForks_2|} AuxVars[] AssignedVars[#pthreadsForks] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,528 INFO L290 TraceCheckUtils]: 30: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [107] L694-1-->L694-2: Formula: (= |v_#memory_int_13| (store |v_#memory_int_14| |v_ULTIMATE.start_main_~#id~0#1.base_3| (store (select |v_#memory_int_14| |v_ULTIMATE.start_main_~#id~0#1.base_3|) |v_ULTIMATE.start_main_~#id~0#1.offset_3| |v_ULTIMATE.start_main_#t~pre3#1_3|))) InVars {#memory_int=|v_#memory_int_14|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_3|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_3|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_3|} OutVars{#memory_int=|v_#memory_int_13|, ULTIMATE.start_main_~#id~0#1.base=|v_ULTIMATE.start_main_~#id~0#1.base_3|, ULTIMATE.start_main_~#id~0#1.offset=|v_ULTIMATE.start_main_~#id~0#1.offset_3|, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_3|} AuxVars[] AssignedVars[#memory_int] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,528 INFO L290 TraceCheckUtils]: 31: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [148] L694-2-->t_funENTRY: Formula: (and (= |v_t_funThread1of1ForFork0_#in~arg.base_4| 0) (= |v_ULTIMATE.start_main_#t~pre3#1_6| v_t_funThread1of1ForFork0_thidvar0_2) (= v_t_funThread1of1ForFork0_thidvar1_2 0) (= |v_t_funThread1of1ForFork0_#in~arg.offset_4| 0)) InVars {ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_6|} OutVars{t_funThread1of1ForFork0_#in~arg.offset=|v_t_funThread1of1ForFork0_#in~arg.offset_4|, t_funThread1of1ForFork0_~arg.offset=v_t_funThread1of1ForFork0_~arg.offset_4, t_funThread1of1ForFork0_#t~nondet1=|v_t_funThread1of1ForFork0_#t~nondet1_6|, t_funThread1of1ForFork0_thidvar1=v_t_funThread1of1ForFork0_thidvar1_2, t_funThread1of1ForFork0_#res.base=|v_t_funThread1of1ForFork0_#res.base_4|, t_funThread1of1ForFork0_#t~nondet2=|v_t_funThread1of1ForFork0_#t~nondet2_6|, t_funThread1of1ForFork0_#in~arg.base=|v_t_funThread1of1ForFork0_#in~arg.base_4|, t_funThread1of1ForFork0_~arg.base=v_t_funThread1of1ForFork0_~arg.base_4, t_funThread1of1ForFork0_thidvar0=v_t_funThread1of1ForFork0_thidvar0_2, ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_6|, t_funThread1of1ForFork0_#res.offset=|v_t_funThread1of1ForFork0_#res.offset_4|} AuxVars[] AssignedVars[t_funThread1of1ForFork0_#in~arg.offset, t_funThread1of1ForFork0_~arg.offset, t_funThread1of1ForFork0_#t~nondet1, t_funThread1of1ForFork0_thidvar1, t_funThread1of1ForFork0_#res.base, t_funThread1of1ForFork0_#t~nondet2, t_funThread1of1ForFork0_#in~arg.base, t_funThread1of1ForFork0_~arg.base, t_funThread1of1ForFork0_thidvar0, t_funThread1of1ForFork0_#res.offset] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,529 INFO L290 TraceCheckUtils]: 32: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [137] t_funENTRY-->L685: Formula: (and (= |v_t_funThread1of1ForFork0_#in~arg.base_1| v_t_funThread1of1ForFork0_~arg.base_1) (= v_t_funThread1of1ForFork0_~arg.offset_1 |v_t_funThread1of1ForFork0_#in~arg.offset_1|)) InVars {t_funThread1of1ForFork0_#in~arg.base=|v_t_funThread1of1ForFork0_#in~arg.base_1|, t_funThread1of1ForFork0_#in~arg.offset=|v_t_funThread1of1ForFork0_#in~arg.offset_1|} OutVars{t_funThread1of1ForFork0_#in~arg.base=|v_t_funThread1of1ForFork0_#in~arg.base_1|, t_funThread1of1ForFork0_#in~arg.offset=|v_t_funThread1of1ForFork0_#in~arg.offset_1|, t_funThread1of1ForFork0_~arg.base=v_t_funThread1of1ForFork0_~arg.base_1, t_funThread1of1ForFork0_~arg.offset=v_t_funThread1of1ForFork0_~arg.offset_1} AuxVars[] AssignedVars[t_funThread1of1ForFork0_~arg.offset, t_funThread1of1ForFork0_~arg.base] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,529 INFO L290 TraceCheckUtils]: 33: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [80] L694-3-->L694-4: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre3#1=|v_ULTIMATE.start_main_#t~pre3#1_4|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre3#1] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,530 INFO L290 TraceCheckUtils]: 34: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [84] L694-4-->L695: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet4#1=|v_ULTIMATE.start_main_#t~nondet4#1_2|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet4#1] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,530 INFO L290 TraceCheckUtils]: 35: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [131] L695-->L695-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_2| |v_~#D~0.base_7|))) (and (= (select .cse0 |v_~#D~0.offset_7|) 0) (= |v_ULTIMATE.start_main_#t~nondet5#1_2| 0) (= |v_#pthreadsMutex_1| (store |v_#pthreadsMutex_2| |v_~#D~0.base_7| (store .cse0 |v_~#D~0.offset_7| 1))))) InVars {#pthreadsMutex=|v_#pthreadsMutex_2|, ~#D~0.base=|v_~#D~0.base_7|, ~#D~0.offset=|v_~#D~0.offset_7|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_1|, ~#D~0.base=|v_~#D~0.base_7|, ~#D~0.offset=|v_~#D~0.offset_7|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_2|} AuxVars[] AssignedVars[#pthreadsMutex, ULTIMATE.start_main_#t~nondet5#1] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,531 INFO L290 TraceCheckUtils]: 36: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [102] L695-1-->L696: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet5#1] {393#(not (= |~#A~0.base| |~#D~0.base|))} is VALID [2022-02-20 20:40:52,532 INFO L290 TraceCheckUtils]: 37: Hoare triple {393#(not (= |~#A~0.base| |~#D~0.base|))} [114] L696-->L696-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_4| |v_~#A~0.base_7|))) (and (= (select .cse0 |v_~#A~0.offset_7|) 0) (= |v_ULTIMATE.start_main_#t~nondet6#1_2| 0) (= |v_#pthreadsMutex_3| (store |v_#pthreadsMutex_4| |v_~#A~0.base_7| (store .cse0 |v_~#A~0.offset_7| 1))))) InVars {#pthreadsMutex=|v_#pthreadsMutex_4|, ~#A~0.offset=|v_~#A~0.offset_7|, ~#A~0.base=|v_~#A~0.base_7|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_3|, ~#A~0.offset=|v_~#A~0.offset_7|, ~#A~0.base=|v_~#A~0.base_7|, ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_2|} AuxVars[] AssignedVars[#pthreadsMutex, ULTIMATE.start_main_#t~nondet6#1] {394#(and (= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} is VALID [2022-02-20 20:40:52,532 INFO L290 TraceCheckUtils]: 38: Hoare triple {394#(and (= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} [100] L696-1-->L697: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet6#1=|v_ULTIMATE.start_main_#t~nondet6#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet6#1] {394#(and (= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} is VALID [2022-02-20 20:40:52,533 INFO L290 TraceCheckUtils]: 39: Hoare triple {394#(and (= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} [94] L697-->L698: Formula: (= |v_#pthreadsMutex_5| (store |v_#pthreadsMutex_6| |v_~#D~0.base_8| (store (select |v_#pthreadsMutex_6| |v_~#D~0.base_8|) |v_~#D~0.offset_8| 0))) InVars {#pthreadsMutex=|v_#pthreadsMutex_6|, ~#D~0.base=|v_~#D~0.base_8|, ~#D~0.offset=|v_~#D~0.offset_8|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_5|, ~#D~0.base=|v_~#D~0.base_8|, ~#D~0.offset=|v_~#D~0.offset_8|} AuxVars[] AssignedVars[#pthreadsMutex] {394#(and (= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} is VALID [2022-02-20 20:40:52,534 INFO L290 TraceCheckUtils]: 40: Hoare triple {394#(and (= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1) (not (= |~#A~0.base| |~#D~0.base|)))} [138] L685-->L685-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_14| |v_~#D~0.base_10|))) (and (= (select .cse0 |v_~#D~0.offset_10|) 0) (= |v_t_funThread1of1ForFork0_#t~nondet1_1| 0) (= |v_#pthreadsMutex_13| (store |v_#pthreadsMutex_14| |v_~#D~0.base_10| (store .cse0 |v_~#D~0.offset_10| 1))))) InVars {#pthreadsMutex=|v_#pthreadsMutex_14|, ~#D~0.base=|v_~#D~0.base_10|, ~#D~0.offset=|v_~#D~0.offset_10|} OutVars{t_funThread1of1ForFork0_#t~nondet1=|v_t_funThread1of1ForFork0_#t~nondet1_1|, #pthreadsMutex=|v_#pthreadsMutex_13|, ~#D~0.base=|v_~#D~0.base_10|, ~#D~0.offset=|v_~#D~0.offset_10|} AuxVars[] AssignedVars[#pthreadsMutex, t_funThread1of1ForFork0_#t~nondet1] {395#(= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1)} is VALID [2022-02-20 20:40:52,534 INFO L290 TraceCheckUtils]: 41: Hoare triple {395#(= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1)} [139] L685-1-->L686: Formula: true InVars {} OutVars{t_funThread1of1ForFork0_#t~nondet1=|v_t_funThread1of1ForFork0_#t~nondet1_3|} AuxVars[] AssignedVars[t_funThread1of1ForFork0_#t~nondet1] {395#(= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1)} is VALID [2022-02-20 20:40:52,535 INFO L290 TraceCheckUtils]: 42: Hoare triple {395#(= (select (select |#pthreadsMutex| |~#A~0.base|) |~#A~0.offset|) 1)} [140] L686-->L686-1: Formula: (let ((.cse0 (select |v_#pthreadsMutex_8| |v_~#A~0.base_8|))) (and (= |v_t_funThread1of1ForFork0_#t~nondet2_1| 0) (= |v_#pthreadsMutex_7| (store |v_#pthreadsMutex_8| |v_~#A~0.base_8| (store .cse0 |v_~#A~0.offset_8| 1))) (= (select .cse0 |v_~#A~0.offset_8|) 0))) InVars {#pthreadsMutex=|v_#pthreadsMutex_8|, ~#A~0.offset=|v_~#A~0.offset_8|, ~#A~0.base=|v_~#A~0.base_8|} OutVars{#pthreadsMutex=|v_#pthreadsMutex_7|, t_funThread1of1ForFork0_#t~nondet2=|v_t_funThread1of1ForFork0_#t~nondet2_1|, ~#A~0.offset=|v_~#A~0.offset_8|, ~#A~0.base=|v_~#A~0.base_8|} AuxVars[] AssignedVars[#pthreadsMutex, t_funThread1of1ForFork0_#t~nondet2] {391#false} is VALID [2022-02-20 20:40:52,535 INFO L290 TraceCheckUtils]: 43: Hoare triple {391#false} [141] L686-1-->L687: Formula: true InVars {} OutVars{t_funThread1of1ForFork0_#t~nondet2=|v_t_funThread1of1ForFork0_#t~nondet2_3|} AuxVars[] AssignedVars[t_funThread1of1ForFork0_#t~nondet2] {391#false} is VALID [2022-02-20 20:40:52,535 INFO L290 TraceCheckUtils]: 44: Hoare triple {391#false} [142] L687-->L688: Formula: (= 17 v_~g~0_3) InVars {} OutVars{~g~0=v_~g~0_3} AuxVars[] AssignedVars[~g~0] {391#false} is VALID [2022-02-20 20:40:52,535 INFO L290 TraceCheckUtils]: 45: Hoare triple {391#false} [92] L698-->L698-1: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {391#false} is VALID [2022-02-20 20:40:52,536 INFO L290 TraceCheckUtils]: 46: Hoare triple {391#false} [91] L698-1-->L698-2: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_1| (ite (= v_~g~0_2 0) 1 0)) InVars {~g~0=v_~g~0_2} OutVars{ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_1|, ~g~0=v_~g~0_2} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_#in~cond#1] {391#false} is VALID [2022-02-20 20:40:52,536 INFO L290 TraceCheckUtils]: 47: Hoare triple {391#false} [116] L698-2-->L19: Formula: true InVars {} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_1|} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_~cond#1] {391#false} is VALID [2022-02-20 20:40:52,536 INFO L290 TraceCheckUtils]: 48: Hoare triple {391#false} [93] L19-->L19-1: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_~cond#1_2| |v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|) InVars {ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_2|, ULTIMATE.start___VERIFIER_assert_#in~cond#1=|v_ULTIMATE.start___VERIFIER_assert_#in~cond#1_2|} AuxVars[] AssignedVars[ULTIMATE.start___VERIFIER_assert_~cond#1] {391#false} is VALID [2022-02-20 20:40:52,536 INFO L290 TraceCheckUtils]: 49: Hoare triple {391#false} [86] L19-1-->L19-2: Formula: (= |v_ULTIMATE.start___VERIFIER_assert_~cond#1_3| 0) InVars {ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_3|} OutVars{ULTIMATE.start___VERIFIER_assert_~cond#1=|v_ULTIMATE.start___VERIFIER_assert_~cond#1_3|} AuxVars[] AssignedVars[] {391#false} is VALID [2022-02-20 20:40:52,537 INFO L290 TraceCheckUtils]: 50: Hoare triple {391#false} [96] L19-2-->ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION: Formula: true InVars {} OutVars{} AuxVars[] AssignedVars[] {391#false} is VALID [2022-02-20 20:40:52,537 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 20:40:52,537 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 20:40:52,537 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1414575889] [2022-02-20 20:40:52,538 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1414575889] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 20:40:52,538 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 20:40:52,538 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [6] imperfect sequences [] total 6 [2022-02-20 20:40:52,538 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1861249066] [2022-02-20 20:40:52,538 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 20:40:52,539 INFO L78 Accepts]: Start accepts. Automaton has has 6 states, 6 states have (on average 8.5) internal successors, (51), 6 states have internal predecessors, (51), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Word has length 51 [2022-02-20 20:40:52,539 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 20:40:52,539 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 6 states, 6 states have (on average 8.5) internal successors, (51), 6 states have internal predecessors, (51), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,578 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 20:40:52,578 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 6 states [2022-02-20 20:40:52,578 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 20:40:52,579 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2022-02-20 20:40:52,579 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2022-02-20 20:40:52,580 INFO L499 CegarLoopForPetriNet]: Number of universal loopers: 44 out of 66 [2022-02-20 20:40:52,581 INFO L92 encePairwiseOnDemand]: Start differencePairwiseOnDemand. First operand has 63 places, 55 transitions, 128 flow. Second operand has 6 states, 6 states have (on average 47.0) internal successors, (282), 6 states have internal predecessors, (282), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,581 INFO L101 encePairwiseOnDemand]: Universal subtrahend loopers provided by user. [2022-02-20 20:40:52,581 INFO L102 encePairwiseOnDemand]: Number of universal subtrahend loopers: 44 of 66 [2022-02-20 20:40:52,581 INFO L74 FinitePrefix]: Start finitePrefix. Operand will be constructed on-demand [2022-02-20 20:40:52,711 INFO L129 PetriNetUnfolder]: 0/63 cut-off events. [2022-02-20 20:40:52,711 INFO L130 PetriNetUnfolder]: For 5/5 co-relation queries the response was YES. [2022-02-20 20:40:52,712 INFO L84 FinitePrefix]: Finished finitePrefix Result has 104 conditions, 63 events. 0/63 cut-off events. For 5/5 co-relation queries the response was YES. Maximal size of possible extension queue 3. Compared 25 event pairs, 0 based on Foata normal form. 1/64 useless extension candidates. Maximal degree in co-relation 0. Up to 12 conditions per place. [2022-02-20 20:40:52,712 INFO L132 encePairwiseOnDemand]: 61/66 looper letters, 15 selfloop transitions, 5 changer transitions 1/56 dead transitions. [2022-02-20 20:40:52,712 INFO L138 encePairwiseOnDemand]: Finished differencePairwiseOnDemand. Result has 67 places, 56 transitions, 174 flow [2022-02-20 20:40:52,713 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-02-20 20:40:52,713 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2022-02-20 20:40:52,716 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 242 transitions. [2022-02-20 20:40:52,716 INFO L544 CegarLoopForPetriNet]: DFA transition density 0.7333333333333333 [2022-02-20 20:40:52,717 INFO L72 ComplementDD]: Start complementDD. Operand 5 states and 242 transitions. [2022-02-20 20:40:52,717 INFO L73 IsDeterministic]: Start isDeterministic. Operand 5 states and 242 transitions. [2022-02-20 20:40:52,717 INFO L80 IsDeterministic]: Finished isDeterministic. Operand is deterministic. [2022-02-20 20:40:52,717 INFO L117 ReachableStatesCopy]: Start reachableStatesCopy. Operand 5 states and 242 transitions. [2022-02-20 20:40:52,723 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends has 6 states, 5 states have (on average 48.4) internal successors, (242), 5 states have internal predecessors, (242), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,724 INFO L131 ReachableStatesCopy]: Finished reachableStatesCopy Result has 6 states, 6 states have (on average 66.0) internal successors, (396), 6 states have internal predecessors, (396), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,724 INFO L81 ComplementDD]: Finished complementDD. Result has 6 states, 6 states have (on average 66.0) internal successors, (396), 6 states have internal predecessors, (396), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,724 INFO L186 Difference]: Start difference. First operand has 63 places, 55 transitions, 128 flow. Second operand 5 states and 242 transitions. [2022-02-20 20:40:52,724 INFO L82 GeneralOperation]: Start removeRedundantFlow. Operand has 67 places, 56 transitions, 174 flow [2022-02-20 20:40:52,726 INFO L88 GeneralOperation]: Finished removeRedundantFlow, result has has 64 places, 56 transitions, 166 flow, removed 0 selfloop flow, removed 3 redundant places. [2022-02-20 20:40:52,727 INFO L242 Difference]: Finished difference. Result has 64 places, 55 transitions, 131 flow [2022-02-20 20:40:52,727 INFO L317 CegarLoopForPetriNet]: {PETRI_ALPHABET=66, PETRI_DIFFERENCE_MINUEND_FLOW=121, PETRI_DIFFERENCE_MINUEND_PLACES=60, PETRI_DIFFERENCE_MINUEND_TRANSITIONS=55, PETRI_DIFFERENCE_SUBTRAHEND_LETTERS_WITH_MORE_CHANGERS_THAN_LOOPERS=5, PETRI_DIFFERENCE_SUBTRAHEND_LOOPER_ONLY_LETTERS=50, PETRI_DIFFERENCE_SUBTRAHEND_STATES=5, PETRI_FLOW=131, PETRI_PLACES=64, PETRI_TRANSITIONS=55} [2022-02-20 20:40:52,728 INFO L334 CegarLoopForPetriNet]: 59 programPoint places, 5 predicate places. [2022-02-20 20:40:52,728 INFO L111 iNet2FiniteAutomaton]: Start petriNet2FiniteAutomaton. Operand has 64 places, 55 transitions, 131 flow [2022-02-20 20:40:52,730 INFO L133 iNet2FiniteAutomaton]: Finished petriNet2FiniteAutomaton. Result has 114 states, 112 states have (on average 1.4553571428571428) internal successors, (163), 113 states have internal predecessors, (163), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,731 INFO L78 Accepts]: Start accepts. Automaton has has 114 states, 112 states have (on average 1.4553571428571428) internal successors, (163), 113 states have internal predecessors, (163), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) Word has length 51 [2022-02-20 20:40:52,731 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 20:40:52,731 INFO L470 AbstractCegarLoop]: Abstraction has has 64 places, 55 transitions, 131 flow [2022-02-20 20:40:52,732 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 6 states, 6 states have (on average 47.0) internal successors, (282), 6 states have internal predecessors, (282), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-02-20 20:40:52,732 INFO L246 CegarLoopForPetriNet]: Found error trace [2022-02-20 20:40:52,732 INFO L254 CegarLoopForPetriNet]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 20:40:52,732 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-02-20 20:40:52,732 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr0INUSE_VIOLATION] === [2022-02-20 20:40:52,733 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 20:40:52,733 INFO L85 PathProgramCache]: Analyzing trace with hash -735767419, now seen corresponding path program 1 times [2022-02-20 20:40:52,733 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 20:40:52,733 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1630730138] [2022-02-20 20:40:52,733 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 20:40:52,734 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 20:40:52,760 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 20:40:52,760 INFO L352 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2022-02-20 20:40:52,776 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 20:40:52,799 INFO L138 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2022-02-20 20:40:52,800 INFO L628 BasicCegarLoop]: Counterexample is feasible [2022-02-20 20:40:52,801 INFO L764 garLoopResultBuilder]: Registering result UNSAFE for location ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION (1 of 2 remaining) [2022-02-20 20:40:52,802 INFO L764 garLoopResultBuilder]: Registering result UNKNOWN for location ULTIMATE.startErr0INUSE_VIOLATION (0 of 2 remaining) [2022-02-20 20:40:52,802 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3 [2022-02-20 20:40:52,805 INFO L732 BasicCegarLoop]: Path program histogram: [2, 1, 1] [2022-02-20 20:40:52,809 INFO L230 ceAbstractionStarter]: Analysis of concurrent program completed with 1 thread instances [2022-02-20 20:40:52,809 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 20:40:52,863 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 20.02 08:40:52 BasicIcfg [2022-02-20 20:40:52,863 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2022-02-20 20:40:52,864 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2022-02-20 20:40:52,864 INFO L271 PluginConnector]: Initializing Witness Printer... [2022-02-20 20:40:52,864 INFO L275 PluginConnector]: Witness Printer initialized [2022-02-20 20:40:52,865 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 08:40:50" (3/4) ... [2022-02-20 20:40:52,866 INFO L131 WitnessPrinter]: Generating witness for reachability counterexample [2022-02-20 20:40:52,905 INFO L141 WitnessManager]: Wrote witness to /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/witness.graphml [2022-02-20 20:40:52,905 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2022-02-20 20:40:52,906 INFO L158 Benchmark]: Toolchain (without parser) took 2854.63ms. Allocated memory was 104.9MB in the beginning and 127.9MB in the end (delta: 23.1MB). Free memory was 69.9MB in the beginning and 79.6MB in the end (delta: -9.7MB). Peak memory consumption was 13.0MB. Max. memory is 16.1GB. [2022-02-20 20:40:52,907 INFO L158 Benchmark]: CDTParser took 0.22ms. Allocated memory is still 79.7MB. Free memory is still 31.3MB. There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 20:40:52,907 INFO L158 Benchmark]: CACSL2BoogieTranslator took 443.86ms. Allocated memory is still 104.9MB. Free memory was 69.6MB in the beginning and 69.1MB in the end (delta: 519.0kB). Peak memory consumption was 8.4MB. Max. memory is 16.1GB. [2022-02-20 20:40:52,907 INFO L158 Benchmark]: Boogie Procedure Inliner took 35.53ms. Allocated memory is still 104.9MB. Free memory was 69.1MB in the beginning and 67.1MB in the end (delta: 2.0MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 20:40:52,908 INFO L158 Benchmark]: Boogie Preprocessor took 30.49ms. Allocated memory is still 104.9MB. Free memory was 67.1MB in the beginning and 65.6MB in the end (delta: 1.5MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 20:40:52,908 INFO L158 Benchmark]: RCFGBuilder took 266.34ms. Allocated memory is still 104.9MB. Free memory was 65.6MB in the beginning and 53.0MB in the end (delta: 12.6MB). Peak memory consumption was 12.6MB. Max. memory is 16.1GB. [2022-02-20 20:40:52,908 INFO L158 Benchmark]: TraceAbstraction took 2031.35ms. Allocated memory was 104.9MB in the beginning and 127.9MB in the end (delta: 23.1MB). Free memory was 52.5MB in the beginning and 85.9MB in the end (delta: -33.3MB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 20:40:52,909 INFO L158 Benchmark]: Witness Printer took 41.39ms. Allocated memory is still 127.9MB. Free memory was 85.9MB in the beginning and 79.6MB in the end (delta: 6.3MB). Peak memory consumption was 6.3MB. Max. memory is 16.1GB. [2022-02-20 20:40:52,910 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.22ms. Allocated memory is still 79.7MB. Free memory is still 31.3MB. There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 443.86ms. Allocated memory is still 104.9MB. Free memory was 69.6MB in the beginning and 69.1MB in the end (delta: 519.0kB). Peak memory consumption was 8.4MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 35.53ms. Allocated memory is still 104.9MB. Free memory was 69.1MB in the beginning and 67.1MB in the end (delta: 2.0MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 30.49ms. Allocated memory is still 104.9MB. Free memory was 67.1MB in the beginning and 65.6MB in the end (delta: 1.5MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * RCFGBuilder took 266.34ms. Allocated memory is still 104.9MB. Free memory was 65.6MB in the beginning and 53.0MB in the end (delta: 12.6MB). Peak memory consumption was 12.6MB. Max. memory is 16.1GB. * TraceAbstraction took 2031.35ms. Allocated memory was 104.9MB in the beginning and 127.9MB in the end (delta: 23.1MB). Free memory was 52.5MB in the beginning and 85.9MB in the end (delta: -33.3MB). There was no memory consumed. Max. memory is 16.1GB. * Witness Printer took 41.39ms. Allocated memory is still 127.9MB. Free memory was 85.9MB in the beginning and 79.6MB in the end (delta: 6.3MB). Peak memory consumption was 6.3MB. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - CounterExampleResult [Line: 19]: a call to reach_error is reachable a call to reach_error is reachable We found a FailurePath: [L681] 0 int g = 0; VAL [g=0] [L682] 0 pthread_mutex_t A = { { 0, 0, 0, PTHREAD_MUTEX_TIMED_NP, 0, { { 0, 0 } } } }; VAL [A={3:0}, g=0] [L683] 0 pthread_mutex_t D = { { 0, 0, 0, PTHREAD_MUTEX_TIMED_NP, 0, { { 0, 0 } } } }; VAL [A={3:0}, D={4:0}, g=0] [L693] 0 pthread_t id; VAL [A={3:0}, D={4:0}, g=0, id={5:0}] [L694] FCALL, FORK 0 pthread_create(&id, ((void *)0), t_fun, ((void *)0)) VAL [A={3:0}, arg={0:0}, D={4:0}, g=0, id={5:0}, pthread_create(&id, ((void *)0), t_fun, ((void *)0))=-1] [L687] 1 g = 17 VAL [A={3:0}, arg={0:0}, arg={0:0}, D={4:0}, g=17] [L698] CALL 0 __VERIFIER_assert(g == 0) [L19] COND TRUE 0 !(cond) VAL [\old(cond)=0, A={3:0}, arg={0:0}, arg={0:0}, cond=0, D={4:0}, g=17] [L19] 0 reach_error() VAL [\old(cond)=0, A={3:0}, arg={0:0}, arg={0:0}, cond=0, D={4:0}, g=17] - UnprovableResult [Line: 694]: Unable to prove that petrification did provide enough thread instances (tool internal message, not intended for end users) Unable to prove that petrification did provide enough thread instances (tool internal message, not intended for end users) Reason: Not analyzed. - StatisticsResult: Ultimate Automizer benchmark data with 1 thread instances CFG has 3 procedures, 78 locations, 2 error locations. Started 1 CEGAR loops. EmptinessCheckTime: 0.0s, RemoveRedundantFlowTime: 0.0s, RemoveRedundantFlowUnfoldingTime: 0.0s, BackfoldingTime: 0.0s, BackfoldingUnfoldingTime: 0.0s, FlowIncreaseByBackfolding: 0, BasicCegarLoop: OverallTime: 1.9s, OverallIterations: 4, TraceHistogramMax: 1, PathProgramHistogramMax: 2, EmptinessCheckTime: 0.0s, AutomataDifference: 0.6s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 0.0s, InitialAbstractionConstructionTime: 0.1s, PartialOrderReductionTime: 0.0s, HoareTripleCheckerStatistics: 0 mSolverCounterUnknown, 32 SdHoareTripleChecker+Valid, 0.1s IncrementalHoareTripleChecker+Time, 0 mSdLazyCounter, 32 mSDsluCounter, 25 SdHoareTripleChecker+Invalid, 0.1s Time, 0 mProtectedAction, 0 SdHoareTripleChecker+Unchecked, 0 IncrementalHoareTripleChecker+Unchecked, 21 mSDsCounter, 25 IncrementalHoareTripleChecker+Valid, 0 mProtectedPredicate, 95 IncrementalHoareTripleChecker+Invalid, 120 SdHoareTripleChecker+Unknown, 0 mSolverCounterNotChecked, 25 mSolverCounterUnsat, 11 mSDtfsCounter, 95 mSolverCounterSat, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Unknown, PredicateUnifierStatistics: 0 DeclaredPredicates, 26 GetRequests, 8 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.1s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=131occurred in iteration=3, InterpolantAutomatonStates: 17, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: No data available, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: TRACE_CHECK: 0.0s SsaConstructionTime, 0.1s SatisfiabilityAnalysisTime, 0.6s InterpolantComputationTime, 200 NumberOfCodeBlocks, 200 NumberOfCodeBlocksAsserted, 4 NumberOfCheckSat, 144 ConstructedInterpolants, 0 QuantifiedInterpolants, 456 SizeOfPredicates, 0 NumberOfNonLiveVariables, 0 ConjunctsInSsa, 0 ConjunctsInUnsatCore, 3 InterpolantComputations, 3 PerfectInterpolantSequences, 0/0 InterpolantCoveringCapability, INVARIANT_SYNTHESIS: No data available, INTERPOLANT_CONSOLIDATION: No data available, ABSTRACT_INTERPRETATION: No data available, PDR: No data available, ACCELERATED_INTERPOLATION: No data available, SIFA: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be incorrect! [2022-02-20 20:40:52,945 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Writing output log to file Ultimate.log Writing human readable error path to file UltimateCounterExample.errorpath Result: FALSE