/root/.sdkman/candidates/java/current/bin/java -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata ./data -s ../../../trunk/examples/settings/default/automizer/svcomp-Termination-32bit-Automizer_Default.epf --buchiautomizer.automaton.type.for.concurrent.programs BUCHI_PETRI_NET --buchiautomizer.use.buchi.petri.net.intersection.optimizations false --buchiautomizer.use.automata.for.buchi.petri.net.emptiness.check true -tc ../../../trunk/examples/toolchains/BuchiAutomizerCInline.xml -i ../../../trunk/examples/svcomp/pthread-atomic/szymanski.i -------------------------------------------------------------------------------- This is Ultimate 0.2.3-?-9ecb849-m [2024-02-10 01:07:09,048 INFO L188 SettingsManager]: Resetting all preferences to default values... [2024-02-10 01:07:09,133 INFO L114 SettingsManager]: Loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/default/automizer/svcomp-Termination-32bit-Automizer_Default.epf [2024-02-10 01:07:09,146 WARN L101 SettingsManager]: Preference file contains the following unknown settings: [2024-02-10 01:07:09,146 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.core.Log level for class [2024-02-10 01:07:09,147 WARN L103 SettingsManager]: * de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.Only consider context switches at boundaries of atomic blocks [2024-02-10 01:07:09,183 INFO L130 SettingsManager]: Preferences different from defaults after loading the file: [2024-02-10 01:07:09,184 INFO L151 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2024-02-10 01:07:09,184 INFO L153 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2024-02-10 01:07:09,185 INFO L151 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2024-02-10 01:07:09,185 INFO L153 SettingsManager]: * Create parallel compositions if possible=false [2024-02-10 01:07:09,186 INFO L153 SettingsManager]: * Use SBE=true [2024-02-10 01:07:09,186 INFO L151 SettingsManager]: Preferences of BuchiAutomizer differ from their defaults: [2024-02-10 01:07:09,186 INFO L153 SettingsManager]: * NCSB implementation=INTSET_LAZY3 [2024-02-10 01:07:09,187 INFO L153 SettingsManager]: * Use old map elimination=false [2024-02-10 01:07:09,187 INFO L153 SettingsManager]: * Use external solver (rank synthesis)=false [2024-02-10 01:07:09,187 INFO L153 SettingsManager]: * Use only trivial implications for array writes=true [2024-02-10 01:07:09,188 INFO L153 SettingsManager]: * Rank analysis=LINEAR_WITH_GUESSES [2024-02-10 01:07:09,188 INFO L151 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2024-02-10 01:07:09,188 INFO L153 SettingsManager]: * Pointer base address is valid at dereference=ASSUME [2024-02-10 01:07:09,189 INFO L153 SettingsManager]: * sizeof long=4 [2024-02-10 01:07:09,189 INFO L153 SettingsManager]: * Overapproximate operations on floating types=true [2024-02-10 01:07:09,190 INFO L153 SettingsManager]: * sizeof POINTER=4 [2024-02-10 01:07:09,190 INFO L153 SettingsManager]: * Check division by zero=IGNORE [2024-02-10 01:07:09,190 INFO L153 SettingsManager]: * Pointer to allocated memory at dereference=ASSUME [2024-02-10 01:07:09,191 INFO L153 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=ASSUME [2024-02-10 01:07:09,191 INFO L153 SettingsManager]: * Check array bounds for arrays that are off heap=ASSUME [2024-02-10 01:07:09,191 INFO L153 SettingsManager]: * Check unreachability of reach_error function=false [2024-02-10 01:07:09,191 INFO L153 SettingsManager]: * sizeof long double=12 [2024-02-10 01:07:09,192 INFO L153 SettingsManager]: * Check if freed pointer was valid=false [2024-02-10 01:07:09,192 INFO L153 SettingsManager]: * Assume nondeterminstic values are in range=false [2024-02-10 01:07:09,192 INFO L153 SettingsManager]: * Use constant arrays=true [2024-02-10 01:07:09,193 INFO L151 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2024-02-10 01:07:09,193 INFO L153 SettingsManager]: * Size of a code block=SequenceOfStatements [2024-02-10 01:07:09,194 INFO L151 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2024-02-10 01:07:09,194 INFO L153 SettingsManager]: * Trace refinement strategy=CAMEL [2024-02-10 01:07:09,194 INFO L153 SettingsManager]: * Apply one-shot large block encoding in concurrent analysis=false [2024-02-10 01:07:09,195 INFO L151 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2024-02-10 01:07:09,195 INFO L153 SettingsManager]: * TransformationType=MODULO_NEIGHBOR 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.buchiautomizer: Automaton type for concurrent programs -> BUCHI_PETRI_NET Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer: Use Buchi Petri Net Intersection Optimizations -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer: Use automata for Buchi Petri Net emptiness check -> true [2024-02-10 01:07:09,515 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2024-02-10 01:07:09,537 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2024-02-10 01:07:09,542 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2024-02-10 01:07:09,544 INFO L270 PluginConnector]: Initializing CDTParser... [2024-02-10 01:07:09,545 INFO L274 PluginConnector]: CDTParser initialized [2024-02-10 01:07:09,547 INFO L431 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/pthread-atomic/szymanski.i [2024-02-10 01:07:10,961 INFO L533 CDTParser]: Created temporary CDT project at NULL [2024-02-10 01:07:11,243 INFO L384 CDTParser]: Found 1 translation units. [2024-02-10 01:07:11,244 INFO L180 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/pthread-atomic/szymanski.i [2024-02-10 01:07:11,269 INFO L427 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/fed71af67/6bc1928bac0e4f24a4ccafbe1caa5fc3/FLAG05f91d2d0 [2024-02-10 01:07:11,286 INFO L435 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/fed71af67/6bc1928bac0e4f24a4ccafbe1caa5fc3 [2024-02-10 01:07:11,291 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2024-02-10 01:07:11,293 INFO L133 ToolchainWalker]: Walking toolchain with 5 elements. [2024-02-10 01:07:11,295 INFO L112 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2024-02-10 01:07:11,295 INFO L270 PluginConnector]: Initializing CACSL2BoogieTranslator... [2024-02-10 01:07:11,304 INFO L274 PluginConnector]: CACSL2BoogieTranslator initialized [2024-02-10 01:07:11,305 INFO L184 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,308 INFO L204 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@4b913d27 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11, skipping insertion in model container [2024-02-10 01:07:11,308 INFO L184 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,350 INFO L177 MainTranslator]: Built tables and reachable declarations [2024-02-10 01:07:11,492 WARN L635 FunctionHandler]: implicit declaration of function __builtin_bswap16 [2024-02-10 01:07:11,659 INFO L209 PostProcessor]: Analyzing one entry point: main [2024-02-10 01:07:11,675 INFO L202 MainTranslator]: Completed pre-run [2024-02-10 01:07:11,694 WARN L635 FunctionHandler]: implicit declaration of function __builtin_bswap16 [2024-02-10 01:07:11,730 INFO L209 PostProcessor]: Analyzing one entry point: main [2024-02-10 01:07:11,841 WARN L672 CHandler]: The function __VERIFIER_atomic_begin is called, but not defined or handled by StandardFunctionHandler. [2024-02-10 01:07:11,841 WARN L672 CHandler]: The function __VERIFIER_atomic_end is called, but not defined or handled by StandardFunctionHandler. [2024-02-10 01:07:11,841 WARN L672 CHandler]: The function __builtin_bswap16 is called, but not defined or handled by StandardFunctionHandler. [2024-02-10 01:07:11,849 INFO L206 MainTranslator]: Completed translation [2024-02-10 01:07:11,851 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11 WrapperNode [2024-02-10 01:07:11,852 INFO L131 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2024-02-10 01:07:11,853 INFO L112 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2024-02-10 01:07:11,853 INFO L270 PluginConnector]: Initializing Boogie Procedure Inliner... [2024-02-10 01:07:11,853 INFO L274 PluginConnector]: Boogie Procedure Inliner initialized [2024-02-10 01:07:11,861 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,891 INFO L184 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,922 INFO L138 Inliner]: procedures = 171, calls = 77, calls flagged for inlining = 4, calls inlined = 4, statements flattened = 179 [2024-02-10 01:07:11,923 INFO L131 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2024-02-10 01:07:11,924 INFO L112 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2024-02-10 01:07:11,924 INFO L270 PluginConnector]: Initializing Boogie Preprocessor... [2024-02-10 01:07:11,924 INFO L274 PluginConnector]: Boogie Preprocessor initialized [2024-02-10 01:07:11,934 INFO L184 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,934 INFO L184 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,947 INFO L184 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,948 INFO L184 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,952 INFO L184 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,966 INFO L184 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,968 INFO L184 PluginConnector]: Executing the observer LTLStepAnnotator from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,969 INFO L184 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,972 INFO L131 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2024-02-10 01:07:11,973 INFO L112 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2024-02-10 01:07:11,973 INFO L270 PluginConnector]: Initializing RCFGBuilder... [2024-02-10 01:07:11,973 INFO L274 PluginConnector]: RCFGBuilder initialized [2024-02-10 01:07:11,974 INFO L184 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (1/1) ... [2024-02-10 01:07:11,990 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 [2024-02-10 01:07:12,002 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2024-02-10 01:07:12,021 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) [2024-02-10 01:07:12,033 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (1)] Waiting until timeout for monitored process [2024-02-10 01:07:12,082 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2024-02-10 01:07:12,082 INFO L130 BoogieDeclarations]: Found specification of procedure thr2 [2024-02-10 01:07:12,082 INFO L138 BoogieDeclarations]: Found implementation of procedure thr2 [2024-02-10 01:07:12,082 INFO L130 BoogieDeclarations]: Found specification of procedure thr1 [2024-02-10 01:07:12,082 INFO L138 BoogieDeclarations]: Found implementation of procedure thr1 [2024-02-10 01:07:12,082 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2024-02-10 01:07:12,083 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_atomic_begin [2024-02-10 01:07:12,083 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2024-02-10 01:07:12,083 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2024-02-10 01:07:12,083 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2024-02-10 01:07:12,083 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2024-02-10 01:07:12,085 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_atomic_end [2024-02-10 01:07:12,085 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2024-02-10 01:07:12,085 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2024-02-10 01:07:12,087 WARN L210 CfgBuilder]: User set CodeBlockSize to SequenceOfStatements but program contains fork statements. Overwriting the user preferences and setting CodeBlockSize to OneNontrivialStatement [2024-02-10 01:07:12,259 INFO L236 CfgBuilder]: Building ICFG [2024-02-10 01:07:12,262 INFO L262 CfgBuilder]: Building CFG for each procedure with an implementation [2024-02-10 01:07:12,472 INFO L277 CfgBuilder]: Performing block encoding [2024-02-10 01:07:12,480 INFO L297 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2024-02-10 01:07:12,480 INFO L302 CfgBuilder]: Removed 8 assume(true) statements. [2024-02-10 01:07:12,483 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.02 01:07:12 BoogieIcfgContainer [2024-02-10 01:07:12,483 INFO L131 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2024-02-10 01:07:12,484 INFO L112 PluginConnector]: ------------------------BuchiAutomizer---------------------------- [2024-02-10 01:07:12,484 INFO L270 PluginConnector]: Initializing BuchiAutomizer... [2024-02-10 01:07:12,488 INFO L274 PluginConnector]: BuchiAutomizer initialized [2024-02-10 01:07:12,489 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-02-10 01:07:12,489 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "CDTParser AST 10.02 01:07:11" (1/3) ... [2024-02-10 01:07:12,490 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@183f1ec4 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 10.02 01:07:12, skipping insertion in model container [2024-02-10 01:07:12,490 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-02-10 01:07:12,490 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 10.02 01:07:11" (2/3) ... [2024-02-10 01:07:12,491 INFO L204 PluginConnector]: Invalid model from BuchiAutomizer for observer de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer.BuchiAutomizerObserver@183f1ec4 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer AST 10.02 01:07:12, skipping insertion in model container [2024-02-10 01:07:12,491 INFO L99 BuchiAutomizer]: Safety of program was proven or not checked, starting termination analysis [2024-02-10 01:07:12,491 INFO L184 PluginConnector]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 10.02 01:07:12" (3/3) ... [2024-02-10 01:07:12,492 INFO L332 chiAutomizerObserver]: Analyzing ICFG szymanski.i [2024-02-10 01:07:12,617 INFO L144 ThreadInstanceAdder]: Constructed 2 joinOtherThreadTransitions. [2024-02-10 01:07:12,647 INFO L73 FinitePrefix]: Start finitePrefix. Operand has 106 places, 123 transitions, 260 flow [2024-02-10 01:07:12,699 INFO L124 PetriNetUnfolderBase]: 22/119 cut-off events. [2024-02-10 01:07:12,700 INFO L125 PetriNetUnfolderBase]: For 2/2 co-relation queries the response was YES. [2024-02-10 01:07:12,707 INFO L83 FinitePrefix]: Finished finitePrefix Result has 128 conditions, 119 events. 22/119 cut-off events. For 2/2 co-relation queries the response was YES. Maximal size of possible extension queue 6. Compared 182 event pairs, 0 based on Foata normal form. 0/97 useless extension candidates. Maximal degree in co-relation 91. Up to 3 conditions per place. [2024-02-10 01:07:12,707 INFO L82 GeneralOperation]: Start removeDead. Operand has 106 places, 123 transitions, 260 flow [2024-02-10 01:07:12,715 INFO L88 GeneralOperation]: Finished RemoveDead, result has has 104 places, 119 transitions, 250 flow [2024-02-10 01:07:12,722 INFO L303 stractBuchiCegarLoop]: Interprodecural is true [2024-02-10 01:07:12,723 INFO L304 stractBuchiCegarLoop]: Hoare is false [2024-02-10 01:07:12,723 INFO L305 stractBuchiCegarLoop]: Compute interpolants for ForwardPredicates [2024-02-10 01:07:12,723 INFO L306 stractBuchiCegarLoop]: Backedges is STRAIGHT_LINE [2024-02-10 01:07:12,723 INFO L307 stractBuchiCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2024-02-10 01:07:12,723 INFO L308 stractBuchiCegarLoop]: Difference is false [2024-02-10 01:07:12,723 INFO L309 stractBuchiCegarLoop]: Minimize is MINIMIZE_SEVPA [2024-02-10 01:07:12,723 INFO L313 stractBuchiCegarLoop]: ======== Iteration 0 == of CEGAR loop == BuchiPetriNetCegarLoop ======== [2024-02-10 01:07:12,724 INFO L139 chiPetriNetCegarLoop]: use automaton for emptiness check [2024-02-10 01:07:12,725 INFO L128 iNet2FiniteAutomaton]: Start buchiPetriNet2FiniteAutomaton. Operand has 104 places, 119 transitions, 250 flow [2024-02-10 01:07:12,903 INFO L151 iNet2FiniteAutomaton]: Finished buchiPetriNet2FiniteAutomaton. Result has 3897 states, 3896 states have (on average 3.3257186858316223) internal successors, (12957), 3896 states have internal predecessors, (12957), 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) [2024-02-10 01:07:12,922 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 3897 states, 3896 states have (on average 3.3257186858316223) internal successors, (12957), 3896 states have internal predecessors, (12957), 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) [2024-02-10 01:07:13,093 INFO L131 ngComponentsAnalysis]: Automaton has 804 accepting balls. 1736 [2024-02-10 01:07:13,094 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-02-10 01:07:13,094 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-02-10 01:07:13,101 INFO L335 stractBuchiCegarLoop]: ======== Iteration 1 ============ [2024-02-10 01:07:13,102 INFO L139 chiPetriNetCegarLoop]: use automaton for emptiness check [2024-02-10 01:07:13,102 INFO L128 iNet2FiniteAutomaton]: Start buchiPetriNet2FiniteAutomaton. Operand has 104 places, 119 transitions, 250 flow [2024-02-10 01:07:13,208 INFO L151 iNet2FiniteAutomaton]: Finished buchiPetriNet2FiniteAutomaton. Result has 3897 states, 3896 states have (on average 3.3257186858316223) internal successors, (12957), 3896 states have internal predecessors, (12957), 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) [2024-02-10 01:07:13,240 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 3897 states, 3896 states have (on average 3.3257186858316223) internal successors, (12957), 3896 states have internal predecessors, (12957), 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) [2024-02-10 01:07:13,356 INFO L131 ngComponentsAnalysis]: Automaton has 804 accepting balls. 1736 [2024-02-10 01:07:13,356 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-02-10 01:07:13,356 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-02-10 01:07:13,363 INFO L748 eck$LassoCheckResult]: Stem: Black: 7905#[$Ultimate##0]don't care [243] $Ultimate##0-->L-1: Formula: (= (select |v_#valid_9| 0) 0) InVars {#valid=|v_#valid_9|} OutVars{#valid=|v_#valid_9|} AuxVars[] AssignedVars[] 7908#[L-1]don't care [249] L-1-->L12: Formula: (< 0 |v_#StackHeapBarrier_1|) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_1|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_1|} AuxVars[] AssignedVars[] 7910#[L12]don't care [286] L12-->L12-1: Formula: (and (= (select |v_#valid_10| 1) 1) (= 2 (select |v_#length_5| 1))) InVars {#length=|v_#length_5|, #valid=|v_#valid_10|} OutVars{#length=|v_#length_5|, #valid=|v_#valid_10|} AuxVars[] AssignedVars[] 7912#[L12-1]don't care [304] L12-1-->L12-2: Formula: (= (select (select |v_#memory_int_7| 1) 0) 48) InVars {#memory_int=|v_#memory_int_7|} OutVars{#memory_int=|v_#memory_int_7|} AuxVars[] AssignedVars[] 7914#[L12-2]don't care [303] L12-2-->L12-3: Formula: (= (select (select |v_#memory_int_8| 1) 1) 0) InVars {#memory_int=|v_#memory_int_8|} OutVars{#memory_int=|v_#memory_int_8|} AuxVars[] AssignedVars[] 7916#[L12-3]don't care [320] L12-3-->L12-4: Formula: (and (= (select |v_#length_6| 2) 12) (= (select |v_#valid_11| 2) 1)) InVars {#length=|v_#length_6|, #valid=|v_#valid_11|} OutVars{#length=|v_#length_6|, #valid=|v_#valid_11|} AuxVars[] AssignedVars[] 7918#[L12-4]don't care [314] L12-4-->L700: Formula: (= v_~flag1~0_15 0) InVars {} OutVars{~flag1~0=v_~flag1~0_15} AuxVars[] AssignedVars[~flag1~0] 7920#[L700]don't care [270] L700-->L701: Formula: (= v_~flag2~0_15 0) InVars {} OutVars{~flag2~0=v_~flag2~0_15} AuxVars[] AssignedVars[~flag2~0] 7922#[L701]don't care [323] L701-->L-1-1: Formula: (= v_~x~0_7 0) InVars {} OutVars{~x~0=v_~x~0_7} AuxVars[] AssignedVars[~x~0] 7924#[L-1-1]don't care [328] L-1-1-->L-1-2: Formula: true InVars {} OutVars{ULTIMATE.start_main_#res#1=|v_ULTIMATE.start_main_#res#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#res#1] 7926#[L-1-2]don't care [329] L-1-2-->L817: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_5|, ULTIMATE.start_main_#t~mem8#1=|v_ULTIMATE.start_main_#t~mem8#1_4|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_6|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_3|, ULTIMATE.start_main_#t~nondet7#1=|v_ULTIMATE.start_main_#t~nondet7#1_3|, ULTIMATE.start_main_#t~mem9#1=|v_ULTIMATE.start_main_#t~mem9#1_4|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_6|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_5|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_6|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_6|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1, ULTIMATE.start_main_#t~mem8#1, ULTIMATE.start_main_~#t2~0#1.offset, ULTIMATE.start_main_#t~nondet5#1, ULTIMATE.start_main_#t~nondet7#1, ULTIMATE.start_main_#t~mem9#1, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_#t~pre4#1, ULTIMATE.start_main_~#t1~0#1.offset, ULTIMATE.start_main_~#t2~0#1.base] 7928#[L817]don't care [268] L817-->L817-1: Formula: (and (not (= |v_ULTIMATE.start_main_~#t1~0#1.base_7| 0)) (= |v_ULTIMATE.start_main_~#t1~0#1.offset_7| 0) (= (store |v_#length_8| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 4) |v_#length_7|) (= |v_#valid_12| (store |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 1)) (= (select |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7|) 0) (< |v_#StackHeapBarrier_2| |v_ULTIMATE.start_main_~#t1~0#1.base_7|)) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_8|, #valid=|v_#valid_13|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_7|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_7|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_7|, #valid=|v_#valid_12|} AuxVars[] AssignedVars[#valid, #length, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_~#t1~0#1.offset] 7930#[L817-1]don't care [283] L817-1-->L817-2: Formula: (and (= |v_#length_9| (store |v_#length_10| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 4)) (= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_7|) (= 0 (select |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7|)) (< |v_#StackHeapBarrier_3| |v_ULTIMATE.start_main_~#t2~0#1.base_7|) (= (store |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 1) |v_#valid_14|) (not (= |v_ULTIMATE.start_main_~#t2~0#1.base_7| 0))) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_10|, #valid=|v_#valid_15|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_9|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_7|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_7|, #valid=|v_#valid_14|} AuxVars[] AssignedVars[ULTIMATE.start_main_~#t2~0#1.offset, #valid, #length, ULTIMATE.start_main_~#t2~0#1.base] 7932#[L817-2]don't care [221] L817-2-->L818: Formula: (= |v_ULTIMATE.start_main_#t~pre4#1_1| |v_#pthreadsForks_1|) InVars {#pthreadsForks=|v_#pthreadsForks_1|} OutVars{#pthreadsForks=|v_#pthreadsForks_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 7934#[L818]don't care [287] L818-->L818-1: Formula: (= (+ 1 |v_#pthreadsForks_3|) |v_#pthreadsForks_2|) InVars {#pthreadsForks=|v_#pthreadsForks_3|} OutVars{#pthreadsForks=|v_#pthreadsForks_2|} AuxVars[] AssignedVars[#pthreadsForks] 7936#[L818-1]don't care [291] L818-1-->L818-2: Formula: (and (= (store |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1| (store (select |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) |v_ULTIMATE.start_main_~#t1~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre4#1_2|)) |v_#memory_int_1|) (<= (+ |v_ULTIMATE.start_main_~#t1~0#1.offset_1| 4) (select |v_#length_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t1~0#1.offset_1|) (= (select |v_#valid_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) 1)) InVars {#valid=|v_#valid_1|, #memory_int=|v_#memory_int_2|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} OutVars{#valid=|v_#valid_1|, #memory_int=|v_#memory_int_1|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} AuxVars[] AssignedVars[#memory_int] 7938#[L818-2]don't care [420] L818-2-->$Ultimate##0: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_4| 0) (= |v_ULTIMATE.start_main_#t~pre4#1_7| v_thr1Thread1of1ForFork0_thidvar0_2) (= |v_thr1Thread1of1ForFork0_#in~_#1.base_4| 0) (= v_thr1Thread1of1ForFork0_thidvar1_2 0)) InVars {ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_4|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_4|, thr1Thread1of1ForFork0_#res#1.offset=|v_thr1Thread1of1ForFork0_#res#1.offset_4|, thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_40|, thr1Thread1of1ForFork0_thidvar0=v_thr1Thread1of1ForFork0_thidvar0_2, thr1Thread1of1ForFork0_thidvar1=v_thr1Thread1of1ForFork0_thidvar1_2, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset_8|, thr1Thread1of1ForFork0_#res#1.base=|v_thr1Thread1of1ForFork0_#res#1.base_4|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_4|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_4|, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base_8|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_#in~_#1.base, thr1Thread1of1ForFork0_#res#1.offset, thr1Thread1of1ForFork0_~f21~0#1, thr1Thread1of1ForFork0_thidvar0, thr1Thread1of1ForFork0_thidvar1, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset, thr1Thread1of1ForFork0_#res#1.base, thr1Thread1of1ForFork0_~_#1.base, thr1Thread1of1ForFork0_#in~_#1.offset, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base] 7940#[L818-3, $Ultimate##0]don't care [378] $Ultimate##0-->L703: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.base_1| |v_thr1Thread1of1ForFork0_~_#1.base_1|) (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_1| |v_thr1Thread1of1ForFork0_~_#1.offset_1|)) InVars {thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_1|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_1|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_1|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_1|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_1|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_1|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_~_#1.base] 7942#[L703, L818-3]don't care [379] L703-->L705: Formula: (= v_~flag1~0_11 1) InVars {} OutVars{~flag1~0=v_~flag1~0_11} AuxVars[] AssignedVars[~flag1~0] 7946#[L705, L818-3]don't care [380] L705-->L712: Formula: (= |v_thr1Thread1of1ForFork0_~f21~0#1_1| v_~flag2~0_8) InVars {~flag2~0=v_~flag2~0_8} OutVars{thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_1|, ~flag2~0=v_~flag2~0_8} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~f21~0#1] 7952#[L712, L818-3]don't care [2024-02-10 01:07:13,364 INFO L750 eck$LassoCheckResult]: Loop: 7952#[L712, L818-3]don't care [381] L712-->L710: Formula: (<= 3 |v_thr1Thread1of1ForFork0_~f21~0#1_3|) InVars {thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_3|} OutVars{thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_3|} AuxVars[] AssignedVars[] 7962#[L710, L818-3]don't care [384] L710-->L712: Formula: (= |v_thr1Thread1of1ForFork0_~f21~0#1_7| v_~flag2~0_10) InVars {~flag2~0=v_~flag2~0_10} OutVars{thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_7|, ~flag2~0=v_~flag2~0_10} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~f21~0#1] 7952#[L712, L818-3]don't care [2024-02-10 01:07:13,369 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:13,370 INFO L85 PathProgramCache]: Analyzing trace with hash 1613535555, now seen corresponding path program 1 times [2024-02-10 01:07:13,378 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:13,379 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [169305815] [2024-02-10 01:07:13,379 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:13,380 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:13,531 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:13,531 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:13,568 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:13,588 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:13,590 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:13,591 INFO L85 PathProgramCache]: Analyzing trace with hash 13156, now seen corresponding path program 1 times [2024-02-10 01:07:13,591 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:13,591 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [45760891] [2024-02-10 01:07:13,591 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:13,591 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:13,599 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:13,599 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:13,602 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:13,604 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:13,605 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:13,605 INFO L85 PathProgramCache]: Analyzing trace with hash 124486694, now seen corresponding path program 1 times [2024-02-10 01:07:13,606 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:13,606 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [52659106] [2024-02-10 01:07:13,606 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:13,606 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:13,629 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-02-10 01:07:13,815 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-02-10 01:07:13,816 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-02-10 01:07:13,816 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [52659106] [2024-02-10 01:07:13,817 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [52659106] provided 1 perfect and 0 imperfect interpolant sequences [2024-02-10 01:07:13,817 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-02-10 01:07:13,817 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2024-02-10 01:07:13,818 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1978600291] [2024-02-10 01:07:13,818 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-02-10 01:07:13,872 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-02-10 01:07:13,913 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2024-02-10 01:07:13,914 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2024-02-10 01:07:14,101 INFO L175 Difference]: Start difference. First operand has 104 places, 119 transitions, 250 flow. Second operand 5 states and 615 transitions. [2024-02-10 01:07:14,102 INFO L103 encePairwiseOnDemand]: Start differencePairwiseOnDemand. First operand has 104 places, 119 transitions, 250 flow. Second operand 5 states and 615 transitions. [2024-02-10 01:07:14,105 INFO L120 encePairwiseOnDemand]: Number of universal subtrahend loopers: 90 of 123 [2024-02-10 01:07:14,106 INFO L73 FinitePrefix]: Start finitePrefix. Operand will be constructed on-demand [2024-02-10 01:07:14,217 INFO L124 PetriNetUnfolderBase]: 116/478 cut-off events. [2024-02-10 01:07:14,218 INFO L125 PetriNetUnfolderBase]: For 6/6 co-relation queries the response was YES. [2024-02-10 01:07:14,229 INFO L83 FinitePrefix]: Finished finitePrefix Result has 651 conditions, 478 events. 116/478 cut-off events. For 6/6 co-relation queries the response was YES. Maximal size of possible extension queue 32. Compared 2487 event pairs, 23 based on Foata normal form. 111/526 useless extension candidates. Maximal degree in co-relation 596. Up to 105 conditions per place. [2024-02-10 01:07:14,238 INFO L140 encePairwiseOnDemand]: 94/123 looper letters, 30 selfloop transitions, 17 changer transitions 0/129 dead transitions. [2024-02-10 01:07:14,239 INFO L145 encePairwiseOnDemand]: Finished differencePairwiseOnDemand. Result has 104 places, 129 transitions, 364 flow [2024-02-10 01:07:14,243 INFO L231 Difference]: Finished difference. Result has 111 places, 117 transitions, 350 flow [2024-02-10 01:07:14,245 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2024-02-10 01:07:14,253 INFO L428 stractBuchiCegarLoop]: Abstraction has has 111 places, 117 transitions, 350 flow [2024-02-10 01:07:14,253 INFO L335 stractBuchiCegarLoop]: ======== Iteration 2 ============ [2024-02-10 01:07:14,253 INFO L139 chiPetriNetCegarLoop]: use automaton for emptiness check [2024-02-10 01:07:14,253 INFO L128 iNet2FiniteAutomaton]: Start buchiPetriNet2FiniteAutomaton. Operand has 111 places, 117 transitions, 350 flow [2024-02-10 01:07:14,441 INFO L151 iNet2FiniteAutomaton]: Finished buchiPetriNet2FiniteAutomaton. Result has 5301 states, 5293 states have (on average 2.8994898923105987) internal successors, (15347), 5300 states have internal predecessors, (15347), 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) [2024-02-10 01:07:14,463 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 5301 states, 5293 states have (on average 2.8994898923105987) internal successors, (15347), 5300 states have internal predecessors, (15347), 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) [2024-02-10 01:07:14,642 INFO L131 ngComponentsAnalysis]: Automaton has 948 accepting balls. 2024 [2024-02-10 01:07:14,643 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-02-10 01:07:14,643 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-02-10 01:07:14,647 INFO L748 eck$LassoCheckResult]: Stem: Black: 15715#[$Ultimate##0]don't care [243] $Ultimate##0-->L-1: Formula: (= (select |v_#valid_9| 0) 0) InVars {#valid=|v_#valid_9|} OutVars{#valid=|v_#valid_9|} AuxVars[] AssignedVars[] 15718#[L-1]don't care [249] L-1-->L12: Formula: (< 0 |v_#StackHeapBarrier_1|) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_1|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_1|} AuxVars[] AssignedVars[] 15720#[L12]don't care [286] L12-->L12-1: Formula: (and (= (select |v_#valid_10| 1) 1) (= 2 (select |v_#length_5| 1))) InVars {#length=|v_#length_5|, #valid=|v_#valid_10|} OutVars{#length=|v_#length_5|, #valid=|v_#valid_10|} AuxVars[] AssignedVars[] 15722#[L12-1]don't care [304] L12-1-->L12-2: Formula: (= (select (select |v_#memory_int_7| 1) 0) 48) InVars {#memory_int=|v_#memory_int_7|} OutVars{#memory_int=|v_#memory_int_7|} AuxVars[] AssignedVars[] 15724#[L12-2]don't care [303] L12-2-->L12-3: Formula: (= (select (select |v_#memory_int_8| 1) 1) 0) InVars {#memory_int=|v_#memory_int_8|} OutVars{#memory_int=|v_#memory_int_8|} AuxVars[] AssignedVars[] 15726#[L12-3]don't care [320] L12-3-->L12-4: Formula: (and (= (select |v_#length_6| 2) 12) (= (select |v_#valid_11| 2) 1)) InVars {#length=|v_#length_6|, #valid=|v_#valid_11|} OutVars{#length=|v_#length_6|, #valid=|v_#valid_11|} AuxVars[] AssignedVars[] 15728#[L12-4]don't care [314] L12-4-->L700: Formula: (= v_~flag1~0_15 0) InVars {} OutVars{~flag1~0=v_~flag1~0_15} AuxVars[] AssignedVars[~flag1~0] 15730#[L700]don't care [270] L700-->L701: Formula: (= v_~flag2~0_15 0) InVars {} OutVars{~flag2~0=v_~flag2~0_15} AuxVars[] AssignedVars[~flag2~0] 15732#[L701]don't care [323] L701-->L-1-1: Formula: (= v_~x~0_7 0) InVars {} OutVars{~x~0=v_~x~0_7} AuxVars[] AssignedVars[~x~0] 15734#[L-1-1]don't care [328] L-1-1-->L-1-2: Formula: true InVars {} OutVars{ULTIMATE.start_main_#res#1=|v_ULTIMATE.start_main_#res#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#res#1] 15736#[L-1-2]don't care [329] L-1-2-->L817: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_5|, ULTIMATE.start_main_#t~mem8#1=|v_ULTIMATE.start_main_#t~mem8#1_4|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_6|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_3|, ULTIMATE.start_main_#t~nondet7#1=|v_ULTIMATE.start_main_#t~nondet7#1_3|, ULTIMATE.start_main_#t~mem9#1=|v_ULTIMATE.start_main_#t~mem9#1_4|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_6|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_5|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_6|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_6|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1, ULTIMATE.start_main_#t~mem8#1, ULTIMATE.start_main_~#t2~0#1.offset, ULTIMATE.start_main_#t~nondet5#1, ULTIMATE.start_main_#t~nondet7#1, ULTIMATE.start_main_#t~mem9#1, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_#t~pre4#1, ULTIMATE.start_main_~#t1~0#1.offset, ULTIMATE.start_main_~#t2~0#1.base] 15738#[L817]don't care [268] L817-->L817-1: Formula: (and (not (= |v_ULTIMATE.start_main_~#t1~0#1.base_7| 0)) (= |v_ULTIMATE.start_main_~#t1~0#1.offset_7| 0) (= (store |v_#length_8| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 4) |v_#length_7|) (= |v_#valid_12| (store |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 1)) (= (select |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7|) 0) (< |v_#StackHeapBarrier_2| |v_ULTIMATE.start_main_~#t1~0#1.base_7|)) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_8|, #valid=|v_#valid_13|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_7|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_7|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_7|, #valid=|v_#valid_12|} AuxVars[] AssignedVars[#valid, #length, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_~#t1~0#1.offset] 15740#[L817-1]don't care [283] L817-1-->L817-2: Formula: (and (= |v_#length_9| (store |v_#length_10| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 4)) (= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_7|) (= 0 (select |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7|)) (< |v_#StackHeapBarrier_3| |v_ULTIMATE.start_main_~#t2~0#1.base_7|) (= (store |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 1) |v_#valid_14|) (not (= |v_ULTIMATE.start_main_~#t2~0#1.base_7| 0))) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_10|, #valid=|v_#valid_15|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_9|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_7|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_7|, #valid=|v_#valid_14|} AuxVars[] AssignedVars[ULTIMATE.start_main_~#t2~0#1.offset, #valid, #length, ULTIMATE.start_main_~#t2~0#1.base] 15742#[L817-2]don't care [221] L817-2-->L818: Formula: (= |v_ULTIMATE.start_main_#t~pre4#1_1| |v_#pthreadsForks_1|) InVars {#pthreadsForks=|v_#pthreadsForks_1|} OutVars{#pthreadsForks=|v_#pthreadsForks_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 15744#[L818]don't care [287] L818-->L818-1: Formula: (= (+ 1 |v_#pthreadsForks_3|) |v_#pthreadsForks_2|) InVars {#pthreadsForks=|v_#pthreadsForks_3|} OutVars{#pthreadsForks=|v_#pthreadsForks_2|} AuxVars[] AssignedVars[#pthreadsForks] 15746#[L818-1]don't care [291] L818-1-->L818-2: Formula: (and (= (store |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1| (store (select |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) |v_ULTIMATE.start_main_~#t1~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre4#1_2|)) |v_#memory_int_1|) (<= (+ |v_ULTIMATE.start_main_~#t1~0#1.offset_1| 4) (select |v_#length_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t1~0#1.offset_1|) (= (select |v_#valid_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) 1)) InVars {#valid=|v_#valid_1|, #memory_int=|v_#memory_int_2|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} OutVars{#valid=|v_#valid_1|, #memory_int=|v_#memory_int_1|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} AuxVars[] AssignedVars[#memory_int] 15748#[L818-2]don't care [420] L818-2-->$Ultimate##0: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_4| 0) (= |v_ULTIMATE.start_main_#t~pre4#1_7| v_thr1Thread1of1ForFork0_thidvar0_2) (= |v_thr1Thread1of1ForFork0_#in~_#1.base_4| 0) (= v_thr1Thread1of1ForFork0_thidvar1_2 0)) InVars {ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_4|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_4|, thr1Thread1of1ForFork0_#res#1.offset=|v_thr1Thread1of1ForFork0_#res#1.offset_4|, thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_40|, thr1Thread1of1ForFork0_thidvar0=v_thr1Thread1of1ForFork0_thidvar0_2, thr1Thread1of1ForFork0_thidvar1=v_thr1Thread1of1ForFork0_thidvar1_2, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset_8|, thr1Thread1of1ForFork0_#res#1.base=|v_thr1Thread1of1ForFork0_#res#1.base_4|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_4|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_4|, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base_8|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_#in~_#1.base, thr1Thread1of1ForFork0_#res#1.offset, thr1Thread1of1ForFork0_~f21~0#1, thr1Thread1of1ForFork0_thidvar0, thr1Thread1of1ForFork0_thidvar1, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset, thr1Thread1of1ForFork0_#res#1.base, thr1Thread1of1ForFork0_~_#1.base, thr1Thread1of1ForFork0_#in~_#1.offset, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base] 15750#[$Ultimate##0, L818-3]don't care [317] L818-3-->L818-4: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 15754#[L818-4, $Ultimate##0]don't care [248] L818-4-->L819: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet5#1] 15760#[L819, $Ultimate##0]don't care [258] L819-->L819-1: Formula: (= |v_ULTIMATE.start_main_#t~pre6#1_1| |v_#pthreadsForks_4|) InVars {#pthreadsForks=|v_#pthreadsForks_4|} OutVars{#pthreadsForks=|v_#pthreadsForks_4|, ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1] 15768#[L819-1, $Ultimate##0]don't care [227] L819-1-->L819-2: Formula: (= (+ 1 |v_#pthreadsForks_6|) |v_#pthreadsForks_5|) InVars {#pthreadsForks=|v_#pthreadsForks_6|} OutVars{#pthreadsForks=|v_#pthreadsForks_5|} AuxVars[] AssignedVars[#pthreadsForks] 15778#[$Ultimate##0, L819-2]don't care [306] L819-2-->L819-3: Formula: (and (= (select |v_#valid_2| |v_ULTIMATE.start_main_~#t2~0#1.base_1|) 1) (<= (+ 4 |v_ULTIMATE.start_main_~#t2~0#1.offset_1|) (select |v_#length_2| |v_ULTIMATE.start_main_~#t2~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_1|) (= |v_#memory_int_3| (store |v_#memory_int_4| |v_ULTIMATE.start_main_~#t2~0#1.base_1| (store (select |v_#memory_int_4| |v_ULTIMATE.start_main_~#t2~0#1.base_1|) |v_ULTIMATE.start_main_~#t2~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre6#1_2|)))) InVars {ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_2|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_1|, #valid=|v_#valid_2|, #memory_int=|v_#memory_int_4|, #length=|v_#length_2|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_1|} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_2|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_1|, #valid=|v_#valid_2|, #memory_int=|v_#memory_int_3|, #length=|v_#length_2|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_1|} AuxVars[] AssignedVars[#memory_int] 15790#[L819-3, $Ultimate##0]don't care [423] L819-3-->$Ultimate##0: Formula: (and (= v_thr2Thread1of1ForFork1_thidvar2_2 0) (= |v_ULTIMATE.start_main_#t~pre6#1_7| v_thr2Thread1of1ForFork1_thidvar0_2) (= |v_thr2Thread1of1ForFork1_#in~_#1.base_4| 0) (= v_thr2Thread1of1ForFork1_thidvar1_2 0) (= |v_thr2Thread1of1ForFork1_#in~_#1.offset_4| 0)) InVars {ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_7|} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_7|, thr2Thread1of1ForFork1_#res#1.offset=|v_thr2Thread1of1ForFork1_#res#1.offset_4|, thr2Thread1of1ForFork1_~_#1.base=|v_thr2Thread1of1ForFork1_~_#1.base_4|, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset=|v_thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset_8|, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_40|, thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_4|, thr2Thread1of1ForFork1_thidvar0=v_thr2Thread1of1ForFork1_thidvar0_2, thr2Thread1of1ForFork1_thidvar1=v_thr2Thread1of1ForFork1_thidvar1_2, thr2Thread1of1ForFork1_thidvar2=v_thr2Thread1of1ForFork1_thidvar2_2, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_4|, thr2Thread1of1ForFork1_~_#1.offset=|v_thr2Thread1of1ForFork1_~_#1.offset_4|, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base=|v_thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base_8|, thr2Thread1of1ForFork1_#res#1.base=|v_thr2Thread1of1ForFork1_#res#1.base_4|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_thidvar0, thr2Thread1of1ForFork1_thidvar1, thr2Thread1of1ForFork1_thidvar2, thr2Thread1of1ForFork1_#res#1.offset, thr2Thread1of1ForFork1_~_#1.base, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset, thr2Thread1of1ForFork1_#in~_#1.base, thr2Thread1of1ForFork1_~_#1.offset, thr2Thread1of1ForFork1_~f12~0#1, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base, thr2Thread1of1ForFork1_#res#1.base, thr2Thread1of1ForFork1_#in~_#1.offset] 15804#[$Ultimate##0, $Ultimate##0, L819-4]don't care [338] $Ultimate##0-->L760: Formula: (and (= |v_thr2Thread1of1ForFork1_~_#1.base_1| |v_thr2Thread1of1ForFork1_#in~_#1.base_1|) (= |v_thr2Thread1of1ForFork1_~_#1.offset_1| |v_thr2Thread1of1ForFork1_#in~_#1.offset_1|)) InVars {thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_1|, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_1|} OutVars{thr2Thread1of1ForFork1_~_#1.offset=|v_thr2Thread1of1ForFork1_~_#1.offset_1|, thr2Thread1of1ForFork1_~_#1.base=|v_thr2Thread1of1ForFork1_~_#1.base_1|, thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_1|, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_1|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~_#1.base, thr2Thread1of1ForFork1_~_#1.offset] 15822#[L760, $Ultimate##0, L819-4]don't care [339] L760-->L762: Formula: (= v_~flag2~0_1 1) InVars {} OutVars{~flag2~0=v_~flag2~0_1} AuxVars[] AssignedVars[~flag2~0] 15846#[L762, L819-4, $Ultimate##0]don't care [340] L762-->L769: Formula: (= v_~flag1~0_1 |v_thr2Thread1of1ForFork1_~f12~0#1_1|) InVars {~flag1~0=v_~flag1~0_1} OutVars{~flag1~0=v_~flag1~0_1, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_1|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~f12~0#1] 15878#[L769, L819-4, $Ultimate##0]don't care [2024-02-10 01:07:14,647 INFO L750 eck$LassoCheckResult]: Loop: 15878#[L769, L819-4, $Ultimate##0]don't care [341] L769-->L767: Formula: (<= 3 |v_thr2Thread1of1ForFork1_~f12~0#1_3|) InVars {thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_3|} OutVars{thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_3|} AuxVars[] AssignedVars[] 15918#[L767, L819-4, $Ultimate##0]don't care [344] L767-->L769: Formula: (= v_~flag1~0_3 |v_thr2Thread1of1ForFork1_~f12~0#1_7|) InVars {~flag1~0=v_~flag1~0_3} OutVars{~flag1~0=v_~flag1~0_3, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_7|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~f12~0#1] 15878#[L769, L819-4, $Ultimate##0]don't care [2024-02-10 01:07:14,648 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:14,648 INFO L85 PathProgramCache]: Analyzing trace with hash -477083126, now seen corresponding path program 1 times [2024-02-10 01:07:14,648 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:14,648 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [489117478] [2024-02-10 01:07:14,648 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:14,649 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:14,699 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:14,700 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:14,711 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:14,721 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:14,722 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:14,723 INFO L85 PathProgramCache]: Analyzing trace with hash 11876, now seen corresponding path program 1 times [2024-02-10 01:07:14,723 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:14,723 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2078256715] [2024-02-10 01:07:14,723 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:14,723 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:14,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:14,737 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:14,738 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:14,740 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:14,740 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:14,741 INFO L85 PathProgramCache]: Analyzing trace with hash 1084627501, now seen corresponding path program 1 times [2024-02-10 01:07:14,741 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:14,741 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [11352939] [2024-02-10 01:07:14,741 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:14,741 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:14,773 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-02-10 01:07:14,879 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-02-10 01:07:14,880 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-02-10 01:07:14,880 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [11352939] [2024-02-10 01:07:14,884 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [11352939] provided 1 perfect and 0 imperfect interpolant sequences [2024-02-10 01:07:14,884 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-02-10 01:07:14,884 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2024-02-10 01:07:14,884 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1668055948] [2024-02-10 01:07:14,889 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-02-10 01:07:14,904 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-02-10 01:07:14,905 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2024-02-10 01:07:14,905 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2024-02-10 01:07:15,062 INFO L175 Difference]: Start difference. First operand has 111 places, 117 transitions, 350 flow. Second operand 5 states and 615 transitions. [2024-02-10 01:07:15,062 INFO L103 encePairwiseOnDemand]: Start differencePairwiseOnDemand. First operand has 111 places, 117 transitions, 350 flow. Second operand 5 states and 615 transitions. [2024-02-10 01:07:15,064 INFO L120 encePairwiseOnDemand]: Number of universal subtrahend loopers: 90 of 123 [2024-02-10 01:07:15,064 INFO L73 FinitePrefix]: Start finitePrefix. Operand will be constructed on-demand [2024-02-10 01:07:15,184 INFO L124 PetriNetUnfolderBase]: 192/898 cut-off events. [2024-02-10 01:07:15,184 INFO L125 PetriNetUnfolderBase]: For 110/123 co-relation queries the response was YES. [2024-02-10 01:07:15,190 INFO L83 FinitePrefix]: Finished finitePrefix Result has 1462 conditions, 898 events. 192/898 cut-off events. For 110/123 co-relation queries the response was YES. Maximal size of possible extension queue 50. Compared 6212 event pairs, 46 based on Foata normal form. 30/895 useless extension candidates. Maximal degree in co-relation 1333. Up to 212 conditions per place. [2024-02-10 01:07:15,201 INFO L140 encePairwiseOnDemand]: 106/123 looper letters, 31 selfloop transitions, 17 changer transitions 0/144 dead transitions. [2024-02-10 01:07:15,201 INFO L145 encePairwiseOnDemand]: Finished differencePairwiseOnDemand. Result has 111 places, 144 transitions, 503 flow [2024-02-10 01:07:15,203 INFO L231 Difference]: Finished difference. Result has 118 places, 131 transitions, 482 flow [2024-02-10 01:07:15,204 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2024-02-10 01:07:15,204 INFO L428 stractBuchiCegarLoop]: Abstraction has has 118 places, 131 transitions, 482 flow [2024-02-10 01:07:15,205 INFO L335 stractBuchiCegarLoop]: ======== Iteration 3 ============ [2024-02-10 01:07:15,205 INFO L139 chiPetriNetCegarLoop]: use automaton for emptiness check [2024-02-10 01:07:15,205 INFO L128 iNet2FiniteAutomaton]: Start buchiPetriNet2FiniteAutomaton. Operand has 118 places, 131 transitions, 482 flow [2024-02-10 01:07:15,489 INFO L151 iNet2FiniteAutomaton]: Finished buchiPetriNet2FiniteAutomaton. Result has 7725 states, 7710 states have (on average 2.8350194552529184) internal successors, (21858), 7724 states have internal predecessors, (21858), 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) [2024-02-10 01:07:15,518 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 7725 states, 7710 states have (on average 2.8350194552529184) internal successors, (21858), 7724 states have internal predecessors, (21858), 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) [2024-02-10 01:07:15,641 INFO L131 ngComponentsAnalysis]: Automaton has 1078 accepting balls. 2284 [2024-02-10 01:07:15,641 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-02-10 01:07:15,641 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-02-10 01:07:15,644 INFO L748 eck$LassoCheckResult]: Stem: Black: 26333#[$Ultimate##0]don't care [243] $Ultimate##0-->L-1: Formula: (= (select |v_#valid_9| 0) 0) InVars {#valid=|v_#valid_9|} OutVars{#valid=|v_#valid_9|} AuxVars[] AssignedVars[] 26336#[L-1]don't care [249] L-1-->L12: Formula: (< 0 |v_#StackHeapBarrier_1|) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_1|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_1|} AuxVars[] AssignedVars[] 26338#[L12]don't care [286] L12-->L12-1: Formula: (and (= (select |v_#valid_10| 1) 1) (= 2 (select |v_#length_5| 1))) InVars {#length=|v_#length_5|, #valid=|v_#valid_10|} OutVars{#length=|v_#length_5|, #valid=|v_#valid_10|} AuxVars[] AssignedVars[] 26340#[L12-1]don't care [304] L12-1-->L12-2: Formula: (= (select (select |v_#memory_int_7| 1) 0) 48) InVars {#memory_int=|v_#memory_int_7|} OutVars{#memory_int=|v_#memory_int_7|} AuxVars[] AssignedVars[] 26342#[L12-2]don't care [303] L12-2-->L12-3: Formula: (= (select (select |v_#memory_int_8| 1) 1) 0) InVars {#memory_int=|v_#memory_int_8|} OutVars{#memory_int=|v_#memory_int_8|} AuxVars[] AssignedVars[] 26344#[L12-3]don't care [320] L12-3-->L12-4: Formula: (and (= (select |v_#length_6| 2) 12) (= (select |v_#valid_11| 2) 1)) InVars {#length=|v_#length_6|, #valid=|v_#valid_11|} OutVars{#length=|v_#length_6|, #valid=|v_#valid_11|} AuxVars[] AssignedVars[] 26346#[L12-4]don't care [314] L12-4-->L700: Formula: (= v_~flag1~0_15 0) InVars {} OutVars{~flag1~0=v_~flag1~0_15} AuxVars[] AssignedVars[~flag1~0] 26348#[L700]don't care [270] L700-->L701: Formula: (= v_~flag2~0_15 0) InVars {} OutVars{~flag2~0=v_~flag2~0_15} AuxVars[] AssignedVars[~flag2~0] 26350#[L701]don't care [323] L701-->L-1-1: Formula: (= v_~x~0_7 0) InVars {} OutVars{~x~0=v_~x~0_7} AuxVars[] AssignedVars[~x~0] 26352#[L-1-1]don't care [328] L-1-1-->L-1-2: Formula: true InVars {} OutVars{ULTIMATE.start_main_#res#1=|v_ULTIMATE.start_main_#res#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#res#1] 26354#[L-1-2]don't care [329] L-1-2-->L817: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_5|, ULTIMATE.start_main_#t~mem8#1=|v_ULTIMATE.start_main_#t~mem8#1_4|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_6|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_3|, ULTIMATE.start_main_#t~nondet7#1=|v_ULTIMATE.start_main_#t~nondet7#1_3|, ULTIMATE.start_main_#t~mem9#1=|v_ULTIMATE.start_main_#t~mem9#1_4|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_6|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_5|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_6|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_6|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1, ULTIMATE.start_main_#t~mem8#1, ULTIMATE.start_main_~#t2~0#1.offset, ULTIMATE.start_main_#t~nondet5#1, ULTIMATE.start_main_#t~nondet7#1, ULTIMATE.start_main_#t~mem9#1, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_#t~pre4#1, ULTIMATE.start_main_~#t1~0#1.offset, ULTIMATE.start_main_~#t2~0#1.base] 26356#[L817]don't care [268] L817-->L817-1: Formula: (and (not (= |v_ULTIMATE.start_main_~#t1~0#1.base_7| 0)) (= |v_ULTIMATE.start_main_~#t1~0#1.offset_7| 0) (= (store |v_#length_8| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 4) |v_#length_7|) (= |v_#valid_12| (store |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 1)) (= (select |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7|) 0) (< |v_#StackHeapBarrier_2| |v_ULTIMATE.start_main_~#t1~0#1.base_7|)) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_8|, #valid=|v_#valid_13|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_7|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_7|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_7|, #valid=|v_#valid_12|} AuxVars[] AssignedVars[#valid, #length, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_~#t1~0#1.offset] 26358#[L817-1]don't care [283] L817-1-->L817-2: Formula: (and (= |v_#length_9| (store |v_#length_10| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 4)) (= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_7|) (= 0 (select |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7|)) (< |v_#StackHeapBarrier_3| |v_ULTIMATE.start_main_~#t2~0#1.base_7|) (= (store |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 1) |v_#valid_14|) (not (= |v_ULTIMATE.start_main_~#t2~0#1.base_7| 0))) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_10|, #valid=|v_#valid_15|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_9|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_7|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_7|, #valid=|v_#valid_14|} AuxVars[] AssignedVars[ULTIMATE.start_main_~#t2~0#1.offset, #valid, #length, ULTIMATE.start_main_~#t2~0#1.base] 26360#[L817-2]don't care [221] L817-2-->L818: Formula: (= |v_ULTIMATE.start_main_#t~pre4#1_1| |v_#pthreadsForks_1|) InVars {#pthreadsForks=|v_#pthreadsForks_1|} OutVars{#pthreadsForks=|v_#pthreadsForks_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 26362#[L818]don't care [287] L818-->L818-1: Formula: (= (+ 1 |v_#pthreadsForks_3|) |v_#pthreadsForks_2|) InVars {#pthreadsForks=|v_#pthreadsForks_3|} OutVars{#pthreadsForks=|v_#pthreadsForks_2|} AuxVars[] AssignedVars[#pthreadsForks] 26364#[L818-1]don't care [291] L818-1-->L818-2: Formula: (and (= (store |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1| (store (select |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) |v_ULTIMATE.start_main_~#t1~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre4#1_2|)) |v_#memory_int_1|) (<= (+ |v_ULTIMATE.start_main_~#t1~0#1.offset_1| 4) (select |v_#length_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t1~0#1.offset_1|) (= (select |v_#valid_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) 1)) InVars {#valid=|v_#valid_1|, #memory_int=|v_#memory_int_2|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} OutVars{#valid=|v_#valid_1|, #memory_int=|v_#memory_int_1|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} AuxVars[] AssignedVars[#memory_int] 26366#[L818-2]don't care [420] L818-2-->$Ultimate##0: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_4| 0) (= |v_ULTIMATE.start_main_#t~pre4#1_7| v_thr1Thread1of1ForFork0_thidvar0_2) (= |v_thr1Thread1of1ForFork0_#in~_#1.base_4| 0) (= v_thr1Thread1of1ForFork0_thidvar1_2 0)) InVars {ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_4|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_4|, thr1Thread1of1ForFork0_#res#1.offset=|v_thr1Thread1of1ForFork0_#res#1.offset_4|, thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_40|, thr1Thread1of1ForFork0_thidvar0=v_thr1Thread1of1ForFork0_thidvar0_2, thr1Thread1of1ForFork0_thidvar1=v_thr1Thread1of1ForFork0_thidvar1_2, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset_8|, thr1Thread1of1ForFork0_#res#1.base=|v_thr1Thread1of1ForFork0_#res#1.base_4|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_4|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_4|, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base_8|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_#in~_#1.base, thr1Thread1of1ForFork0_#res#1.offset, thr1Thread1of1ForFork0_~f21~0#1, thr1Thread1of1ForFork0_thidvar0, thr1Thread1of1ForFork0_thidvar1, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset, thr1Thread1of1ForFork0_#res#1.base, thr1Thread1of1ForFork0_~_#1.base, thr1Thread1of1ForFork0_#in~_#1.offset, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base] 26368#[L818-3, $Ultimate##0]don't care [378] $Ultimate##0-->L703: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.base_1| |v_thr1Thread1of1ForFork0_~_#1.base_1|) (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_1| |v_thr1Thread1of1ForFork0_~_#1.offset_1|)) InVars {thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_1|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_1|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_1|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_1|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_1|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_1|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_~_#1.base] 26370#[L818-3, L703]don't care [379] L703-->L705: Formula: (= v_~flag1~0_11 1) InVars {} OutVars{~flag1~0=v_~flag1~0_11} AuxVars[] AssignedVars[~flag1~0] 26376#[L818-3, L705]don't care [317] L818-3-->L818-4: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 26382#[L705, L818-4]don't care [248] L818-4-->L819: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet5#1] 26390#[L819, L705]don't care [258] L819-->L819-1: Formula: (= |v_ULTIMATE.start_main_#t~pre6#1_1| |v_#pthreadsForks_4|) InVars {#pthreadsForks=|v_#pthreadsForks_4|} OutVars{#pthreadsForks=|v_#pthreadsForks_4|, ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1] 26400#[L819-1, L705]don't care [227] L819-1-->L819-2: Formula: (= (+ 1 |v_#pthreadsForks_6|) |v_#pthreadsForks_5|) InVars {#pthreadsForks=|v_#pthreadsForks_6|} OutVars{#pthreadsForks=|v_#pthreadsForks_5|} AuxVars[] AssignedVars[#pthreadsForks] 26412#[L819-2, L705]don't care [306] L819-2-->L819-3: Formula: (and (= (select |v_#valid_2| |v_ULTIMATE.start_main_~#t2~0#1.base_1|) 1) (<= (+ 4 |v_ULTIMATE.start_main_~#t2~0#1.offset_1|) (select |v_#length_2| |v_ULTIMATE.start_main_~#t2~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_1|) (= |v_#memory_int_3| (store |v_#memory_int_4| |v_ULTIMATE.start_main_~#t2~0#1.base_1| (store (select |v_#memory_int_4| |v_ULTIMATE.start_main_~#t2~0#1.base_1|) |v_ULTIMATE.start_main_~#t2~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre6#1_2|)))) InVars {ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_2|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_1|, #valid=|v_#valid_2|, #memory_int=|v_#memory_int_4|, #length=|v_#length_2|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_1|} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_2|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_1|, #valid=|v_#valid_2|, #memory_int=|v_#memory_int_3|, #length=|v_#length_2|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_1|} AuxVars[] AssignedVars[#memory_int] 26426#[L705, L819-3]don't care [423] L819-3-->$Ultimate##0: Formula: (and (= v_thr2Thread1of1ForFork1_thidvar2_2 0) (= |v_ULTIMATE.start_main_#t~pre6#1_7| v_thr2Thread1of1ForFork1_thidvar0_2) (= |v_thr2Thread1of1ForFork1_#in~_#1.base_4| 0) (= v_thr2Thread1of1ForFork1_thidvar1_2 0) (= |v_thr2Thread1of1ForFork1_#in~_#1.offset_4| 0)) InVars {ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_7|} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_7|, thr2Thread1of1ForFork1_#res#1.offset=|v_thr2Thread1of1ForFork1_#res#1.offset_4|, thr2Thread1of1ForFork1_~_#1.base=|v_thr2Thread1of1ForFork1_~_#1.base_4|, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset=|v_thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset_8|, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_40|, thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_4|, thr2Thread1of1ForFork1_thidvar0=v_thr2Thread1of1ForFork1_thidvar0_2, thr2Thread1of1ForFork1_thidvar1=v_thr2Thread1of1ForFork1_thidvar1_2, thr2Thread1of1ForFork1_thidvar2=v_thr2Thread1of1ForFork1_thidvar2_2, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_4|, thr2Thread1of1ForFork1_~_#1.offset=|v_thr2Thread1of1ForFork1_~_#1.offset_4|, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base=|v_thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base_8|, thr2Thread1of1ForFork1_#res#1.base=|v_thr2Thread1of1ForFork1_#res#1.base_4|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_thidvar0, thr2Thread1of1ForFork1_thidvar1, thr2Thread1of1ForFork1_thidvar2, thr2Thread1of1ForFork1_#res#1.offset, thr2Thread1of1ForFork1_~_#1.base, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset, thr2Thread1of1ForFork1_#in~_#1.base, thr2Thread1of1ForFork1_~_#1.offset, thr2Thread1of1ForFork1_~f12~0#1, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base, thr2Thread1of1ForFork1_#res#1.base, thr2Thread1of1ForFork1_#in~_#1.offset] 26444#[L705, $Ultimate##0, L819-4]don't care [338] $Ultimate##0-->L760: Formula: (and (= |v_thr2Thread1of1ForFork1_~_#1.base_1| |v_thr2Thread1of1ForFork1_#in~_#1.base_1|) (= |v_thr2Thread1of1ForFork1_~_#1.offset_1| |v_thr2Thread1of1ForFork1_#in~_#1.offset_1|)) InVars {thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_1|, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_1|} OutVars{thr2Thread1of1ForFork1_~_#1.offset=|v_thr2Thread1of1ForFork1_~_#1.offset_1|, thr2Thread1of1ForFork1_~_#1.base=|v_thr2Thread1of1ForFork1_~_#1.base_1|, thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_1|, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_1|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~_#1.base, thr2Thread1of1ForFork1_~_#1.offset] 26474#[L705, L819-4, L760]don't care [339] L760-->L762: Formula: (= v_~flag2~0_1 1) InVars {} OutVars{~flag2~0=v_~flag2~0_1} AuxVars[] AssignedVars[~flag2~0] 26514#[L819-4, L762, L705]don't care [340] L762-->L769: Formula: (= v_~flag1~0_1 |v_thr2Thread1of1ForFork1_~f12~0#1_1|) InVars {~flag1~0=v_~flag1~0_1} OutVars{~flag1~0=v_~flag1~0_1, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_1|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~f12~0#1] 26564#[L769, L819-4, L705]don't care [2024-02-10 01:07:15,644 INFO L750 eck$LassoCheckResult]: Loop: 26564#[L769, L819-4, L705]don't care [341] L769-->L767: Formula: (<= 3 |v_thr2Thread1of1ForFork1_~f12~0#1_3|) InVars {thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_3|} OutVars{thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_3|} AuxVars[] AssignedVars[] 26632#[L819-4, L767, L705]don't care [344] L767-->L769: Formula: (= v_~flag1~0_3 |v_thr2Thread1of1ForFork1_~f12~0#1_7|) InVars {~flag1~0=v_~flag1~0_3} OutVars{~flag1~0=v_~flag1~0_3, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_7|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~f12~0#1] 26564#[L769, L819-4, L705]don't care [2024-02-10 01:07:15,645 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:15,645 INFO L85 PathProgramCache]: Analyzing trace with hash 851057129, now seen corresponding path program 1 times [2024-02-10 01:07:15,645 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:15,645 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1330198537] [2024-02-10 01:07:15,645 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:15,645 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:15,676 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:15,677 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:15,691 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:15,701 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:15,702 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:15,702 INFO L85 PathProgramCache]: Analyzing trace with hash 11876, now seen corresponding path program 2 times [2024-02-10 01:07:15,702 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:15,702 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1632453464] [2024-02-10 01:07:15,702 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:15,703 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:15,708 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:15,709 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:15,709 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:15,712 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:15,713 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:15,713 INFO L85 PathProgramCache]: Analyzing trace with hash 1822125644, now seen corresponding path program 1 times [2024-02-10 01:07:15,713 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:15,713 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1125089231] [2024-02-10 01:07:15,713 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:15,714 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:15,730 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-02-10 01:07:15,781 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-02-10 01:07:15,782 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-02-10 01:07:15,782 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1125089231] [2024-02-10 01:07:15,782 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1125089231] provided 1 perfect and 0 imperfect interpolant sequences [2024-02-10 01:07:15,782 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-02-10 01:07:15,782 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2024-02-10 01:07:15,782 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [584907860] [2024-02-10 01:07:15,783 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-02-10 01:07:15,796 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-02-10 01:07:15,798 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2024-02-10 01:07:15,798 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2024-02-10 01:07:15,941 INFO L175 Difference]: Start difference. First operand has 118 places, 131 transitions, 482 flow. Second operand 5 states and 615 transitions. [2024-02-10 01:07:15,941 INFO L103 encePairwiseOnDemand]: Start differencePairwiseOnDemand. First operand has 118 places, 131 transitions, 482 flow. Second operand 5 states and 615 transitions. [2024-02-10 01:07:15,943 INFO L120 encePairwiseOnDemand]: Number of universal subtrahend loopers: 89 of 123 [2024-02-10 01:07:15,943 INFO L73 FinitePrefix]: Start finitePrefix. Operand will be constructed on-demand [2024-02-10 01:07:16,106 INFO L124 PetriNetUnfolderBase]: 224/1073 cut-off events. [2024-02-10 01:07:16,106 INFO L125 PetriNetUnfolderBase]: For 542/580 co-relation queries the response was YES. [2024-02-10 01:07:16,110 INFO L83 FinitePrefix]: Finished finitePrefix Result has 2169 conditions, 1073 events. 224/1073 cut-off events. For 542/580 co-relation queries the response was YES. Maximal size of possible extension queue 63. Compared 7888 event pairs, 44 based on Foata normal form. 37/1072 useless extension candidates. Maximal degree in co-relation 2010. Up to 265 conditions per place. [2024-02-10 01:07:16,123 INFO L140 encePairwiseOnDemand]: 109/123 looper letters, 41 selfloop transitions, 17 changer transitions 0/153 dead transitions. [2024-02-10 01:07:16,124 INFO L145 encePairwiseOnDemand]: Finished differencePairwiseOnDemand. Result has 118 places, 153 transitions, 701 flow [2024-02-10 01:07:16,126 INFO L231 Difference]: Finished difference. Result has 126 places, 144 transitions, 659 flow [2024-02-10 01:07:16,126 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2024-02-10 01:07:16,128 INFO L428 stractBuchiCegarLoop]: Abstraction has has 126 places, 144 transitions, 659 flow [2024-02-10 01:07:16,128 INFO L335 stractBuchiCegarLoop]: ======== Iteration 4 ============ [2024-02-10 01:07:16,128 INFO L139 chiPetriNetCegarLoop]: use automaton for emptiness check [2024-02-10 01:07:16,128 INFO L128 iNet2FiniteAutomaton]: Start buchiPetriNet2FiniteAutomaton. Operand has 126 places, 144 transitions, 659 flow [2024-02-10 01:07:16,675 INFO L151 iNet2FiniteAutomaton]: Finished buchiPetriNet2FiniteAutomaton. Result has 9440 states, 9419 states have (on average 2.801783628835333) internal successors, (26390), 9439 states have internal predecessors, (26390), 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) [2024-02-10 01:07:16,703 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 9440 states, 9419 states have (on average 2.801783628835333) internal successors, (26390), 9439 states have internal predecessors, (26390), 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) [2024-02-10 01:07:16,857 INFO L131 ngComponentsAnalysis]: Automaton has 1214 accepting balls. 2532 [2024-02-10 01:07:16,858 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-02-10 01:07:16,858 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-02-10 01:07:16,861 INFO L748 eck$LassoCheckResult]: Stem: Black: 41800#[$Ultimate##0]don't care [243] $Ultimate##0-->L-1: Formula: (= (select |v_#valid_9| 0) 0) InVars {#valid=|v_#valid_9|} OutVars{#valid=|v_#valid_9|} AuxVars[] AssignedVars[] 41803#[L-1]don't care [249] L-1-->L12: Formula: (< 0 |v_#StackHeapBarrier_1|) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_1|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_1|} AuxVars[] AssignedVars[] 41805#[L12]don't care [286] L12-->L12-1: Formula: (and (= (select |v_#valid_10| 1) 1) (= 2 (select |v_#length_5| 1))) InVars {#length=|v_#length_5|, #valid=|v_#valid_10|} OutVars{#length=|v_#length_5|, #valid=|v_#valid_10|} AuxVars[] AssignedVars[] 41807#[L12-1]don't care [304] L12-1-->L12-2: Formula: (= (select (select |v_#memory_int_7| 1) 0) 48) InVars {#memory_int=|v_#memory_int_7|} OutVars{#memory_int=|v_#memory_int_7|} AuxVars[] AssignedVars[] 41809#[L12-2]don't care [303] L12-2-->L12-3: Formula: (= (select (select |v_#memory_int_8| 1) 1) 0) InVars {#memory_int=|v_#memory_int_8|} OutVars{#memory_int=|v_#memory_int_8|} AuxVars[] AssignedVars[] 41811#[L12-3]don't care [320] L12-3-->L12-4: Formula: (and (= (select |v_#length_6| 2) 12) (= (select |v_#valid_11| 2) 1)) InVars {#length=|v_#length_6|, #valid=|v_#valid_11|} OutVars{#length=|v_#length_6|, #valid=|v_#valid_11|} AuxVars[] AssignedVars[] 41813#[L12-4]don't care [314] L12-4-->L700: Formula: (= v_~flag1~0_15 0) InVars {} OutVars{~flag1~0=v_~flag1~0_15} AuxVars[] AssignedVars[~flag1~0] 41815#[L700]don't care [270] L700-->L701: Formula: (= v_~flag2~0_15 0) InVars {} OutVars{~flag2~0=v_~flag2~0_15} AuxVars[] AssignedVars[~flag2~0] 41817#[L701]don't care [323] L701-->L-1-1: Formula: (= v_~x~0_7 0) InVars {} OutVars{~x~0=v_~x~0_7} AuxVars[] AssignedVars[~x~0] 41819#[L-1-1]don't care [328] L-1-1-->L-1-2: Formula: true InVars {} OutVars{ULTIMATE.start_main_#res#1=|v_ULTIMATE.start_main_#res#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#res#1] 41821#[L-1-2]don't care [329] L-1-2-->L817: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_5|, ULTIMATE.start_main_#t~mem8#1=|v_ULTIMATE.start_main_#t~mem8#1_4|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_6|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_3|, ULTIMATE.start_main_#t~nondet7#1=|v_ULTIMATE.start_main_#t~nondet7#1_3|, ULTIMATE.start_main_#t~mem9#1=|v_ULTIMATE.start_main_#t~mem9#1_4|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_6|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_5|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_6|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_6|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1, ULTIMATE.start_main_#t~mem8#1, ULTIMATE.start_main_~#t2~0#1.offset, ULTIMATE.start_main_#t~nondet5#1, ULTIMATE.start_main_#t~nondet7#1, ULTIMATE.start_main_#t~mem9#1, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_#t~pre4#1, ULTIMATE.start_main_~#t1~0#1.offset, ULTIMATE.start_main_~#t2~0#1.base] 41823#[L817]don't care [268] L817-->L817-1: Formula: (and (not (= |v_ULTIMATE.start_main_~#t1~0#1.base_7| 0)) (= |v_ULTIMATE.start_main_~#t1~0#1.offset_7| 0) (= (store |v_#length_8| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 4) |v_#length_7|) (= |v_#valid_12| (store |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 1)) (= (select |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7|) 0) (< |v_#StackHeapBarrier_2| |v_ULTIMATE.start_main_~#t1~0#1.base_7|)) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_8|, #valid=|v_#valid_13|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_7|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_7|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_7|, #valid=|v_#valid_12|} AuxVars[] AssignedVars[#valid, #length, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_~#t1~0#1.offset] 41825#[L817-1]don't care [283] L817-1-->L817-2: Formula: (and (= |v_#length_9| (store |v_#length_10| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 4)) (= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_7|) (= 0 (select |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7|)) (< |v_#StackHeapBarrier_3| |v_ULTIMATE.start_main_~#t2~0#1.base_7|) (= (store |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 1) |v_#valid_14|) (not (= |v_ULTIMATE.start_main_~#t2~0#1.base_7| 0))) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_10|, #valid=|v_#valid_15|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_9|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_7|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_7|, #valid=|v_#valid_14|} AuxVars[] AssignedVars[ULTIMATE.start_main_~#t2~0#1.offset, #valid, #length, ULTIMATE.start_main_~#t2~0#1.base] 41827#[L817-2]don't care [221] L817-2-->L818: Formula: (= |v_ULTIMATE.start_main_#t~pre4#1_1| |v_#pthreadsForks_1|) InVars {#pthreadsForks=|v_#pthreadsForks_1|} OutVars{#pthreadsForks=|v_#pthreadsForks_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 41829#[L818]don't care [287] L818-->L818-1: Formula: (= (+ 1 |v_#pthreadsForks_3|) |v_#pthreadsForks_2|) InVars {#pthreadsForks=|v_#pthreadsForks_3|} OutVars{#pthreadsForks=|v_#pthreadsForks_2|} AuxVars[] AssignedVars[#pthreadsForks] 41831#[L818-1]don't care [291] L818-1-->L818-2: Formula: (and (= (store |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1| (store (select |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) |v_ULTIMATE.start_main_~#t1~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre4#1_2|)) |v_#memory_int_1|) (<= (+ |v_ULTIMATE.start_main_~#t1~0#1.offset_1| 4) (select |v_#length_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t1~0#1.offset_1|) (= (select |v_#valid_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) 1)) InVars {#valid=|v_#valid_1|, #memory_int=|v_#memory_int_2|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} OutVars{#valid=|v_#valid_1|, #memory_int=|v_#memory_int_1|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} AuxVars[] AssignedVars[#memory_int] 41833#[L818-2]don't care [420] L818-2-->$Ultimate##0: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_4| 0) (= |v_ULTIMATE.start_main_#t~pre4#1_7| v_thr1Thread1of1ForFork0_thidvar0_2) (= |v_thr1Thread1of1ForFork0_#in~_#1.base_4| 0) (= v_thr1Thread1of1ForFork0_thidvar1_2 0)) InVars {ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_4|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_4|, thr1Thread1of1ForFork0_#res#1.offset=|v_thr1Thread1of1ForFork0_#res#1.offset_4|, thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_40|, thr1Thread1of1ForFork0_thidvar0=v_thr1Thread1of1ForFork0_thidvar0_2, thr1Thread1of1ForFork0_thidvar1=v_thr1Thread1of1ForFork0_thidvar1_2, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset_8|, thr1Thread1of1ForFork0_#res#1.base=|v_thr1Thread1of1ForFork0_#res#1.base_4|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_4|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_4|, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base_8|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_#in~_#1.base, thr1Thread1of1ForFork0_#res#1.offset, thr1Thread1of1ForFork0_~f21~0#1, thr1Thread1of1ForFork0_thidvar0, thr1Thread1of1ForFork0_thidvar1, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset, thr1Thread1of1ForFork0_#res#1.base, thr1Thread1of1ForFork0_~_#1.base, thr1Thread1of1ForFork0_#in~_#1.offset, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base] 41835#[$Ultimate##0, L818-3]don't care [378] $Ultimate##0-->L703: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.base_1| |v_thr1Thread1of1ForFork0_~_#1.base_1|) (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_1| |v_thr1Thread1of1ForFork0_~_#1.offset_1|)) InVars {thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_1|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_1|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_1|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_1|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_1|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_1|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_~_#1.base] 41837#[L818-3, L703]don't care [379] L703-->L705: Formula: (= v_~flag1~0_11 1) InVars {} OutVars{~flag1~0=v_~flag1~0_11} AuxVars[] AssignedVars[~flag1~0] 41841#[L818-3, L705]don't care [317] L818-3-->L818-4: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 41849#[L818-4, L705]don't care [248] L818-4-->L819: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet5#1] 41859#[L819, L705]don't care [258] L819-->L819-1: Formula: (= |v_ULTIMATE.start_main_#t~pre6#1_1| |v_#pthreadsForks_4|) InVars {#pthreadsForks=|v_#pthreadsForks_4|} OutVars{#pthreadsForks=|v_#pthreadsForks_4|, ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1] 41871#[L705, L819-1]don't care [227] L819-1-->L819-2: Formula: (= (+ 1 |v_#pthreadsForks_6|) |v_#pthreadsForks_5|) InVars {#pthreadsForks=|v_#pthreadsForks_6|} OutVars{#pthreadsForks=|v_#pthreadsForks_5|} AuxVars[] AssignedVars[#pthreadsForks] 41885#[L819-2, L705]don't care [306] L819-2-->L819-3: Formula: (and (= (select |v_#valid_2| |v_ULTIMATE.start_main_~#t2~0#1.base_1|) 1) (<= (+ 4 |v_ULTIMATE.start_main_~#t2~0#1.offset_1|) (select |v_#length_2| |v_ULTIMATE.start_main_~#t2~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_1|) (= |v_#memory_int_3| (store |v_#memory_int_4| |v_ULTIMATE.start_main_~#t2~0#1.base_1| (store (select |v_#memory_int_4| |v_ULTIMATE.start_main_~#t2~0#1.base_1|) |v_ULTIMATE.start_main_~#t2~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre6#1_2|)))) InVars {ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_2|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_1|, #valid=|v_#valid_2|, #memory_int=|v_#memory_int_4|, #length=|v_#length_2|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_1|} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_2|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_1|, #valid=|v_#valid_2|, #memory_int=|v_#memory_int_3|, #length=|v_#length_2|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_1|} AuxVars[] AssignedVars[#memory_int] 41901#[L819-3, L705]don't care [423] L819-3-->$Ultimate##0: Formula: (and (= v_thr2Thread1of1ForFork1_thidvar2_2 0) (= |v_ULTIMATE.start_main_#t~pre6#1_7| v_thr2Thread1of1ForFork1_thidvar0_2) (= |v_thr2Thread1of1ForFork1_#in~_#1.base_4| 0) (= v_thr2Thread1of1ForFork1_thidvar1_2 0) (= |v_thr2Thread1of1ForFork1_#in~_#1.offset_4| 0)) InVars {ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_7|} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_7|, thr2Thread1of1ForFork1_#res#1.offset=|v_thr2Thread1of1ForFork1_#res#1.offset_4|, thr2Thread1of1ForFork1_~_#1.base=|v_thr2Thread1of1ForFork1_~_#1.base_4|, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset=|v_thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset_8|, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_40|, thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_4|, thr2Thread1of1ForFork1_thidvar0=v_thr2Thread1of1ForFork1_thidvar0_2, thr2Thread1of1ForFork1_thidvar1=v_thr2Thread1of1ForFork1_thidvar1_2, thr2Thread1of1ForFork1_thidvar2=v_thr2Thread1of1ForFork1_thidvar2_2, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_4|, thr2Thread1of1ForFork1_~_#1.offset=|v_thr2Thread1of1ForFork1_~_#1.offset_4|, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base=|v_thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base_8|, thr2Thread1of1ForFork1_#res#1.base=|v_thr2Thread1of1ForFork1_#res#1.base_4|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_thidvar0, thr2Thread1of1ForFork1_thidvar1, thr2Thread1of1ForFork1_thidvar2, thr2Thread1of1ForFork1_#res#1.offset, thr2Thread1of1ForFork1_~_#1.base, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset, thr2Thread1of1ForFork1_#in~_#1.base, thr2Thread1of1ForFork1_~_#1.offset, thr2Thread1of1ForFork1_~f12~0#1, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base, thr2Thread1of1ForFork1_#res#1.base, thr2Thread1of1ForFork1_#in~_#1.offset] 41921#[L705, L819-4, $Ultimate##0]don't care [338] $Ultimate##0-->L760: Formula: (and (= |v_thr2Thread1of1ForFork1_~_#1.base_1| |v_thr2Thread1of1ForFork1_#in~_#1.base_1|) (= |v_thr2Thread1of1ForFork1_~_#1.offset_1| |v_thr2Thread1of1ForFork1_#in~_#1.offset_1|)) InVars {thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_1|, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_1|} OutVars{thr2Thread1of1ForFork1_~_#1.offset=|v_thr2Thread1of1ForFork1_~_#1.offset_1|, thr2Thread1of1ForFork1_~_#1.base=|v_thr2Thread1of1ForFork1_~_#1.base_1|, thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_1|, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_1|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~_#1.base, thr2Thread1of1ForFork1_~_#1.offset] 41949#[L705, L819-4, L760]don't care [339] L760-->L762: Formula: (= v_~flag2~0_1 1) InVars {} OutVars{~flag2~0=v_~flag2~0_1} AuxVars[] AssignedVars[~flag2~0] 41987#[L819-4, L762, L705]don't care [380] L705-->L712: Formula: (= |v_thr1Thread1of1ForFork0_~f21~0#1_1| v_~flag2~0_8) InVars {~flag2~0=v_~flag2~0_8} OutVars{thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_1|, ~flag2~0=v_~flag2~0_8} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~f21~0#1] 42035#[L712, L819-4, L762]don't care [2024-02-10 01:07:16,861 INFO L750 eck$LassoCheckResult]: Loop: 42035#[L712, L819-4, L762]don't care [381] L712-->L710: Formula: (<= 3 |v_thr1Thread1of1ForFork0_~f21~0#1_3|) InVars {thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_3|} OutVars{thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_3|} AuxVars[] AssignedVars[] 42099#[L819-4, L762, L710]don't care [384] L710-->L712: Formula: (= |v_thr1Thread1of1ForFork0_~f21~0#1_7| v_~flag2~0_10) InVars {~flag2~0=v_~flag2~0_10} OutVars{thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_7|, ~flag2~0=v_~flag2~0_10} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~f21~0#1] 42035#[L712, L819-4, L762]don't care [2024-02-10 01:07:16,862 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:16,862 INFO L85 PathProgramCache]: Analyzing trace with hash 851057169, now seen corresponding path program 1 times [2024-02-10 01:07:16,862 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:16,863 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [803661087] [2024-02-10 01:07:16,863 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:16,863 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:16,884 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:16,885 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:16,893 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:16,898 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:16,899 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:16,900 INFO L85 PathProgramCache]: Analyzing trace with hash 13156, now seen corresponding path program 2 times [2024-02-10 01:07:16,900 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:16,900 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [711978424] [2024-02-10 01:07:16,900 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:16,900 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:16,905 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:16,905 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:16,906 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:16,908 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:16,909 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:16,909 INFO L85 PathProgramCache]: Analyzing trace with hash 1822165364, now seen corresponding path program 1 times [2024-02-10 01:07:16,910 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:16,910 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1343134523] [2024-02-10 01:07:16,910 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:16,910 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:16,926 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2024-02-10 01:07:16,997 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2024-02-10 01:07:16,997 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2024-02-10 01:07:16,998 INFO L334 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1343134523] [2024-02-10 01:07:16,998 INFO L158 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1343134523] provided 1 perfect and 0 imperfect interpolant sequences [2024-02-10 01:07:16,999 INFO L185 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2024-02-10 01:07:17,000 INFO L198 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2024-02-10 01:07:17,003 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2146703266] [2024-02-10 01:07:17,003 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2024-02-10 01:07:17,017 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2024-02-10 01:07:17,019 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2024-02-10 01:07:17,020 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2024-02-10 01:07:17,160 INFO L175 Difference]: Start difference. First operand has 126 places, 144 transitions, 659 flow. Second operand 5 states and 615 transitions. [2024-02-10 01:07:17,160 INFO L103 encePairwiseOnDemand]: Start differencePairwiseOnDemand. First operand has 126 places, 144 transitions, 659 flow. Second operand 5 states and 615 transitions. [2024-02-10 01:07:17,161 INFO L120 encePairwiseOnDemand]: Number of universal subtrahend loopers: 89 of 123 [2024-02-10 01:07:17,162 INFO L73 FinitePrefix]: Start finitePrefix. Operand will be constructed on-demand [2024-02-10 01:07:17,346 INFO L124 PetriNetUnfolderBase]: 309/1415 cut-off events. [2024-02-10 01:07:17,346 INFO L125 PetriNetUnfolderBase]: For 1147/1211 co-relation queries the response was YES. [2024-02-10 01:07:17,355 INFO L83 FinitePrefix]: Finished finitePrefix Result has 3215 conditions, 1415 events. 309/1415 cut-off events. For 1147/1211 co-relation queries the response was YES. Maximal size of possible extension queue 84. Compared 11216 event pairs, 43 based on Foata normal form. 38/1389 useless extension candidates. Maximal degree in co-relation 3080. Up to 362 conditions per place. [2024-02-10 01:07:17,371 INFO L140 encePairwiseOnDemand]: 109/123 looper letters, 40 selfloop transitions, 17 changer transitions 0/165 dead transitions. [2024-02-10 01:07:17,372 INFO L145 encePairwiseOnDemand]: Finished differencePairwiseOnDemand. Result has 126 places, 165 transitions, 871 flow [2024-02-10 01:07:17,373 INFO L231 Difference]: Finished difference. Result has 134 places, 157 transitions, 836 flow [2024-02-10 01:07:17,373 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2024-02-10 01:07:17,374 INFO L428 stractBuchiCegarLoop]: Abstraction has has 134 places, 157 transitions, 836 flow [2024-02-10 01:07:17,374 INFO L335 stractBuchiCegarLoop]: ======== Iteration 5 ============ [2024-02-10 01:07:17,375 INFO L139 chiPetriNetCegarLoop]: use automaton for emptiness check [2024-02-10 01:07:17,375 INFO L128 iNet2FiniteAutomaton]: Start buchiPetriNet2FiniteAutomaton. Operand has 134 places, 157 transitions, 836 flow [2024-02-10 01:07:17,910 INFO L151 iNet2FiniteAutomaton]: Finished buchiPetriNet2FiniteAutomaton. Result has 10978 states, 10951 states have (on average 2.7731713998721577) internal successors, (30369), 10977 states have internal predecessors, (30369), 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) [2024-02-10 01:07:17,936 INFO L72 BuchiIsEmpty]: Start buchiIsEmpty. Operand has 10978 states, 10951 states have (on average 2.7731713998721577) internal successors, (30369), 10977 states have internal predecessors, (30369), 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) [2024-02-10 01:07:18,085 INFO L131 ngComponentsAnalysis]: Automaton has 1317 accepting balls. 2722 [2024-02-10 01:07:18,086 INFO L87 BuchiIsEmpty]: Finished buchiIsEmpty Result is false [2024-02-10 01:07:18,086 INFO L119 BuchiIsEmpty]: Starting construction of run [2024-02-10 01:07:18,088 INFO L748 eck$LassoCheckResult]: Stem: Black: 60697#[$Ultimate##0]don't care [243] $Ultimate##0-->L-1: Formula: (= (select |v_#valid_9| 0) 0) InVars {#valid=|v_#valid_9|} OutVars{#valid=|v_#valid_9|} AuxVars[] AssignedVars[] 60700#[L-1]don't care [249] L-1-->L12: Formula: (< 0 |v_#StackHeapBarrier_1|) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_1|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_1|} AuxVars[] AssignedVars[] 60702#[L12]don't care [286] L12-->L12-1: Formula: (and (= (select |v_#valid_10| 1) 1) (= 2 (select |v_#length_5| 1))) InVars {#length=|v_#length_5|, #valid=|v_#valid_10|} OutVars{#length=|v_#length_5|, #valid=|v_#valid_10|} AuxVars[] AssignedVars[] 60704#[L12-1]don't care [304] L12-1-->L12-2: Formula: (= (select (select |v_#memory_int_7| 1) 0) 48) InVars {#memory_int=|v_#memory_int_7|} OutVars{#memory_int=|v_#memory_int_7|} AuxVars[] AssignedVars[] 60706#[L12-2]don't care [303] L12-2-->L12-3: Formula: (= (select (select |v_#memory_int_8| 1) 1) 0) InVars {#memory_int=|v_#memory_int_8|} OutVars{#memory_int=|v_#memory_int_8|} AuxVars[] AssignedVars[] 60708#[L12-3]don't care [320] L12-3-->L12-4: Formula: (and (= (select |v_#length_6| 2) 12) (= (select |v_#valid_11| 2) 1)) InVars {#length=|v_#length_6|, #valid=|v_#valid_11|} OutVars{#length=|v_#length_6|, #valid=|v_#valid_11|} AuxVars[] AssignedVars[] 60710#[L12-4]don't care [314] L12-4-->L700: Formula: (= v_~flag1~0_15 0) InVars {} OutVars{~flag1~0=v_~flag1~0_15} AuxVars[] AssignedVars[~flag1~0] 60712#[L700]don't care [270] L700-->L701: Formula: (= v_~flag2~0_15 0) InVars {} OutVars{~flag2~0=v_~flag2~0_15} AuxVars[] AssignedVars[~flag2~0] 60714#[L701]don't care [323] L701-->L-1-1: Formula: (= v_~x~0_7 0) InVars {} OutVars{~x~0=v_~x~0_7} AuxVars[] AssignedVars[~x~0] 60716#[L-1-1]don't care [328] L-1-1-->L-1-2: Formula: true InVars {} OutVars{ULTIMATE.start_main_#res#1=|v_ULTIMATE.start_main_#res#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#res#1] 60718#[L-1-2]don't care [329] L-1-2-->L817: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_5|, ULTIMATE.start_main_#t~mem8#1=|v_ULTIMATE.start_main_#t~mem8#1_4|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_6|, ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_3|, ULTIMATE.start_main_#t~nondet7#1=|v_ULTIMATE.start_main_#t~nondet7#1_3|, ULTIMATE.start_main_#t~mem9#1=|v_ULTIMATE.start_main_#t~mem9#1_4|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_6|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_5|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_6|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_6|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1, ULTIMATE.start_main_#t~mem8#1, ULTIMATE.start_main_~#t2~0#1.offset, ULTIMATE.start_main_#t~nondet5#1, ULTIMATE.start_main_#t~nondet7#1, ULTIMATE.start_main_#t~mem9#1, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_#t~pre4#1, ULTIMATE.start_main_~#t1~0#1.offset, ULTIMATE.start_main_~#t2~0#1.base] 60720#[L817]don't care [268] L817-->L817-1: Formula: (and (not (= |v_ULTIMATE.start_main_~#t1~0#1.base_7| 0)) (= |v_ULTIMATE.start_main_~#t1~0#1.offset_7| 0) (= (store |v_#length_8| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 4) |v_#length_7|) (= |v_#valid_12| (store |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7| 1)) (= (select |v_#valid_13| |v_ULTIMATE.start_main_~#t1~0#1.base_7|) 0) (< |v_#StackHeapBarrier_2| |v_ULTIMATE.start_main_~#t1~0#1.base_7|)) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_8|, #valid=|v_#valid_13|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_2|, #length=|v_#length_7|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_7|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_7|, #valid=|v_#valid_12|} AuxVars[] AssignedVars[#valid, #length, ULTIMATE.start_main_~#t1~0#1.base, ULTIMATE.start_main_~#t1~0#1.offset] 60722#[L817-1]don't care [283] L817-1-->L817-2: Formula: (and (= |v_#length_9| (store |v_#length_10| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 4)) (= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_7|) (= 0 (select |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7|)) (< |v_#StackHeapBarrier_3| |v_ULTIMATE.start_main_~#t2~0#1.base_7|) (= (store |v_#valid_15| |v_ULTIMATE.start_main_~#t2~0#1.base_7| 1) |v_#valid_14|) (not (= |v_ULTIMATE.start_main_~#t2~0#1.base_7| 0))) InVars {#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_10|, #valid=|v_#valid_15|} OutVars{#StackHeapBarrier=|v_#StackHeapBarrier_3|, #length=|v_#length_9|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_7|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_7|, #valid=|v_#valid_14|} AuxVars[] AssignedVars[ULTIMATE.start_main_~#t2~0#1.offset, #valid, #length, ULTIMATE.start_main_~#t2~0#1.base] 60724#[L817-2]don't care [221] L817-2-->L818: Formula: (= |v_ULTIMATE.start_main_#t~pre4#1_1| |v_#pthreadsForks_1|) InVars {#pthreadsForks=|v_#pthreadsForks_1|} OutVars{#pthreadsForks=|v_#pthreadsForks_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 60726#[L818]don't care [287] L818-->L818-1: Formula: (= (+ 1 |v_#pthreadsForks_3|) |v_#pthreadsForks_2|) InVars {#pthreadsForks=|v_#pthreadsForks_3|} OutVars{#pthreadsForks=|v_#pthreadsForks_2|} AuxVars[] AssignedVars[#pthreadsForks] 60728#[L818-1]don't care [291] L818-1-->L818-2: Formula: (and (= (store |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1| (store (select |v_#memory_int_2| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) |v_ULTIMATE.start_main_~#t1~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre4#1_2|)) |v_#memory_int_1|) (<= (+ |v_ULTIMATE.start_main_~#t1~0#1.offset_1| 4) (select |v_#length_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t1~0#1.offset_1|) (= (select |v_#valid_1| |v_ULTIMATE.start_main_~#t1~0#1.base_1|) 1)) InVars {#valid=|v_#valid_1|, #memory_int=|v_#memory_int_2|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} OutVars{#valid=|v_#valid_1|, #memory_int=|v_#memory_int_1|, #length=|v_#length_1|, ULTIMATE.start_main_~#t1~0#1.base=|v_ULTIMATE.start_main_~#t1~0#1.base_1|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_2|, ULTIMATE.start_main_~#t1~0#1.offset=|v_ULTIMATE.start_main_~#t1~0#1.offset_1|} AuxVars[] AssignedVars[#memory_int] 60730#[L818-2]don't care [420] L818-2-->$Ultimate##0: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_4| 0) (= |v_ULTIMATE.start_main_#t~pre4#1_7| v_thr1Thread1of1ForFork0_thidvar0_2) (= |v_thr1Thread1of1ForFork0_#in~_#1.base_4| 0) (= v_thr1Thread1of1ForFork0_thidvar1_2 0)) InVars {ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_4|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_4|, thr1Thread1of1ForFork0_#res#1.offset=|v_thr1Thread1of1ForFork0_#res#1.offset_4|, thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_40|, thr1Thread1of1ForFork0_thidvar0=v_thr1Thread1of1ForFork0_thidvar0_2, thr1Thread1of1ForFork0_thidvar1=v_thr1Thread1of1ForFork0_thidvar1_2, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset_8|, thr1Thread1of1ForFork0_#res#1.base=|v_thr1Thread1of1ForFork0_#res#1.base_4|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_4|, ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_7|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_4|, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base=|v_thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base_8|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_#in~_#1.base, thr1Thread1of1ForFork0_#res#1.offset, thr1Thread1of1ForFork0_~f21~0#1, thr1Thread1of1ForFork0_thidvar0, thr1Thread1of1ForFork0_thidvar1, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.offset, thr1Thread1of1ForFork0_#res#1.base, thr1Thread1of1ForFork0_~_#1.base, thr1Thread1of1ForFork0_#in~_#1.offset, thr1Thread1of1ForFork0_reach_error_#t~nondet0#1.base] 60732#[$Ultimate##0, L818-3]don't care [378] $Ultimate##0-->L703: Formula: (and (= |v_thr1Thread1of1ForFork0_#in~_#1.base_1| |v_thr1Thread1of1ForFork0_~_#1.base_1|) (= |v_thr1Thread1of1ForFork0_#in~_#1.offset_1| |v_thr1Thread1of1ForFork0_~_#1.offset_1|)) InVars {thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_1|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_1|} OutVars{thr1Thread1of1ForFork0_~_#1.offset=|v_thr1Thread1of1ForFork0_~_#1.offset_1|, thr1Thread1of1ForFork0_#in~_#1.base=|v_thr1Thread1of1ForFork0_#in~_#1.base_1|, thr1Thread1of1ForFork0_~_#1.base=|v_thr1Thread1of1ForFork0_~_#1.base_1|, thr1Thread1of1ForFork0_#in~_#1.offset=|v_thr1Thread1of1ForFork0_#in~_#1.offset_1|} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~_#1.offset, thr1Thread1of1ForFork0_~_#1.base] 60734#[L703, L818-3]don't care [379] L703-->L705: Formula: (= v_~flag1~0_11 1) InVars {} OutVars{~flag1~0=v_~flag1~0_11} AuxVars[] AssignedVars[~flag1~0] 60738#[L818-3, L705]don't care [380] L705-->L712: Formula: (= |v_thr1Thread1of1ForFork0_~f21~0#1_1| v_~flag2~0_8) InVars {~flag2~0=v_~flag2~0_8} OutVars{thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_1|, ~flag2~0=v_~flag2~0_8} AuxVars[] AssignedVars[thr1Thread1of1ForFork0_~f21~0#1] 60744#[L818-3, L712]don't care [317] L818-3-->L818-4: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~pre4#1=|v_ULTIMATE.start_main_#t~pre4#1_3|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre4#1] 60754#[L818-4, L712]don't care [248] L818-4-->L819: Formula: true InVars {} OutVars{ULTIMATE.start_main_#t~nondet5#1=|v_ULTIMATE.start_main_#t~nondet5#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~nondet5#1] 60766#[L712, L819]don't care [258] L819-->L819-1: Formula: (= |v_ULTIMATE.start_main_#t~pre6#1_1| |v_#pthreadsForks_4|) InVars {#pthreadsForks=|v_#pthreadsForks_4|} OutVars{#pthreadsForks=|v_#pthreadsForks_4|, ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_1|} AuxVars[] AssignedVars[ULTIMATE.start_main_#t~pre6#1] 60780#[L819-1, L712]don't care [227] L819-1-->L819-2: Formula: (= (+ 1 |v_#pthreadsForks_6|) |v_#pthreadsForks_5|) InVars {#pthreadsForks=|v_#pthreadsForks_6|} OutVars{#pthreadsForks=|v_#pthreadsForks_5|} AuxVars[] AssignedVars[#pthreadsForks] 60796#[L712, L819-2]don't care [306] L819-2-->L819-3: Formula: (and (= (select |v_#valid_2| |v_ULTIMATE.start_main_~#t2~0#1.base_1|) 1) (<= (+ 4 |v_ULTIMATE.start_main_~#t2~0#1.offset_1|) (select |v_#length_2| |v_ULTIMATE.start_main_~#t2~0#1.base_1|)) (<= 0 |v_ULTIMATE.start_main_~#t2~0#1.offset_1|) (= |v_#memory_int_3| (store |v_#memory_int_4| |v_ULTIMATE.start_main_~#t2~0#1.base_1| (store (select |v_#memory_int_4| |v_ULTIMATE.start_main_~#t2~0#1.base_1|) |v_ULTIMATE.start_main_~#t2~0#1.offset_1| |v_ULTIMATE.start_main_#t~pre6#1_2|)))) InVars {ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_2|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_1|, #valid=|v_#valid_2|, #memory_int=|v_#memory_int_4|, #length=|v_#length_2|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_1|} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_2|, ULTIMATE.start_main_~#t2~0#1.offset=|v_ULTIMATE.start_main_~#t2~0#1.offset_1|, #valid=|v_#valid_2|, #memory_int=|v_#memory_int_3|, #length=|v_#length_2|, ULTIMATE.start_main_~#t2~0#1.base=|v_ULTIMATE.start_main_~#t2~0#1.base_1|} AuxVars[] AssignedVars[#memory_int] 60816#[L712, L819-3]don't care [423] L819-3-->$Ultimate##0: Formula: (and (= v_thr2Thread1of1ForFork1_thidvar2_2 0) (= |v_ULTIMATE.start_main_#t~pre6#1_7| v_thr2Thread1of1ForFork1_thidvar0_2) (= |v_thr2Thread1of1ForFork1_#in~_#1.base_4| 0) (= v_thr2Thread1of1ForFork1_thidvar1_2 0) (= |v_thr2Thread1of1ForFork1_#in~_#1.offset_4| 0)) InVars {ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_7|} OutVars{ULTIMATE.start_main_#t~pre6#1=|v_ULTIMATE.start_main_#t~pre6#1_7|, thr2Thread1of1ForFork1_#res#1.offset=|v_thr2Thread1of1ForFork1_#res#1.offset_4|, thr2Thread1of1ForFork1_~_#1.base=|v_thr2Thread1of1ForFork1_~_#1.base_4|, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset=|v_thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset_8|, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_40|, thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_4|, thr2Thread1of1ForFork1_thidvar0=v_thr2Thread1of1ForFork1_thidvar0_2, thr2Thread1of1ForFork1_thidvar1=v_thr2Thread1of1ForFork1_thidvar1_2, thr2Thread1of1ForFork1_thidvar2=v_thr2Thread1of1ForFork1_thidvar2_2, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_4|, thr2Thread1of1ForFork1_~_#1.offset=|v_thr2Thread1of1ForFork1_~_#1.offset_4|, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base=|v_thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base_8|, thr2Thread1of1ForFork1_#res#1.base=|v_thr2Thread1of1ForFork1_#res#1.base_4|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_thidvar0, thr2Thread1of1ForFork1_thidvar1, thr2Thread1of1ForFork1_thidvar2, thr2Thread1of1ForFork1_#res#1.offset, thr2Thread1of1ForFork1_~_#1.base, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.offset, thr2Thread1of1ForFork1_#in~_#1.base, thr2Thread1of1ForFork1_~_#1.offset, thr2Thread1of1ForFork1_~f12~0#1, thr2Thread1of1ForFork1_reach_error_#t~nondet0#1.base, thr2Thread1of1ForFork1_#res#1.base, thr2Thread1of1ForFork1_#in~_#1.offset] 60842#[$Ultimate##0, L712, L819-4]don't care [338] $Ultimate##0-->L760: Formula: (and (= |v_thr2Thread1of1ForFork1_~_#1.base_1| |v_thr2Thread1of1ForFork1_#in~_#1.base_1|) (= |v_thr2Thread1of1ForFork1_~_#1.offset_1| |v_thr2Thread1of1ForFork1_#in~_#1.offset_1|)) InVars {thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_1|, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_1|} OutVars{thr2Thread1of1ForFork1_~_#1.offset=|v_thr2Thread1of1ForFork1_~_#1.offset_1|, thr2Thread1of1ForFork1_~_#1.base=|v_thr2Thread1of1ForFork1_~_#1.base_1|, thr2Thread1of1ForFork1_#in~_#1.offset=|v_thr2Thread1of1ForFork1_#in~_#1.offset_1|, thr2Thread1of1ForFork1_#in~_#1.base=|v_thr2Thread1of1ForFork1_#in~_#1.base_1|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~_#1.base, thr2Thread1of1ForFork1_~_#1.offset] 60878#[L760, L712, L819-4]don't care [339] L760-->L762: Formula: (= v_~flag2~0_1 1) InVars {} OutVars{~flag2~0=v_~flag2~0_1} AuxVars[] AssignedVars[~flag2~0] 60924#[L762, L712, L819-4]don't care [382] L712-->L709-1: Formula: (< |v_thr1Thread1of1ForFork0_~f21~0#1_5| 3) InVars {thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_5|} OutVars{thr1Thread1of1ForFork0_~f21~0#1=|v_thr1Thread1of1ForFork0_~f21~0#1_5|} AuxVars[] AssignedVars[] 60978#[L762, L709-1, L819-4]don't care [385] L709-1-->L716: Formula: (= v_~flag1~0_12 3) InVars {} OutVars{~flag1~0=v_~flag1~0_12} AuxVars[] AssignedVars[~flag1~0] 61050#[L716, L762, L819-4]don't care [340] L762-->L769: Formula: (= v_~flag1~0_1 |v_thr2Thread1of1ForFork1_~f12~0#1_1|) InVars {~flag1~0=v_~flag1~0_1} OutVars{~flag1~0=v_~flag1~0_1, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_1|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~f12~0#1] 61154#[L716, L769, L819-4]don't care [2024-02-10 01:07:18,088 INFO L750 eck$LassoCheckResult]: Loop: 61154#[L716, L769, L819-4]don't care [341] L769-->L767: Formula: (<= 3 |v_thr2Thread1of1ForFork1_~f12~0#1_3|) InVars {thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_3|} OutVars{thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_3|} AuxVars[] AssignedVars[] 61292#[L716, L767, L819-4]don't care [344] L767-->L769: Formula: (= v_~flag1~0_3 |v_thr2Thread1of1ForFork1_~f12~0#1_7|) InVars {~flag1~0=v_~flag1~0_3} OutVars{~flag1~0=v_~flag1~0_3, thr2Thread1of1ForFork1_~f12~0#1=|v_thr2Thread1of1ForFork1_~f12~0#1_7|} AuxVars[] AssignedVars[thr2Thread1of1ForFork1_~f12~0#1] 61154#[L716, L769, L819-4]don't care [2024-02-10 01:07:18,089 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:18,089 INFO L85 PathProgramCache]: Analyzing trace with hash -337554148, now seen corresponding path program 1 times [2024-02-10 01:07:18,089 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:18,089 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1277009344] [2024-02-10 01:07:18,090 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:18,090 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:18,104 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:18,105 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:18,112 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:18,116 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:18,117 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:18,117 INFO L85 PathProgramCache]: Analyzing trace with hash 11876, now seen corresponding path program 3 times [2024-02-10 01:07:18,117 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:18,117 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2087180536] [2024-02-10 01:07:18,118 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:18,118 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:18,122 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:18,122 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:18,123 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:18,124 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:18,125 INFO L145 PredicateUnifier]: Initialized classic predicate unifier [2024-02-10 01:07:18,125 INFO L85 PathProgramCache]: Analyzing trace with hash 2027989183, now seen corresponding path program 1 times [2024-02-10 01:07:18,125 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2024-02-10 01:07:18,125 INFO L334 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1252505967] [2024-02-10 01:07:18,125 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2024-02-10 01:07:18,126 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2024-02-10 01:07:18,143 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:18,143 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:18,151 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:18,155 INFO L130 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2024-02-10 01:07:19,054 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:19,055 INFO L356 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2024-02-10 01:07:19,068 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2024-02-10 01:07:19,159 INFO L201 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer CFG 10.02 01:07:19 BoogieIcfgContainer [2024-02-10 01:07:19,160 INFO L131 PluginConnector]: ------------------------ END BuchiAutomizer---------------------------- [2024-02-10 01:07:19,160 INFO L158 Benchmark]: Toolchain (without parser) took 7867.20ms. Allocated memory was 160.4MB in the beginning and 425.7MB in the end (delta: 265.3MB). Free memory was 89.4MB in the beginning and 185.1MB in the end (delta: -95.7MB). Peak memory consumption was 170.7MB. Max. memory is 8.0GB. [2024-02-10 01:07:19,161 INFO L158 Benchmark]: CDTParser took 0.13ms. Allocated memory is still 160.4MB. Free memory is still 99.5MB. There was no memory consumed. Max. memory is 8.0GB. [2024-02-10 01:07:19,161 INFO L158 Benchmark]: CACSL2BoogieTranslator took 557.00ms. Allocated memory was 160.4MB in the beginning and 257.9MB in the end (delta: 97.5MB). Free memory was 89.2MB in the beginning and 226.1MB in the end (delta: -136.8MB). Peak memory consumption was 19.0MB. Max. memory is 8.0GB. [2024-02-10 01:07:19,161 INFO L158 Benchmark]: Boogie Procedure Inliner took 70.08ms. Allocated memory is still 257.9MB. Free memory was 226.1MB in the beginning and 224.0MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. [2024-02-10 01:07:19,162 INFO L158 Benchmark]: Boogie Preprocessor took 47.62ms. Allocated memory is still 257.9MB. Free memory was 224.0MB in the beginning and 222.4MB in the end (delta: 1.6MB). Peak memory consumption was 1.0MB. Max. memory is 8.0GB. [2024-02-10 01:07:19,162 INFO L158 Benchmark]: RCFGBuilder took 510.29ms. Allocated memory is still 257.9MB. Free memory was 222.4MB in the beginning and 206.1MB in the end (delta: 16.3MB). Peak memory consumption was 16.8MB. Max. memory is 8.0GB. [2024-02-10 01:07:19,162 INFO L158 Benchmark]: BuchiAutomizer took 6675.95ms. Allocated memory was 257.9MB in the beginning and 425.7MB in the end (delta: 167.8MB). Free memory was 206.1MB in the beginning and 185.1MB in the end (delta: 21.1MB). Peak memory consumption was 189.4MB. Max. memory is 8.0GB. [2024-02-10 01:07:19,164 INFO L338 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.13ms. Allocated memory is still 160.4MB. Free memory is still 99.5MB. There was no memory consumed. Max. memory is 8.0GB. * CACSL2BoogieTranslator took 557.00ms. Allocated memory was 160.4MB in the beginning and 257.9MB in the end (delta: 97.5MB). Free memory was 89.2MB in the beginning and 226.1MB in the end (delta: -136.8MB). Peak memory consumption was 19.0MB. Max. memory is 8.0GB. * Boogie Procedure Inliner took 70.08ms. Allocated memory is still 257.9MB. Free memory was 226.1MB in the beginning and 224.0MB in the end (delta: 2.1MB). Peak memory consumption was 2.1MB. Max. memory is 8.0GB. * Boogie Preprocessor took 47.62ms. Allocated memory is still 257.9MB. Free memory was 224.0MB in the beginning and 222.4MB in the end (delta: 1.6MB). Peak memory consumption was 1.0MB. Max. memory is 8.0GB. * RCFGBuilder took 510.29ms. Allocated memory is still 257.9MB. Free memory was 222.4MB in the beginning and 206.1MB in the end (delta: 16.3MB). Peak memory consumption was 16.8MB. Max. memory is 8.0GB. * BuchiAutomizer took 6675.95ms. Allocated memory was 257.9MB in the beginning and 425.7MB in the end (delta: 167.8MB). Free memory was 206.1MB in the beginning and 185.1MB in the end (delta: 21.1MB). Peak memory consumption was 189.4MB. Max. memory is 8.0GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: Constructed decomposition of program Your program was decomposed into 4 terminating modules (4 trivial, 0 deterministic, 0 nondeterministic) and one nonterminating remainder module.4 modules have a trivial ranking function, the largest among these consists of 4 locations. The remainder module has 836 locations. - StatisticsResult: Timing statistics BüchiAutomizer plugin needed 6.4s and 5 iterations. TraceHistogramMax:0. Analysis of lassos took 2.0s. Construction of modules took 0.4s. Büchi inclusion checks took 0.9s. Highest rank in rank-based complementation 0. Minimization of det autom 0. Minimization of nondet autom 0. Automata minimization No data available. Non-live state removal took 0.0s Buchi closure took 0.0s. Biggest automaton had -1 states and ocurred in iteration -1. Nontrivial modules had stage [0, 0, 0, 0, 0]. InterpolantCoveringCapabilityFinite: 0/0 InterpolantCoveringCapabilityBuchi: 0/0 HoareTripleCheckerStatistics: 0 mSolverCounterUnknown, 957 SdHoareTripleChecker+Valid, 0.5s IncrementalHoareTripleChecker+Time, 0 mSdLazyCounter, 957 mSDsluCounter, 2766 SdHoareTripleChecker+Invalid, 0.4s Time, 0 mProtectedAction, 0 SdHoareTripleChecker+Unchecked, 0 IncrementalHoareTripleChecker+Unchecked, 1400 mSDsCounter, 60 IncrementalHoareTripleChecker+Valid, 0 mProtectedPredicate, 532 IncrementalHoareTripleChecker+Invalid, 592 SdHoareTripleChecker+Unknown, 0 mSolverCounterNotChecked, 60 mSolverCounterUnsat, 1366 mSDtfsCounter, 532 mSolverCounterSat, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Unknown LassoAnalysisResults: nont1 unkn0 SFLI0 SFLT0 conc4 concLT0 SILN0 SILU0 SILI0 SILT0 lasso0 LassoPreprocessingBenchmarks: LassoTerminationAnalysisBenchmarks: not availableLassoTerminationAnalysisBenchmarks: LassoNonterminationAnalysisSatFixpoint: 0 LassoNonterminationAnalysisSatUnbounded: 0 LassoNonterminationAnalysisUnsat: 0 LassoNonterminationAnalysisUnknown: 0 LassoNonterminationAnalysisTime: 0.0s InitialAbstractionConstructionTime: 0.0s - TerminationAnalysisResult: Nontermination possible Buchi Automizer proved that your program is nonterminating for some inputs - LassoShapedNonTerminationArgument [Line: 766]: Nontermination argument in form of an infinite program execution. Nontermination argument in form of an infinite program execution. Stem: [L700] 0 int flag1 = 0, flag2 = 0; VAL [flag1=0, flag2=0] [L701] 0 int x; VAL [flag1=0, flag2=0, x=0] [L817] 0 pthread_t t1, t2; VAL [flag1=0, flag2=0, t1={26835:0}, t2={26836:0}, x=0] [L818] FCALL, FORK 0 pthread_create(&t1, 0, thr1, 0) VAL [flag1=0, flag2=0, pthread_create(&t1, 0, thr1, 0)=31778, t1={26835:0}, t2={26836:0}, x=0] [L704] 1 flag1 = 1 VAL [_={0:0}, _={0:0}, flag1=1, flag2=0, x=0] [L707] 1 int f21 = flag2; VAL [_={0:0}, _={0:0}, f21=0, flag1=1, flag2=0, x=0] [L819] FCALL, FORK 0 pthread_create(&t2, 0, thr2, 0) VAL [flag1=1, flag2=0, pthread_create(&t2, 0, thr2, 0)=31779, t1={26835:0}, t2={26836:0}, x=0] [L761] 2 flag2 = 1 VAL [_={0:0}, _={0:0}, flag1=1, flag2=1, x=0] [L709] COND FALSE 1 !(f21 >= 3) VAL [_={0:0}, _={0:0}, f21=0, flag1=1, flag2=1, x=0] [L715] 1 flag1 = 3 VAL [_={0:0}, _={0:0}, f21=0, flag1=3, flag2=1, x=0] [L764] 2 int f12 = flag1; VAL [_={0:0}, _={0:0}, f12=3, flag1=3, flag2=1, x=0] Loop: [L766] COND TRUE f12 >= 3 [L768] f12 = flag1 End of lasso representation. - StatisticsResult: NonterminationArgumentStatistics Fixpoint - NonterminatingLassoResult [Line: 766]: Nonterminating execution Found a nonterminating execution for the following lasso shaped sequence of statements. Stem: [L700] 0 int flag1 = 0, flag2 = 0; VAL [flag1=0, flag2=0] [L701] 0 int x; VAL [flag1=0, flag2=0, x=0] [L817] 0 pthread_t t1, t2; VAL [flag1=0, flag2=0, t1={26835:0}, t2={26836:0}, x=0] [L818] FCALL, FORK 0 pthread_create(&t1, 0, thr1, 0) VAL [flag1=0, flag2=0, pthread_create(&t1, 0, thr1, 0)=31778, t1={26835:0}, t2={26836:0}, x=0] [L704] 1 flag1 = 1 VAL [_={0:0}, _={0:0}, flag1=1, flag2=0, x=0] [L707] 1 int f21 = flag2; VAL [_={0:0}, _={0:0}, f21=0, flag1=1, flag2=0, x=0] [L819] FCALL, FORK 0 pthread_create(&t2, 0, thr2, 0) VAL [flag1=1, flag2=0, pthread_create(&t2, 0, thr2, 0)=31779, t1={26835:0}, t2={26836:0}, x=0] [L761] 2 flag2 = 1 VAL [_={0:0}, _={0:0}, flag1=1, flag2=1, x=0] [L709] COND FALSE 1 !(f21 >= 3) VAL [_={0:0}, _={0:0}, f21=0, flag1=1, flag2=1, x=0] [L715] 1 flag1 = 3 VAL [_={0:0}, _={0:0}, f21=0, flag1=3, flag2=1, x=0] [L764] 2 int f12 = flag1; VAL [_={0:0}, _={0:0}, f12=3, flag1=3, flag2=1, x=0] Loop: [L766] COND TRUE f12 >= 3 [L768] f12 = flag1 End of lasso representation. RESULT: Ultimate proved your program to be incorrect! [2024-02-10 01:07:19,239 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:1024 -smt2 -in -t:12000 (1)] Forceful destruction successful, exit code 0 Received shutdown request...