/usr/bin/java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata ./data --core.log.level.for.class de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN -tc ../../../trunk/examples/toolchains/AutomizerC.xml -s ../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationJordan_32.epf -i ../../../trunk/examples/svcomp/nla-digbench-scaling/prod4br-ll_valuebound50.c -------------------------------------------------------------------------------- This is Ultimate 0.2.2-dev-e106359-m [2022-04-15 10:26:35,873 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-04-15 10:26:35,877 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-04-15 10:26:35,915 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-04-15 10:26:35,916 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-04-15 10:26:35,917 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-04-15 10:26:35,920 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-04-15 10:26:35,924 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-04-15 10:26:35,926 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-04-15 10:26:35,931 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-04-15 10:26:35,932 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-04-15 10:26:35,933 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-04-15 10:26:35,933 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-04-15 10:26:35,935 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-04-15 10:26:35,936 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-04-15 10:26:35,939 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-04-15 10:26:35,939 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-04-15 10:26:35,940 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-04-15 10:26:35,942 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-04-15 10:26:35,951 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-04-15 10:26:35,953 INFO L181 SettingsManager]: Resetting HornVerifier preferences to default values [2022-04-15 10:26:35,954 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-04-15 10:26:35,955 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-04-15 10:26:35,956 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-04-15 10:26:35,958 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-04-15 10:26:35,963 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-04-15 10:26:35,963 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-04-15 10:26:35,963 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-04-15 10:26:35,964 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-04-15 10:26:35,965 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-04-15 10:26:35,966 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-04-15 10:26:35,966 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-04-15 10:26:35,968 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-04-15 10:26:35,968 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-04-15 10:26:35,969 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-04-15 10:26:35,969 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-04-15 10:26:35,969 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-04-15 10:26:35,970 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-04-15 10:26:35,970 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-04-15 10:26:35,970 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-04-15 10:26:35,971 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-04-15 10:26:35,972 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-04-15 10:26:35,973 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/automizer/acceleratedInterpolation/acceleratedInterpolationJordan_32.epf [2022-04-15 10:26:35,985 INFO L113 SettingsManager]: Loading preferences was successful [2022-04-15 10:26:35,986 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-04-15 10:26:35,986 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-04-15 10:26:35,987 INFO L138 SettingsManager]: * sizeof long=4 [2022-04-15 10:26:35,987 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-04-15 10:26:35,987 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-04-15 10:26:35,987 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-04-15 10:26:35,987 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-04-15 10:26:35,987 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-04-15 10:26:35,988 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-04-15 10:26:35,988 INFO L138 SettingsManager]: * sizeof long double=12 [2022-04-15 10:26:35,988 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-04-15 10:26:35,988 INFO L138 SettingsManager]: * Use constant arrays=true [2022-04-15 10:26:35,988 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-04-15 10:26:35,989 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-04-15 10:26:35,989 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-04-15 10:26:35,989 INFO L138 SettingsManager]: * To the following directory=./dump/ [2022-04-15 10:26:35,989 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-04-15 10:26:35,989 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-15 10:26:35,989 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-04-15 10:26:35,989 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=Craig_NestedInterpolation [2022-04-15 10:26:35,989 INFO L138 SettingsManager]: * Trace refinement strategy=ACCELERATED_INTERPOLATION [2022-04-15 10:26:35,990 INFO L138 SettingsManager]: * Trace refinement strategy used in Accelerated Interpolation=CAMEL [2022-04-15 10:26:35,990 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-04-15 10:26:35,990 INFO L138 SettingsManager]: * Loop acceleration method that is used by accelerated interpolation=JORDAN [2022-04-15 10:26:35,990 INFO L138 SettingsManager]: * Use separate solver for trace checks=false 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.core: Log level for class -> de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=WARN; [2022-04-15 10:26:36,253 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-04-15 10:26:36,278 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-04-15 10:26:36,280 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-04-15 10:26:36,281 INFO L271 PluginConnector]: Initializing CDTParser... [2022-04-15 10:26:36,282 INFO L275 PluginConnector]: CDTParser initialized [2022-04-15 10:26:36,283 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/nla-digbench-scaling/prod4br-ll_valuebound50.c [2022-04-15 10:26:36,334 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3c084b4ba/54b989b57c594d32b4ddf9f6e11f26a4/FLAG0e58053aa [2022-04-15 10:26:36,770 INFO L306 CDTParser]: Found 1 translation units. [2022-04-15 10:26:36,771 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/prod4br-ll_valuebound50.c [2022-04-15 10:26:36,777 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3c084b4ba/54b989b57c594d32b4ddf9f6e11f26a4/FLAG0e58053aa [2022-04-15 10:26:36,793 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/3c084b4ba/54b989b57c594d32b4ddf9f6e11f26a4 [2022-04-15 10:26:36,795 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-04-15 10:26:36,797 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2022-04-15 10:26:36,799 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-04-15 10:26:36,799 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-04-15 10:26:36,803 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-04-15 10:26:36,804 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 15.04 10:26:36" (1/1) ... [2022-04-15 10:26:36,805 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@611aecb7 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:36, skipping insertion in model container [2022-04-15 10:26:36,805 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 15.04 10:26:36" (1/1) ... [2022-04-15 10:26:36,811 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-04-15 10:26:36,826 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-04-15 10:26:36,955 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/prod4br-ll_valuebound50.c[524,537] [2022-04-15 10:26:36,979 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-15 10:26:36,985 INFO L203 MainTranslator]: Completed pre-run [2022-04-15 10:26:36,995 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/trunk/examples/svcomp/nla-digbench-scaling/prod4br-ll_valuebound50.c[524,537] [2022-04-15 10:26:37,004 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-04-15 10:26:37,014 INFO L208 MainTranslator]: Completed translation [2022-04-15 10:26:37,015 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37 WrapperNode [2022-04-15 10:26:37,015 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-04-15 10:26:37,016 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-04-15 10:26:37,016 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-04-15 10:26:37,016 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-04-15 10:26:37,024 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (1/1) ... [2022-04-15 10:26:37,025 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (1/1) ... [2022-04-15 10:26:37,030 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (1/1) ... [2022-04-15 10:26:37,031 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (1/1) ... [2022-04-15 10:26:37,037 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (1/1) ... [2022-04-15 10:26:37,041 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (1/1) ... [2022-04-15 10:26:37,042 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (1/1) ... [2022-04-15 10:26:37,044 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-04-15 10:26:37,044 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-04-15 10:26:37,045 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-04-15 10:26:37,045 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-04-15 10:26:37,045 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (1/1) ... [2022-04-15 10:26:37,058 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-04-15 10:26:37,069 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:26:37,078 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-04-15 10:26:37,079 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-04-15 10:26:37,112 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2022-04-15 10:26:37,113 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-04-15 10:26:37,113 INFO L138 BoogieDeclarations]: Found implementation of procedure reach_error [2022-04-15 10:26:37,113 INFO L138 BoogieDeclarations]: Found implementation of procedure assume_abort_if_not [2022-04-15 10:26:37,113 INFO L138 BoogieDeclarations]: Found implementation of procedure __VERIFIER_assert [2022-04-15 10:26:37,114 INFO L138 BoogieDeclarations]: Found implementation of procedure main [2022-04-15 10:26:37,114 INFO L130 BoogieDeclarations]: Found specification of procedure abort [2022-04-15 10:26:37,114 INFO L130 BoogieDeclarations]: Found specification of procedure __assert_fail [2022-04-15 10:26:37,114 INFO L130 BoogieDeclarations]: Found specification of procedure reach_error [2022-04-15 10:26:37,114 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-04-15 10:26:37,114 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2022-04-15 10:26:37,114 INFO L130 BoogieDeclarations]: Found specification of procedure assume_abort_if_not [2022-04-15 10:26:37,115 INFO L130 BoogieDeclarations]: Found specification of procedure __VERIFIER_assert [2022-04-15 10:26:37,115 INFO L130 BoogieDeclarations]: Found specification of procedure main [2022-04-15 10:26:37,116 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2022-04-15 10:26:37,116 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-04-15 10:26:37,116 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-04-15 10:26:37,116 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2022-04-15 10:26:37,116 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-04-15 10:26:37,116 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-04-15 10:26:37,169 INFO L234 CfgBuilder]: Building ICFG [2022-04-15 10:26:37,170 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-04-15 10:26:37,387 INFO L275 CfgBuilder]: Performing block encoding [2022-04-15 10:26:37,393 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-04-15 10:26:37,394 INFO L299 CfgBuilder]: Removed 1 assume(true) statements. [2022-04-15 10:26:37,395 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 15.04 10:26:37 BoogieIcfgContainer [2022-04-15 10:26:37,395 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-04-15 10:26:37,397 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-04-15 10:26:37,397 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-04-15 10:26:37,401 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-04-15 10:26:37,401 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 15.04 10:26:36" (1/3) ... [2022-04-15 10:26:37,402 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@3cd70320 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 15.04 10:26:37, skipping insertion in model container [2022-04-15 10:26:37,402 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 15.04 10:26:37" (2/3) ... [2022-04-15 10:26:37,402 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@3cd70320 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 15.04 10:26:37, skipping insertion in model container [2022-04-15 10:26:37,402 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 15.04 10:26:37" (3/3) ... [2022-04-15 10:26:37,403 INFO L111 eAbstractionObserver]: Analyzing ICFG prod4br-ll_valuebound50.c [2022-04-15 10:26:37,408 INFO L202 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:Craig_NestedInterpolation Determinization: PREDICATE_ABSTRACTION [2022-04-15 10:26:37,408 INFO L161 ceAbstractionStarter]: Applying trace abstraction to program that has 1 error locations. [2022-04-15 10:26:37,444 INFO L339 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-04-15 10:26:37,450 INFO L340 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=Craig_NestedInterpolation, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=FINITE_AUTOMATA, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=All, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP [2022-04-15 10:26:37,450 INFO L341 AbstractCegarLoop]: Starting to check reachability of 1 error locations. [2022-04-15 10:26:37,466 INFO L276 IsEmpty]: Start isEmpty. Operand has 34 states, 20 states have (on average 1.45) internal successors, (29), 21 states have internal predecessors, (29), 8 states have call successors, (8), 4 states have call predecessors, (8), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:26:37,472 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2022-04-15 10:26:37,472 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:26:37,473 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:26:37,473 INFO L403 AbstractCegarLoop]: === Iteration 1 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:26:37,477 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:26:37,478 INFO L85 PathProgramCache]: Analyzing trace with hash 1738134960, now seen corresponding path program 1 times [2022-04-15 10:26:37,484 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:26:37,485 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [147208452] [2022-04-15 10:26:37,495 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:26:37,496 INFO L85 PathProgramCache]: Analyzing trace with hash 1738134960, now seen corresponding path program 2 times [2022-04-15 10:26:37,498 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:26:37,499 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1977260920] [2022-04-15 10:26:37,500 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:26:37,500 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:26:37,594 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:26:37,645 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 0 [2022-04-15 10:26:37,648 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:26:37,662 INFO L290 TraceCheckUtils]: 0: Hoare triple {54#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {37#true} is VALID [2022-04-15 10:26:37,662 INFO L290 TraceCheckUtils]: 1: Hoare triple {37#true} assume true; {37#true} is VALID [2022-04-15 10:26:37,662 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {37#true} {37#true} #83#return; {37#true} is VALID [2022-04-15 10:26:37,663 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 6 [2022-04-15 10:26:37,665 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:26:37,670 INFO L290 TraceCheckUtils]: 0: Hoare triple {37#true} ~cond := #in~cond; {37#true} is VALID [2022-04-15 10:26:37,671 INFO L290 TraceCheckUtils]: 1: Hoare triple {37#true} assume 0 == ~cond;assume false; {38#false} is VALID [2022-04-15 10:26:37,671 INFO L290 TraceCheckUtils]: 2: Hoare triple {38#false} assume true; {38#false} is VALID [2022-04-15 10:26:37,671 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {38#false} {37#true} #71#return; {38#false} is VALID [2022-04-15 10:26:37,672 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 12 [2022-04-15 10:26:37,674 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:26:37,679 INFO L290 TraceCheckUtils]: 0: Hoare triple {37#true} ~cond := #in~cond; {37#true} is VALID [2022-04-15 10:26:37,679 INFO L290 TraceCheckUtils]: 1: Hoare triple {37#true} assume 0 == ~cond;assume false; {38#false} is VALID [2022-04-15 10:26:37,680 INFO L290 TraceCheckUtils]: 2: Hoare triple {38#false} assume true; {38#false} is VALID [2022-04-15 10:26:37,680 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {38#false} {38#false} #73#return; {38#false} is VALID [2022-04-15 10:26:37,680 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 17 [2022-04-15 10:26:37,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:26:37,687 INFO L290 TraceCheckUtils]: 0: Hoare triple {37#true} ~cond := #in~cond; {37#true} is VALID [2022-04-15 10:26:37,687 INFO L290 TraceCheckUtils]: 1: Hoare triple {37#true} assume 0 == ~cond;assume false; {38#false} is VALID [2022-04-15 10:26:37,688 INFO L290 TraceCheckUtils]: 2: Hoare triple {38#false} assume true; {38#false} is VALID [2022-04-15 10:26:37,688 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {38#false} {38#false} #75#return; {38#false} is VALID [2022-04-15 10:26:37,689 INFO L272 TraceCheckUtils]: 0: Hoare triple {37#true} call ULTIMATE.init(); {54#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} is VALID [2022-04-15 10:26:37,689 INFO L290 TraceCheckUtils]: 1: Hoare triple {54#(and (= |#NULL.offset| |old(#NULL.offset)|) (= |old(#NULL.base)| |#NULL.base|))} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {37#true} is VALID [2022-04-15 10:26:37,689 INFO L290 TraceCheckUtils]: 2: Hoare triple {37#true} assume true; {37#true} is VALID [2022-04-15 10:26:37,690 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {37#true} {37#true} #83#return; {37#true} is VALID [2022-04-15 10:26:37,690 INFO L272 TraceCheckUtils]: 4: Hoare triple {37#true} call #t~ret6 := main(); {37#true} is VALID [2022-04-15 10:26:37,690 INFO L290 TraceCheckUtils]: 5: Hoare triple {37#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {37#true} is VALID [2022-04-15 10:26:37,690 INFO L272 TraceCheckUtils]: 6: Hoare triple {37#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {37#true} is VALID [2022-04-15 10:26:37,691 INFO L290 TraceCheckUtils]: 7: Hoare triple {37#true} ~cond := #in~cond; {37#true} is VALID [2022-04-15 10:26:37,691 INFO L290 TraceCheckUtils]: 8: Hoare triple {37#true} assume 0 == ~cond;assume false; {38#false} is VALID [2022-04-15 10:26:37,691 INFO L290 TraceCheckUtils]: 9: Hoare triple {38#false} assume true; {38#false} is VALID [2022-04-15 10:26:37,692 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {38#false} {37#true} #71#return; {38#false} is VALID [2022-04-15 10:26:37,692 INFO L290 TraceCheckUtils]: 11: Hoare triple {38#false} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {38#false} is VALID [2022-04-15 10:26:37,692 INFO L272 TraceCheckUtils]: 12: Hoare triple {38#false} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {37#true} is VALID [2022-04-15 10:26:37,692 INFO L290 TraceCheckUtils]: 13: Hoare triple {37#true} ~cond := #in~cond; {37#true} is VALID [2022-04-15 10:26:37,693 INFO L290 TraceCheckUtils]: 14: Hoare triple {37#true} assume 0 == ~cond;assume false; {38#false} is VALID [2022-04-15 10:26:37,693 INFO L290 TraceCheckUtils]: 15: Hoare triple {38#false} assume true; {38#false} is VALID [2022-04-15 10:26:37,693 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {38#false} {38#false} #73#return; {38#false} is VALID [2022-04-15 10:26:37,693 INFO L272 TraceCheckUtils]: 17: Hoare triple {38#false} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {37#true} is VALID [2022-04-15 10:26:37,693 INFO L290 TraceCheckUtils]: 18: Hoare triple {37#true} ~cond := #in~cond; {37#true} is VALID [2022-04-15 10:26:37,694 INFO L290 TraceCheckUtils]: 19: Hoare triple {37#true} assume 0 == ~cond;assume false; {38#false} is VALID [2022-04-15 10:26:37,694 INFO L290 TraceCheckUtils]: 20: Hoare triple {38#false} assume true; {38#false} is VALID [2022-04-15 10:26:37,694 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {38#false} {38#false} #75#return; {38#false} is VALID [2022-04-15 10:26:37,695 INFO L290 TraceCheckUtils]: 22: Hoare triple {38#false} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {38#false} is VALID [2022-04-15 10:26:37,695 INFO L290 TraceCheckUtils]: 23: Hoare triple {38#false} assume !true; {38#false} is VALID [2022-04-15 10:26:37,695 INFO L272 TraceCheckUtils]: 24: Hoare triple {38#false} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {38#false} is VALID [2022-04-15 10:26:37,695 INFO L290 TraceCheckUtils]: 25: Hoare triple {38#false} ~cond := #in~cond; {38#false} is VALID [2022-04-15 10:26:37,696 INFO L290 TraceCheckUtils]: 26: Hoare triple {38#false} assume 0 == ~cond; {38#false} is VALID [2022-04-15 10:26:37,696 INFO L290 TraceCheckUtils]: 27: Hoare triple {38#false} assume !false; {38#false} is VALID [2022-04-15 10:26:37,696 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-15 10:26:37,697 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:26:37,697 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1977260920] [2022-04-15 10:26:37,698 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1977260920] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:26:37,698 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:26:37,698 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-15 10:26:37,700 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:26:37,700 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [147208452] [2022-04-15 10:26:37,701 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [147208452] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:26:37,701 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:26:37,701 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-04-15 10:26:37,702 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [113663387] [2022-04-15 10:26:37,702 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:26:37,708 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 28 [2022-04-15 10:26:37,709 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:26:37,713 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-15 10:26:37,757 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 22 edges. 22 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:26:37,758 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-04-15 10:26:37,758 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:26:37,779 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-04-15 10:26:37,779 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-15 10:26:37,781 INFO L87 Difference]: Start difference. First operand has 34 states, 20 states have (on average 1.45) internal successors, (29), 21 states have internal predecessors, (29), 8 states have call successors, (8), 4 states have call predecessors, (8), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-15 10:26:37,900 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:26:37,900 INFO L93 Difference]: Finished difference Result 61 states and 88 transitions. [2022-04-15 10:26:37,901 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-04-15 10:26:37,901 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) Word has length 28 [2022-04-15 10:26:37,901 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:26:37,902 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-15 10:26:37,910 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 88 transitions. [2022-04-15 10:26:37,910 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-15 10:26:37,915 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 88 transitions. [2022-04-15 10:26:37,915 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 3 states and 88 transitions. [2022-04-15 10:26:38,032 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 88 edges. 88 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:26:38,043 INFO L225 Difference]: With dead ends: 61 [2022-04-15 10:26:38,044 INFO L226 Difference]: Without dead ends: 29 [2022-04-15 10:26:38,046 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 12 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-04-15 10:26:38,051 INFO L913 BasicCegarLoop]: 35 mSDtfsCounter, 22 mSDsluCounter, 3 mSDsCounter, 0 mSdLazyCounter, 8 mSolverCounterSat, 7 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 28 SdHoareTripleChecker+Valid, 38 SdHoareTripleChecker+Invalid, 15 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 7 IncrementalHoareTripleChecker+Valid, 8 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-04-15 10:26:38,052 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [28 Valid, 38 Invalid, 15 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [7 Valid, 8 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-04-15 10:26:38,066 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 29 states. [2022-04-15 10:26:38,084 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 29 to 29. [2022-04-15 10:26:38,085 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:26:38,085 INFO L82 GeneralOperation]: Start isEquivalent. First operand 29 states. Second operand has 29 states, 17 states have (on average 1.2941176470588236) internal successors, (22), 18 states have internal predecessors, (22), 8 states have call successors, (8), 4 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-15 10:26:38,086 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand has 29 states, 17 states have (on average 1.2941176470588236) internal successors, (22), 18 states have internal predecessors, (22), 8 states have call successors, (8), 4 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-15 10:26:38,086 INFO L87 Difference]: Start difference. First operand 29 states. Second operand has 29 states, 17 states have (on average 1.2941176470588236) internal successors, (22), 18 states have internal predecessors, (22), 8 states have call successors, (8), 4 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-15 10:26:38,090 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:26:38,090 INFO L93 Difference]: Finished difference Result 29 states and 36 transitions. [2022-04-15 10:26:38,090 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 36 transitions. [2022-04-15 10:26:38,091 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:26:38,091 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:26:38,092 INFO L74 IsIncluded]: Start isIncluded. First operand has 29 states, 17 states have (on average 1.2941176470588236) internal successors, (22), 18 states have internal predecessors, (22), 8 states have call successors, (8), 4 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 29 states. [2022-04-15 10:26:38,093 INFO L87 Difference]: Start difference. First operand has 29 states, 17 states have (on average 1.2941176470588236) internal successors, (22), 18 states have internal predecessors, (22), 8 states have call successors, (8), 4 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 29 states. [2022-04-15 10:26:38,097 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:26:38,098 INFO L93 Difference]: Finished difference Result 29 states and 36 transitions. [2022-04-15 10:26:38,098 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 36 transitions. [2022-04-15 10:26:38,098 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:26:38,099 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:26:38,099 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:26:38,099 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:26:38,099 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 29 states, 17 states have (on average 1.2941176470588236) internal successors, (22), 18 states have internal predecessors, (22), 8 states have call successors, (8), 4 states have call predecessors, (8), 3 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-15 10:26:38,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 36 transitions. [2022-04-15 10:26:38,103 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 36 transitions. Word has length 28 [2022-04-15 10:26:38,103 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:26:38,103 INFO L478 AbstractCegarLoop]: Abstraction has 29 states and 36 transitions. [2022-04-15 10:26:38,103 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 4.0) internal successors, (12), 2 states have internal predecessors, (12), 2 states have call successors, (6), 3 states have call predecessors, (6), 2 states have return successors, (4), 2 states have call predecessors, (4), 2 states have call successors, (4) [2022-04-15 10:26:38,103 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 29 states and 36 transitions. [2022-04-15 10:26:38,146 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:26:38,146 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 36 transitions. [2022-04-15 10:26:38,148 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2022-04-15 10:26:38,148 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:26:38,148 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:26:38,150 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-04-15 10:26:38,150 INFO L403 AbstractCegarLoop]: === Iteration 2 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:26:38,153 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:26:38,153 INFO L85 PathProgramCache]: Analyzing trace with hash 567203544, now seen corresponding path program 1 times [2022-04-15 10:26:38,154 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:26:38,154 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [892903494] [2022-04-15 10:26:38,157 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:26:38,157 INFO L85 PathProgramCache]: Analyzing trace with hash 567203544, now seen corresponding path program 2 times [2022-04-15 10:26:38,157 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:26:38,158 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1362719677] [2022-04-15 10:26:38,158 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:26:38,158 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:26:38,190 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:26:38,191 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [144820261] [2022-04-15 10:26:38,191 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:26:38,191 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:26:38,191 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:26:38,193 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:26:38,194 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Waiting until timeout for monitored process [2022-04-15 10:26:38,239 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 1 check-sat command(s) [2022-04-15 10:26:38,239 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:26:38,241 INFO L263 TraceCheckSpWp]: Trace formula consists of 70 conjuncts, 13 conjunts are in the unsatisfiable core [2022-04-15 10:26:38,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:26:38,255 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:26:38,483 INFO L272 TraceCheckUtils]: 0: Hoare triple {295#true} call ULTIMATE.init(); {295#true} is VALID [2022-04-15 10:26:38,483 INFO L290 TraceCheckUtils]: 1: Hoare triple {295#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {295#true} is VALID [2022-04-15 10:26:38,484 INFO L290 TraceCheckUtils]: 2: Hoare triple {295#true} assume true; {295#true} is VALID [2022-04-15 10:26:38,484 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {295#true} {295#true} #83#return; {295#true} is VALID [2022-04-15 10:26:38,484 INFO L272 TraceCheckUtils]: 4: Hoare triple {295#true} call #t~ret6 := main(); {295#true} is VALID [2022-04-15 10:26:38,484 INFO L290 TraceCheckUtils]: 5: Hoare triple {295#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {295#true} is VALID [2022-04-15 10:26:38,485 INFO L272 TraceCheckUtils]: 6: Hoare triple {295#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {295#true} is VALID [2022-04-15 10:26:38,485 INFO L290 TraceCheckUtils]: 7: Hoare triple {295#true} ~cond := #in~cond; {295#true} is VALID [2022-04-15 10:26:38,485 INFO L290 TraceCheckUtils]: 8: Hoare triple {295#true} assume !(0 == ~cond); {295#true} is VALID [2022-04-15 10:26:38,485 INFO L290 TraceCheckUtils]: 9: Hoare triple {295#true} assume true; {295#true} is VALID [2022-04-15 10:26:38,485 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {295#true} {295#true} #71#return; {295#true} is VALID [2022-04-15 10:26:38,486 INFO L290 TraceCheckUtils]: 11: Hoare triple {295#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {295#true} is VALID [2022-04-15 10:26:38,486 INFO L272 TraceCheckUtils]: 12: Hoare triple {295#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {295#true} is VALID [2022-04-15 10:26:38,486 INFO L290 TraceCheckUtils]: 13: Hoare triple {295#true} ~cond := #in~cond; {295#true} is VALID [2022-04-15 10:26:38,486 INFO L290 TraceCheckUtils]: 14: Hoare triple {295#true} assume !(0 == ~cond); {295#true} is VALID [2022-04-15 10:26:38,487 INFO L290 TraceCheckUtils]: 15: Hoare triple {295#true} assume true; {295#true} is VALID [2022-04-15 10:26:38,487 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {295#true} {295#true} #73#return; {295#true} is VALID [2022-04-15 10:26:38,487 INFO L272 TraceCheckUtils]: 17: Hoare triple {295#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {295#true} is VALID [2022-04-15 10:26:38,487 INFO L290 TraceCheckUtils]: 18: Hoare triple {295#true} ~cond := #in~cond; {295#true} is VALID [2022-04-15 10:26:38,487 INFO L290 TraceCheckUtils]: 19: Hoare triple {295#true} assume !(0 == ~cond); {295#true} is VALID [2022-04-15 10:26:38,488 INFO L290 TraceCheckUtils]: 20: Hoare triple {295#true} assume true; {295#true} is VALID [2022-04-15 10:26:38,488 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {295#true} {295#true} #75#return; {295#true} is VALID [2022-04-15 10:26:38,489 INFO L290 TraceCheckUtils]: 22: Hoare triple {295#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {366#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:26:38,489 INFO L290 TraceCheckUtils]: 23: Hoare triple {366#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} assume !false; {366#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:26:38,490 INFO L272 TraceCheckUtils]: 24: Hoare triple {366#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {373#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:26:38,491 INFO L290 TraceCheckUtils]: 25: Hoare triple {373#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {377#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:26:38,491 INFO L290 TraceCheckUtils]: 26: Hoare triple {377#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {296#false} is VALID [2022-04-15 10:26:38,492 INFO L290 TraceCheckUtils]: 27: Hoare triple {296#false} assume !false; {296#false} is VALID [2022-04-15 10:26:38,492 INFO L134 CoverageAnalysis]: Checked inductivity of 12 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-15 10:26:38,492 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-04-15 10:26:38,492 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:26:38,492 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1362719677] [2022-04-15 10:26:38,493 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:26:38,493 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [144820261] [2022-04-15 10:26:38,493 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [144820261] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:26:38,493 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:26:38,493 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-15 10:26:38,494 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:26:38,494 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [892903494] [2022-04-15 10:26:38,494 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [892903494] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:26:38,494 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:26:38,494 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-15 10:26:38,495 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [41355536] [2022-04-15 10:26:38,495 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:26:38,495 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) Word has length 28 [2022-04-15 10:26:38,496 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:26:38,496 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-15 10:26:38,515 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 22 edges. 22 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:26:38,516 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-15 10:26:38,516 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:26:38,516 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-15 10:26:38,517 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-04-15 10:26:38,517 INFO L87 Difference]: Start difference. First operand 29 states and 36 transitions. Second operand has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-15 10:26:38,729 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:26:38,730 INFO L93 Difference]: Finished difference Result 43 states and 55 transitions. [2022-04-15 10:26:38,730 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-15 10:26:38,730 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) Word has length 28 [2022-04-15 10:26:38,730 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:26:38,731 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-15 10:26:38,733 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 55 transitions. [2022-04-15 10:26:38,733 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-15 10:26:38,735 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 55 transitions. [2022-04-15 10:26:38,735 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 55 transitions. [2022-04-15 10:26:38,787 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:26:38,789 INFO L225 Difference]: With dead ends: 43 [2022-04-15 10:26:38,789 INFO L226 Difference]: Without dead ends: 41 [2022-04-15 10:26:38,790 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 28 GetRequests, 24 SyntacticMatches, 0 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=11, Invalid=19, Unknown=0, NotChecked=0, Total=30 [2022-04-15 10:26:38,791 INFO L913 BasicCegarLoop]: 27 mSDtfsCounter, 9 mSDsluCounter, 65 mSDsCounter, 0 mSdLazyCounter, 57 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 11 SdHoareTripleChecker+Valid, 92 SdHoareTripleChecker+Invalid, 57 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 57 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-15 10:26:38,791 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [11 Valid, 92 Invalid, 57 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 57 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-15 10:26:38,792 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 41 states. [2022-04-15 10:26:38,802 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 41 to 35. [2022-04-15 10:26:38,802 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:26:38,802 INFO L82 GeneralOperation]: Start isEquivalent. First operand 41 states. Second operand has 35 states, 21 states have (on average 1.2380952380952381) internal successors, (26), 23 states have internal predecessors, (26), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:26:38,803 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand has 35 states, 21 states have (on average 1.2380952380952381) internal successors, (26), 23 states have internal predecessors, (26), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:26:38,803 INFO L87 Difference]: Start difference. First operand 41 states. Second operand has 35 states, 21 states have (on average 1.2380952380952381) internal successors, (26), 23 states have internal predecessors, (26), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:26:38,806 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:26:38,806 INFO L93 Difference]: Finished difference Result 41 states and 53 transitions. [2022-04-15 10:26:38,806 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 53 transitions. [2022-04-15 10:26:38,807 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:26:38,807 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:26:38,807 INFO L74 IsIncluded]: Start isIncluded. First operand has 35 states, 21 states have (on average 1.2380952380952381) internal successors, (26), 23 states have internal predecessors, (26), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 41 states. [2022-04-15 10:26:38,808 INFO L87 Difference]: Start difference. First operand has 35 states, 21 states have (on average 1.2380952380952381) internal successors, (26), 23 states have internal predecessors, (26), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 41 states. [2022-04-15 10:26:38,810 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:26:38,810 INFO L93 Difference]: Finished difference Result 41 states and 53 transitions. [2022-04-15 10:26:38,810 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 53 transitions. [2022-04-15 10:26:38,811 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:26:38,811 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:26:38,811 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:26:38,811 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:26:38,811 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 35 states, 21 states have (on average 1.2380952380952381) internal successors, (26), 23 states have internal predecessors, (26), 9 states have call successors, (9), 5 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:26:38,813 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 35 states and 42 transitions. [2022-04-15 10:26:38,813 INFO L78 Accepts]: Start accepts. Automaton has 35 states and 42 transitions. Word has length 28 [2022-04-15 10:26:38,813 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:26:38,814 INFO L478 AbstractCegarLoop]: Abstraction has 35 states and 42 transitions. [2022-04-15 10:26:38,814 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 2.4) internal successors, (12), 4 states have internal predecessors, (12), 2 states have call successors, (6), 2 states have call predecessors, (6), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-04-15 10:26:38,814 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 35 states and 42 transitions. [2022-04-15 10:26:38,862 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:26:38,862 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 42 transitions. [2022-04-15 10:26:38,863 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2022-04-15 10:26:38,863 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:26:38,863 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:26:38,881 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (2)] Ended with exit code 0 [2022-04-15 10:26:39,067 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1,2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:26:39,068 INFO L403 AbstractCegarLoop]: === Iteration 3 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:26:39,068 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:26:39,068 INFO L85 PathProgramCache]: Analyzing trace with hash -1139707498, now seen corresponding path program 1 times [2022-04-15 10:26:39,068 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:26:39,068 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2048086414] [2022-04-15 10:26:39,069 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:26:39,069 INFO L85 PathProgramCache]: Analyzing trace with hash -1139707498, now seen corresponding path program 2 times [2022-04-15 10:26:39,069 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:26:39,069 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [387250349] [2022-04-15 10:26:39,069 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:26:39,070 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:26:39,090 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:26:39,091 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [2100265797] [2022-04-15 10:26:39,097 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:26:39,098 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:26:39,098 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:26:39,099 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:26:39,100 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Waiting until timeout for monitored process [2022-04-15 10:26:39,152 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:26:39,152 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:26:39,153 INFO L263 TraceCheckSpWp]: Trace formula consists of 102 conjuncts, 21 conjunts are in the unsatisfiable core [2022-04-15 10:26:39,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:26:39,169 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:26:48,530 INFO L272 TraceCheckUtils]: 0: Hoare triple {623#true} call ULTIMATE.init(); {623#true} is VALID [2022-04-15 10:26:48,531 INFO L290 TraceCheckUtils]: 1: Hoare triple {623#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {623#true} is VALID [2022-04-15 10:26:48,532 INFO L290 TraceCheckUtils]: 2: Hoare triple {623#true} assume true; {623#true} is VALID [2022-04-15 10:26:48,532 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {623#true} {623#true} #83#return; {623#true} is VALID [2022-04-15 10:26:48,532 INFO L272 TraceCheckUtils]: 4: Hoare triple {623#true} call #t~ret6 := main(); {623#true} is VALID [2022-04-15 10:26:48,532 INFO L290 TraceCheckUtils]: 5: Hoare triple {623#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {623#true} is VALID [2022-04-15 10:26:48,532 INFO L272 TraceCheckUtils]: 6: Hoare triple {623#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {623#true} is VALID [2022-04-15 10:26:48,533 INFO L290 TraceCheckUtils]: 7: Hoare triple {623#true} ~cond := #in~cond; {649#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:26:48,533 INFO L290 TraceCheckUtils]: 8: Hoare triple {649#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {653#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:26:48,534 INFO L290 TraceCheckUtils]: 9: Hoare triple {653#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {653#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:26:48,535 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {653#(not (= |assume_abort_if_not_#in~cond| 0))} {623#true} #71#return; {660#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:26:48,535 INFO L290 TraceCheckUtils]: 11: Hoare triple {660#(and (<= 0 main_~x~0) (<= main_~x~0 50))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {660#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:26:48,535 INFO L272 TraceCheckUtils]: 12: Hoare triple {660#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {623#true} is VALID [2022-04-15 10:26:48,536 INFO L290 TraceCheckUtils]: 13: Hoare triple {623#true} ~cond := #in~cond; {623#true} is VALID [2022-04-15 10:26:48,536 INFO L290 TraceCheckUtils]: 14: Hoare triple {623#true} assume !(0 == ~cond); {623#true} is VALID [2022-04-15 10:26:48,536 INFO L290 TraceCheckUtils]: 15: Hoare triple {623#true} assume true; {623#true} is VALID [2022-04-15 10:26:48,538 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {623#true} {660#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #73#return; {660#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:26:48,538 INFO L272 TraceCheckUtils]: 17: Hoare triple {660#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {623#true} is VALID [2022-04-15 10:26:48,539 INFO L290 TraceCheckUtils]: 18: Hoare triple {623#true} ~cond := #in~cond; {649#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:26:48,539 INFO L290 TraceCheckUtils]: 19: Hoare triple {649#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {653#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:26:48,539 INFO L290 TraceCheckUtils]: 20: Hoare triple {653#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {653#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:26:48,540 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {653#(not (= |assume_abort_if_not_#in~cond| 0))} {660#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #75#return; {694#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} is VALID [2022-04-15 10:26:48,541 INFO L290 TraceCheckUtils]: 22: Hoare triple {694#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {698#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:26:48,541 INFO L290 TraceCheckUtils]: 23: Hoare triple {698#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} assume !false; {698#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:26:48,542 INFO L272 TraceCheckUtils]: 24: Hoare triple {698#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {623#true} is VALID [2022-04-15 10:26:48,542 INFO L290 TraceCheckUtils]: 25: Hoare triple {623#true} ~cond := #in~cond; {708#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:26:48,543 INFO L290 TraceCheckUtils]: 26: Hoare triple {708#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {712#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:26:48,543 INFO L290 TraceCheckUtils]: 27: Hoare triple {712#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {712#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:26:50,546 WARN L284 TraceCheckUtils]: 28: Hoare quadruple {712#(not (= |__VERIFIER_assert_#in~cond| 0))} {698#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} #77#return; {719#(and (<= 0 main_~x~0) (or (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~a~0 0))) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is UNKNOWN [2022-04-15 10:26:50,548 INFO L290 TraceCheckUtils]: 29: Hoare triple {719#(and (<= 0 main_~x~0) (or (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~a~0 0))) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} assume !(0 != ~a~0 && 0 != ~b~0); {723#(and (<= main_~x~0 0) (<= 0 main_~x~0) (= main_~q~0 (* main_~y~0 main_~x~0)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:26:50,550 INFO L272 TraceCheckUtils]: 30: Hoare triple {723#(and (<= main_~x~0 0) (<= 0 main_~x~0) (= main_~q~0 (* main_~y~0 main_~x~0)) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {727#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:26:50,553 INFO L290 TraceCheckUtils]: 31: Hoare triple {727#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {731#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:26:50,553 INFO L290 TraceCheckUtils]: 32: Hoare triple {731#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {624#false} is VALID [2022-04-15 10:26:50,554 INFO L290 TraceCheckUtils]: 33: Hoare triple {624#false} assume !false; {624#false} is VALID [2022-04-15 10:26:50,554 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 4 proven. 4 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-15 10:26:50,554 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:27:36,443 INFO L290 TraceCheckUtils]: 33: Hoare triple {624#false} assume !false; {624#false} is VALID [2022-04-15 10:27:36,444 INFO L290 TraceCheckUtils]: 32: Hoare triple {731#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {624#false} is VALID [2022-04-15 10:27:36,444 INFO L290 TraceCheckUtils]: 31: Hoare triple {727#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {731#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:27:36,445 INFO L272 TraceCheckUtils]: 30: Hoare triple {747#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {727#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:27:36,446 INFO L290 TraceCheckUtils]: 29: Hoare triple {751#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {747#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:27:36,448 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {712#(not (= |__VERIFIER_assert_#in~cond| 0))} {623#true} #77#return; {751#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is VALID [2022-04-15 10:27:36,448 INFO L290 TraceCheckUtils]: 27: Hoare triple {712#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {712#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:27:36,449 INFO L290 TraceCheckUtils]: 26: Hoare triple {764#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {712#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:27:36,449 INFO L290 TraceCheckUtils]: 25: Hoare triple {623#true} ~cond := #in~cond; {764#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-15 10:27:36,450 INFO L272 TraceCheckUtils]: 24: Hoare triple {623#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {623#true} is VALID [2022-04-15 10:27:36,450 INFO L290 TraceCheckUtils]: 23: Hoare triple {623#true} assume !false; {623#true} is VALID [2022-04-15 10:27:36,450 INFO L290 TraceCheckUtils]: 22: Hoare triple {623#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {623#true} is VALID [2022-04-15 10:27:36,450 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {623#true} {623#true} #75#return; {623#true} is VALID [2022-04-15 10:27:36,450 INFO L290 TraceCheckUtils]: 20: Hoare triple {623#true} assume true; {623#true} is VALID [2022-04-15 10:27:36,450 INFO L290 TraceCheckUtils]: 19: Hoare triple {623#true} assume !(0 == ~cond); {623#true} is VALID [2022-04-15 10:27:36,451 INFO L290 TraceCheckUtils]: 18: Hoare triple {623#true} ~cond := #in~cond; {623#true} is VALID [2022-04-15 10:27:36,451 INFO L272 TraceCheckUtils]: 17: Hoare triple {623#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {623#true} is VALID [2022-04-15 10:27:36,451 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {623#true} {623#true} #73#return; {623#true} is VALID [2022-04-15 10:27:36,451 INFO L290 TraceCheckUtils]: 15: Hoare triple {623#true} assume true; {623#true} is VALID [2022-04-15 10:27:36,451 INFO L290 TraceCheckUtils]: 14: Hoare triple {623#true} assume !(0 == ~cond); {623#true} is VALID [2022-04-15 10:27:36,451 INFO L290 TraceCheckUtils]: 13: Hoare triple {623#true} ~cond := #in~cond; {623#true} is VALID [2022-04-15 10:27:36,452 INFO L272 TraceCheckUtils]: 12: Hoare triple {623#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {623#true} is VALID [2022-04-15 10:27:36,452 INFO L290 TraceCheckUtils]: 11: Hoare triple {623#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {623#true} is VALID [2022-04-15 10:27:36,452 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {623#true} {623#true} #71#return; {623#true} is VALID [2022-04-15 10:27:36,452 INFO L290 TraceCheckUtils]: 9: Hoare triple {623#true} assume true; {623#true} is VALID [2022-04-15 10:27:36,452 INFO L290 TraceCheckUtils]: 8: Hoare triple {623#true} assume !(0 == ~cond); {623#true} is VALID [2022-04-15 10:27:36,452 INFO L290 TraceCheckUtils]: 7: Hoare triple {623#true} ~cond := #in~cond; {623#true} is VALID [2022-04-15 10:27:36,452 INFO L272 TraceCheckUtils]: 6: Hoare triple {623#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {623#true} is VALID [2022-04-15 10:27:36,453 INFO L290 TraceCheckUtils]: 5: Hoare triple {623#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {623#true} is VALID [2022-04-15 10:27:36,453 INFO L272 TraceCheckUtils]: 4: Hoare triple {623#true} call #t~ret6 := main(); {623#true} is VALID [2022-04-15 10:27:36,453 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {623#true} {623#true} #83#return; {623#true} is VALID [2022-04-15 10:27:36,453 INFO L290 TraceCheckUtils]: 2: Hoare triple {623#true} assume true; {623#true} is VALID [2022-04-15 10:27:36,453 INFO L290 TraceCheckUtils]: 1: Hoare triple {623#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {623#true} is VALID [2022-04-15 10:27:36,453 INFO L272 TraceCheckUtils]: 0: Hoare triple {623#true} call ULTIMATE.init(); {623#true} is VALID [2022-04-15 10:27:36,454 INFO L134 CoverageAnalysis]: Checked inductivity of 14 backedges. 1 proven. 1 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-15 10:27:36,454 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:27:36,454 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [387250349] [2022-04-15 10:27:36,454 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:27:36,454 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [2100265797] [2022-04-15 10:27:36,454 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [2100265797] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:27:36,455 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:27:36,455 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 8] total 16 [2022-04-15 10:27:36,455 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:27:36,455 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2048086414] [2022-04-15 10:27:36,455 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2048086414] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:27:36,455 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:27:36,456 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [13] imperfect sequences [] total 13 [2022-04-15 10:27:36,456 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [320278756] [2022-04-15 10:27:36,456 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:27:36,456 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 12 states have (on average 1.5833333333333333) internal successors, (19), 10 states have internal predecessors, (19), 4 states have call successors, (7), 2 states have call predecessors, (7), 3 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) Word has length 34 [2022-04-15 10:27:36,457 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:27:36,457 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 13 states, 12 states have (on average 1.5833333333333333) internal successors, (19), 10 states have internal predecessors, (19), 4 states have call successors, (7), 2 states have call predecessors, (7), 3 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:27:38,485 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 30 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:27:38,486 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-04-15 10:27:38,486 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:27:38,486 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-04-15 10:27:38,487 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=195, Unknown=0, NotChecked=0, Total=240 [2022-04-15 10:27:38,487 INFO L87 Difference]: Start difference. First operand 35 states and 42 transitions. Second operand has 13 states, 12 states have (on average 1.5833333333333333) internal successors, (19), 10 states have internal predecessors, (19), 4 states have call successors, (7), 2 states have call predecessors, (7), 3 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:27:41,093 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:27:46,389 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:27:46,466 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:27:46,466 INFO L93 Difference]: Finished difference Result 47 states and 58 transitions. [2022-04-15 10:27:46,466 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2022-04-15 10:27:46,467 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 12 states have (on average 1.5833333333333333) internal successors, (19), 10 states have internal predecessors, (19), 4 states have call successors, (7), 2 states have call predecessors, (7), 3 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) Word has length 34 [2022-04-15 10:27:46,467 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:27:46,467 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 12 states have (on average 1.5833333333333333) internal successors, (19), 10 states have internal predecessors, (19), 4 states have call successors, (7), 2 states have call predecessors, (7), 3 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:27:46,470 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 55 transitions. [2022-04-15 10:27:46,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 12 states have (on average 1.5833333333333333) internal successors, (19), 10 states have internal predecessors, (19), 4 states have call successors, (7), 2 states have call predecessors, (7), 3 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:27:46,472 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 55 transitions. [2022-04-15 10:27:46,472 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 12 states and 55 transitions. [2022-04-15 10:27:46,526 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:27:46,528 INFO L225 Difference]: With dead ends: 47 [2022-04-15 10:27:46,528 INFO L226 Difference]: Without dead ends: 45 [2022-04-15 10:27:46,530 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 71 GetRequests, 52 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 56 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=71, Invalid=309, Unknown=0, NotChecked=0, Total=380 [2022-04-15 10:27:46,531 INFO L913 BasicCegarLoop]: 20 mSDtfsCounter, 26 mSDsluCounter, 117 mSDsCounter, 0 mSdLazyCounter, 227 mSolverCounterSat, 10 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 4.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 29 SdHoareTripleChecker+Valid, 137 SdHoareTripleChecker+Invalid, 239 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 10 IncrementalHoareTripleChecker+Valid, 227 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 4.8s IncrementalHoareTripleChecker+Time [2022-04-15 10:27:46,531 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [29 Valid, 137 Invalid, 239 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [10 Valid, 227 Invalid, 2 Unknown, 0 Unchecked, 4.8s Time] [2022-04-15 10:27:46,532 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2022-04-15 10:27:46,578 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 41. [2022-04-15 10:27:46,578 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:27:46,579 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand has 41 states, 25 states have (on average 1.24) internal successors, (31), 27 states have internal predecessors, (31), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:27:46,579 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand has 41 states, 25 states have (on average 1.24) internal successors, (31), 27 states have internal predecessors, (31), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:27:46,579 INFO L87 Difference]: Start difference. First operand 45 states. Second operand has 41 states, 25 states have (on average 1.24) internal successors, (31), 27 states have internal predecessors, (31), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:27:46,582 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:27:46,582 INFO L93 Difference]: Finished difference Result 45 states and 56 transitions. [2022-04-15 10:27:46,582 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 56 transitions. [2022-04-15 10:27:46,583 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:27:46,583 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:27:46,583 INFO L74 IsIncluded]: Start isIncluded. First operand has 41 states, 25 states have (on average 1.24) internal successors, (31), 27 states have internal predecessors, (31), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 45 states. [2022-04-15 10:27:46,584 INFO L87 Difference]: Start difference. First operand has 41 states, 25 states have (on average 1.24) internal successors, (31), 27 states have internal predecessors, (31), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 45 states. [2022-04-15 10:27:46,586 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:27:46,586 INFO L93 Difference]: Finished difference Result 45 states and 56 transitions. [2022-04-15 10:27:46,587 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 56 transitions. [2022-04-15 10:27:46,587 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:27:46,587 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:27:46,587 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:27:46,587 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:27:46,588 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 41 states, 25 states have (on average 1.24) internal successors, (31), 27 states have internal predecessors, (31), 10 states have call successors, (10), 6 states have call predecessors, (10), 5 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:27:46,590 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 49 transitions. [2022-04-15 10:27:46,590 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 49 transitions. Word has length 34 [2022-04-15 10:27:46,590 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:27:46,591 INFO L478 AbstractCegarLoop]: Abstraction has 41 states and 49 transitions. [2022-04-15 10:27:46,591 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 12 states have (on average 1.5833333333333333) internal successors, (19), 10 states have internal predecessors, (19), 4 states have call successors, (7), 2 states have call predecessors, (7), 3 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:27:46,591 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 41 states and 49 transitions. [2022-04-15 10:27:46,657 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:27:46,658 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 49 transitions. [2022-04-15 10:27:46,658 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2022-04-15 10:27:46,659 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:27:46,659 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:27:46,687 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (3)] Forceful destruction successful, exit code 0 [2022-04-15 10:27:46,859 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable2 [2022-04-15 10:27:46,860 INFO L403 AbstractCegarLoop]: === Iteration 4 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:27:46,860 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:27:46,860 INFO L85 PathProgramCache]: Analyzing trace with hash 412541489, now seen corresponding path program 1 times [2022-04-15 10:27:46,860 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:27:46,860 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [498099412] [2022-04-15 10:27:46,861 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:27:46,861 INFO L85 PathProgramCache]: Analyzing trace with hash 412541489, now seen corresponding path program 2 times [2022-04-15 10:27:46,861 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:27:46,861 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [2103015487] [2022-04-15 10:27:46,861 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:27:46,862 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:27:46,881 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:27:46,882 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1188732317] [2022-04-15 10:27:46,882 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:27:46,882 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:27:46,882 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:27:46,887 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:27:46,888 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Waiting until timeout for monitored process [2022-04-15 10:27:46,942 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:27:46,942 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:27:46,943 INFO L263 TraceCheckSpWp]: Trace formula consists of 114 conjuncts, 30 conjunts are in the unsatisfiable core [2022-04-15 10:27:46,964 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:27:46,966 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:27:50,840 INFO L272 TraceCheckUtils]: 0: Hoare triple {1116#true} call ULTIMATE.init(); {1116#true} is VALID [2022-04-15 10:27:50,841 INFO L290 TraceCheckUtils]: 1: Hoare triple {1116#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {1116#true} is VALID [2022-04-15 10:27:50,841 INFO L290 TraceCheckUtils]: 2: Hoare triple {1116#true} assume true; {1116#true} is VALID [2022-04-15 10:27:50,841 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1116#true} {1116#true} #83#return; {1116#true} is VALID [2022-04-15 10:27:50,841 INFO L272 TraceCheckUtils]: 4: Hoare triple {1116#true} call #t~ret6 := main(); {1116#true} is VALID [2022-04-15 10:27:50,841 INFO L290 TraceCheckUtils]: 5: Hoare triple {1116#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {1116#true} is VALID [2022-04-15 10:27:50,841 INFO L272 TraceCheckUtils]: 6: Hoare triple {1116#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {1116#true} is VALID [2022-04-15 10:27:50,842 INFO L290 TraceCheckUtils]: 7: Hoare triple {1116#true} ~cond := #in~cond; {1142#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:27:50,842 INFO L290 TraceCheckUtils]: 8: Hoare triple {1142#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1146#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:27:50,842 INFO L290 TraceCheckUtils]: 9: Hoare triple {1146#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1146#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:27:50,843 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1146#(not (= |assume_abort_if_not_#in~cond| 0))} {1116#true} #71#return; {1153#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:27:50,843 INFO L290 TraceCheckUtils]: 11: Hoare triple {1153#(and (<= 0 main_~x~0) (<= main_~x~0 50))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {1153#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:27:50,843 INFO L272 TraceCheckUtils]: 12: Hoare triple {1153#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {1116#true} is VALID [2022-04-15 10:27:50,844 INFO L290 TraceCheckUtils]: 13: Hoare triple {1116#true} ~cond := #in~cond; {1116#true} is VALID [2022-04-15 10:27:50,844 INFO L290 TraceCheckUtils]: 14: Hoare triple {1116#true} assume !(0 == ~cond); {1116#true} is VALID [2022-04-15 10:27:50,844 INFO L290 TraceCheckUtils]: 15: Hoare triple {1116#true} assume true; {1116#true} is VALID [2022-04-15 10:27:50,845 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1116#true} {1153#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #73#return; {1153#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:27:50,845 INFO L272 TraceCheckUtils]: 17: Hoare triple {1153#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {1116#true} is VALID [2022-04-15 10:27:50,845 INFO L290 TraceCheckUtils]: 18: Hoare triple {1116#true} ~cond := #in~cond; {1142#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:27:50,846 INFO L290 TraceCheckUtils]: 19: Hoare triple {1142#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1146#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:27:50,846 INFO L290 TraceCheckUtils]: 20: Hoare triple {1146#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1146#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:27:50,847 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1146#(not (= |assume_abort_if_not_#in~cond| 0))} {1153#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #75#return; {1187#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} is VALID [2022-04-15 10:27:50,848 INFO L290 TraceCheckUtils]: 22: Hoare triple {1187#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:27:50,848 INFO L290 TraceCheckUtils]: 23: Hoare triple {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} assume !false; {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:27:50,848 INFO L272 TraceCheckUtils]: 24: Hoare triple {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {1116#true} is VALID [2022-04-15 10:27:50,849 INFO L290 TraceCheckUtils]: 25: Hoare triple {1116#true} ~cond := #in~cond; {1116#true} is VALID [2022-04-15 10:27:50,849 INFO L290 TraceCheckUtils]: 26: Hoare triple {1116#true} assume !(0 == ~cond); {1116#true} is VALID [2022-04-15 10:27:50,849 INFO L290 TraceCheckUtils]: 27: Hoare triple {1116#true} assume true; {1116#true} is VALID [2022-04-15 10:27:50,850 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1116#true} {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} #77#return; {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:27:50,850 INFO L290 TraceCheckUtils]: 29: Hoare triple {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} assume !!(0 != ~a~0 && 0 != ~b~0); {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:27:50,852 INFO L290 TraceCheckUtils]: 30: Hoare triple {1191#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {1216#(and (= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (= main_~q~0 0) (= main_~p~0 4) (= (div main_~x~0 2) main_~a~0) (<= 1 main_~y~0) (= (mod main_~x~0 2) 0))} is VALID [2022-04-15 10:27:50,853 INFO L290 TraceCheckUtils]: 31: Hoare triple {1216#(and (= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (= main_~q~0 0) (= main_~p~0 4) (= (div main_~x~0 2) main_~a~0) (<= 1 main_~y~0) (= (mod main_~x~0 2) 0))} assume !false; {1216#(and (= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (= main_~q~0 0) (= main_~p~0 4) (= (div main_~x~0 2) main_~a~0) (<= 1 main_~y~0) (= (mod main_~x~0 2) 0))} is VALID [2022-04-15 10:27:50,858 INFO L272 TraceCheckUtils]: 32: Hoare triple {1216#(and (= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (= main_~q~0 0) (= main_~p~0 4) (= (div main_~x~0 2) main_~a~0) (<= 1 main_~y~0) (= (mod main_~x~0 2) 0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {1223#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:27:50,858 INFO L290 TraceCheckUtils]: 33: Hoare triple {1223#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1227#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:27:50,859 INFO L290 TraceCheckUtils]: 34: Hoare triple {1227#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1117#false} is VALID [2022-04-15 10:27:50,859 INFO L290 TraceCheckUtils]: 35: Hoare triple {1117#false} assume !false; {1117#false} is VALID [2022-04-15 10:27:50,860 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-15 10:27:50,860 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:28:50,402 INFO L290 TraceCheckUtils]: 35: Hoare triple {1117#false} assume !false; {1117#false} is VALID [2022-04-15 10:28:50,403 INFO L290 TraceCheckUtils]: 34: Hoare triple {1227#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1117#false} is VALID [2022-04-15 10:28:50,403 INFO L290 TraceCheckUtils]: 33: Hoare triple {1223#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1227#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:28:50,406 INFO L272 TraceCheckUtils]: 32: Hoare triple {1243#(= (+ main_~q~0 (* main_~b~0 main_~a~0 main_~p~0)) (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {1223#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:28:50,406 INFO L290 TraceCheckUtils]: 31: Hoare triple {1243#(= (+ main_~q~0 (* main_~b~0 main_~a~0 main_~p~0)) (* main_~y~0 main_~x~0))} assume !false; {1243#(= (+ main_~q~0 (* main_~b~0 main_~a~0 main_~p~0)) (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:28:50,411 INFO L290 TraceCheckUtils]: 30: Hoare triple {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {1243#(= (+ main_~q~0 (* main_~b~0 main_~a~0 main_~p~0)) (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:28:50,414 INFO L290 TraceCheckUtils]: 29: Hoare triple {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} assume !!(0 != ~a~0 && 0 != ~b~0); {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} is VALID [2022-04-15 10:28:50,415 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1116#true} {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} #77#return; {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} is VALID [2022-04-15 10:28:50,415 INFO L290 TraceCheckUtils]: 27: Hoare triple {1116#true} assume true; {1116#true} is VALID [2022-04-15 10:28:50,415 INFO L290 TraceCheckUtils]: 26: Hoare triple {1116#true} assume !(0 == ~cond); {1116#true} is VALID [2022-04-15 10:28:50,415 INFO L290 TraceCheckUtils]: 25: Hoare triple {1116#true} ~cond := #in~cond; {1116#true} is VALID [2022-04-15 10:28:50,415 INFO L272 TraceCheckUtils]: 24: Hoare triple {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {1116#true} is VALID [2022-04-15 10:28:50,416 INFO L290 TraceCheckUtils]: 23: Hoare triple {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} assume !false; {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} is VALID [2022-04-15 10:28:50,420 INFO L290 TraceCheckUtils]: 22: Hoare triple {1275#(or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (= (* (div main_~x~0 2) (+ (div main_~y~0 2) 1) 4) (* main_~y~0 main_~x~0)) (not (= (mod main_~x~0 2) 0)))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {1250#(or (and (or (not (= (mod main_~b~0 2) 0)) (= (+ (* (div main_~b~0 2) (* main_~p~0 4) (div main_~a~0 2)) main_~q~0) (* main_~y~0 main_~x~0))) (or (= (mod main_~b~0 2) 0) (= (+ main_~q~0 (* (+ (div main_~b~0 2) 1) (* main_~p~0 4) (div main_~a~0 2))) (* main_~y~0 main_~x~0)))) (not (= (mod main_~a~0 2) 0)) (and (not (< main_~b~0 0)) (not (<= (mod main_~b~0 2) 0))))} is VALID [2022-04-15 10:28:50,421 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1146#(not (= |assume_abort_if_not_#in~cond| 0))} {1116#true} #75#return; {1275#(or (not (< main_~y~0 0)) (= (mod main_~y~0 2) 0) (= (* (div main_~x~0 2) (+ (div main_~y~0 2) 1) 4) (* main_~y~0 main_~x~0)) (not (= (mod main_~x~0 2) 0)))} is VALID [2022-04-15 10:28:50,421 INFO L290 TraceCheckUtils]: 20: Hoare triple {1146#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1146#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:50,422 INFO L290 TraceCheckUtils]: 19: Hoare triple {1288#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {1146#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:50,422 INFO L290 TraceCheckUtils]: 18: Hoare triple {1116#true} ~cond := #in~cond; {1288#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-15 10:28:50,423 INFO L272 TraceCheckUtils]: 17: Hoare triple {1116#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {1116#true} is VALID [2022-04-15 10:28:50,423 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1116#true} {1116#true} #73#return; {1116#true} is VALID [2022-04-15 10:28:50,423 INFO L290 TraceCheckUtils]: 15: Hoare triple {1116#true} assume true; {1116#true} is VALID [2022-04-15 10:28:50,423 INFO L290 TraceCheckUtils]: 14: Hoare triple {1116#true} assume !(0 == ~cond); {1116#true} is VALID [2022-04-15 10:28:50,424 INFO L290 TraceCheckUtils]: 13: Hoare triple {1116#true} ~cond := #in~cond; {1116#true} is VALID [2022-04-15 10:28:50,427 INFO L272 TraceCheckUtils]: 12: Hoare triple {1116#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {1116#true} is VALID [2022-04-15 10:28:50,427 INFO L290 TraceCheckUtils]: 11: Hoare triple {1116#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {1116#true} is VALID [2022-04-15 10:28:50,427 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1116#true} {1116#true} #71#return; {1116#true} is VALID [2022-04-15 10:28:50,427 INFO L290 TraceCheckUtils]: 9: Hoare triple {1116#true} assume true; {1116#true} is VALID [2022-04-15 10:28:50,427 INFO L290 TraceCheckUtils]: 8: Hoare triple {1116#true} assume !(0 == ~cond); {1116#true} is VALID [2022-04-15 10:28:50,427 INFO L290 TraceCheckUtils]: 7: Hoare triple {1116#true} ~cond := #in~cond; {1116#true} is VALID [2022-04-15 10:28:50,428 INFO L272 TraceCheckUtils]: 6: Hoare triple {1116#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {1116#true} is VALID [2022-04-15 10:28:50,428 INFO L290 TraceCheckUtils]: 5: Hoare triple {1116#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {1116#true} is VALID [2022-04-15 10:28:50,428 INFO L272 TraceCheckUtils]: 4: Hoare triple {1116#true} call #t~ret6 := main(); {1116#true} is VALID [2022-04-15 10:28:50,428 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1116#true} {1116#true} #83#return; {1116#true} is VALID [2022-04-15 10:28:50,453 INFO L290 TraceCheckUtils]: 2: Hoare triple {1116#true} assume true; {1116#true} is VALID [2022-04-15 10:28:50,453 INFO L290 TraceCheckUtils]: 1: Hoare triple {1116#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {1116#true} is VALID [2022-04-15 10:28:50,453 INFO L272 TraceCheckUtils]: 0: Hoare triple {1116#true} call ULTIMATE.init(); {1116#true} is VALID [2022-04-15 10:28:50,453 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-15 10:28:50,454 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:28:50,454 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [2103015487] [2022-04-15 10:28:50,454 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:28:50,454 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1188732317] [2022-04-15 10:28:50,454 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1188732317] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:28:50,454 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:28:50,454 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 9] total 14 [2022-04-15 10:28:50,454 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:28:50,455 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [498099412] [2022-04-15 10:28:50,455 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [498099412] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:28:50,455 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:28:50,455 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-04-15 10:28:50,455 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1265906935] [2022-04-15 10:28:50,455 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:28:50,455 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 2.1) internal successors, (21), 8 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) Word has length 36 [2022-04-15 10:28:50,456 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:28:50,456 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 10 states, 10 states have (on average 2.1) internal successors, (21), 8 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:28:50,490 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:50,490 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-04-15 10:28:50,490 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:28:50,491 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-04-15 10:28:50,492 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=143, Unknown=0, NotChecked=0, Total=182 [2022-04-15 10:28:50,492 INFO L87 Difference]: Start difference. First operand 41 states and 49 transitions. Second operand has 10 states, 10 states have (on average 2.1) internal successors, (21), 8 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:28:51,514 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:51,514 INFO L93 Difference]: Finished difference Result 59 states and 75 transitions. [2022-04-15 10:28:51,514 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-15 10:28:51,514 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 2.1) internal successors, (21), 8 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) Word has length 36 [2022-04-15 10:28:51,515 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:28:51,515 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 2.1) internal successors, (21), 8 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:28:51,517 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 69 transitions. [2022-04-15 10:28:51,517 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 2.1) internal successors, (21), 8 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:28:51,519 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 69 transitions. [2022-04-15 10:28:51,520 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 69 transitions. [2022-04-15 10:28:51,587 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:51,589 INFO L225 Difference]: With dead ends: 59 [2022-04-15 10:28:51,589 INFO L226 Difference]: Without dead ends: 57 [2022-04-15 10:28:51,590 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 73 GetRequests, 58 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 33 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=48, Invalid=192, Unknown=0, NotChecked=0, Total=240 [2022-04-15 10:28:51,590 INFO L913 BasicCegarLoop]: 27 mSDtfsCounter, 48 mSDsluCounter, 98 mSDsCounter, 0 mSdLazyCounter, 217 mSolverCounterSat, 25 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 54 SdHoareTripleChecker+Valid, 125 SdHoareTripleChecker+Invalid, 242 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 25 IncrementalHoareTripleChecker+Valid, 217 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-04-15 10:28:51,591 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [54 Valid, 125 Invalid, 242 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [25 Valid, 217 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-04-15 10:28:51,591 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2022-04-15 10:28:51,648 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 48. [2022-04-15 10:28:51,648 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:28:51,649 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand has 48 states, 30 states have (on average 1.2333333333333334) internal successors, (37), 33 states have internal predecessors, (37), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (9), 7 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-15 10:28:51,650 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand has 48 states, 30 states have (on average 1.2333333333333334) internal successors, (37), 33 states have internal predecessors, (37), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (9), 7 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-15 10:28:51,650 INFO L87 Difference]: Start difference. First operand 57 states. Second operand has 48 states, 30 states have (on average 1.2333333333333334) internal successors, (37), 33 states have internal predecessors, (37), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (9), 7 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-15 10:28:51,653 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:51,653 INFO L93 Difference]: Finished difference Result 57 states and 73 transitions. [2022-04-15 10:28:51,653 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 73 transitions. [2022-04-15 10:28:51,660 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:28:51,660 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:28:51,660 INFO L74 IsIncluded]: Start isIncluded. First operand has 48 states, 30 states have (on average 1.2333333333333334) internal successors, (37), 33 states have internal predecessors, (37), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (9), 7 states have call predecessors, (9), 9 states have call successors, (9) Second operand 57 states. [2022-04-15 10:28:51,661 INFO L87 Difference]: Start difference. First operand has 48 states, 30 states have (on average 1.2333333333333334) internal successors, (37), 33 states have internal predecessors, (37), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (9), 7 states have call predecessors, (9), 9 states have call successors, (9) Second operand 57 states. [2022-04-15 10:28:51,663 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:51,663 INFO L93 Difference]: Finished difference Result 57 states and 73 transitions. [2022-04-15 10:28:51,663 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 73 transitions. [2022-04-15 10:28:51,664 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:28:51,664 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:28:51,664 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:28:51,664 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:28:51,664 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 48 states, 30 states have (on average 1.2333333333333334) internal successors, (37), 33 states have internal predecessors, (37), 11 states have call successors, (11), 7 states have call predecessors, (11), 6 states have return successors, (9), 7 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-15 10:28:51,666 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 57 transitions. [2022-04-15 10:28:51,666 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 57 transitions. Word has length 36 [2022-04-15 10:28:51,666 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:28:51,666 INFO L478 AbstractCegarLoop]: Abstraction has 48 states and 57 transitions. [2022-04-15 10:28:51,667 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 10 states have (on average 2.1) internal successors, (21), 8 states have internal predecessors, (21), 4 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (5), 4 states have call predecessors, (5), 3 states have call successors, (5) [2022-04-15 10:28:51,667 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 48 states and 57 transitions. [2022-04-15 10:28:51,736 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:51,736 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 57 transitions. [2022-04-15 10:28:51,737 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2022-04-15 10:28:51,737 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:28:51,737 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:28:51,754 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (4)] Forceful destruction successful, exit code 0 [2022-04-15 10:28:51,943 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3,4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:28:51,943 INFO L403 AbstractCegarLoop]: === Iteration 5 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:28:51,944 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:28:51,944 INFO L85 PathProgramCache]: Analyzing trace with hash 2032180221, now seen corresponding path program 1 times [2022-04-15 10:28:51,944 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:28:51,944 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [2045382641] [2022-04-15 10:28:51,944 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:28:51,944 INFO L85 PathProgramCache]: Analyzing trace with hash 2032180221, now seen corresponding path program 2 times [2022-04-15 10:28:51,944 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:28:51,944 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [607593306] [2022-04-15 10:28:51,945 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:28:51,945 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:28:51,976 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:28:51,976 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1862672013] [2022-04-15 10:28:51,976 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:28:51,976 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:28:51,976 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:28:51,980 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:28:51,996 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Waiting until timeout for monitored process [2022-04-15 10:28:52,041 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:28:52,042 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:28:52,043 INFO L263 TraceCheckSpWp]: Trace formula consists of 113 conjuncts, 27 conjunts are in the unsatisfiable core [2022-04-15 10:28:52,055 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:28:52,056 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:28:52,462 INFO L272 TraceCheckUtils]: 0: Hoare triple {1677#true} call ULTIMATE.init(); {1677#true} is VALID [2022-04-15 10:28:52,462 INFO L290 TraceCheckUtils]: 1: Hoare triple {1677#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {1677#true} is VALID [2022-04-15 10:28:52,462 INFO L290 TraceCheckUtils]: 2: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:52,462 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1677#true} {1677#true} #83#return; {1677#true} is VALID [2022-04-15 10:28:52,462 INFO L272 TraceCheckUtils]: 4: Hoare triple {1677#true} call #t~ret6 := main(); {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L290 TraceCheckUtils]: 5: Hoare triple {1677#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L272 TraceCheckUtils]: 6: Hoare triple {1677#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L290 TraceCheckUtils]: 7: Hoare triple {1677#true} ~cond := #in~cond; {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L290 TraceCheckUtils]: 8: Hoare triple {1677#true} assume !(0 == ~cond); {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L290 TraceCheckUtils]: 9: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1677#true} {1677#true} #71#return; {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L290 TraceCheckUtils]: 11: Hoare triple {1677#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L272 TraceCheckUtils]: 12: Hoare triple {1677#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {1677#true} is VALID [2022-04-15 10:28:52,463 INFO L290 TraceCheckUtils]: 13: Hoare triple {1677#true} ~cond := #in~cond; {1677#true} is VALID [2022-04-15 10:28:52,464 INFO L290 TraceCheckUtils]: 14: Hoare triple {1677#true} assume !(0 == ~cond); {1677#true} is VALID [2022-04-15 10:28:52,464 INFO L290 TraceCheckUtils]: 15: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:52,464 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1677#true} {1677#true} #73#return; {1677#true} is VALID [2022-04-15 10:28:52,464 INFO L272 TraceCheckUtils]: 17: Hoare triple {1677#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {1677#true} is VALID [2022-04-15 10:28:52,464 INFO L290 TraceCheckUtils]: 18: Hoare triple {1677#true} ~cond := #in~cond; {1736#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:28:52,465 INFO L290 TraceCheckUtils]: 19: Hoare triple {1736#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {1740#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:52,465 INFO L290 TraceCheckUtils]: 20: Hoare triple {1740#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {1740#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:52,466 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1740#(not (= |assume_abort_if_not_#in~cond| 0))} {1677#true} #75#return; {1747#(<= 1 main_~y~0)} is VALID [2022-04-15 10:28:52,467 INFO L290 TraceCheckUtils]: 22: Hoare triple {1747#(<= 1 main_~y~0)} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:28:52,468 INFO L290 TraceCheckUtils]: 23: Hoare triple {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} assume !false; {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:28:52,468 INFO L272 TraceCheckUtils]: 24: Hoare triple {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {1677#true} is VALID [2022-04-15 10:28:52,468 INFO L290 TraceCheckUtils]: 25: Hoare triple {1677#true} ~cond := #in~cond; {1677#true} is VALID [2022-04-15 10:28:52,468 INFO L290 TraceCheckUtils]: 26: Hoare triple {1677#true} assume !(0 == ~cond); {1677#true} is VALID [2022-04-15 10:28:52,468 INFO L290 TraceCheckUtils]: 27: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:52,469 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1677#true} {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} #77#return; {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:28:52,470 INFO L290 TraceCheckUtils]: 29: Hoare triple {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} assume !!(0 != ~a~0 && 0 != ~b~0); {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:28:52,472 INFO L290 TraceCheckUtils]: 30: Hoare triple {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} is VALID [2022-04-15 10:28:52,476 INFO L290 TraceCheckUtils]: 31: Hoare triple {1751#(and (= main_~b~0 main_~y~0) (= main_~q~0 0) (<= 1 main_~y~0) (= main_~a~0 main_~x~0) (= main_~p~0 1))} assume 1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := ~a~0 - 1;~q~0 := ~q~0 + ~b~0 * ~p~0; {1779#(and (= (mod main_~b~0 2) 0) (= main_~b~0 main_~y~0) (= (+ main_~a~0 1) main_~x~0) (= 0 (+ main_~q~0 (* (- 1) main_~b~0 main_~p~0))) (<= 1 main_~y~0) (= main_~p~0 1))} is VALID [2022-04-15 10:28:52,477 INFO L290 TraceCheckUtils]: 32: Hoare triple {1779#(and (= (mod main_~b~0 2) 0) (= main_~b~0 main_~y~0) (= (+ main_~a~0 1) main_~x~0) (= 0 (+ main_~q~0 (* (- 1) main_~b~0 main_~p~0))) (<= 1 main_~y~0) (= main_~p~0 1))} assume !false; {1779#(and (= (mod main_~b~0 2) 0) (= main_~b~0 main_~y~0) (= (+ main_~a~0 1) main_~x~0) (= 0 (+ main_~q~0 (* (- 1) main_~b~0 main_~p~0))) (<= 1 main_~y~0) (= main_~p~0 1))} is VALID [2022-04-15 10:28:52,479 INFO L272 TraceCheckUtils]: 33: Hoare triple {1779#(and (= (mod main_~b~0 2) 0) (= main_~b~0 main_~y~0) (= (+ main_~a~0 1) main_~x~0) (= 0 (+ main_~q~0 (* (- 1) main_~b~0 main_~p~0))) (<= 1 main_~y~0) (= main_~p~0 1))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {1786#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:28:52,480 INFO L290 TraceCheckUtils]: 34: Hoare triple {1786#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1790#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:28:52,480 INFO L290 TraceCheckUtils]: 35: Hoare triple {1790#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1678#false} is VALID [2022-04-15 10:28:52,480 INFO L290 TraceCheckUtils]: 36: Hoare triple {1678#false} assume !false; {1678#false} is VALID [2022-04-15 10:28:52,480 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 8 proven. 2 refuted. 0 times theorem prover too weak. 6 trivial. 0 not checked. [2022-04-15 10:28:52,480 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:28:53,040 INFO L290 TraceCheckUtils]: 36: Hoare triple {1678#false} assume !false; {1678#false} is VALID [2022-04-15 10:28:53,040 INFO L290 TraceCheckUtils]: 35: Hoare triple {1790#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {1678#false} is VALID [2022-04-15 10:28:53,041 INFO L290 TraceCheckUtils]: 34: Hoare triple {1786#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {1790#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:28:53,042 INFO L272 TraceCheckUtils]: 33: Hoare triple {1806#(= (+ main_~q~0 (* main_~b~0 main_~a~0 main_~p~0)) (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {1786#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:28:53,043 INFO L290 TraceCheckUtils]: 32: Hoare triple {1806#(= (+ main_~q~0 (* main_~b~0 main_~a~0 main_~p~0)) (* main_~y~0 main_~x~0))} assume !false; {1806#(= (+ main_~q~0 (* main_~b~0 main_~a~0 main_~p~0)) (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:28:53,059 INFO L290 TraceCheckUtils]: 31: Hoare triple {1813#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)))} assume 1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := ~a~0 - 1;~q~0 := ~q~0 + ~b~0 * ~p~0; {1806#(= (+ main_~q~0 (* main_~b~0 main_~a~0 main_~p~0)) (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:28:53,060 INFO L290 TraceCheckUtils]: 30: Hoare triple {1813#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {1813#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)))} is VALID [2022-04-15 10:28:53,063 INFO L290 TraceCheckUtils]: 29: Hoare triple {1820#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)) (= main_~b~0 0))} assume !!(0 != ~a~0 && 0 != ~b~0); {1813#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)))} is VALID [2022-04-15 10:28:53,064 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {1677#true} {1820#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)) (= main_~b~0 0))} #77#return; {1820#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)) (= main_~b~0 0))} is VALID [2022-04-15 10:28:53,064 INFO L290 TraceCheckUtils]: 27: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:53,064 INFO L290 TraceCheckUtils]: 26: Hoare triple {1677#true} assume !(0 == ~cond); {1677#true} is VALID [2022-04-15 10:28:53,064 INFO L290 TraceCheckUtils]: 25: Hoare triple {1677#true} ~cond := #in~cond; {1677#true} is VALID [2022-04-15 10:28:53,064 INFO L272 TraceCheckUtils]: 24: Hoare triple {1820#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)) (= main_~b~0 0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {1677#true} is VALID [2022-04-15 10:28:53,065 INFO L290 TraceCheckUtils]: 23: Hoare triple {1820#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)) (= main_~b~0 0))} assume !false; {1820#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)) (= main_~b~0 0))} is VALID [2022-04-15 10:28:53,065 INFO L290 TraceCheckUtils]: 22: Hoare triple {1677#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {1820#(or (not (= (mod main_~b~0 2) 0)) (= (+ (* main_~b~0 main_~p~0) (* (+ (- 1) main_~a~0) main_~b~0 main_~p~0) main_~q~0) (* main_~y~0 main_~x~0)) (= main_~b~0 0))} is VALID [2022-04-15 10:28:53,066 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {1677#true} {1677#true} #75#return; {1677#true} is VALID [2022-04-15 10:28:53,066 INFO L290 TraceCheckUtils]: 20: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:53,066 INFO L290 TraceCheckUtils]: 19: Hoare triple {1677#true} assume !(0 == ~cond); {1677#true} is VALID [2022-04-15 10:28:53,066 INFO L290 TraceCheckUtils]: 18: Hoare triple {1677#true} ~cond := #in~cond; {1677#true} is VALID [2022-04-15 10:28:53,066 INFO L272 TraceCheckUtils]: 17: Hoare triple {1677#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {1677#true} is VALID [2022-04-15 10:28:53,066 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {1677#true} {1677#true} #73#return; {1677#true} is VALID [2022-04-15 10:28:53,066 INFO L290 TraceCheckUtils]: 15: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:53,066 INFO L290 TraceCheckUtils]: 14: Hoare triple {1677#true} assume !(0 == ~cond); {1677#true} is VALID [2022-04-15 10:28:53,066 INFO L290 TraceCheckUtils]: 13: Hoare triple {1677#true} ~cond := #in~cond; {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L272 TraceCheckUtils]: 12: Hoare triple {1677#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L290 TraceCheckUtils]: 11: Hoare triple {1677#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {1677#true} {1677#true} #71#return; {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L290 TraceCheckUtils]: 9: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L290 TraceCheckUtils]: 8: Hoare triple {1677#true} assume !(0 == ~cond); {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L290 TraceCheckUtils]: 7: Hoare triple {1677#true} ~cond := #in~cond; {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L272 TraceCheckUtils]: 6: Hoare triple {1677#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L290 TraceCheckUtils]: 5: Hoare triple {1677#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {1677#true} is VALID [2022-04-15 10:28:53,067 INFO L272 TraceCheckUtils]: 4: Hoare triple {1677#true} call #t~ret6 := main(); {1677#true} is VALID [2022-04-15 10:28:53,068 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {1677#true} {1677#true} #83#return; {1677#true} is VALID [2022-04-15 10:28:53,068 INFO L290 TraceCheckUtils]: 2: Hoare triple {1677#true} assume true; {1677#true} is VALID [2022-04-15 10:28:53,068 INFO L290 TraceCheckUtils]: 1: Hoare triple {1677#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {1677#true} is VALID [2022-04-15 10:28:53,068 INFO L272 TraceCheckUtils]: 0: Hoare triple {1677#true} call ULTIMATE.init(); {1677#true} is VALID [2022-04-15 10:28:53,068 INFO L134 CoverageAnalysis]: Checked inductivity of 16 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-15 10:28:53,068 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:28:53,068 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [607593306] [2022-04-15 10:28:53,068 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:28:53,069 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1862672013] [2022-04-15 10:28:53,069 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1862672013] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-15 10:28:53,069 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-15 10:28:53,069 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [9] total 12 [2022-04-15 10:28:53,069 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:28:53,069 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [2045382641] [2022-04-15 10:28:53,069 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [2045382641] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:28:53,069 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:28:53,069 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-04-15 10:28:53,069 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1002623556] [2022-04-15 10:28:53,070 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:28:53,070 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) Word has length 37 [2022-04-15 10:28:53,070 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:28:53,070 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-15 10:28:53,108 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 31 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:53,108 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-04-15 10:28:53,108 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:28:53,109 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-04-15 10:28:53,109 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=32, Invalid=100, Unknown=0, NotChecked=0, Total=132 [2022-04-15 10:28:53,109 INFO L87 Difference]: Start difference. First operand 48 states and 57 transitions. Second operand has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-15 10:28:53,641 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:53,641 INFO L93 Difference]: Finished difference Result 54 states and 62 transitions. [2022-04-15 10:28:53,641 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-15 10:28:53,641 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) Word has length 37 [2022-04-15 10:28:53,641 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:28:53,642 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-15 10:28:53,643 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2022-04-15 10:28:53,643 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-15 10:28:53,644 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2022-04-15 10:28:53,644 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2022-04-15 10:28:53,725 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:53,727 INFO L225 Difference]: With dead ends: 54 [2022-04-15 10:28:53,727 INFO L226 Difference]: Without dead ends: 52 [2022-04-15 10:28:53,728 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 74 GetRequests, 62 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 14 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=36, Invalid=120, Unknown=0, NotChecked=0, Total=156 [2022-04-15 10:28:53,728 INFO L913 BasicCegarLoop]: 25 mSDtfsCounter, 14 mSDsluCounter, 58 mSDsCounter, 0 mSdLazyCounter, 48 mSolverCounterSat, 10 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 16 SdHoareTripleChecker+Valid, 83 SdHoareTripleChecker+Invalid, 58 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 10 IncrementalHoareTripleChecker+Valid, 48 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-15 10:28:53,729 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [16 Valid, 83 Invalid, 58 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [10 Valid, 48 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-15 10:28:53,729 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2022-04-15 10:28:53,778 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2022-04-15 10:28:53,778 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:28:53,778 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand has 45 states, 28 states have (on average 1.2142857142857142) internal successors, (34), 30 states have internal predecessors, (34), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:28:53,779 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand has 45 states, 28 states have (on average 1.2142857142857142) internal successors, (34), 30 states have internal predecessors, (34), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:28:53,779 INFO L87 Difference]: Start difference. First operand 52 states. Second operand has 45 states, 28 states have (on average 1.2142857142857142) internal successors, (34), 30 states have internal predecessors, (34), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:28:53,781 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:53,781 INFO L93 Difference]: Finished difference Result 52 states and 60 transitions. [2022-04-15 10:28:53,781 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 60 transitions. [2022-04-15 10:28:53,782 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:28:53,782 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:28:53,782 INFO L74 IsIncluded]: Start isIncluded. First operand has 45 states, 28 states have (on average 1.2142857142857142) internal successors, (34), 30 states have internal predecessors, (34), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 52 states. [2022-04-15 10:28:53,782 INFO L87 Difference]: Start difference. First operand has 45 states, 28 states have (on average 1.2142857142857142) internal successors, (34), 30 states have internal predecessors, (34), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 52 states. [2022-04-15 10:28:53,784 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:53,785 INFO L93 Difference]: Finished difference Result 52 states and 60 transitions. [2022-04-15 10:28:53,785 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 60 transitions. [2022-04-15 10:28:53,785 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:28:53,785 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:28:53,785 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:28:53,785 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:28:53,785 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 45 states, 28 states have (on average 1.2142857142857142) internal successors, (34), 30 states have internal predecessors, (34), 10 states have call successors, (10), 7 states have call predecessors, (10), 6 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:28:53,787 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 52 transitions. [2022-04-15 10:28:53,787 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 52 transitions. Word has length 37 [2022-04-15 10:28:53,787 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:28:53,787 INFO L478 AbstractCegarLoop]: Abstraction has 45 states and 52 transitions. [2022-04-15 10:28:53,788 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 2.7142857142857144) internal successors, (19), 6 states have internal predecessors, (19), 3 states have call successors, (7), 2 states have call predecessors, (7), 1 states have return successors, (5), 2 states have call predecessors, (5), 2 states have call successors, (5) [2022-04-15 10:28:53,788 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 45 states and 52 transitions. [2022-04-15 10:28:54,732 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:54,733 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 52 transitions. [2022-04-15 10:28:54,733 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 40 [2022-04-15 10:28:54,733 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:28:54,733 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:28:54,751 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (5)] Forceful destruction successful, exit code 0 [2022-04-15 10:28:54,936 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4,5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:28:54,937 INFO L403 AbstractCegarLoop]: === Iteration 6 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:28:54,937 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:28:54,937 INFO L85 PathProgramCache]: Analyzing trace with hash 262800198, now seen corresponding path program 1 times [2022-04-15 10:28:54,938 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:28:54,938 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1622230245] [2022-04-15 10:28:54,939 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:28:54,939 INFO L85 PathProgramCache]: Analyzing trace with hash 262800198, now seen corresponding path program 2 times [2022-04-15 10:28:54,939 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:28:54,939 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1817606977] [2022-04-15 10:28:54,939 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:28:54,940 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:28:54,957 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:28:54,957 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1124158417] [2022-04-15 10:28:54,957 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:28:54,957 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:28:54,957 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:28:54,959 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:28:54,959 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Waiting until timeout for monitored process [2022-04-15 10:28:54,990 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:28:54,990 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:28:54,991 INFO L263 TraceCheckSpWp]: Trace formula consists of 111 conjuncts, 16 conjunts are in the unsatisfiable core [2022-04-15 10:28:55,001 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:28:55,003 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:28:55,322 INFO L272 TraceCheckUtils]: 0: Hoare triple {2214#true} call ULTIMATE.init(); {2214#true} is VALID [2022-04-15 10:28:55,322 INFO L290 TraceCheckUtils]: 1: Hoare triple {2214#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {2214#true} is VALID [2022-04-15 10:28:55,322 INFO L290 TraceCheckUtils]: 2: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,322 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2214#true} {2214#true} #83#return; {2214#true} is VALID [2022-04-15 10:28:55,322 INFO L272 TraceCheckUtils]: 4: Hoare triple {2214#true} call #t~ret6 := main(); {2214#true} is VALID [2022-04-15 10:28:55,323 INFO L290 TraceCheckUtils]: 5: Hoare triple {2214#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {2214#true} is VALID [2022-04-15 10:28:55,323 INFO L272 TraceCheckUtils]: 6: Hoare triple {2214#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,323 INFO L290 TraceCheckUtils]: 7: Hoare triple {2214#true} ~cond := #in~cond; {2240#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:28:55,324 INFO L290 TraceCheckUtils]: 8: Hoare triple {2240#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {2244#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:55,324 INFO L290 TraceCheckUtils]: 9: Hoare triple {2244#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {2244#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:55,325 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2244#(not (= |assume_abort_if_not_#in~cond| 0))} {2214#true} #71#return; {2251#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:28:55,325 INFO L290 TraceCheckUtils]: 11: Hoare triple {2251#(and (<= 0 main_~x~0) (<= main_~x~0 50))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {2251#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:28:55,326 INFO L272 TraceCheckUtils]: 12: Hoare triple {2251#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,326 INFO L290 TraceCheckUtils]: 13: Hoare triple {2214#true} ~cond := #in~cond; {2214#true} is VALID [2022-04-15 10:28:55,327 INFO L290 TraceCheckUtils]: 14: Hoare triple {2214#true} assume !(0 == ~cond); {2214#true} is VALID [2022-04-15 10:28:55,327 INFO L290 TraceCheckUtils]: 15: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,328 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2214#true} {2251#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #73#return; {2251#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:28:55,328 INFO L272 TraceCheckUtils]: 17: Hoare triple {2251#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,328 INFO L290 TraceCheckUtils]: 18: Hoare triple {2214#true} ~cond := #in~cond; {2240#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:28:55,329 INFO L290 TraceCheckUtils]: 19: Hoare triple {2240#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {2244#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:55,329 INFO L290 TraceCheckUtils]: 20: Hoare triple {2244#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {2244#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:55,331 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {2244#(not (= |assume_abort_if_not_#in~cond| 0))} {2251#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #75#return; {2285#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} is VALID [2022-04-15 10:28:55,331 INFO L290 TraceCheckUtils]: 22: Hoare triple {2285#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {2289#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:55,332 INFO L290 TraceCheckUtils]: 23: Hoare triple {2289#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} assume !false; {2289#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:55,332 INFO L272 TraceCheckUtils]: 24: Hoare triple {2289#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,332 INFO L290 TraceCheckUtils]: 25: Hoare triple {2214#true} ~cond := #in~cond; {2214#true} is VALID [2022-04-15 10:28:55,332 INFO L290 TraceCheckUtils]: 26: Hoare triple {2214#true} assume !(0 == ~cond); {2214#true} is VALID [2022-04-15 10:28:55,332 INFO L290 TraceCheckUtils]: 27: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,333 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2214#true} {2289#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} #77#return; {2289#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:55,334 INFO L290 TraceCheckUtils]: 29: Hoare triple {2289#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} assume !(0 != ~a~0 && 0 != ~b~0); {2311#(and (= main_~a~0 0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:55,334 INFO L272 TraceCheckUtils]: 30: Hoare triple {2311#(and (= main_~a~0 0) (<= 1 main_~b~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,334 INFO L290 TraceCheckUtils]: 31: Hoare triple {2214#true} ~cond := #in~cond; {2214#true} is VALID [2022-04-15 10:28:55,334 INFO L290 TraceCheckUtils]: 32: Hoare triple {2214#true} assume !(0 == ~cond); {2214#true} is VALID [2022-04-15 10:28:55,334 INFO L290 TraceCheckUtils]: 33: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,335 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2214#true} {2311#(and (= main_~a~0 0) (<= 1 main_~b~0))} #79#return; {2311#(and (= main_~a~0 0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:55,335 INFO L272 TraceCheckUtils]: 35: Hoare triple {2311#(and (= main_~a~0 0) (<= 1 main_~b~0))} call __VERIFIER_assert((if 0 == ~a~0 * ~b~0 then 1 else 0)); {2330#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:28:55,336 INFO L290 TraceCheckUtils]: 36: Hoare triple {2330#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2334#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:28:55,336 INFO L290 TraceCheckUtils]: 37: Hoare triple {2334#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2215#false} is VALID [2022-04-15 10:28:55,336 INFO L290 TraceCheckUtils]: 38: Hoare triple {2215#false} assume !false; {2215#false} is VALID [2022-04-15 10:28:55,337 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 7 proven. 3 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-15 10:28:55,337 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:28:55,604 INFO L290 TraceCheckUtils]: 38: Hoare triple {2215#false} assume !false; {2215#false} is VALID [2022-04-15 10:28:55,605 INFO L290 TraceCheckUtils]: 37: Hoare triple {2334#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {2215#false} is VALID [2022-04-15 10:28:55,605 INFO L290 TraceCheckUtils]: 36: Hoare triple {2330#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {2334#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:28:55,606 INFO L272 TraceCheckUtils]: 35: Hoare triple {2350#(= (* main_~b~0 main_~a~0) 0)} call __VERIFIER_assert((if 0 == ~a~0 * ~b~0 then 1 else 0)); {2330#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:28:55,607 INFO L284 TraceCheckUtils]: 34: Hoare quadruple {2214#true} {2350#(= (* main_~b~0 main_~a~0) 0)} #79#return; {2350#(= (* main_~b~0 main_~a~0) 0)} is VALID [2022-04-15 10:28:55,607 INFO L290 TraceCheckUtils]: 33: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,607 INFO L290 TraceCheckUtils]: 32: Hoare triple {2214#true} assume !(0 == ~cond); {2214#true} is VALID [2022-04-15 10:28:55,607 INFO L290 TraceCheckUtils]: 31: Hoare triple {2214#true} ~cond := #in~cond; {2214#true} is VALID [2022-04-15 10:28:55,607 INFO L272 TraceCheckUtils]: 30: Hoare triple {2350#(= (* main_~b~0 main_~a~0) 0)} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,609 INFO L290 TraceCheckUtils]: 29: Hoare triple {2214#true} assume !(0 != ~a~0 && 0 != ~b~0); {2350#(= (* main_~b~0 main_~a~0) 0)} is VALID [2022-04-15 10:28:55,609 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2214#true} {2214#true} #77#return; {2214#true} is VALID [2022-04-15 10:28:55,609 INFO L290 TraceCheckUtils]: 27: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,609 INFO L290 TraceCheckUtils]: 26: Hoare triple {2214#true} assume !(0 == ~cond); {2214#true} is VALID [2022-04-15 10:28:55,609 INFO L290 TraceCheckUtils]: 25: Hoare triple {2214#true} ~cond := #in~cond; {2214#true} is VALID [2022-04-15 10:28:55,609 INFO L272 TraceCheckUtils]: 24: Hoare triple {2214#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,609 INFO L290 TraceCheckUtils]: 23: Hoare triple {2214#true} assume !false; {2214#true} is VALID [2022-04-15 10:28:55,609 INFO L290 TraceCheckUtils]: 22: Hoare triple {2214#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {2214#true} is VALID [2022-04-15 10:28:55,609 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {2214#true} {2214#true} #75#return; {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L290 TraceCheckUtils]: 20: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L290 TraceCheckUtils]: 19: Hoare triple {2214#true} assume !(0 == ~cond); {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L290 TraceCheckUtils]: 18: Hoare triple {2214#true} ~cond := #in~cond; {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L272 TraceCheckUtils]: 17: Hoare triple {2214#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2214#true} {2214#true} #73#return; {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L290 TraceCheckUtils]: 15: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L290 TraceCheckUtils]: 14: Hoare triple {2214#true} assume !(0 == ~cond); {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L290 TraceCheckUtils]: 13: Hoare triple {2214#true} ~cond := #in~cond; {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L272 TraceCheckUtils]: 12: Hoare triple {2214#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,610 INFO L290 TraceCheckUtils]: 11: Hoare triple {2214#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2214#true} {2214#true} #71#return; {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L290 TraceCheckUtils]: 9: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L290 TraceCheckUtils]: 8: Hoare triple {2214#true} assume !(0 == ~cond); {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L290 TraceCheckUtils]: 7: Hoare triple {2214#true} ~cond := #in~cond; {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L272 TraceCheckUtils]: 6: Hoare triple {2214#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L290 TraceCheckUtils]: 5: Hoare triple {2214#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L272 TraceCheckUtils]: 4: Hoare triple {2214#true} call #t~ret6 := main(); {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2214#true} {2214#true} #83#return; {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L290 TraceCheckUtils]: 2: Hoare triple {2214#true} assume true; {2214#true} is VALID [2022-04-15 10:28:55,611 INFO L290 TraceCheckUtils]: 1: Hoare triple {2214#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {2214#true} is VALID [2022-04-15 10:28:55,612 INFO L272 TraceCheckUtils]: 0: Hoare triple {2214#true} call ULTIMATE.init(); {2214#true} is VALID [2022-04-15 10:28:55,612 INFO L134 CoverageAnalysis]: Checked inductivity of 20 backedges. 4 proven. 0 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-04-15 10:28:55,612 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:28:55,612 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1817606977] [2022-04-15 10:28:55,612 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:28:55,612 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1124158417] [2022-04-15 10:28:55,612 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1124158417] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-15 10:28:55,612 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-15 10:28:55,612 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [10] total 11 [2022-04-15 10:28:55,613 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:28:55,613 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1622230245] [2022-04-15 10:28:55,613 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1622230245] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:28:55,613 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:28:55,613 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-04-15 10:28:55,613 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1492030021] [2022-04-15 10:28:55,613 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:28:55,614 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 4 states have (on average 4.0) internal successors, (16), 4 states have internal predecessors, (16), 2 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) Word has length 39 [2022-04-15 10:28:55,614 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:28:55,614 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 5 states, 4 states have (on average 4.0) internal successors, (16), 4 states have internal predecessors, (16), 2 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:28:55,640 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:55,640 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-04-15 10:28:55,640 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:28:55,641 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-04-15 10:28:55,641 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=22, Invalid=88, Unknown=0, NotChecked=0, Total=110 [2022-04-15 10:28:55,641 INFO L87 Difference]: Start difference. First operand 45 states and 52 transitions. Second operand has 5 states, 4 states have (on average 4.0) internal successors, (16), 4 states have internal predecessors, (16), 2 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:28:56,028 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:56,028 INFO L93 Difference]: Finished difference Result 51 states and 57 transitions. [2022-04-15 10:28:56,028 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-04-15 10:28:56,029 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 4 states have (on average 4.0) internal successors, (16), 4 states have internal predecessors, (16), 2 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) Word has length 39 [2022-04-15 10:28:56,029 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:28:56,029 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 4 states have (on average 4.0) internal successors, (16), 4 states have internal predecessors, (16), 2 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:28:56,030 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2022-04-15 10:28:56,031 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 4 states have (on average 4.0) internal successors, (16), 4 states have internal predecessors, (16), 2 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:28:56,032 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2022-04-15 10:28:56,032 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2022-04-15 10:28:56,068 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:56,069 INFO L225 Difference]: With dead ends: 51 [2022-04-15 10:28:56,069 INFO L226 Difference]: Without dead ends: 37 [2022-04-15 10:28:56,069 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 78 GetRequests, 67 SyntacticMatches, 1 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=106, Unknown=0, NotChecked=0, Total=132 [2022-04-15 10:28:56,070 INFO L913 BasicCegarLoop]: 37 mSDtfsCounter, 5 mSDsluCounter, 88 mSDsCounter, 0 mSdLazyCounter, 22 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 5 SdHoareTripleChecker+Valid, 125 SdHoareTripleChecker+Invalid, 22 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 22 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-15 10:28:56,070 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [5 Valid, 125 Invalid, 22 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 22 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-15 10:28:56,071 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 37 states. [2022-04-15 10:28:56,109 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 37 to 37. [2022-04-15 10:28:56,110 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:28:56,110 INFO L82 GeneralOperation]: Start isEquivalent. First operand 37 states. Second operand has 37 states, 24 states have (on average 1.1666666666666667) internal successors, (28), 24 states have internal predecessors, (28), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-15 10:28:56,110 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand has 37 states, 24 states have (on average 1.1666666666666667) internal successors, (28), 24 states have internal predecessors, (28), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-15 10:28:56,110 INFO L87 Difference]: Start difference. First operand 37 states. Second operand has 37 states, 24 states have (on average 1.1666666666666667) internal successors, (28), 24 states have internal predecessors, (28), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-15 10:28:56,112 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:56,113 INFO L93 Difference]: Finished difference Result 37 states and 42 transitions. [2022-04-15 10:28:56,113 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 42 transitions. [2022-04-15 10:28:56,113 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:28:56,113 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:28:56,113 INFO L74 IsIncluded]: Start isIncluded. First operand has 37 states, 24 states have (on average 1.1666666666666667) internal successors, (28), 24 states have internal predecessors, (28), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 37 states. [2022-04-15 10:28:56,114 INFO L87 Difference]: Start difference. First operand has 37 states, 24 states have (on average 1.1666666666666667) internal successors, (28), 24 states have internal predecessors, (28), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) Second operand 37 states. [2022-04-15 10:28:56,115 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:56,115 INFO L93 Difference]: Finished difference Result 37 states and 42 transitions. [2022-04-15 10:28:56,115 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 42 transitions. [2022-04-15 10:28:56,115 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:28:56,115 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:28:56,115 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:28:56,115 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:28:56,116 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 37 states, 24 states have (on average 1.1666666666666667) internal successors, (28), 24 states have internal predecessors, (28), 8 states have call successors, (8), 6 states have call predecessors, (8), 4 states have return successors, (6), 6 states have call predecessors, (6), 6 states have call successors, (6) [2022-04-15 10:28:56,117 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 42 transitions. [2022-04-15 10:28:56,118 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 42 transitions. Word has length 39 [2022-04-15 10:28:56,118 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:28:56,118 INFO L478 AbstractCegarLoop]: Abstraction has 37 states and 42 transitions. [2022-04-15 10:28:56,118 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 4 states have (on average 4.0) internal successors, (16), 4 states have internal predecessors, (16), 2 states have call successors, (8), 2 states have call predecessors, (8), 1 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:28:56,118 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 37 states and 42 transitions. [2022-04-15 10:28:57,078 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:57,078 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 42 transitions. [2022-04-15 10:28:57,079 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2022-04-15 10:28:57,079 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:28:57,079 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:28:57,095 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (6)] Forceful destruction successful, exit code 0 [2022-04-15 10:28:57,279 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5,6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:28:57,279 INFO L403 AbstractCegarLoop]: === Iteration 7 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:28:57,280 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:28:57,280 INFO L85 PathProgramCache]: Analyzing trace with hash -982526417, now seen corresponding path program 1 times [2022-04-15 10:28:57,280 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:28:57,280 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1727376789] [2022-04-15 10:28:57,280 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:28:57,281 INFO L85 PathProgramCache]: Analyzing trace with hash -982526417, now seen corresponding path program 2 times [2022-04-15 10:28:57,281 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:28:57,281 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [444477112] [2022-04-15 10:28:57,281 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:28:57,281 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:28:57,299 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:28:57,299 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [239410346] [2022-04-15 10:28:57,299 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:28:57,300 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:28:57,300 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:28:57,301 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:28:57,304 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Waiting until timeout for monitored process [2022-04-15 10:28:57,339 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:28:57,339 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:28:57,340 INFO L263 TraceCheckSpWp]: Trace formula consists of 124 conjuncts, 22 conjunts are in the unsatisfiable core [2022-04-15 10:28:57,349 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:28:57,351 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:28:57,939 INFO L272 TraceCheckUtils]: 0: Hoare triple {2710#true} call ULTIMATE.init(); {2710#true} is VALID [2022-04-15 10:28:57,939 INFO L290 TraceCheckUtils]: 1: Hoare triple {2710#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {2710#true} is VALID [2022-04-15 10:28:57,940 INFO L290 TraceCheckUtils]: 2: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:57,940 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2710#true} {2710#true} #83#return; {2710#true} is VALID [2022-04-15 10:28:57,940 INFO L272 TraceCheckUtils]: 4: Hoare triple {2710#true} call #t~ret6 := main(); {2710#true} is VALID [2022-04-15 10:28:57,940 INFO L290 TraceCheckUtils]: 5: Hoare triple {2710#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {2710#true} is VALID [2022-04-15 10:28:57,940 INFO L272 TraceCheckUtils]: 6: Hoare triple {2710#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:57,941 INFO L290 TraceCheckUtils]: 7: Hoare triple {2710#true} ~cond := #in~cond; {2736#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:28:57,942 INFO L290 TraceCheckUtils]: 8: Hoare triple {2736#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {2740#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:57,942 INFO L290 TraceCheckUtils]: 9: Hoare triple {2740#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {2740#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:57,944 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2740#(not (= |assume_abort_if_not_#in~cond| 0))} {2710#true} #71#return; {2747#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:28:57,947 INFO L290 TraceCheckUtils]: 11: Hoare triple {2747#(and (<= 0 main_~x~0) (<= main_~x~0 50))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {2747#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:28:57,948 INFO L272 TraceCheckUtils]: 12: Hoare triple {2747#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:57,948 INFO L290 TraceCheckUtils]: 13: Hoare triple {2710#true} ~cond := #in~cond; {2710#true} is VALID [2022-04-15 10:28:57,949 INFO L290 TraceCheckUtils]: 14: Hoare triple {2710#true} assume !(0 == ~cond); {2710#true} is VALID [2022-04-15 10:28:57,949 INFO L290 TraceCheckUtils]: 15: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:57,950 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2710#true} {2747#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #73#return; {2747#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:28:57,951 INFO L272 TraceCheckUtils]: 17: Hoare triple {2747#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:57,952 INFO L290 TraceCheckUtils]: 18: Hoare triple {2710#true} ~cond := #in~cond; {2736#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:28:57,952 INFO L290 TraceCheckUtils]: 19: Hoare triple {2736#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {2740#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:57,952 INFO L290 TraceCheckUtils]: 20: Hoare triple {2740#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {2740#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:57,953 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {2740#(not (= |assume_abort_if_not_#in~cond| 0))} {2747#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #75#return; {2781#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} is VALID [2022-04-15 10:28:57,954 INFO L290 TraceCheckUtils]: 22: Hoare triple {2781#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {2785#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:57,954 INFO L290 TraceCheckUtils]: 23: Hoare triple {2785#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} assume !false; {2785#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:57,954 INFO L272 TraceCheckUtils]: 24: Hoare triple {2785#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:57,954 INFO L290 TraceCheckUtils]: 25: Hoare triple {2710#true} ~cond := #in~cond; {2710#true} is VALID [2022-04-15 10:28:57,955 INFO L290 TraceCheckUtils]: 26: Hoare triple {2710#true} assume !(0 == ~cond); {2710#true} is VALID [2022-04-15 10:28:57,955 INFO L290 TraceCheckUtils]: 27: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:57,955 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2710#true} {2785#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} #77#return; {2785#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:57,956 INFO L290 TraceCheckUtils]: 29: Hoare triple {2785#(and (<= 0 main_~a~0) (<= 1 main_~b~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:57,957 INFO L290 TraceCheckUtils]: 30: Hoare triple {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:57,959 INFO L290 TraceCheckUtils]: 31: Hoare triple {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} assume !false; {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:57,959 INFO L272 TraceCheckUtils]: 32: Hoare triple {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:57,959 INFO L290 TraceCheckUtils]: 33: Hoare triple {2710#true} ~cond := #in~cond; {2710#true} is VALID [2022-04-15 10:28:57,959 INFO L290 TraceCheckUtils]: 34: Hoare triple {2710#true} assume !(0 == ~cond); {2710#true} is VALID [2022-04-15 10:28:57,959 INFO L290 TraceCheckUtils]: 35: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:57,960 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2710#true} {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} #77#return; {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:28:57,961 INFO L290 TraceCheckUtils]: 37: Hoare triple {2807#(and (<= 0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~b~0))} assume !(0 != ~a~0 && 0 != ~b~0); {2711#false} is VALID [2022-04-15 10:28:57,961 INFO L272 TraceCheckUtils]: 38: Hoare triple {2711#false} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {2711#false} is VALID [2022-04-15 10:28:57,961 INFO L290 TraceCheckUtils]: 39: Hoare triple {2711#false} ~cond := #in~cond; {2711#false} is VALID [2022-04-15 10:28:57,961 INFO L290 TraceCheckUtils]: 40: Hoare triple {2711#false} assume 0 == ~cond; {2711#false} is VALID [2022-04-15 10:28:57,961 INFO L290 TraceCheckUtils]: 41: Hoare triple {2711#false} assume !false; {2711#false} is VALID [2022-04-15 10:28:57,963 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 10 proven. 3 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-15 10:28:57,963 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:28:59,118 INFO L290 TraceCheckUtils]: 41: Hoare triple {2711#false} assume !false; {2711#false} is VALID [2022-04-15 10:28:59,119 INFO L290 TraceCheckUtils]: 40: Hoare triple {2711#false} assume 0 == ~cond; {2711#false} is VALID [2022-04-15 10:28:59,119 INFO L290 TraceCheckUtils]: 39: Hoare triple {2711#false} ~cond := #in~cond; {2711#false} is VALID [2022-04-15 10:28:59,119 INFO L272 TraceCheckUtils]: 38: Hoare triple {2711#false} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {2711#false} is VALID [2022-04-15 10:28:59,119 INFO L290 TraceCheckUtils]: 37: Hoare triple {2856#(and (not (= main_~b~0 0)) (not (= main_~a~0 0)))} assume !(0 != ~a~0 && 0 != ~b~0); {2711#false} is VALID [2022-04-15 10:28:59,120 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {2710#true} {2856#(and (not (= main_~b~0 0)) (not (= main_~a~0 0)))} #77#return; {2856#(and (not (= main_~b~0 0)) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:28:59,120 INFO L290 TraceCheckUtils]: 35: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:59,120 INFO L290 TraceCheckUtils]: 34: Hoare triple {2710#true} assume !(0 == ~cond); {2710#true} is VALID [2022-04-15 10:28:59,120 INFO L290 TraceCheckUtils]: 33: Hoare triple {2710#true} ~cond := #in~cond; {2710#true} is VALID [2022-04-15 10:28:59,120 INFO L272 TraceCheckUtils]: 32: Hoare triple {2856#(and (not (= main_~b~0 0)) (not (= main_~a~0 0)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:59,120 INFO L290 TraceCheckUtils]: 31: Hoare triple {2856#(and (not (= main_~b~0 0)) (not (= main_~a~0 0)))} assume !false; {2856#(and (not (= main_~b~0 0)) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:28:59,121 INFO L290 TraceCheckUtils]: 30: Hoare triple {2878#(or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0)) (and (not (<= (div main_~a~0 2) 0)) (not (= (div main_~b~0 2) 0))))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {2856#(and (not (= main_~b~0 0)) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:28:59,122 INFO L290 TraceCheckUtils]: 29: Hoare triple {2882#(or (not (= (mod main_~b~0 2) 0)) (= main_~a~0 0) (not (<= (div main_~a~0 2) 0)) (= main_~b~0 0) (not (= (mod main_~a~0 2) 0)))} assume !!(0 != ~a~0 && 0 != ~b~0); {2878#(or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0)) (and (not (<= (div main_~a~0 2) 0)) (not (= (div main_~b~0 2) 0))))} is VALID [2022-04-15 10:28:59,122 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {2710#true} {2882#(or (not (= (mod main_~b~0 2) 0)) (= main_~a~0 0) (not (<= (div main_~a~0 2) 0)) (= main_~b~0 0) (not (= (mod main_~a~0 2) 0)))} #77#return; {2882#(or (not (= (mod main_~b~0 2) 0)) (= main_~a~0 0) (not (<= (div main_~a~0 2) 0)) (= main_~b~0 0) (not (= (mod main_~a~0 2) 0)))} is VALID [2022-04-15 10:28:59,122 INFO L290 TraceCheckUtils]: 27: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:59,122 INFO L290 TraceCheckUtils]: 26: Hoare triple {2710#true} assume !(0 == ~cond); {2710#true} is VALID [2022-04-15 10:28:59,123 INFO L290 TraceCheckUtils]: 25: Hoare triple {2710#true} ~cond := #in~cond; {2710#true} is VALID [2022-04-15 10:28:59,123 INFO L272 TraceCheckUtils]: 24: Hoare triple {2882#(or (not (= (mod main_~b~0 2) 0)) (= main_~a~0 0) (not (<= (div main_~a~0 2) 0)) (= main_~b~0 0) (not (= (mod main_~a~0 2) 0)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:59,123 INFO L290 TraceCheckUtils]: 23: Hoare triple {2882#(or (not (= (mod main_~b~0 2) 0)) (= main_~a~0 0) (not (<= (div main_~a~0 2) 0)) (= main_~b~0 0) (not (= (mod main_~a~0 2) 0)))} assume !false; {2882#(or (not (= (mod main_~b~0 2) 0)) (= main_~a~0 0) (not (<= (div main_~a~0 2) 0)) (= main_~b~0 0) (not (= (mod main_~a~0 2) 0)))} is VALID [2022-04-15 10:28:59,124 INFO L290 TraceCheckUtils]: 22: Hoare triple {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {2882#(or (not (= (mod main_~b~0 2) 0)) (= main_~a~0 0) (not (<= (div main_~a~0 2) 0)) (= main_~b~0 0) (not (= (mod main_~a~0 2) 0)))} is VALID [2022-04-15 10:28:59,124 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {2710#true} {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} #75#return; {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} is VALID [2022-04-15 10:28:59,124 INFO L290 TraceCheckUtils]: 20: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:59,124 INFO L290 TraceCheckUtils]: 19: Hoare triple {2710#true} assume !(0 == ~cond); {2710#true} is VALID [2022-04-15 10:28:59,124 INFO L290 TraceCheckUtils]: 18: Hoare triple {2710#true} ~cond := #in~cond; {2710#true} is VALID [2022-04-15 10:28:59,124 INFO L272 TraceCheckUtils]: 17: Hoare triple {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:59,125 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {2710#true} {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} #73#return; {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} is VALID [2022-04-15 10:28:59,125 INFO L290 TraceCheckUtils]: 15: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:59,125 INFO L290 TraceCheckUtils]: 14: Hoare triple {2710#true} assume !(0 == ~cond); {2710#true} is VALID [2022-04-15 10:28:59,125 INFO L290 TraceCheckUtils]: 13: Hoare triple {2710#true} ~cond := #in~cond; {2710#true} is VALID [2022-04-15 10:28:59,125 INFO L272 TraceCheckUtils]: 12: Hoare triple {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:59,126 INFO L290 TraceCheckUtils]: 11: Hoare triple {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} is VALID [2022-04-15 10:28:59,126 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {2740#(not (= |assume_abort_if_not_#in~cond| 0))} {2710#true} #71#return; {2904#(<= 0 (+ (div (+ (- 1) main_~x~0) 2) 1))} is VALID [2022-04-15 10:28:59,127 INFO L290 TraceCheckUtils]: 9: Hoare triple {2740#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {2740#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:59,128 INFO L290 TraceCheckUtils]: 8: Hoare triple {2950#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {2740#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:28:59,128 INFO L290 TraceCheckUtils]: 7: Hoare triple {2710#true} ~cond := #in~cond; {2950#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-15 10:28:59,128 INFO L272 TraceCheckUtils]: 6: Hoare triple {2710#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {2710#true} is VALID [2022-04-15 10:28:59,128 INFO L290 TraceCheckUtils]: 5: Hoare triple {2710#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {2710#true} is VALID [2022-04-15 10:28:59,128 INFO L272 TraceCheckUtils]: 4: Hoare triple {2710#true} call #t~ret6 := main(); {2710#true} is VALID [2022-04-15 10:28:59,128 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {2710#true} {2710#true} #83#return; {2710#true} is VALID [2022-04-15 10:28:59,128 INFO L290 TraceCheckUtils]: 2: Hoare triple {2710#true} assume true; {2710#true} is VALID [2022-04-15 10:28:59,128 INFO L290 TraceCheckUtils]: 1: Hoare triple {2710#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {2710#true} is VALID [2022-04-15 10:28:59,128 INFO L272 TraceCheckUtils]: 0: Hoare triple {2710#true} call ULTIMATE.init(); {2710#true} is VALID [2022-04-15 10:28:59,129 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 4 proven. 9 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-15 10:28:59,129 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:28:59,129 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [444477112] [2022-04-15 10:28:59,129 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:28:59,129 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [239410346] [2022-04-15 10:28:59,129 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [239410346] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:28:59,129 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:28:59,129 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 13 [2022-04-15 10:28:59,129 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:28:59,129 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1727376789] [2022-04-15 10:28:59,129 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1727376789] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:28:59,129 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:28:59,129 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-04-15 10:28:59,130 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1230556293] [2022-04-15 10:28:59,130 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:28:59,131 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 2.75) internal successors, (22), 7 states have internal predecessors, (22), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) Word has length 42 [2022-04-15 10:28:59,131 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:28:59,131 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 2.75) internal successors, (22), 7 states have internal predecessors, (22), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:28:59,161 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:59,162 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-04-15 10:28:59,162 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:28:59,162 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-04-15 10:28:59,162 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=34, Invalid=122, Unknown=0, NotChecked=0, Total=156 [2022-04-15 10:28:59,163 INFO L87 Difference]: Start difference. First operand 37 states and 42 transitions. Second operand has 8 states, 8 states have (on average 2.75) internal successors, (22), 7 states have internal predecessors, (22), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:28:59,576 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:59,576 INFO L93 Difference]: Finished difference Result 52 states and 63 transitions. [2022-04-15 10:28:59,576 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-04-15 10:28:59,576 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 2.75) internal successors, (22), 7 states have internal predecessors, (22), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) Word has length 42 [2022-04-15 10:28:59,577 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:28:59,577 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 2.75) internal successors, (22), 7 states have internal predecessors, (22), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:28:59,578 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2022-04-15 10:28:59,579 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 2.75) internal successors, (22), 7 states have internal predecessors, (22), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:28:59,580 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2022-04-15 10:28:59,580 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 8 states and 55 transitions. [2022-04-15 10:28:59,635 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:28:59,636 INFO L225 Difference]: With dead ends: 52 [2022-04-15 10:28:59,636 INFO L226 Difference]: Without dead ends: 47 [2022-04-15 10:28:59,637 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 86 GetRequests, 71 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 26 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=57, Invalid=183, Unknown=0, NotChecked=0, Total=240 [2022-04-15 10:28:59,638 INFO L913 BasicCegarLoop]: 25 mSDtfsCounter, 36 mSDsluCounter, 84 mSDsCounter, 0 mSdLazyCounter, 96 mSolverCounterSat, 15 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 38 SdHoareTripleChecker+Valid, 109 SdHoareTripleChecker+Invalid, 111 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 15 IncrementalHoareTripleChecker+Valid, 96 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-15 10:28:59,638 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [38 Valid, 109 Invalid, 111 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [15 Valid, 96 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-15 10:28:59,639 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2022-04-15 10:28:59,703 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 44. [2022-04-15 10:28:59,703 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:28:59,703 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand has 44 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 30 states have internal predecessors, (36), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:28:59,704 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand has 44 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 30 states have internal predecessors, (36), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:28:59,704 INFO L87 Difference]: Start difference. First operand 47 states. Second operand has 44 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 30 states have internal predecessors, (36), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:28:59,705 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:59,706 INFO L93 Difference]: Finished difference Result 47 states and 58 transitions. [2022-04-15 10:28:59,706 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 58 transitions. [2022-04-15 10:28:59,706 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:28:59,706 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:28:59,706 INFO L74 IsIncluded]: Start isIncluded. First operand has 44 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 30 states have internal predecessors, (36), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 47 states. [2022-04-15 10:28:59,706 INFO L87 Difference]: Start difference. First operand has 44 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 30 states have internal predecessors, (36), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) Second operand 47 states. [2022-04-15 10:28:59,708 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:28:59,708 INFO L93 Difference]: Finished difference Result 47 states and 58 transitions. [2022-04-15 10:28:59,708 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 58 transitions. [2022-04-15 10:28:59,709 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:28:59,709 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:28:59,709 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:28:59,709 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:28:59,709 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 44 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 30 states have internal predecessors, (36), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 7 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:28:59,710 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 44 states to 44 states and 54 transitions. [2022-04-15 10:28:59,711 INFO L78 Accepts]: Start accepts. Automaton has 44 states and 54 transitions. Word has length 42 [2022-04-15 10:28:59,711 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:28:59,711 INFO L478 AbstractCegarLoop]: Abstraction has 44 states and 54 transitions. [2022-04-15 10:28:59,711 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 2.75) internal successors, (22), 7 states have internal predecessors, (22), 5 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:28:59,711 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 44 states and 54 transitions. [2022-04-15 10:29:00,406 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:29:00,406 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 54 transitions. [2022-04-15 10:29:00,406 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2022-04-15 10:29:00,406 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:29:00,407 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:29:00,423 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (7)] Forceful destruction successful, exit code 0 [2022-04-15 10:29:00,607 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable6,7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:29:00,607 INFO L403 AbstractCegarLoop]: === Iteration 8 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:29:00,608 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:29:00,608 INFO L85 PathProgramCache]: Analyzing trace with hash 1669465851, now seen corresponding path program 1 times [2022-04-15 10:29:00,608 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:29:00,608 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1312938705] [2022-04-15 10:29:00,608 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:29:00,608 INFO L85 PathProgramCache]: Analyzing trace with hash 1669465851, now seen corresponding path program 2 times [2022-04-15 10:29:00,608 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:29:00,608 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1740441437] [2022-04-15 10:29:00,608 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:29:00,608 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:29:00,622 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:29:00,623 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [703449076] [2022-04-15 10:29:00,623 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:29:00,623 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:29:00,623 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:29:00,624 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:29:00,627 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Waiting until timeout for monitored process [2022-04-15 10:29:00,660 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:29:00,661 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:29:00,661 INFO L263 TraceCheckSpWp]: Trace formula consists of 123 conjuncts, 11 conjunts are in the unsatisfiable core [2022-04-15 10:29:00,672 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:29:00,673 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:29:10,970 INFO L272 TraceCheckUtils]: 0: Hoare triple {3266#true} call ULTIMATE.init(); {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 1: Hoare triple {3266#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 2: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3266#true} {3266#true} #83#return; {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L272 TraceCheckUtils]: 4: Hoare triple {3266#true} call #t~ret6 := main(); {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 5: Hoare triple {3266#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L272 TraceCheckUtils]: 6: Hoare triple {3266#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 7: Hoare triple {3266#true} ~cond := #in~cond; {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 8: Hoare triple {3266#true} assume !(0 == ~cond); {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 9: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3266#true} {3266#true} #71#return; {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 11: Hoare triple {3266#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L272 TraceCheckUtils]: 12: Hoare triple {3266#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 13: Hoare triple {3266#true} ~cond := #in~cond; {3266#true} is VALID [2022-04-15 10:29:10,971 INFO L290 TraceCheckUtils]: 14: Hoare triple {3266#true} assume !(0 == ~cond); {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 15: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3266#true} {3266#true} #73#return; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L272 TraceCheckUtils]: 17: Hoare triple {3266#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 18: Hoare triple {3266#true} ~cond := #in~cond; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 19: Hoare triple {3266#true} assume !(0 == ~cond); {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 20: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {3266#true} {3266#true} #75#return; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 22: Hoare triple {3266#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 23: Hoare triple {3266#true} assume !false; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L272 TraceCheckUtils]: 24: Hoare triple {3266#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 25: Hoare triple {3266#true} ~cond := #in~cond; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 26: Hoare triple {3266#true} assume !(0 == ~cond); {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L290 TraceCheckUtils]: 27: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:10,972 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3266#true} {3266#true} #77#return; {3266#true} is VALID [2022-04-15 10:29:10,973 INFO L290 TraceCheckUtils]: 29: Hoare triple {3266#true} assume !!(0 != ~a~0 && 0 != ~b~0); {3358#(not (= main_~b~0 0))} is VALID [2022-04-15 10:29:10,973 INFO L290 TraceCheckUtils]: 30: Hoare triple {3358#(not (= main_~b~0 0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {3358#(not (= main_~b~0 0))} is VALID [2022-04-15 10:29:10,973 INFO L290 TraceCheckUtils]: 31: Hoare triple {3358#(not (= main_~b~0 0))} assume 1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := ~a~0 - 1;~q~0 := ~q~0 + ~b~0 * ~p~0; {3358#(not (= main_~b~0 0))} is VALID [2022-04-15 10:29:10,973 INFO L290 TraceCheckUtils]: 32: Hoare triple {3358#(not (= main_~b~0 0))} assume !false; {3358#(not (= main_~b~0 0))} is VALID [2022-04-15 10:29:10,973 INFO L272 TraceCheckUtils]: 33: Hoare triple {3358#(not (= main_~b~0 0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:10,974 INFO L290 TraceCheckUtils]: 34: Hoare triple {3266#true} ~cond := #in~cond; {3374#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:29:10,974 INFO L290 TraceCheckUtils]: 35: Hoare triple {3374#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3378#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:29:10,974 INFO L290 TraceCheckUtils]: 36: Hoare triple {3378#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3378#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:29:12,982 WARN L284 TraceCheckUtils]: 37: Hoare quadruple {3378#(not (= |__VERIFIER_assert_#in~cond| 0))} {3358#(not (= main_~b~0 0))} #77#return; {3385#(and (or (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~a~0 0))) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (not (= main_~b~0 0)))} is UNKNOWN [2022-04-15 10:29:12,982 INFO L290 TraceCheckUtils]: 38: Hoare triple {3385#(and (or (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~a~0 0))) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (not (= main_~b~0 0)))} assume !(0 != ~a~0 && 0 != ~b~0); {3389#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:29:12,983 INFO L272 TraceCheckUtils]: 39: Hoare triple {3389#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {3393#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:29:12,983 INFO L290 TraceCheckUtils]: 40: Hoare triple {3393#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3397#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:29:12,984 INFO L290 TraceCheckUtils]: 41: Hoare triple {3397#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3267#false} is VALID [2022-04-15 10:29:12,984 INFO L290 TraceCheckUtils]: 42: Hoare triple {3267#false} assume !false; {3267#false} is VALID [2022-04-15 10:29:12,984 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 9 proven. 1 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-04-15 10:29:12,984 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:29:49,140 INFO L290 TraceCheckUtils]: 42: Hoare triple {3267#false} assume !false; {3267#false} is VALID [2022-04-15 10:29:49,140 INFO L290 TraceCheckUtils]: 41: Hoare triple {3397#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3267#false} is VALID [2022-04-15 10:29:49,141 INFO L290 TraceCheckUtils]: 40: Hoare triple {3393#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3397#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:29:49,141 INFO L272 TraceCheckUtils]: 39: Hoare triple {3389#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {3393#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:29:49,142 INFO L290 TraceCheckUtils]: 38: Hoare triple {3416#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {3389#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:29:49,143 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {3378#(not (= |__VERIFIER_assert_#in~cond| 0))} {3266#true} #77#return; {3416#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is VALID [2022-04-15 10:29:49,143 INFO L290 TraceCheckUtils]: 36: Hoare triple {3378#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3378#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:29:49,144 INFO L290 TraceCheckUtils]: 35: Hoare triple {3429#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {3378#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:29:49,144 INFO L290 TraceCheckUtils]: 34: Hoare triple {3266#true} ~cond := #in~cond; {3429#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-15 10:29:49,144 INFO L272 TraceCheckUtils]: 33: Hoare triple {3266#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:49,144 INFO L290 TraceCheckUtils]: 32: Hoare triple {3266#true} assume !false; {3266#true} is VALID [2022-04-15 10:29:49,144 INFO L290 TraceCheckUtils]: 31: Hoare triple {3266#true} assume 1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := ~a~0 - 1;~q~0 := ~q~0 + ~b~0 * ~p~0; {3266#true} is VALID [2022-04-15 10:29:49,144 INFO L290 TraceCheckUtils]: 30: Hoare triple {3266#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {3266#true} is VALID [2022-04-15 10:29:49,144 INFO L290 TraceCheckUtils]: 29: Hoare triple {3266#true} assume !!(0 != ~a~0 && 0 != ~b~0); {3266#true} is VALID [2022-04-15 10:29:49,144 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3266#true} {3266#true} #77#return; {3266#true} is VALID [2022-04-15 10:29:49,144 INFO L290 TraceCheckUtils]: 27: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L290 TraceCheckUtils]: 26: Hoare triple {3266#true} assume !(0 == ~cond); {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L290 TraceCheckUtils]: 25: Hoare triple {3266#true} ~cond := #in~cond; {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L272 TraceCheckUtils]: 24: Hoare triple {3266#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L290 TraceCheckUtils]: 23: Hoare triple {3266#true} assume !false; {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L290 TraceCheckUtils]: 22: Hoare triple {3266#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {3266#true} {3266#true} #75#return; {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L290 TraceCheckUtils]: 20: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L290 TraceCheckUtils]: 19: Hoare triple {3266#true} assume !(0 == ~cond); {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L290 TraceCheckUtils]: 18: Hoare triple {3266#true} ~cond := #in~cond; {3266#true} is VALID [2022-04-15 10:29:49,145 INFO L272 TraceCheckUtils]: 17: Hoare triple {3266#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3266#true} {3266#true} #73#return; {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L290 TraceCheckUtils]: 15: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L290 TraceCheckUtils]: 14: Hoare triple {3266#true} assume !(0 == ~cond); {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L290 TraceCheckUtils]: 13: Hoare triple {3266#true} ~cond := #in~cond; {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L272 TraceCheckUtils]: 12: Hoare triple {3266#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L290 TraceCheckUtils]: 11: Hoare triple {3266#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3266#true} {3266#true} #71#return; {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L290 TraceCheckUtils]: 9: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L290 TraceCheckUtils]: 8: Hoare triple {3266#true} assume !(0 == ~cond); {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L290 TraceCheckUtils]: 7: Hoare triple {3266#true} ~cond := #in~cond; {3266#true} is VALID [2022-04-15 10:29:49,146 INFO L272 TraceCheckUtils]: 6: Hoare triple {3266#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {3266#true} is VALID [2022-04-15 10:29:49,147 INFO L290 TraceCheckUtils]: 5: Hoare triple {3266#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {3266#true} is VALID [2022-04-15 10:29:49,147 INFO L272 TraceCheckUtils]: 4: Hoare triple {3266#true} call #t~ret6 := main(); {3266#true} is VALID [2022-04-15 10:29:49,147 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3266#true} {3266#true} #83#return; {3266#true} is VALID [2022-04-15 10:29:49,147 INFO L290 TraceCheckUtils]: 2: Hoare triple {3266#true} assume true; {3266#true} is VALID [2022-04-15 10:29:49,147 INFO L290 TraceCheckUtils]: 1: Hoare triple {3266#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {3266#true} is VALID [2022-04-15 10:29:49,147 INFO L272 TraceCheckUtils]: 0: Hoare triple {3266#true} call ULTIMATE.init(); {3266#true} is VALID [2022-04-15 10:29:49,147 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-15 10:29:49,147 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:29:49,147 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1740441437] [2022-04-15 10:29:49,148 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:29:49,148 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [703449076] [2022-04-15 10:29:49,148 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [703449076] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:29:49,148 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:29:49,148 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 8] total 11 [2022-04-15 10:29:49,148 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:29:49,148 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1312938705] [2022-04-15 10:29:49,148 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1312938705] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:29:49,148 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:29:49,148 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-15 10:29:49,148 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1626287295] [2022-04-15 10:29:49,149 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:29:49,149 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 8 states have (on average 2.875) internal successors, (23), 7 states have internal predecessors, (23), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) Word has length 43 [2022-04-15 10:29:49,149 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:29:49,149 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 8 states have (on average 2.875) internal successors, (23), 7 states have internal predecessors, (23), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:29:51,180 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 36 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:29:51,180 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-15 10:29:51,180 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:29:51,180 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-15 10:29:51,180 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=84, Unknown=0, NotChecked=0, Total=110 [2022-04-15 10:29:51,181 INFO L87 Difference]: Start difference. First operand 44 states and 54 transitions. Second operand has 9 states, 8 states have (on average 2.875) internal successors, (23), 7 states have internal predecessors, (23), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:29:54,728 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:29:57,793 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:29:57,794 INFO L93 Difference]: Finished difference Result 58 states and 74 transitions. [2022-04-15 10:29:57,794 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-15 10:29:57,794 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 8 states have (on average 2.875) internal successors, (23), 7 states have internal predecessors, (23), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) Word has length 43 [2022-04-15 10:29:57,794 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:29:57,794 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 8 states have (on average 2.875) internal successors, (23), 7 states have internal predecessors, (23), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:29:57,795 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 49 transitions. [2022-04-15 10:29:57,796 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 8 states have (on average 2.875) internal successors, (23), 7 states have internal predecessors, (23), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:29:57,797 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 49 transitions. [2022-04-15 10:29:57,797 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 49 transitions. [2022-04-15 10:29:59,836 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 48 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:29:59,838 INFO L225 Difference]: With dead ends: 58 [2022-04-15 10:29:59,838 INFO L226 Difference]: Without dead ends: 53 [2022-04-15 10:29:59,838 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 88 GetRequests, 75 SyntacticMatches, 1 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 17 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=45, Invalid=137, Unknown=0, NotChecked=0, Total=182 [2022-04-15 10:29:59,839 INFO L913 BasicCegarLoop]: 26 mSDtfsCounter, 10 mSDsluCounter, 139 mSDsCounter, 0 mSdLazyCounter, 167 mSolverCounterSat, 2 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 4.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 11 SdHoareTripleChecker+Valid, 165 SdHoareTripleChecker+Invalid, 170 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 167 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 4.1s IncrementalHoareTripleChecker+Time [2022-04-15 10:29:59,839 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [11 Valid, 165 Invalid, 170 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 167 Invalid, 1 Unknown, 0 Unchecked, 4.1s Time] [2022-04-15 10:29:59,839 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2022-04-15 10:29:59,902 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 39. [2022-04-15 10:29:59,902 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:29:59,902 INFO L82 GeneralOperation]: Start isEquivalent. First operand 53 states. Second operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:29:59,902 INFO L74 IsIncluded]: Start isIncluded. First operand 53 states. Second operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:29:59,903 INFO L87 Difference]: Start difference. First operand 53 states. Second operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:29:59,905 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:29:59,905 INFO L93 Difference]: Finished difference Result 53 states and 68 transitions. [2022-04-15 10:29:59,905 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 68 transitions. [2022-04-15 10:29:59,905 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:29:59,905 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:29:59,905 INFO L74 IsIncluded]: Start isIncluded. First operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 53 states. [2022-04-15 10:29:59,906 INFO L87 Difference]: Start difference. First operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 53 states. [2022-04-15 10:29:59,907 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:29:59,908 INFO L93 Difference]: Finished difference Result 53 states and 68 transitions. [2022-04-15 10:29:59,908 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 68 transitions. [2022-04-15 10:29:59,908 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:29:59,908 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:29:59,908 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:29:59,908 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:29:59,908 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:29:59,910 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 45 transitions. [2022-04-15 10:29:59,910 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 45 transitions. Word has length 43 [2022-04-15 10:29:59,910 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:29:59,910 INFO L478 AbstractCegarLoop]: Abstraction has 39 states and 45 transitions. [2022-04-15 10:29:59,910 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 8 states have (on average 2.875) internal successors, (23), 7 states have internal predecessors, (23), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:29:59,910 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 39 states and 45 transitions. [2022-04-15 10:30:02,431 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 44 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:30:02,432 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 45 transitions. [2022-04-15 10:30:02,432 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 45 [2022-04-15 10:30:02,432 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:30:02,432 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:30:02,451 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (8)] Forceful destruction successful, exit code 0 [2022-04-15 10:30:02,643 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable7,8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:30:02,643 INFO L403 AbstractCegarLoop]: === Iteration 9 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:30:02,644 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:30:02,644 INFO L85 PathProgramCache]: Analyzing trace with hash -1372706166, now seen corresponding path program 1 times [2022-04-15 10:30:02,644 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:30:02,644 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1029635390] [2022-04-15 10:30:02,644 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:30:02,645 INFO L85 PathProgramCache]: Analyzing trace with hash -1372706166, now seen corresponding path program 2 times [2022-04-15 10:30:02,645 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:30:02,645 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1366814982] [2022-04-15 10:30:02,645 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:30:02,645 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:30:02,661 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:30:02,661 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1617302453] [2022-04-15 10:30:02,661 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:30:02,661 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:30:02,661 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:30:02,663 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:30:02,666 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Waiting until timeout for monitored process [2022-04-15 10:30:02,709 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:30:02,709 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:30:02,710 INFO L263 TraceCheckSpWp]: Trace formula consists of 124 conjuncts, 10 conjunts are in the unsatisfiable core [2022-04-15 10:30:02,719 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:30:02,720 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:30:12,652 INFO L272 TraceCheckUtils]: 0: Hoare triple {3840#true} call ULTIMATE.init(); {3840#true} is VALID [2022-04-15 10:30:12,652 INFO L290 TraceCheckUtils]: 1: Hoare triple {3840#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {3840#true} is VALID [2022-04-15 10:30:12,652 INFO L290 TraceCheckUtils]: 2: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3840#true} {3840#true} #83#return; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L272 TraceCheckUtils]: 4: Hoare triple {3840#true} call #t~ret6 := main(); {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L290 TraceCheckUtils]: 5: Hoare triple {3840#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L272 TraceCheckUtils]: 6: Hoare triple {3840#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L290 TraceCheckUtils]: 7: Hoare triple {3840#true} ~cond := #in~cond; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L290 TraceCheckUtils]: 8: Hoare triple {3840#true} assume !(0 == ~cond); {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L290 TraceCheckUtils]: 9: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3840#true} {3840#true} #71#return; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L290 TraceCheckUtils]: 11: Hoare triple {3840#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L272 TraceCheckUtils]: 12: Hoare triple {3840#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L290 TraceCheckUtils]: 13: Hoare triple {3840#true} ~cond := #in~cond; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L290 TraceCheckUtils]: 14: Hoare triple {3840#true} assume !(0 == ~cond); {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L290 TraceCheckUtils]: 15: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3840#true} {3840#true} #73#return; {3840#true} is VALID [2022-04-15 10:30:12,653 INFO L272 TraceCheckUtils]: 17: Hoare triple {3840#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 18: Hoare triple {3840#true} ~cond := #in~cond; {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 19: Hoare triple {3840#true} assume !(0 == ~cond); {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 20: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {3840#true} {3840#true} #75#return; {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 22: Hoare triple {3840#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 23: Hoare triple {3840#true} assume !false; {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L272 TraceCheckUtils]: 24: Hoare triple {3840#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 25: Hoare triple {3840#true} ~cond := #in~cond; {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 26: Hoare triple {3840#true} assume !(0 == ~cond); {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 27: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3840#true} {3840#true} #77#return; {3840#true} is VALID [2022-04-15 10:30:12,654 INFO L290 TraceCheckUtils]: 29: Hoare triple {3840#true} assume !!(0 != ~a~0 && 0 != ~b~0); {3932#(not (= main_~a~0 0))} is VALID [2022-04-15 10:30:12,655 INFO L290 TraceCheckUtils]: 30: Hoare triple {3932#(not (= main_~a~0 0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {3932#(not (= main_~a~0 0))} is VALID [2022-04-15 10:30:12,655 INFO L290 TraceCheckUtils]: 31: Hoare triple {3932#(not (= main_~a~0 0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {3932#(not (= main_~a~0 0))} is VALID [2022-04-15 10:30:12,655 INFO L290 TraceCheckUtils]: 32: Hoare triple {3932#(not (= main_~a~0 0))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~b~0 := ~b~0 - 1;~q~0 := ~q~0 + ~a~0 * ~p~0; {3932#(not (= main_~a~0 0))} is VALID [2022-04-15 10:30:12,656 INFO L290 TraceCheckUtils]: 33: Hoare triple {3932#(not (= main_~a~0 0))} assume !false; {3932#(not (= main_~a~0 0))} is VALID [2022-04-15 10:30:12,656 INFO L272 TraceCheckUtils]: 34: Hoare triple {3932#(not (= main_~a~0 0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:12,656 INFO L290 TraceCheckUtils]: 35: Hoare triple {3840#true} ~cond := #in~cond; {3951#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:30:12,656 INFO L290 TraceCheckUtils]: 36: Hoare triple {3951#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {3955#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:30:12,656 INFO L290 TraceCheckUtils]: 37: Hoare triple {3955#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3955#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:30:14,659 WARN L284 TraceCheckUtils]: 38: Hoare quadruple {3955#(not (= |__VERIFIER_assert_#in~cond| 0))} {3932#(not (= main_~a~0 0))} #77#return; {3962#(and (or (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0))) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (not (= main_~a~0 0)))} is UNKNOWN [2022-04-15 10:30:14,660 INFO L290 TraceCheckUtils]: 39: Hoare triple {3962#(and (or (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0))) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (not (= main_~a~0 0)))} assume !(0 != ~a~0 && 0 != ~b~0); {3966#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:30:14,661 INFO L272 TraceCheckUtils]: 40: Hoare triple {3966#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {3970#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:30:14,661 INFO L290 TraceCheckUtils]: 41: Hoare triple {3970#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3974#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:30:14,661 INFO L290 TraceCheckUtils]: 42: Hoare triple {3974#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3841#false} is VALID [2022-04-15 10:30:14,661 INFO L290 TraceCheckUtils]: 43: Hoare triple {3841#false} assume !false; {3841#false} is VALID [2022-04-15 10:30:14,662 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 9 proven. 1 refuted. 0 times theorem prover too weak. 13 trivial. 0 not checked. [2022-04-15 10:30:14,662 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:30:57,288 INFO L290 TraceCheckUtils]: 43: Hoare triple {3841#false} assume !false; {3841#false} is VALID [2022-04-15 10:30:57,289 INFO L290 TraceCheckUtils]: 42: Hoare triple {3974#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {3841#false} is VALID [2022-04-15 10:30:57,289 INFO L290 TraceCheckUtils]: 41: Hoare triple {3970#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {3974#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:30:57,290 INFO L272 TraceCheckUtils]: 40: Hoare triple {3966#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {3970#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:30:57,291 INFO L290 TraceCheckUtils]: 39: Hoare triple {3993#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {3966#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:30:57,293 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {3955#(not (= |__VERIFIER_assert_#in~cond| 0))} {3840#true} #77#return; {3993#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is VALID [2022-04-15 10:30:57,293 INFO L290 TraceCheckUtils]: 37: Hoare triple {3955#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {3955#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:30:57,294 INFO L290 TraceCheckUtils]: 36: Hoare triple {4006#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {3955#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:30:57,294 INFO L290 TraceCheckUtils]: 35: Hoare triple {3840#true} ~cond := #in~cond; {4006#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-15 10:30:57,294 INFO L272 TraceCheckUtils]: 34: Hoare triple {3840#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:57,294 INFO L290 TraceCheckUtils]: 33: Hoare triple {3840#true} assume !false; {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L290 TraceCheckUtils]: 32: Hoare triple {3840#true} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~b~0 := ~b~0 - 1;~q~0 := ~q~0 + ~a~0 * ~p~0; {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L290 TraceCheckUtils]: 31: Hoare triple {3840#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L290 TraceCheckUtils]: 30: Hoare triple {3840#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L290 TraceCheckUtils]: 29: Hoare triple {3840#true} assume !!(0 != ~a~0 && 0 != ~b~0); {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {3840#true} {3840#true} #77#return; {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L290 TraceCheckUtils]: 27: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L290 TraceCheckUtils]: 26: Hoare triple {3840#true} assume !(0 == ~cond); {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L290 TraceCheckUtils]: 25: Hoare triple {3840#true} ~cond := #in~cond; {3840#true} is VALID [2022-04-15 10:30:57,295 INFO L272 TraceCheckUtils]: 24: Hoare triple {3840#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L290 TraceCheckUtils]: 23: Hoare triple {3840#true} assume !false; {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L290 TraceCheckUtils]: 22: Hoare triple {3840#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {3840#true} {3840#true} #75#return; {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L290 TraceCheckUtils]: 20: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L290 TraceCheckUtils]: 19: Hoare triple {3840#true} assume !(0 == ~cond); {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L290 TraceCheckUtils]: 18: Hoare triple {3840#true} ~cond := #in~cond; {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L272 TraceCheckUtils]: 17: Hoare triple {3840#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {3840#true} {3840#true} #73#return; {3840#true} is VALID [2022-04-15 10:30:57,296 INFO L290 TraceCheckUtils]: 15: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L290 TraceCheckUtils]: 14: Hoare triple {3840#true} assume !(0 == ~cond); {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L290 TraceCheckUtils]: 13: Hoare triple {3840#true} ~cond := #in~cond; {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L272 TraceCheckUtils]: 12: Hoare triple {3840#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L290 TraceCheckUtils]: 11: Hoare triple {3840#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {3840#true} {3840#true} #71#return; {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L290 TraceCheckUtils]: 9: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L290 TraceCheckUtils]: 8: Hoare triple {3840#true} assume !(0 == ~cond); {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L290 TraceCheckUtils]: 7: Hoare triple {3840#true} ~cond := #in~cond; {3840#true} is VALID [2022-04-15 10:30:57,297 INFO L272 TraceCheckUtils]: 6: Hoare triple {3840#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {3840#true} is VALID [2022-04-15 10:30:57,298 INFO L290 TraceCheckUtils]: 5: Hoare triple {3840#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {3840#true} is VALID [2022-04-15 10:30:57,298 INFO L272 TraceCheckUtils]: 4: Hoare triple {3840#true} call #t~ret6 := main(); {3840#true} is VALID [2022-04-15 10:30:57,298 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {3840#true} {3840#true} #83#return; {3840#true} is VALID [2022-04-15 10:30:57,298 INFO L290 TraceCheckUtils]: 2: Hoare triple {3840#true} assume true; {3840#true} is VALID [2022-04-15 10:30:57,298 INFO L290 TraceCheckUtils]: 1: Hoare triple {3840#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {3840#true} is VALID [2022-04-15 10:30:57,298 INFO L272 TraceCheckUtils]: 0: Hoare triple {3840#true} call ULTIMATE.init(); {3840#true} is VALID [2022-04-15 10:30:57,298 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-15 10:30:57,299 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:30:57,299 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1366814982] [2022-04-15 10:30:57,299 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:30:57,299 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1617302453] [2022-04-15 10:30:57,299 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1617302453] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:30:57,299 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:30:57,299 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 8] total 11 [2022-04-15 10:30:57,299 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:30:57,300 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1029635390] [2022-04-15 10:30:57,300 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1029635390] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:30:57,300 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:30:57,300 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-15 10:30:57,300 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1184075535] [2022-04-15 10:30:57,300 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:30:57,300 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 8 states have (on average 3.0) internal successors, (24), 7 states have internal predecessors, (24), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) Word has length 44 [2022-04-15 10:30:57,301 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:30:57,301 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 8 states have (on average 3.0) internal successors, (24), 7 states have internal predecessors, (24), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:30:59,328 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 37 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:30:59,328 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-15 10:30:59,328 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:30:59,329 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-15 10:30:59,329 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=84, Unknown=0, NotChecked=0, Total=110 [2022-04-15 10:30:59,329 INFO L87 Difference]: Start difference. First operand 39 states and 45 transitions. Second operand has 9 states, 8 states have (on average 3.0) internal successors, (24), 7 states have internal predecessors, (24), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:31:02,258 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:31:02,600 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:31:02,601 INFO L93 Difference]: Finished difference Result 53 states and 64 transitions. [2022-04-15 10:31:02,601 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-15 10:31:02,601 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 8 states have (on average 3.0) internal successors, (24), 7 states have internal predecessors, (24), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) Word has length 44 [2022-04-15 10:31:02,601 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:31:02,601 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 8 states have (on average 3.0) internal successors, (24), 7 states have internal predecessors, (24), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:31:02,602 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 49 transitions. [2022-04-15 10:31:02,602 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 8 states have (on average 3.0) internal successors, (24), 7 states have internal predecessors, (24), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:31:02,603 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 49 transitions. [2022-04-15 10:31:02,603 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 49 transitions. [2022-04-15 10:31:04,645 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 48 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:31:04,645 INFO L225 Difference]: With dead ends: 53 [2022-04-15 10:31:04,646 INFO L226 Difference]: Without dead ends: 48 [2022-04-15 10:31:04,646 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 90 GetRequests, 77 SyntacticMatches, 1 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 17 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=45, Invalid=137, Unknown=0, NotChecked=0, Total=182 [2022-04-15 10:31:04,646 INFO L913 BasicCegarLoop]: 28 mSDtfsCounter, 11 mSDsluCounter, 108 mSDsCounter, 0 mSdLazyCounter, 130 mSolverCounterSat, 2 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 2.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 12 SdHoareTripleChecker+Valid, 136 SdHoareTripleChecker+Invalid, 133 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 130 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 2.6s IncrementalHoareTripleChecker+Time [2022-04-15 10:31:04,647 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [12 Valid, 136 Invalid, 133 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 130 Invalid, 1 Unknown, 0 Unchecked, 2.6s Time] [2022-04-15 10:31:04,647 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2022-04-15 10:31:04,695 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 39. [2022-04-15 10:31:04,696 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:31:04,696 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:31:04,696 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:31:04,696 INFO L87 Difference]: Start difference. First operand 48 states. Second operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:31:04,698 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:31:04,698 INFO L93 Difference]: Finished difference Result 48 states and 59 transitions. [2022-04-15 10:31:04,698 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 59 transitions. [2022-04-15 10:31:04,698 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:31:04,698 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:31:04,699 INFO L74 IsIncluded]: Start isIncluded. First operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 48 states. [2022-04-15 10:31:04,699 INFO L87 Difference]: Start difference. First operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) Second operand 48 states. [2022-04-15 10:31:04,700 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:31:04,700 INFO L93 Difference]: Finished difference Result 48 states and 59 transitions. [2022-04-15 10:31:04,701 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 59 transitions. [2022-04-15 10:31:04,701 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:31:04,701 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:31:04,701 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:31:04,701 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:31:04,701 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 39 states, 25 states have (on average 1.16) internal successors, (29), 26 states have internal predecessors, (29), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 6 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:31:04,702 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 45 transitions. [2022-04-15 10:31:04,702 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 45 transitions. Word has length 44 [2022-04-15 10:31:04,702 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:31:04,703 INFO L478 AbstractCegarLoop]: Abstraction has 39 states and 45 transitions. [2022-04-15 10:31:04,703 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 8 states have (on average 3.0) internal successors, (24), 7 states have internal predecessors, (24), 3 states have call successors, (8), 2 states have call predecessors, (8), 2 states have return successors, (6), 2 states have call predecessors, (6), 2 states have call successors, (6) [2022-04-15 10:31:04,703 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 39 states and 45 transitions. [2022-04-15 10:31:07,193 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 44 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:31:07,193 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 45 transitions. [2022-04-15 10:31:07,193 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 45 [2022-04-15 10:31:07,193 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:31:07,193 INFO L499 BasicCegarLoop]: trace histogram [3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:31:07,219 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (9)] Forceful destruction successful, exit code 0 [2022-04-15 10:31:07,394 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable8 [2022-04-15 10:31:07,394 INFO L403 AbstractCegarLoop]: === Iteration 10 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:31:07,394 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:31:07,395 INFO L85 PathProgramCache]: Analyzing trace with hash -1114540728, now seen corresponding path program 1 times [2022-04-15 10:31:07,395 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:31:07,395 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [373982401] [2022-04-15 10:31:07,395 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:31:07,395 INFO L85 PathProgramCache]: Analyzing trace with hash -1114540728, now seen corresponding path program 2 times [2022-04-15 10:31:07,395 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:31:07,395 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1685371556] [2022-04-15 10:31:07,395 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:31:07,395 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:31:07,411 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:31:07,411 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [170673680] [2022-04-15 10:31:07,411 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:31:07,412 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:31:07,412 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:31:07,412 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:31:07,414 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Waiting until timeout for monitored process [2022-04-15 10:31:07,458 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:31:07,458 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:31:07,459 INFO L263 TraceCheckSpWp]: Trace formula consists of 123 conjuncts, 31 conjunts are in the unsatisfiable core [2022-04-15 10:31:07,472 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:31:07,473 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:31:18,012 WARN L914 QuantifierPusher]: no eliminatee completely removed, nonetheless the elimination was considered successful [2022-04-15 10:31:18,543 INFO L272 TraceCheckUtils]: 0: Hoare triple {4400#true} call ULTIMATE.init(); {4400#true} is VALID [2022-04-15 10:31:18,543 INFO L290 TraceCheckUtils]: 1: Hoare triple {4400#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {4400#true} is VALID [2022-04-15 10:31:18,543 INFO L290 TraceCheckUtils]: 2: Hoare triple {4400#true} assume true; {4400#true} is VALID [2022-04-15 10:31:18,543 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4400#true} {4400#true} #83#return; {4400#true} is VALID [2022-04-15 10:31:18,543 INFO L272 TraceCheckUtils]: 4: Hoare triple {4400#true} call #t~ret6 := main(); {4400#true} is VALID [2022-04-15 10:31:18,543 INFO L290 TraceCheckUtils]: 5: Hoare triple {4400#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {4400#true} is VALID [2022-04-15 10:31:18,543 INFO L272 TraceCheckUtils]: 6: Hoare triple {4400#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:18,544 INFO L290 TraceCheckUtils]: 7: Hoare triple {4400#true} ~cond := #in~cond; {4426#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:31:18,544 INFO L290 TraceCheckUtils]: 8: Hoare triple {4426#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4430#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:31:18,544 INFO L290 TraceCheckUtils]: 9: Hoare triple {4430#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4430#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:31:18,545 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4430#(not (= |assume_abort_if_not_#in~cond| 0))} {4400#true} #71#return; {4437#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:31:18,545 INFO L290 TraceCheckUtils]: 11: Hoare triple {4437#(and (<= 0 main_~x~0) (<= main_~x~0 50))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {4437#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:31:18,545 INFO L272 TraceCheckUtils]: 12: Hoare triple {4437#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:18,545 INFO L290 TraceCheckUtils]: 13: Hoare triple {4400#true} ~cond := #in~cond; {4400#true} is VALID [2022-04-15 10:31:18,545 INFO L290 TraceCheckUtils]: 14: Hoare triple {4400#true} assume !(0 == ~cond); {4400#true} is VALID [2022-04-15 10:31:18,545 INFO L290 TraceCheckUtils]: 15: Hoare triple {4400#true} assume true; {4400#true} is VALID [2022-04-15 10:31:18,546 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4400#true} {4437#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #73#return; {4437#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:31:18,546 INFO L272 TraceCheckUtils]: 17: Hoare triple {4437#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:18,546 INFO L290 TraceCheckUtils]: 18: Hoare triple {4400#true} ~cond := #in~cond; {4426#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:31:18,546 INFO L290 TraceCheckUtils]: 19: Hoare triple {4426#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {4430#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:31:18,547 INFO L290 TraceCheckUtils]: 20: Hoare triple {4430#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {4430#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:31:18,547 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {4430#(not (= |assume_abort_if_not_#in~cond| 0))} {4437#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #75#return; {4471#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} is VALID [2022-04-15 10:31:18,547 INFO L290 TraceCheckUtils]: 22: Hoare triple {4471#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {4475#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:31:18,548 INFO L290 TraceCheckUtils]: 23: Hoare triple {4475#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} assume !false; {4475#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:31:18,548 INFO L272 TraceCheckUtils]: 24: Hoare triple {4475#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:18,548 INFO L290 TraceCheckUtils]: 25: Hoare triple {4400#true} ~cond := #in~cond; {4485#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:31:18,549 INFO L290 TraceCheckUtils]: 26: Hoare triple {4485#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:31:18,549 INFO L290 TraceCheckUtils]: 27: Hoare triple {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:31:18,550 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} {4475#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} #77#return; {4475#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:31:18,550 INFO L290 TraceCheckUtils]: 29: Hoare triple {4475#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {4499#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:31:18,551 INFO L290 TraceCheckUtils]: 30: Hoare triple {4499#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~y~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {4499#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:31:18,552 INFO L290 TraceCheckUtils]: 31: Hoare triple {4499#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~y~0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {4499#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:31:18,553 INFO L290 TraceCheckUtils]: 32: Hoare triple {4499#(and (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~y~0 main_~b~0) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~y~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {4509#(and (< 0 (+ main_~a~0 1)) (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 (+ main_~a~0 1)) (<= 1 main_~y~0) (<= main_~y~0 (+ main_~b~0 1)))} is VALID [2022-04-15 10:31:18,554 INFO L290 TraceCheckUtils]: 33: Hoare triple {4509#(and (< 0 (+ main_~a~0 1)) (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 (+ main_~a~0 1)) (<= 1 main_~y~0) (<= main_~y~0 (+ main_~b~0 1)))} assume !false; {4509#(and (< 0 (+ main_~a~0 1)) (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 (+ main_~a~0 1)) (<= 1 main_~y~0) (<= main_~y~0 (+ main_~b~0 1)))} is VALID [2022-04-15 10:31:18,554 INFO L272 TraceCheckUtils]: 34: Hoare triple {4509#(and (< 0 (+ main_~a~0 1)) (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 (+ main_~a~0 1)) (<= 1 main_~y~0) (<= main_~y~0 (+ main_~b~0 1)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:18,554 INFO L290 TraceCheckUtils]: 35: Hoare triple {4400#true} ~cond := #in~cond; {4485#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:31:18,555 INFO L290 TraceCheckUtils]: 36: Hoare triple {4485#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:31:18,555 INFO L290 TraceCheckUtils]: 37: Hoare triple {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:31:20,558 WARN L284 TraceCheckUtils]: 38: Hoare quadruple {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} {4509#(and (< 0 (+ main_~a~0 1)) (<= 1 main_~p~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 (+ main_~a~0 1)) (<= 1 main_~y~0) (<= main_~y~0 (+ main_~b~0 1)))} #77#return; {4528#(and (< 0 (+ main_~a~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (or (and (= main_~a~0 0) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (and (= main_~b~0 0) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (<= 1 (div (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0))) (not (= main_~b~0 0)) (not (= main_~a~0 0)))) (<= main_~x~0 (+ main_~a~0 1)) (<= 1 main_~y~0) (<= main_~y~0 (+ main_~b~0 1)))} is UNKNOWN [2022-04-15 10:31:20,559 INFO L290 TraceCheckUtils]: 39: Hoare triple {4528#(and (< 0 (+ main_~a~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (or (and (= main_~a~0 0) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (and (= main_~b~0 0) (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0)) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (<= 1 (div (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0))) (not (= main_~b~0 0)) (not (= main_~a~0 0)))) (<= main_~x~0 (+ main_~a~0 1)) (<= 1 main_~y~0) (<= main_~y~0 (+ main_~b~0 1)))} assume !(0 != ~a~0 && 0 != ~b~0); {4532#(and (or (and (<= main_~x~0 1) (= main_~q~0 (* main_~y~0 main_~x~0))) (and (= main_~q~0 (* main_~y~0 main_~x~0)) (<= main_~y~0 1))) (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} is VALID [2022-04-15 10:31:20,560 INFO L272 TraceCheckUtils]: 40: Hoare triple {4532#(and (or (and (<= main_~x~0 1) (= main_~q~0 (* main_~y~0 main_~x~0))) (and (= main_~q~0 (* main_~y~0 main_~x~0)) (<= main_~y~0 1))) (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {4536#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:31:20,560 INFO L290 TraceCheckUtils]: 41: Hoare triple {4536#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {4540#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:31:20,561 INFO L290 TraceCheckUtils]: 42: Hoare triple {4540#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4401#false} is VALID [2022-04-15 10:31:20,561 INFO L290 TraceCheckUtils]: 43: Hoare triple {4401#false} assume !false; {4401#false} is VALID [2022-04-15 10:31:20,561 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 5 proven. 8 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-04-15 10:31:20,561 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:31:48,708 INFO L290 TraceCheckUtils]: 43: Hoare triple {4401#false} assume !false; {4401#false} is VALID [2022-04-15 10:31:48,708 INFO L290 TraceCheckUtils]: 42: Hoare triple {4540#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {4401#false} is VALID [2022-04-15 10:31:48,708 INFO L290 TraceCheckUtils]: 41: Hoare triple {4536#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {4540#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:31:48,709 INFO L272 TraceCheckUtils]: 40: Hoare triple {4556#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {4536#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:31:48,710 INFO L290 TraceCheckUtils]: 39: Hoare triple {4560#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {4556#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:31:48,711 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} {4400#true} #77#return; {4560#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is VALID [2022-04-15 10:31:48,712 INFO L290 TraceCheckUtils]: 37: Hoare triple {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:31:48,712 INFO L290 TraceCheckUtils]: 36: Hoare triple {4573#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {4489#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:31:48,712 INFO L290 TraceCheckUtils]: 35: Hoare triple {4400#true} ~cond := #in~cond; {4573#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-15 10:31:48,712 INFO L272 TraceCheckUtils]: 34: Hoare triple {4400#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:48,712 INFO L290 TraceCheckUtils]: 33: Hoare triple {4400#true} assume !false; {4400#true} is VALID [2022-04-15 10:31:48,712 INFO L290 TraceCheckUtils]: 32: Hoare triple {4400#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {4400#true} is VALID [2022-04-15 10:31:48,712 INFO L290 TraceCheckUtils]: 31: Hoare triple {4400#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 30: Hoare triple {4400#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 29: Hoare triple {4400#true} assume !!(0 != ~a~0 && 0 != ~b~0); {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4400#true} {4400#true} #77#return; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 27: Hoare triple {4400#true} assume true; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 26: Hoare triple {4400#true} assume !(0 == ~cond); {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 25: Hoare triple {4400#true} ~cond := #in~cond; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L272 TraceCheckUtils]: 24: Hoare triple {4400#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 23: Hoare triple {4400#true} assume !false; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 22: Hoare triple {4400#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {4400#true} {4400#true} #75#return; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 20: Hoare triple {4400#true} assume true; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 19: Hoare triple {4400#true} assume !(0 == ~cond); {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 18: Hoare triple {4400#true} ~cond := #in~cond; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L272 TraceCheckUtils]: 17: Hoare triple {4400#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4400#true} {4400#true} #73#return; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 15: Hoare triple {4400#true} assume true; {4400#true} is VALID [2022-04-15 10:31:48,713 INFO L290 TraceCheckUtils]: 14: Hoare triple {4400#true} assume !(0 == ~cond); {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L290 TraceCheckUtils]: 13: Hoare triple {4400#true} ~cond := #in~cond; {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L272 TraceCheckUtils]: 12: Hoare triple {4400#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L290 TraceCheckUtils]: 11: Hoare triple {4400#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4400#true} {4400#true} #71#return; {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L290 TraceCheckUtils]: 9: Hoare triple {4400#true} assume true; {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L290 TraceCheckUtils]: 8: Hoare triple {4400#true} assume !(0 == ~cond); {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L290 TraceCheckUtils]: 7: Hoare triple {4400#true} ~cond := #in~cond; {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L272 TraceCheckUtils]: 6: Hoare triple {4400#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L290 TraceCheckUtils]: 5: Hoare triple {4400#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L272 TraceCheckUtils]: 4: Hoare triple {4400#true} call #t~ret6 := main(); {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4400#true} {4400#true} #83#return; {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L290 TraceCheckUtils]: 2: Hoare triple {4400#true} assume true; {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L290 TraceCheckUtils]: 1: Hoare triple {4400#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L272 TraceCheckUtils]: 0: Hoare triple {4400#true} call ULTIMATE.init(); {4400#true} is VALID [2022-04-15 10:31:48,714 INFO L134 CoverageAnalysis]: Checked inductivity of 23 backedges. 7 proven. 1 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-04-15 10:31:48,715 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:31:48,715 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1685371556] [2022-04-15 10:31:48,715 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:31:48,715 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [170673680] [2022-04-15 10:31:48,715 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [170673680] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:31:48,715 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:31:48,715 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 8] total 18 [2022-04-15 10:31:48,715 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:31:48,715 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [373982401] [2022-04-15 10:31:48,715 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [373982401] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:31:48,715 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:31:48,715 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [] total 15 [2022-04-15 10:31:48,715 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1714612090] [2022-04-15 10:31:48,715 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:31:48,716 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 14 states have (on average 1.7142857142857142) internal successors, (24), 12 states have internal predecessors, (24), 5 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) Word has length 44 [2022-04-15 10:31:48,716 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:31:48,716 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 15 states, 14 states have (on average 1.7142857142857142) internal successors, (24), 12 states have internal predecessors, (24), 5 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:31:50,746 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 37 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:31:50,746 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-04-15 10:31:50,747 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:31:50,747 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-04-15 10:31:50,747 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=56, Invalid=250, Unknown=0, NotChecked=0, Total=306 [2022-04-15 10:31:50,747 INFO L87 Difference]: Start difference. First operand 39 states and 45 transitions. Second operand has 15 states, 14 states have (on average 1.7142857142857142) internal successors, (24), 12 states have internal predecessors, (24), 5 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:31:53,614 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:31:57,814 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:31:59,897 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.59s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:32:00,160 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:32:00,161 INFO L93 Difference]: Finished difference Result 57 states and 71 transitions. [2022-04-15 10:32:00,161 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-04-15 10:32:00,162 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 14 states have (on average 1.7142857142857142) internal successors, (24), 12 states have internal predecessors, (24), 5 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) Word has length 44 [2022-04-15 10:32:00,162 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:32:00,162 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 1.7142857142857142) internal successors, (24), 12 states have internal predecessors, (24), 5 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:32:00,163 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 59 transitions. [2022-04-15 10:32:00,163 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 1.7142857142857142) internal successors, (24), 12 states have internal predecessors, (24), 5 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:32:00,165 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 59 transitions. [2022-04-15 10:32:00,165 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 15 states and 59 transitions. [2022-04-15 10:32:02,230 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 58 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:32:02,232 INFO L225 Difference]: With dead ends: 57 [2022-04-15 10:32:02,232 INFO L226 Difference]: Without dead ends: 52 [2022-04-15 10:32:02,232 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 94 GetRequests, 70 SyntacticMatches, 1 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 104 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=110, Invalid=490, Unknown=0, NotChecked=0, Total=600 [2022-04-15 10:32:02,232 INFO L913 BasicCegarLoop]: 18 mSDtfsCounter, 46 mSDsluCounter, 99 mSDsCounter, 0 mSdLazyCounter, 228 mSolverCounterSat, 19 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 7.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 49 SdHoareTripleChecker+Valid, 117 SdHoareTripleChecker+Invalid, 249 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 19 IncrementalHoareTripleChecker+Valid, 228 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 7.5s IncrementalHoareTripleChecker+Time [2022-04-15 10:32:02,233 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [49 Valid, 117 Invalid, 249 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [19 Valid, 228 Invalid, 2 Unknown, 0 Unchecked, 7.5s Time] [2022-04-15 10:32:02,233 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2022-04-15 10:32:02,313 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 43. [2022-04-15 10:32:02,313 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:32:02,313 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand has 43 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 29 states have internal predecessors, (36), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:32:02,313 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand has 43 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 29 states have internal predecessors, (36), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:32:02,313 INFO L87 Difference]: Start difference. First operand 52 states. Second operand has 43 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 29 states have internal predecessors, (36), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:32:02,315 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:32:02,315 INFO L93 Difference]: Finished difference Result 52 states and 66 transitions. [2022-04-15 10:32:02,315 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 66 transitions. [2022-04-15 10:32:02,315 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:32:02,315 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:32:02,315 INFO L74 IsIncluded]: Start isIncluded. First operand has 43 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 29 states have internal predecessors, (36), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) Second operand 52 states. [2022-04-15 10:32:02,316 INFO L87 Difference]: Start difference. First operand has 43 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 29 states have internal predecessors, (36), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) Second operand 52 states. [2022-04-15 10:32:02,317 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:32:02,317 INFO L93 Difference]: Finished difference Result 52 states and 66 transitions. [2022-04-15 10:32:02,317 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 66 transitions. [2022-04-15 10:32:02,318 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:32:02,318 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:32:02,318 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:32:02,318 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:32:02,318 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 43 states, 29 states have (on average 1.2413793103448276) internal successors, (36), 29 states have internal predecessors, (36), 9 states have call successors, (9), 6 states have call predecessors, (9), 4 states have return successors, (7), 7 states have call predecessors, (7), 7 states have call successors, (7) [2022-04-15 10:32:02,319 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 43 states to 43 states and 52 transitions. [2022-04-15 10:32:02,319 INFO L78 Accepts]: Start accepts. Automaton has 43 states and 52 transitions. Word has length 44 [2022-04-15 10:32:02,319 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:32:02,320 INFO L478 AbstractCegarLoop]: Abstraction has 43 states and 52 transitions. [2022-04-15 10:32:02,320 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 14 states have (on average 1.7142857142857142) internal successors, (24), 12 states have internal predecessors, (24), 5 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (6), 5 states have call predecessors, (6), 4 states have call successors, (6) [2022-04-15 10:32:02,320 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 43 states and 52 transitions. [2022-04-15 10:32:04,984 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 51 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:32:04,985 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 52 transitions. [2022-04-15 10:32:04,985 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 53 [2022-04-15 10:32:04,985 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:32:04,985 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:32:05,001 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (10)] Forceful destruction successful, exit code 0 [2022-04-15 10:32:05,186 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 10 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable9 [2022-04-15 10:32:05,186 INFO L403 AbstractCegarLoop]: === Iteration 11 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:32:05,186 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:32:05,186 INFO L85 PathProgramCache]: Analyzing trace with hash 2079436449, now seen corresponding path program 1 times [2022-04-15 10:32:05,186 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:32:05,187 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1245201164] [2022-04-15 10:32:05,187 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:32:05,187 INFO L85 PathProgramCache]: Analyzing trace with hash 2079436449, now seen corresponding path program 2 times [2022-04-15 10:32:05,187 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:32:05,187 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [938263097] [2022-04-15 10:32:05,187 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:32:05,187 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:32:05,200 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:32:05,200 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1261687604] [2022-04-15 10:32:05,200 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:32:05,200 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:32:05,200 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:32:05,201 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:32:05,217 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Waiting until timeout for monitored process [2022-04-15 10:32:05,259 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:32:05,260 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:32:05,261 INFO L263 TraceCheckSpWp]: Trace formula consists of 145 conjuncts, 32 conjunts are in the unsatisfiable core [2022-04-15 10:32:05,275 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:32:05,276 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:32:17,615 INFO L272 TraceCheckUtils]: 0: Hoare triple {4999#true} call ULTIMATE.init(); {4999#true} is VALID [2022-04-15 10:32:17,616 INFO L290 TraceCheckUtils]: 1: Hoare triple {4999#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {4999#true} is VALID [2022-04-15 10:32:17,616 INFO L290 TraceCheckUtils]: 2: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:17,616 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4999#true} {4999#true} #83#return; {4999#true} is VALID [2022-04-15 10:32:17,616 INFO L272 TraceCheckUtils]: 4: Hoare triple {4999#true} call #t~ret6 := main(); {4999#true} is VALID [2022-04-15 10:32:17,616 INFO L290 TraceCheckUtils]: 5: Hoare triple {4999#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {4999#true} is VALID [2022-04-15 10:32:17,616 INFO L272 TraceCheckUtils]: 6: Hoare triple {4999#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:17,617 INFO L290 TraceCheckUtils]: 7: Hoare triple {4999#true} ~cond := #in~cond; {5025#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:32:17,617 INFO L290 TraceCheckUtils]: 8: Hoare triple {5025#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {5029#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:32:17,617 INFO L290 TraceCheckUtils]: 9: Hoare triple {5029#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {5029#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:32:17,618 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5029#(not (= |assume_abort_if_not_#in~cond| 0))} {4999#true} #71#return; {5036#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:32:17,618 INFO L290 TraceCheckUtils]: 11: Hoare triple {5036#(and (<= 0 main_~x~0) (<= main_~x~0 50))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {5036#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:32:17,618 INFO L272 TraceCheckUtils]: 12: Hoare triple {5036#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:17,619 INFO L290 TraceCheckUtils]: 13: Hoare triple {4999#true} ~cond := #in~cond; {4999#true} is VALID [2022-04-15 10:32:17,619 INFO L290 TraceCheckUtils]: 14: Hoare triple {4999#true} assume !(0 == ~cond); {4999#true} is VALID [2022-04-15 10:32:17,619 INFO L290 TraceCheckUtils]: 15: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:17,619 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4999#true} {5036#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #73#return; {5036#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:32:17,619 INFO L272 TraceCheckUtils]: 17: Hoare triple {5036#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:17,620 INFO L290 TraceCheckUtils]: 18: Hoare triple {4999#true} ~cond := #in~cond; {5025#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:32:17,620 INFO L290 TraceCheckUtils]: 19: Hoare triple {5025#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {5029#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:32:17,620 INFO L290 TraceCheckUtils]: 20: Hoare triple {5029#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {5029#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:32:17,621 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {5029#(not (= |assume_abort_if_not_#in~cond| 0))} {5036#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #75#return; {5070#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} is VALID [2022-04-15 10:32:17,622 INFO L290 TraceCheckUtils]: 22: Hoare triple {5070#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= 1 main_~y~0))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {5074#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:32:17,622 INFO L290 TraceCheckUtils]: 23: Hoare triple {5074#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} assume !false; {5074#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:32:17,622 INFO L272 TraceCheckUtils]: 24: Hoare triple {5074#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:17,622 INFO L290 TraceCheckUtils]: 25: Hoare triple {4999#true} ~cond := #in~cond; {4999#true} is VALID [2022-04-15 10:32:17,622 INFO L290 TraceCheckUtils]: 26: Hoare triple {4999#true} assume !(0 == ~cond); {4999#true} is VALID [2022-04-15 10:32:17,622 INFO L290 TraceCheckUtils]: 27: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:17,623 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4999#true} {5074#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} #77#return; {5074#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:32:17,624 INFO L290 TraceCheckUtils]: 29: Hoare triple {5074#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (<= 1 main_~y~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {5096#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:32:17,625 INFO L290 TraceCheckUtils]: 30: Hoare triple {5096#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~b~0 main_~y~0) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)) (<= 1 main_~y~0))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:32:17,625 INFO L290 TraceCheckUtils]: 31: Hoare triple {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !false; {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:32:17,626 INFO L272 TraceCheckUtils]: 32: Hoare triple {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:17,626 INFO L290 TraceCheckUtils]: 33: Hoare triple {4999#true} ~cond := #in~cond; {4999#true} is VALID [2022-04-15 10:32:17,626 INFO L290 TraceCheckUtils]: 34: Hoare triple {4999#true} assume !(0 == ~cond); {4999#true} is VALID [2022-04-15 10:32:17,626 INFO L290 TraceCheckUtils]: 35: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:17,627 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4999#true} {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} #77#return; {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:32:17,627 INFO L290 TraceCheckUtils]: 37: Hoare triple {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !!(0 != ~a~0 && 0 != ~b~0); {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:32:17,628 INFO L290 TraceCheckUtils]: 38: Hoare triple {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:32:17,629 INFO L290 TraceCheckUtils]: 39: Hoare triple {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:32:17,630 INFO L290 TraceCheckUtils]: 40: Hoare triple {5100#(and (<= (div main_~y~0 2) main_~b~0) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (< 0 main_~a~0) (<= 1 main_~y~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {5131#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (<= (div main_~y~0 2) (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:32:17,630 INFO L290 TraceCheckUtils]: 41: Hoare triple {5131#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (<= (div main_~y~0 2) (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0))} assume !false; {5131#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (<= (div main_~y~0 2) (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:32:17,630 INFO L272 TraceCheckUtils]: 42: Hoare triple {5131#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (<= (div main_~y~0 2) (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:17,631 INFO L290 TraceCheckUtils]: 43: Hoare triple {4999#true} ~cond := #in~cond; {5141#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:32:17,631 INFO L290 TraceCheckUtils]: 44: Hoare triple {5141#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {5145#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:32:17,631 INFO L290 TraceCheckUtils]: 45: Hoare triple {5145#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {5145#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:32:19,634 WARN L284 TraceCheckUtils]: 46: Hoare quadruple {5145#(not (= |__VERIFIER_assert_#in~cond| 0))} {5131#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (<= (div main_~y~0 2) (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0))} #77#return; {5152#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (<= (div main_~y~0 2) (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0) (or (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0)) (not (= main_~a~0 0)))))} is UNKNOWN [2022-04-15 10:32:19,635 INFO L290 TraceCheckUtils]: 47: Hoare triple {5152#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (<= (div main_~y~0 2) (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0) (or (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0)) (not (= main_~a~0 0)))))} assume !(0 != ~a~0 && 0 != ~b~0); {5156#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0) (or (and (<= (div main_~y~0 2) 1) (= main_~q~0 (* main_~y~0 main_~x~0))) (and (< (div (* (- 1) main_~x~0) (- 2)) 2) (= main_~q~0 (* main_~y~0 main_~x~0)))))} is VALID [2022-04-15 10:32:19,636 INFO L272 TraceCheckUtils]: 48: Hoare triple {5156#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= (mod main_~y~0 2) 0) (<= 1 main_~y~0) (or (and (<= (div main_~y~0 2) 1) (= main_~q~0 (* main_~y~0 main_~x~0))) (and (< (div (* (- 1) main_~x~0) (- 2)) 2) (= main_~q~0 (* main_~y~0 main_~x~0)))))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {5160#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:32:19,636 INFO L290 TraceCheckUtils]: 49: Hoare triple {5160#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {5164#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:32:19,637 INFO L290 TraceCheckUtils]: 50: Hoare triple {5164#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {5000#false} is VALID [2022-04-15 10:32:19,637 INFO L290 TraceCheckUtils]: 51: Hoare triple {5000#false} assume !false; {5000#false} is VALID [2022-04-15 10:32:19,637 INFO L134 CoverageAnalysis]: Checked inductivity of 40 backedges. 14 proven. 14 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-15 10:32:19,637 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:32:56,247 INFO L290 TraceCheckUtils]: 51: Hoare triple {5000#false} assume !false; {5000#false} is VALID [2022-04-15 10:32:56,248 INFO L290 TraceCheckUtils]: 50: Hoare triple {5164#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {5000#false} is VALID [2022-04-15 10:32:56,248 INFO L290 TraceCheckUtils]: 49: Hoare triple {5160#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {5164#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:32:56,249 INFO L272 TraceCheckUtils]: 48: Hoare triple {5180#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {5160#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:32:56,249 INFO L290 TraceCheckUtils]: 47: Hoare triple {5184#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {5180#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:32:56,251 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {5145#(not (= |__VERIFIER_assert_#in~cond| 0))} {4999#true} #77#return; {5184#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is VALID [2022-04-15 10:32:56,252 INFO L290 TraceCheckUtils]: 45: Hoare triple {5145#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {5145#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:32:56,252 INFO L290 TraceCheckUtils]: 44: Hoare triple {5197#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {5145#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 43: Hoare triple {4999#true} ~cond := #in~cond; {5197#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-15 10:32:56,253 INFO L272 TraceCheckUtils]: 42: Hoare triple {4999#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 41: Hoare triple {4999#true} assume !false; {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 40: Hoare triple {4999#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 39: Hoare triple {4999#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 38: Hoare triple {4999#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 37: Hoare triple {4999#true} assume !!(0 != ~a~0 && 0 != ~b~0); {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4999#true} {4999#true} #77#return; {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 35: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 34: Hoare triple {4999#true} assume !(0 == ~cond); {4999#true} is VALID [2022-04-15 10:32:56,253 INFO L290 TraceCheckUtils]: 33: Hoare triple {4999#true} ~cond := #in~cond; {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L272 TraceCheckUtils]: 32: Hoare triple {4999#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L290 TraceCheckUtils]: 31: Hoare triple {4999#true} assume !false; {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L290 TraceCheckUtils]: 30: Hoare triple {4999#true} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L290 TraceCheckUtils]: 29: Hoare triple {4999#true} assume !!(0 != ~a~0 && 0 != ~b~0); {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {4999#true} {4999#true} #77#return; {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L290 TraceCheckUtils]: 27: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L290 TraceCheckUtils]: 26: Hoare triple {4999#true} assume !(0 == ~cond); {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L290 TraceCheckUtils]: 25: Hoare triple {4999#true} ~cond := #in~cond; {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L272 TraceCheckUtils]: 24: Hoare triple {4999#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L290 TraceCheckUtils]: 23: Hoare triple {4999#true} assume !false; {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L290 TraceCheckUtils]: 22: Hoare triple {4999#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {4999#true} is VALID [2022-04-15 10:32:56,254 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {4999#true} {4999#true} #75#return; {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L290 TraceCheckUtils]: 20: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L290 TraceCheckUtils]: 19: Hoare triple {4999#true} assume !(0 == ~cond); {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L290 TraceCheckUtils]: 18: Hoare triple {4999#true} ~cond := #in~cond; {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L272 TraceCheckUtils]: 17: Hoare triple {4999#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {4999#true} {4999#true} #73#return; {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L290 TraceCheckUtils]: 15: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L290 TraceCheckUtils]: 14: Hoare triple {4999#true} assume !(0 == ~cond); {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L290 TraceCheckUtils]: 13: Hoare triple {4999#true} ~cond := #in~cond; {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L272 TraceCheckUtils]: 12: Hoare triple {4999#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L290 TraceCheckUtils]: 11: Hoare triple {4999#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {4999#true} {4999#true} #71#return; {4999#true} is VALID [2022-04-15 10:32:56,255 INFO L290 TraceCheckUtils]: 9: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L290 TraceCheckUtils]: 8: Hoare triple {4999#true} assume !(0 == ~cond); {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L290 TraceCheckUtils]: 7: Hoare triple {4999#true} ~cond := #in~cond; {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L272 TraceCheckUtils]: 6: Hoare triple {4999#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L290 TraceCheckUtils]: 5: Hoare triple {4999#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L272 TraceCheckUtils]: 4: Hoare triple {4999#true} call #t~ret6 := main(); {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {4999#true} {4999#true} #83#return; {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L290 TraceCheckUtils]: 2: Hoare triple {4999#true} assume true; {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L290 TraceCheckUtils]: 1: Hoare triple {4999#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L272 TraceCheckUtils]: 0: Hoare triple {4999#true} call ULTIMATE.init(); {4999#true} is VALID [2022-04-15 10:32:56,256 INFO L134 CoverageAnalysis]: Checked inductivity of 40 backedges. 13 proven. 1 refuted. 0 times theorem prover too weak. 26 trivial. 0 not checked. [2022-04-15 10:32:56,257 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:32:56,257 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [938263097] [2022-04-15 10:32:56,257 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:32:56,257 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1261687604] [2022-04-15 10:32:56,257 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1261687604] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:32:56,257 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:32:56,257 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [16, 8] total 19 [2022-04-15 10:32:56,258 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:32:56,258 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1245201164] [2022-04-15 10:32:56,258 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1245201164] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:32:56,258 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:32:56,258 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [16] imperfect sequences [] total 16 [2022-04-15 10:32:56,258 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1751058096] [2022-04-15 10:32:56,258 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:32:56,259 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 15 states have (on average 2.0) internal successors, (30), 13 states have internal predecessors, (30), 6 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 6 states have call predecessors, (7), 5 states have call successors, (7) Word has length 52 [2022-04-15 10:32:56,260 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:32:56,260 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 16 states, 15 states have (on average 2.0) internal successors, (30), 13 states have internal predecessors, (30), 6 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 6 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-15 10:32:58,303 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 45 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:32:58,303 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 16 states [2022-04-15 10:32:58,303 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:32:58,304 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 16 interpolants. [2022-04-15 10:32:58,304 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=281, Unknown=0, NotChecked=0, Total=342 [2022-04-15 10:32:58,304 INFO L87 Difference]: Start difference. First operand 43 states and 52 transitions. Second operand has 16 states, 15 states have (on average 2.0) internal successors, (30), 13 states have internal predecessors, (30), 6 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 6 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-15 10:33:01,373 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:01,373 INFO L93 Difference]: Finished difference Result 63 states and 81 transitions. [2022-04-15 10:33:01,373 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 17 states. [2022-04-15 10:33:01,373 INFO L78 Accepts]: Start accepts. Automaton has has 16 states, 15 states have (on average 2.0) internal successors, (30), 13 states have internal predecessors, (30), 6 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 6 states have call predecessors, (7), 5 states have call successors, (7) Word has length 52 [2022-04-15 10:33:01,374 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:33:01,374 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 15 states have (on average 2.0) internal successors, (30), 13 states have internal predecessors, (30), 6 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 6 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-15 10:33:01,375 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 69 transitions. [2022-04-15 10:33:01,375 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 16 states, 15 states have (on average 2.0) internal successors, (30), 13 states have internal predecessors, (30), 6 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 6 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-15 10:33:01,376 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 69 transitions. [2022-04-15 10:33:01,377 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 17 states and 69 transitions. [2022-04-15 10:33:05,454 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 67 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-15 10:33:05,455 INFO L225 Difference]: With dead ends: 63 [2022-04-15 10:33:05,455 INFO L226 Difference]: Without dead ends: 58 [2022-04-15 10:33:05,456 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 108 GetRequests, 85 SyntacticMatches, 1 SemanticMatches, 22 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 109 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=95, Invalid=457, Unknown=0, NotChecked=0, Total=552 [2022-04-15 10:33:05,456 INFO L913 BasicCegarLoop]: 20 mSDtfsCounter, 60 mSDsluCounter, 100 mSDsCounter, 0 mSdLazyCounter, 277 mSolverCounterSat, 31 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 63 SdHoareTripleChecker+Valid, 120 SdHoareTripleChecker+Invalid, 308 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 31 IncrementalHoareTripleChecker+Valid, 277 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.2s IncrementalHoareTripleChecker+Time [2022-04-15 10:33:05,456 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [63 Valid, 120 Invalid, 308 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [31 Valid, 277 Invalid, 0 Unknown, 0 Unchecked, 1.2s Time] [2022-04-15 10:33:05,457 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2022-04-15 10:33:05,585 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 47. [2022-04-15 10:33:05,585 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:33:05,585 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand has 47 states, 32 states have (on average 1.25) internal successors, (40), 32 states have internal predecessors, (40), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:33:05,586 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand has 47 states, 32 states have (on average 1.25) internal successors, (40), 32 states have internal predecessors, (40), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:33:05,586 INFO L87 Difference]: Start difference. First operand 58 states. Second operand has 47 states, 32 states have (on average 1.25) internal successors, (40), 32 states have internal predecessors, (40), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:33:05,587 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:05,587 INFO L93 Difference]: Finished difference Result 58 states and 76 transitions. [2022-04-15 10:33:05,587 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 76 transitions. [2022-04-15 10:33:05,588 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:33:05,588 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:33:05,588 INFO L74 IsIncluded]: Start isIncluded. First operand has 47 states, 32 states have (on average 1.25) internal successors, (40), 32 states have internal predecessors, (40), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 58 states. [2022-04-15 10:33:05,588 INFO L87 Difference]: Start difference. First operand has 47 states, 32 states have (on average 1.25) internal successors, (40), 32 states have internal predecessors, (40), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 58 states. [2022-04-15 10:33:05,589 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:05,589 INFO L93 Difference]: Finished difference Result 58 states and 76 transitions. [2022-04-15 10:33:05,590 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 76 transitions. [2022-04-15 10:33:05,590 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:33:05,590 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:33:05,590 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:33:05,590 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:33:05,590 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 47 states, 32 states have (on average 1.25) internal successors, (40), 32 states have internal predecessors, (40), 10 states have call successors, (10), 6 states have call predecessors, (10), 4 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-04-15 10:33:05,591 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 58 transitions. [2022-04-15 10:33:05,591 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 58 transitions. Word has length 52 [2022-04-15 10:33:05,591 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:33:05,592 INFO L478 AbstractCegarLoop]: Abstraction has 47 states and 58 transitions. [2022-04-15 10:33:05,592 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 16 states, 15 states have (on average 2.0) internal successors, (30), 13 states have internal predecessors, (30), 6 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 6 states have call predecessors, (7), 5 states have call successors, (7) [2022-04-15 10:33:05,592 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 47 states and 58 transitions. [2022-04-15 10:33:10,386 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 56 inductive. 0 not inductive. 2 times theorem prover too weak to decide inductivity. [2022-04-15 10:33:10,386 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 58 transitions. [2022-04-15 10:33:10,387 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 54 [2022-04-15 10:33:10,387 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:33:10,387 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:33:10,403 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (11)] Ended with exit code 0 [2022-04-15 10:33:10,587 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 11 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable10 [2022-04-15 10:33:10,587 INFO L403 AbstractCegarLoop]: === Iteration 12 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:33:10,588 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:33:10,588 INFO L85 PathProgramCache]: Analyzing trace with hash -1287237523, now seen corresponding path program 1 times [2022-04-15 10:33:10,588 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:33:10,588 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1351634729] [2022-04-15 10:33:10,588 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:33:10,588 INFO L85 PathProgramCache]: Analyzing trace with hash -1287237523, now seen corresponding path program 2 times [2022-04-15 10:33:10,588 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:33:10,588 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1476339487] [2022-04-15 10:33:10,588 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:33:10,588 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:33:10,601 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:33:10,601 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [609129261] [2022-04-15 10:33:10,601 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:33:10,602 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:33:10,602 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:33:10,603 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:33:10,603 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Waiting until timeout for monitored process [2022-04-15 10:33:10,647 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:33:10,647 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:33:10,648 INFO L263 TraceCheckSpWp]: Trace formula consists of 144 conjuncts, 12 conjunts are in the unsatisfiable core [2022-04-15 10:33:10,663 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:33:10,664 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:33:11,657 INFO L272 TraceCheckUtils]: 0: Hoare triple {5675#true} call ULTIMATE.init(); {5675#true} is VALID [2022-04-15 10:33:11,657 INFO L290 TraceCheckUtils]: 1: Hoare triple {5675#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {5675#true} is VALID [2022-04-15 10:33:11,657 INFO L290 TraceCheckUtils]: 2: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:11,657 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5675#true} {5675#true} #83#return; {5675#true} is VALID [2022-04-15 10:33:11,657 INFO L272 TraceCheckUtils]: 4: Hoare triple {5675#true} call #t~ret6 := main(); {5675#true} is VALID [2022-04-15 10:33:11,657 INFO L290 TraceCheckUtils]: 5: Hoare triple {5675#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {5675#true} is VALID [2022-04-15 10:33:11,657 INFO L272 TraceCheckUtils]: 6: Hoare triple {5675#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L290 TraceCheckUtils]: 7: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L290 TraceCheckUtils]: 8: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L290 TraceCheckUtils]: 9: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5675#true} {5675#true} #71#return; {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L290 TraceCheckUtils]: 11: Hoare triple {5675#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L272 TraceCheckUtils]: 12: Hoare triple {5675#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L290 TraceCheckUtils]: 13: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L290 TraceCheckUtils]: 14: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L290 TraceCheckUtils]: 15: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5675#true} {5675#true} #73#return; {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L272 TraceCheckUtils]: 17: Hoare triple {5675#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:11,658 INFO L290 TraceCheckUtils]: 18: Hoare triple {5675#true} ~cond := #in~cond; {5734#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:33:11,659 INFO L290 TraceCheckUtils]: 19: Hoare triple {5734#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {5738#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:11,659 INFO L290 TraceCheckUtils]: 20: Hoare triple {5738#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {5738#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:11,659 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {5738#(not (= |assume_abort_if_not_#in~cond| 0))} {5675#true} #75#return; {5745#(<= 1 main_~y~0)} is VALID [2022-04-15 10:33:11,660 INFO L290 TraceCheckUtils]: 22: Hoare triple {5745#(<= 1 main_~y~0)} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {5749#(<= 1 main_~b~0)} is VALID [2022-04-15 10:33:11,660 INFO L290 TraceCheckUtils]: 23: Hoare triple {5749#(<= 1 main_~b~0)} assume !false; {5749#(<= 1 main_~b~0)} is VALID [2022-04-15 10:33:11,660 INFO L272 TraceCheckUtils]: 24: Hoare triple {5749#(<= 1 main_~b~0)} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:11,660 INFO L290 TraceCheckUtils]: 25: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:11,660 INFO L290 TraceCheckUtils]: 26: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:11,660 INFO L290 TraceCheckUtils]: 27: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:11,661 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5675#true} {5749#(<= 1 main_~b~0)} #77#return; {5749#(<= 1 main_~b~0)} is VALID [2022-04-15 10:33:11,661 INFO L290 TraceCheckUtils]: 29: Hoare triple {5749#(<= 1 main_~b~0)} assume !!(0 != ~a~0 && 0 != ~b~0); {5771#(and (not (= main_~a~0 0)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:11,662 INFO L290 TraceCheckUtils]: 30: Hoare triple {5771#(and (not (= main_~a~0 0)) (<= 1 main_~b~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {5771#(and (not (= main_~a~0 0)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:11,663 INFO L290 TraceCheckUtils]: 31: Hoare triple {5771#(and (not (= main_~a~0 0)) (<= 1 main_~b~0))} assume 1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := ~a~0 - 1;~q~0 := ~q~0 + ~b~0 * ~p~0; {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:11,663 INFO L290 TraceCheckUtils]: 32: Hoare triple {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} assume !false; {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:11,663 INFO L272 TraceCheckUtils]: 33: Hoare triple {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:11,663 INFO L290 TraceCheckUtils]: 34: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:11,663 INFO L290 TraceCheckUtils]: 35: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:11,663 INFO L290 TraceCheckUtils]: 36: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:11,664 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {5675#true} {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} #77#return; {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:11,664 INFO L290 TraceCheckUtils]: 38: Hoare triple {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:11,665 INFO L290 TraceCheckUtils]: 39: Hoare triple {5778#(and (<= (mod main_~b~0 2) 0) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {5803#(and (<= (mod main_~b~0 2) 0) (not (= (mod main_~a~0 2) 0)) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:11,666 INFO L290 TraceCheckUtils]: 40: Hoare triple {5803#(and (<= (mod main_~b~0 2) 0) (not (= (mod main_~a~0 2) 0)) (< 0 (+ (div main_~a~0 2) 1)) (<= 1 main_~b~0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {5676#false} is VALID [2022-04-15 10:33:11,666 INFO L290 TraceCheckUtils]: 41: Hoare triple {5676#false} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {5676#false} is VALID [2022-04-15 10:33:11,666 INFO L290 TraceCheckUtils]: 42: Hoare triple {5676#false} assume !false; {5676#false} is VALID [2022-04-15 10:33:11,666 INFO L272 TraceCheckUtils]: 43: Hoare triple {5676#false} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {5676#false} is VALID [2022-04-15 10:33:11,666 INFO L290 TraceCheckUtils]: 44: Hoare triple {5676#false} ~cond := #in~cond; {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L290 TraceCheckUtils]: 45: Hoare triple {5676#false} assume !(0 == ~cond); {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L290 TraceCheckUtils]: 46: Hoare triple {5676#false} assume true; {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L284 TraceCheckUtils]: 47: Hoare quadruple {5676#false} {5676#false} #77#return; {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L290 TraceCheckUtils]: 48: Hoare triple {5676#false} assume !(0 != ~a~0 && 0 != ~b~0); {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L272 TraceCheckUtils]: 49: Hoare triple {5676#false} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L290 TraceCheckUtils]: 50: Hoare triple {5676#false} ~cond := #in~cond; {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L290 TraceCheckUtils]: 51: Hoare triple {5676#false} assume 0 == ~cond; {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L290 TraceCheckUtils]: 52: Hoare triple {5676#false} assume !false; {5676#false} is VALID [2022-04-15 10:33:11,667 INFO L134 CoverageAnalysis]: Checked inductivity of 41 backedges. 28 proven. 1 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-15 10:33:11,668 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:33:12,629 INFO L290 TraceCheckUtils]: 52: Hoare triple {5676#false} assume !false; {5676#false} is VALID [2022-04-15 10:33:12,630 INFO L290 TraceCheckUtils]: 51: Hoare triple {5676#false} assume 0 == ~cond; {5676#false} is VALID [2022-04-15 10:33:12,630 INFO L290 TraceCheckUtils]: 50: Hoare triple {5676#false} ~cond := #in~cond; {5676#false} is VALID [2022-04-15 10:33:12,630 INFO L272 TraceCheckUtils]: 49: Hoare triple {5676#false} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {5676#false} is VALID [2022-04-15 10:33:12,630 INFO L290 TraceCheckUtils]: 48: Hoare triple {5676#false} assume !(0 != ~a~0 && 0 != ~b~0); {5676#false} is VALID [2022-04-15 10:33:12,630 INFO L284 TraceCheckUtils]: 47: Hoare quadruple {5675#true} {5676#false} #77#return; {5676#false} is VALID [2022-04-15 10:33:12,630 INFO L290 TraceCheckUtils]: 46: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:12,630 INFO L290 TraceCheckUtils]: 45: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:12,630 INFO L290 TraceCheckUtils]: 44: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:12,630 INFO L272 TraceCheckUtils]: 43: Hoare triple {5676#false} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:12,630 INFO L290 TraceCheckUtils]: 42: Hoare triple {5676#false} assume !false; {5676#false} is VALID [2022-04-15 10:33:12,630 INFO L290 TraceCheckUtils]: 41: Hoare triple {5676#false} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {5676#false} is VALID [2022-04-15 10:33:12,631 INFO L290 TraceCheckUtils]: 40: Hoare triple {5879#(and (= (mod main_~a~0 2) 1) (= (mod main_~b~0 2) 0) (<= 0 main_~a~0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {5676#false} is VALID [2022-04-15 10:33:12,631 INFO L290 TraceCheckUtils]: 39: Hoare triple {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {5879#(and (= (mod main_~a~0 2) 1) (= (mod main_~b~0 2) 0) (<= 0 main_~a~0))} is VALID [2022-04-15 10:33:12,632 INFO L290 TraceCheckUtils]: 38: Hoare triple {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} assume !!(0 != ~a~0 && 0 != ~b~0); {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} is VALID [2022-04-15 10:33:12,632 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {5675#true} {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} #77#return; {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} is VALID [2022-04-15 10:33:12,633 INFO L290 TraceCheckUtils]: 36: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:12,633 INFO L290 TraceCheckUtils]: 35: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:12,633 INFO L290 TraceCheckUtils]: 34: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:12,633 INFO L272 TraceCheckUtils]: 33: Hoare triple {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:12,633 INFO L290 TraceCheckUtils]: 32: Hoare triple {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} assume !false; {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} is VALID [2022-04-15 10:33:12,634 INFO L290 TraceCheckUtils]: 31: Hoare triple {5908#(or (= (mod main_~b~0 2) 0) (< main_~a~0 0) (<= 0 main_~b~0) (not (<= 1 (mod main_~a~0 2))))} assume 1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := ~a~0 - 1;~q~0 := ~q~0 + ~b~0 * ~p~0; {5883#(or (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)) (and (= (mod main_~b~0 2) 0) (<= 0 main_~a~0)))} is VALID [2022-04-15 10:33:12,635 INFO L290 TraceCheckUtils]: 30: Hoare triple {5908#(or (= (mod main_~b~0 2) 0) (< main_~a~0 0) (<= 0 main_~b~0) (not (<= 1 (mod main_~a~0 2))))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {5908#(or (= (mod main_~b~0 2) 0) (< main_~a~0 0) (<= 0 main_~b~0) (not (<= 1 (mod main_~a~0 2))))} is VALID [2022-04-15 10:33:12,635 INFO L290 TraceCheckUtils]: 29: Hoare triple {5915#(or (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {5908#(or (= (mod main_~b~0 2) 0) (< main_~a~0 0) (<= 0 main_~b~0) (not (<= 1 (mod main_~a~0 2))))} is VALID [2022-04-15 10:33:12,636 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {5675#true} {5915#(or (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} #77#return; {5915#(or (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:12,636 INFO L290 TraceCheckUtils]: 27: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:12,636 INFO L290 TraceCheckUtils]: 26: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:12,636 INFO L290 TraceCheckUtils]: 25: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:12,636 INFO L272 TraceCheckUtils]: 24: Hoare triple {5915#(or (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:12,636 INFO L290 TraceCheckUtils]: 23: Hoare triple {5915#(or (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} assume !false; {5915#(or (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:12,637 INFO L290 TraceCheckUtils]: 22: Hoare triple {5937#(<= 0 (+ (div (+ (- 2) main_~y~0) 2) 1))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {5915#(or (= (mod main_~b~0 2) 0) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:12,637 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {5738#(not (= |assume_abort_if_not_#in~cond| 0))} {5675#true} #75#return; {5937#(<= 0 (+ (div (+ (- 2) main_~y~0) 2) 1))} is VALID [2022-04-15 10:33:12,637 INFO L290 TraceCheckUtils]: 20: Hoare triple {5738#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {5738#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:12,638 INFO L290 TraceCheckUtils]: 19: Hoare triple {5950#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {5738#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:12,638 INFO L290 TraceCheckUtils]: 18: Hoare triple {5675#true} ~cond := #in~cond; {5950#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-15 10:33:12,639 INFO L272 TraceCheckUtils]: 17: Hoare triple {5675#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {5675#true} {5675#true} #73#return; {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L290 TraceCheckUtils]: 15: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L290 TraceCheckUtils]: 14: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L290 TraceCheckUtils]: 13: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L272 TraceCheckUtils]: 12: Hoare triple {5675#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L290 TraceCheckUtils]: 11: Hoare triple {5675#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {5675#true} {5675#true} #71#return; {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L290 TraceCheckUtils]: 9: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L290 TraceCheckUtils]: 8: Hoare triple {5675#true} assume !(0 == ~cond); {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L290 TraceCheckUtils]: 7: Hoare triple {5675#true} ~cond := #in~cond; {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L272 TraceCheckUtils]: 6: Hoare triple {5675#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L290 TraceCheckUtils]: 5: Hoare triple {5675#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L272 TraceCheckUtils]: 4: Hoare triple {5675#true} call #t~ret6 := main(); {5675#true} is VALID [2022-04-15 10:33:12,639 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {5675#true} {5675#true} #83#return; {5675#true} is VALID [2022-04-15 10:33:12,640 INFO L290 TraceCheckUtils]: 2: Hoare triple {5675#true} assume true; {5675#true} is VALID [2022-04-15 10:33:12,640 INFO L290 TraceCheckUtils]: 1: Hoare triple {5675#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {5675#true} is VALID [2022-04-15 10:33:12,640 INFO L272 TraceCheckUtils]: 0: Hoare triple {5675#true} call ULTIMATE.init(); {5675#true} is VALID [2022-04-15 10:33:12,640 INFO L134 CoverageAnalysis]: Checked inductivity of 41 backedges. 23 proven. 0 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2022-04-15 10:33:12,640 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:33:12,640 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1476339487] [2022-04-15 10:33:12,640 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:33:12,640 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [609129261] [2022-04-15 10:33:12,640 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [609129261] provided 1 perfect and 1 imperfect interpolant sequences [2022-04-15 10:33:12,640 INFO L184 FreeRefinementEngine]: Found 1 perfect and 1 imperfect interpolant sequences. [2022-04-15 10:33:12,641 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [9] total 15 [2022-04-15 10:33:12,641 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:33:12,641 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1351634729] [2022-04-15 10:33:12,641 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1351634729] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:33:12,641 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:33:12,641 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-15 10:33:12,641 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [529640901] [2022-04-15 10:33:12,641 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:33:12,642 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.111111111111111) internal successors, (28), 8 states have internal predecessors, (28), 4 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) Word has length 53 [2022-04-15 10:33:12,642 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:33:12,642 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 9 states have (on average 3.111111111111111) internal successors, (28), 8 states have internal predecessors, (28), 4 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:12,677 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:33:12,677 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-15 10:33:12,677 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:33:12,677 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-15 10:33:12,677 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=158, Unknown=0, NotChecked=0, Total=210 [2022-04-15 10:33:12,677 INFO L87 Difference]: Start difference. First operand 47 states and 58 transitions. Second operand has 9 states, 9 states have (on average 3.111111111111111) internal successors, (28), 8 states have internal predecessors, (28), 4 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:13,197 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:13,197 INFO L93 Difference]: Finished difference Result 72 states and 92 transitions. [2022-04-15 10:33:13,197 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-04-15 10:33:13,197 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.111111111111111) internal successors, (28), 8 states have internal predecessors, (28), 4 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) Word has length 53 [2022-04-15 10:33:13,198 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:33:13,198 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.111111111111111) internal successors, (28), 8 states have internal predecessors, (28), 4 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:13,198 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 69 transitions. [2022-04-15 10:33:13,199 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.111111111111111) internal successors, (28), 8 states have internal predecessors, (28), 4 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:13,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 69 transitions. [2022-04-15 10:33:13,200 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 9 states and 69 transitions. [2022-04-15 10:33:13,254 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:33:13,255 INFO L225 Difference]: With dead ends: 72 [2022-04-15 10:33:13,255 INFO L226 Difference]: Without dead ends: 54 [2022-04-15 10:33:13,255 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 109 GetRequests, 92 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 53 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=80, Invalid=262, Unknown=0, NotChecked=0, Total=342 [2022-04-15 10:33:13,256 INFO L913 BasicCegarLoop]: 26 mSDtfsCounter, 25 mSDsluCounter, 68 mSDsCounter, 0 mSdLazyCounter, 95 mSolverCounterSat, 16 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 26 SdHoareTripleChecker+Valid, 94 SdHoareTripleChecker+Invalid, 111 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 16 IncrementalHoareTripleChecker+Valid, 95 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-04-15 10:33:13,256 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [26 Valid, 94 Invalid, 111 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [16 Valid, 95 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-04-15 10:33:13,256 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2022-04-15 10:33:13,429 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 52. [2022-04-15 10:33:13,429 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:33:13,430 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand has 52 states, 36 states have (on average 1.25) internal successors, (45), 36 states have internal predecessors, (45), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-15 10:33:13,430 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand has 52 states, 36 states have (on average 1.25) internal successors, (45), 36 states have internal predecessors, (45), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-15 10:33:13,430 INFO L87 Difference]: Start difference. First operand 54 states. Second operand has 52 states, 36 states have (on average 1.25) internal successors, (45), 36 states have internal predecessors, (45), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-15 10:33:13,431 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:13,431 INFO L93 Difference]: Finished difference Result 54 states and 69 transitions. [2022-04-15 10:33:13,432 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 69 transitions. [2022-04-15 10:33:13,432 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:33:13,432 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:33:13,432 INFO L74 IsIncluded]: Start isIncluded. First operand has 52 states, 36 states have (on average 1.25) internal successors, (45), 36 states have internal predecessors, (45), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 54 states. [2022-04-15 10:33:13,432 INFO L87 Difference]: Start difference. First operand has 52 states, 36 states have (on average 1.25) internal successors, (45), 36 states have internal predecessors, (45), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) Second operand 54 states. [2022-04-15 10:33:13,434 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:13,434 INFO L93 Difference]: Finished difference Result 54 states and 69 transitions. [2022-04-15 10:33:13,434 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 69 transitions. [2022-04-15 10:33:13,434 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:33:13,434 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:33:13,434 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:33:13,434 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:33:13,434 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 52 states, 36 states have (on average 1.25) internal successors, (45), 36 states have internal predecessors, (45), 11 states have call successors, (11), 6 states have call predecessors, (11), 4 states have return successors, (9), 9 states have call predecessors, (9), 9 states have call successors, (9) [2022-04-15 10:33:13,435 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 52 states to 52 states and 65 transitions. [2022-04-15 10:33:13,436 INFO L78 Accepts]: Start accepts. Automaton has 52 states and 65 transitions. Word has length 53 [2022-04-15 10:33:13,436 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:33:13,436 INFO L478 AbstractCegarLoop]: Abstraction has 52 states and 65 transitions. [2022-04-15 10:33:13,436 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 9 states have (on average 3.111111111111111) internal successors, (28), 8 states have internal predecessors, (28), 4 states have call successors, (9), 2 states have call predecessors, (9), 2 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:13,436 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 52 states and 65 transitions. [2022-04-15 10:33:20,423 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 62 inductive. 0 not inductive. 3 times theorem prover too weak to decide inductivity. [2022-04-15 10:33:20,423 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 65 transitions. [2022-04-15 10:33:20,423 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 55 [2022-04-15 10:33:20,423 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:33:20,424 INFO L499 BasicCegarLoop]: trace histogram [4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:33:20,440 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (12)] Forceful destruction successful, exit code 0 [2022-04-15 10:33:20,627 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 12 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable11 [2022-04-15 10:33:20,627 INFO L403 AbstractCegarLoop]: === Iteration 13 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:33:20,628 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:33:20,628 INFO L85 PathProgramCache]: Analyzing trace with hash 338559610, now seen corresponding path program 3 times [2022-04-15 10:33:20,628 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:33:20,628 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [958216866] [2022-04-15 10:33:20,628 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:33:20,628 INFO L85 PathProgramCache]: Analyzing trace with hash 338559610, now seen corresponding path program 4 times [2022-04-15 10:33:20,628 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:33:20,628 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1573759939] [2022-04-15 10:33:20,628 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:33:20,628 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:33:20,642 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:33:20,642 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [1297360115] [2022-04-15 10:33:20,643 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-15 10:33:20,643 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:33:20,643 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:33:20,644 INFO L229 MonitoredProcess]: Starting monitored process 13 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:33:20,657 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (13)] Waiting until timeout for monitored process [2022-04-15 10:33:20,688 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-15 10:33:20,689 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:33:20,689 INFO L263 TraceCheckSpWp]: Trace formula consists of 105 conjuncts, 14 conjunts are in the unsatisfiable core [2022-04-15 10:33:20,701 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:33:20,701 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:33:21,528 INFO L272 TraceCheckUtils]: 0: Hoare triple {6371#true} call ULTIMATE.init(); {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 1: Hoare triple {6371#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 2: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6371#true} {6371#true} #83#return; {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L272 TraceCheckUtils]: 4: Hoare triple {6371#true} call #t~ret6 := main(); {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 5: Hoare triple {6371#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L272 TraceCheckUtils]: 6: Hoare triple {6371#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 7: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 8: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 9: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6371#true} {6371#true} #71#return; {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 11: Hoare triple {6371#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L272 TraceCheckUtils]: 12: Hoare triple {6371#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 13: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 14: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:21,529 INFO L290 TraceCheckUtils]: 15: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:21,530 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6371#true} {6371#true} #73#return; {6371#true} is VALID [2022-04-15 10:33:21,530 INFO L272 TraceCheckUtils]: 17: Hoare triple {6371#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:21,530 INFO L290 TraceCheckUtils]: 18: Hoare triple {6371#true} ~cond := #in~cond; {6430#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:33:21,531 INFO L290 TraceCheckUtils]: 19: Hoare triple {6430#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {6434#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:21,531 INFO L290 TraceCheckUtils]: 20: Hoare triple {6434#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {6434#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:21,531 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {6434#(not (= |assume_abort_if_not_#in~cond| 0))} {6371#true} #75#return; {6441#(<= 1 main_~y~0)} is VALID [2022-04-15 10:33:21,532 INFO L290 TraceCheckUtils]: 22: Hoare triple {6441#(<= 1 main_~y~0)} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {6445#(<= 1 main_~b~0)} is VALID [2022-04-15 10:33:21,532 INFO L290 TraceCheckUtils]: 23: Hoare triple {6445#(<= 1 main_~b~0)} assume !false; {6445#(<= 1 main_~b~0)} is VALID [2022-04-15 10:33:21,532 INFO L272 TraceCheckUtils]: 24: Hoare triple {6445#(<= 1 main_~b~0)} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:21,532 INFO L290 TraceCheckUtils]: 25: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:21,532 INFO L290 TraceCheckUtils]: 26: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:21,532 INFO L290 TraceCheckUtils]: 27: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:21,533 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {6371#true} {6445#(<= 1 main_~b~0)} #77#return; {6445#(<= 1 main_~b~0)} is VALID [2022-04-15 10:33:21,533 INFO L290 TraceCheckUtils]: 29: Hoare triple {6445#(<= 1 main_~b~0)} assume !!(0 != ~a~0 && 0 != ~b~0); {6445#(<= 1 main_~b~0)} is VALID [2022-04-15 10:33:21,534 INFO L290 TraceCheckUtils]: 30: Hoare triple {6445#(<= 1 main_~b~0)} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {6470#(and (or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0))) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:21,534 INFO L290 TraceCheckUtils]: 31: Hoare triple {6470#(and (or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0))) (<= 1 main_~b~0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {6470#(and (or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0))) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:21,535 INFO L290 TraceCheckUtils]: 32: Hoare triple {6470#(and (or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0))) (<= 1 main_~b~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:21,538 INFO L290 TraceCheckUtils]: 33: Hoare triple {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} assume !false; {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:21,538 INFO L272 TraceCheckUtils]: 34: Hoare triple {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:21,538 INFO L290 TraceCheckUtils]: 35: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:21,538 INFO L290 TraceCheckUtils]: 36: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:21,538 INFO L290 TraceCheckUtils]: 37: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:21,539 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {6371#true} {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} #77#return; {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:21,539 INFO L290 TraceCheckUtils]: 39: Hoare triple {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:21,540 INFO L290 TraceCheckUtils]: 40: Hoare triple {6477#(and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {6502#(and (not (= (mod main_~b~0 2) 0)) (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:21,541 INFO L290 TraceCheckUtils]: 41: Hoare triple {6502#(and (not (= (mod main_~b~0 2) 0)) (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {6502#(and (not (= (mod main_~b~0 2) 0)) (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:21,541 INFO L290 TraceCheckUtils]: 42: Hoare triple {6502#(and (not (= (mod main_~b~0 2) 0)) (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L290 TraceCheckUtils]: 43: Hoare triple {6372#false} assume !false; {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L272 TraceCheckUtils]: 44: Hoare triple {6372#false} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L290 TraceCheckUtils]: 45: Hoare triple {6372#false} ~cond := #in~cond; {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L290 TraceCheckUtils]: 46: Hoare triple {6372#false} assume !(0 == ~cond); {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L290 TraceCheckUtils]: 47: Hoare triple {6372#false} assume true; {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {6372#false} {6372#false} #77#return; {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L290 TraceCheckUtils]: 49: Hoare triple {6372#false} assume !(0 != ~a~0 && 0 != ~b~0); {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L272 TraceCheckUtils]: 50: Hoare triple {6372#false} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L290 TraceCheckUtils]: 51: Hoare triple {6372#false} ~cond := #in~cond; {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L290 TraceCheckUtils]: 52: Hoare triple {6372#false} assume 0 == ~cond; {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L290 TraceCheckUtils]: 53: Hoare triple {6372#false} assume !false; {6372#false} is VALID [2022-04-15 10:33:21,542 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 26 proven. 4 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-04-15 10:33:21,542 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:33:22,131 INFO L290 TraceCheckUtils]: 53: Hoare triple {6372#false} assume !false; {6372#false} is VALID [2022-04-15 10:33:22,131 INFO L290 TraceCheckUtils]: 52: Hoare triple {6372#false} assume 0 == ~cond; {6372#false} is VALID [2022-04-15 10:33:22,131 INFO L290 TraceCheckUtils]: 51: Hoare triple {6372#false} ~cond := #in~cond; {6372#false} is VALID [2022-04-15 10:33:22,131 INFO L272 TraceCheckUtils]: 50: Hoare triple {6372#false} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {6372#false} is VALID [2022-04-15 10:33:22,131 INFO L290 TraceCheckUtils]: 49: Hoare triple {6372#false} assume !(0 != ~a~0 && 0 != ~b~0); {6372#false} is VALID [2022-04-15 10:33:22,131 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {6371#true} {6372#false} #77#return; {6372#false} is VALID [2022-04-15 10:33:22,131 INFO L290 TraceCheckUtils]: 47: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:22,131 INFO L290 TraceCheckUtils]: 46: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:22,131 INFO L290 TraceCheckUtils]: 45: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:22,131 INFO L272 TraceCheckUtils]: 44: Hoare triple {6372#false} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:22,132 INFO L290 TraceCheckUtils]: 43: Hoare triple {6372#false} assume !false; {6372#false} is VALID [2022-04-15 10:33:22,133 INFO L290 TraceCheckUtils]: 42: Hoare triple {6502#(and (not (= (mod main_~b~0 2) 0)) (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {6372#false} is VALID [2022-04-15 10:33:22,134 INFO L290 TraceCheckUtils]: 41: Hoare triple {6502#(and (not (= (mod main_~b~0 2) 0)) (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {6502#(and (not (= (mod main_~b~0 2) 0)) (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:22,134 INFO L290 TraceCheckUtils]: 40: Hoare triple {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {6502#(and (not (= (mod main_~b~0 2) 0)) (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0))} is VALID [2022-04-15 10:33:22,135 INFO L290 TraceCheckUtils]: 39: Hoare triple {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} assume !!(0 != ~a~0 && 0 != ~b~0); {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} is VALID [2022-04-15 10:33:22,136 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {6371#true} {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} #77#return; {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} is VALID [2022-04-15 10:33:22,136 INFO L290 TraceCheckUtils]: 37: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:22,136 INFO L290 TraceCheckUtils]: 36: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:22,136 INFO L290 TraceCheckUtils]: 35: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:22,136 INFO L272 TraceCheckUtils]: 34: Hoare triple {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:22,137 INFO L290 TraceCheckUtils]: 33: Hoare triple {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} assume !false; {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} is VALID [2022-04-15 10:33:22,138 INFO L290 TraceCheckUtils]: 32: Hoare triple {6470#(and (or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0))) (<= 1 main_~b~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {6581#(or (and (not (= (mod (+ main_~a~0 1) 2) 0)) (<= 0 main_~b~0)) (and (= (mod main_~a~0 2) 0) (= (mod main_~b~0 2) 0)))} is VALID [2022-04-15 10:33:22,139 INFO L290 TraceCheckUtils]: 31: Hoare triple {6470#(and (or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0))) (<= 1 main_~b~0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {6470#(and (or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0))) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:22,140 INFO L290 TraceCheckUtils]: 30: Hoare triple {6445#(<= 1 main_~b~0)} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {6470#(and (or (not (= (mod main_~b~0 2) 0)) (not (= (mod main_~a~0 2) 0))) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:22,140 INFO L290 TraceCheckUtils]: 29: Hoare triple {6615#(or (= main_~b~0 0) (<= 1 main_~b~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {6445#(<= 1 main_~b~0)} is VALID [2022-04-15 10:33:22,141 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {6371#true} {6615#(or (= main_~b~0 0) (<= 1 main_~b~0))} #77#return; {6615#(or (= main_~b~0 0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:22,141 INFO L290 TraceCheckUtils]: 27: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:22,141 INFO L290 TraceCheckUtils]: 26: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:22,141 INFO L290 TraceCheckUtils]: 25: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:22,141 INFO L272 TraceCheckUtils]: 24: Hoare triple {6615#(or (= main_~b~0 0) (<= 1 main_~b~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:22,142 INFO L290 TraceCheckUtils]: 23: Hoare triple {6615#(or (= main_~b~0 0) (<= 1 main_~b~0))} assume !false; {6615#(or (= main_~b~0 0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:22,142 INFO L290 TraceCheckUtils]: 22: Hoare triple {6637#(<= 0 main_~y~0)} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {6615#(or (= main_~b~0 0) (<= 1 main_~b~0))} is VALID [2022-04-15 10:33:22,143 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {6434#(not (= |assume_abort_if_not_#in~cond| 0))} {6371#true} #75#return; {6637#(<= 0 main_~y~0)} is VALID [2022-04-15 10:33:22,143 INFO L290 TraceCheckUtils]: 20: Hoare triple {6434#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {6434#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:22,143 INFO L290 TraceCheckUtils]: 19: Hoare triple {6650#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} assume !(0 == ~cond); {6434#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:22,144 INFO L290 TraceCheckUtils]: 18: Hoare triple {6371#true} ~cond := #in~cond; {6650#(or (not (= |assume_abort_if_not_#in~cond| 0)) (= assume_abort_if_not_~cond 0))} is VALID [2022-04-15 10:33:22,144 INFO L272 TraceCheckUtils]: 17: Hoare triple {6371#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:22,144 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {6371#true} {6371#true} #73#return; {6371#true} is VALID [2022-04-15 10:33:22,144 INFO L290 TraceCheckUtils]: 15: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:22,144 INFO L290 TraceCheckUtils]: 14: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:22,144 INFO L290 TraceCheckUtils]: 13: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:22,144 INFO L272 TraceCheckUtils]: 12: Hoare triple {6371#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:22,144 INFO L290 TraceCheckUtils]: 11: Hoare triple {6371#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {6371#true} {6371#true} #71#return; {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L290 TraceCheckUtils]: 9: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L290 TraceCheckUtils]: 8: Hoare triple {6371#true} assume !(0 == ~cond); {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L290 TraceCheckUtils]: 7: Hoare triple {6371#true} ~cond := #in~cond; {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L272 TraceCheckUtils]: 6: Hoare triple {6371#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L290 TraceCheckUtils]: 5: Hoare triple {6371#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L272 TraceCheckUtils]: 4: Hoare triple {6371#true} call #t~ret6 := main(); {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {6371#true} {6371#true} #83#return; {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L290 TraceCheckUtils]: 2: Hoare triple {6371#true} assume true; {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L290 TraceCheckUtils]: 1: Hoare triple {6371#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {6371#true} is VALID [2022-04-15 10:33:22,145 INFO L272 TraceCheckUtils]: 0: Hoare triple {6371#true} call ULTIMATE.init(); {6371#true} is VALID [2022-04-15 10:33:22,146 INFO L134 CoverageAnalysis]: Checked inductivity of 42 backedges. 20 proven. 4 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2022-04-15 10:33:22,146 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:33:22,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1573759939] [2022-04-15 10:33:22,146 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:33:22,146 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [1297360115] [2022-04-15 10:33:22,146 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [1297360115] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:33:22,146 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:33:22,146 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 13 [2022-04-15 10:33:22,147 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:33:22,147 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [958216866] [2022-04-15 10:33:22,147 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [958216866] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:33:22,147 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:33:22,147 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [9] imperfect sequences [] total 9 [2022-04-15 10:33:22,147 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1104307158] [2022-04-15 10:33:22,147 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:33:22,148 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.4444444444444446) internal successors, (31), 8 states have internal predecessors, (31), 4 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) Word has length 54 [2022-04-15 10:33:22,148 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:33:22,148 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 9 states, 9 states have (on average 3.4444444444444446) internal successors, (31), 8 states have internal predecessors, (31), 4 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:22,192 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:33:22,192 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 9 states [2022-04-15 10:33:22,192 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:33:22,192 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2022-04-15 10:33:22,192 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=120, Unknown=0, NotChecked=0, Total=156 [2022-04-15 10:33:22,193 INFO L87 Difference]: Start difference. First operand 52 states and 65 transitions. Second operand has 9 states, 9 states have (on average 3.4444444444444446) internal successors, (31), 8 states have internal predecessors, (31), 4 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:22,964 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:22,965 INFO L93 Difference]: Finished difference Result 84 states and 108 transitions. [2022-04-15 10:33:22,965 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-04-15 10:33:22,965 INFO L78 Accepts]: Start accepts. Automaton has has 9 states, 9 states have (on average 3.4444444444444446) internal successors, (31), 8 states have internal predecessors, (31), 4 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) Word has length 54 [2022-04-15 10:33:22,965 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:33:22,965 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.4444444444444446) internal successors, (31), 8 states have internal predecessors, (31), 4 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:22,966 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 65 transitions. [2022-04-15 10:33:22,967 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 9 states, 9 states have (on average 3.4444444444444446) internal successors, (31), 8 states have internal predecessors, (31), 4 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:22,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 65 transitions. [2022-04-15 10:33:22,968 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 10 states and 65 transitions. [2022-04-15 10:33:23,032 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:33:23,033 INFO L225 Difference]: With dead ends: 84 [2022-04-15 10:33:23,033 INFO L226 Difference]: Without dead ends: 60 [2022-04-15 10:33:23,034 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 113 GetRequests, 94 SyntacticMatches, 2 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 35 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=86, Invalid=256, Unknown=0, NotChecked=0, Total=342 [2022-04-15 10:33:23,034 INFO L913 BasicCegarLoop]: 25 mSDtfsCounter, 15 mSDsluCounter, 99 mSDsCounter, 0 mSdLazyCounter, 126 mSolverCounterSat, 13 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 15 SdHoareTripleChecker+Valid, 124 SdHoareTripleChecker+Invalid, 139 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 13 IncrementalHoareTripleChecker+Valid, 126 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-04-15 10:33:23,034 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [15 Valid, 124 Invalid, 139 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [13 Valid, 126 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-04-15 10:33:23,035 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2022-04-15 10:33:23,231 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 57. [2022-04-15 10:33:23,231 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:33:23,231 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand has 57 states, 40 states have (on average 1.225) internal successors, (49), 40 states have internal predecessors, (49), 12 states have call successors, (12), 6 states have call predecessors, (12), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-15 10:33:23,231 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand has 57 states, 40 states have (on average 1.225) internal successors, (49), 40 states have internal predecessors, (49), 12 states have call successors, (12), 6 states have call predecessors, (12), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-15 10:33:23,232 INFO L87 Difference]: Start difference. First operand 60 states. Second operand has 57 states, 40 states have (on average 1.225) internal successors, (49), 40 states have internal predecessors, (49), 12 states have call successors, (12), 6 states have call predecessors, (12), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-15 10:33:23,233 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:23,233 INFO L93 Difference]: Finished difference Result 60 states and 75 transitions. [2022-04-15 10:33:23,233 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 75 transitions. [2022-04-15 10:33:23,233 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:33:23,233 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:33:23,234 INFO L74 IsIncluded]: Start isIncluded. First operand has 57 states, 40 states have (on average 1.225) internal successors, (49), 40 states have internal predecessors, (49), 12 states have call successors, (12), 6 states have call predecessors, (12), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 60 states. [2022-04-15 10:33:23,234 INFO L87 Difference]: Start difference. First operand has 57 states, 40 states have (on average 1.225) internal successors, (49), 40 states have internal predecessors, (49), 12 states have call successors, (12), 6 states have call predecessors, (12), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 60 states. [2022-04-15 10:33:23,235 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:33:23,235 INFO L93 Difference]: Finished difference Result 60 states and 75 transitions. [2022-04-15 10:33:23,235 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 75 transitions. [2022-04-15 10:33:23,236 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:33:23,236 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:33:23,236 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:33:23,236 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:33:23,236 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 57 states, 40 states have (on average 1.225) internal successors, (49), 40 states have internal predecessors, (49), 12 states have call successors, (12), 6 states have call predecessors, (12), 4 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-04-15 10:33:23,237 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 57 states to 57 states and 71 transitions. [2022-04-15 10:33:23,237 INFO L78 Accepts]: Start accepts. Automaton has 57 states and 71 transitions. Word has length 54 [2022-04-15 10:33:23,237 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:33:23,238 INFO L478 AbstractCegarLoop]: Abstraction has 57 states and 71 transitions. [2022-04-15 10:33:23,238 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 9 states, 9 states have (on average 3.4444444444444446) internal successors, (31), 8 states have internal predecessors, (31), 4 states have call successors, (9), 2 states have call predecessors, (9), 3 states have return successors, (7), 5 states have call predecessors, (7), 4 states have call successors, (7) [2022-04-15 10:33:23,238 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 57 states and 71 transitions. [2022-04-15 10:33:32,129 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 67 inductive. 0 not inductive. 4 times theorem prover too weak to decide inductivity. [2022-04-15 10:33:32,130 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 71 transitions. [2022-04-15 10:33:32,130 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 61 [2022-04-15 10:33:32,130 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:33:32,130 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:33:32,146 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (13)] Forceful destruction successful, exit code 0 [2022-04-15 10:33:32,330 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 13 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable12 [2022-04-15 10:33:32,331 INFO L403 AbstractCegarLoop]: === Iteration 14 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:33:32,331 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:33:32,331 INFO L85 PathProgramCache]: Analyzing trace with hash -1563197702, now seen corresponding path program 3 times [2022-04-15 10:33:32,331 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:33:32,331 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [725618440] [2022-04-15 10:33:32,332 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:33:32,332 INFO L85 PathProgramCache]: Analyzing trace with hash -1563197702, now seen corresponding path program 4 times [2022-04-15 10:33:32,332 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:33:32,332 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1650221054] [2022-04-15 10:33:32,332 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:33:32,332 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:33:32,356 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:33:32,356 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [40659163] [2022-04-15 10:33:32,356 INFO L93 rtionOrderModulation]: Changing assertion order to TERMS_WITH_SMALL_CONSTANTS_FIRST [2022-04-15 10:33:32,356 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:33:32,356 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:33:32,359 INFO L229 MonitoredProcess]: Starting monitored process 14 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:33:32,369 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (14)] Waiting until timeout for monitored process [2022-04-15 10:33:32,409 INFO L228 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2022-04-15 10:33:32,409 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:33:32,409 INFO L263 TraceCheckSpWp]: Trace formula consists of 128 conjuncts, 26 conjunts are in the unsatisfiable core [2022-04-15 10:33:32,423 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:33:32,424 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:33:45,764 INFO L272 TraceCheckUtils]: 0: Hoare triple {7121#true} call ULTIMATE.init(); {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 1: Hoare triple {7121#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 2: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7121#true} {7121#true} #83#return; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L272 TraceCheckUtils]: 4: Hoare triple {7121#true} call #t~ret6 := main(); {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 5: Hoare triple {7121#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L272 TraceCheckUtils]: 6: Hoare triple {7121#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 7: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 8: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 9: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7121#true} {7121#true} #71#return; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 11: Hoare triple {7121#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L272 TraceCheckUtils]: 12: Hoare triple {7121#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 13: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 14: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L290 TraceCheckUtils]: 15: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7121#true} {7121#true} #73#return; {7121#true} is VALID [2022-04-15 10:33:45,765 INFO L272 TraceCheckUtils]: 17: Hoare triple {7121#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:33:45,766 INFO L290 TraceCheckUtils]: 18: Hoare triple {7121#true} ~cond := #in~cond; {7180#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:33:45,766 INFO L290 TraceCheckUtils]: 19: Hoare triple {7180#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {7184#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:45,766 INFO L290 TraceCheckUtils]: 20: Hoare triple {7184#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {7184#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:33:45,767 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {7184#(not (= |assume_abort_if_not_#in~cond| 0))} {7121#true} #75#return; {7191#(<= 1 main_~y~0)} is VALID [2022-04-15 10:33:45,767 INFO L290 TraceCheckUtils]: 22: Hoare triple {7191#(<= 1 main_~y~0)} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,768 INFO L290 TraceCheckUtils]: 23: Hoare triple {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} assume !false; {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,768 INFO L272 TraceCheckUtils]: 24: Hoare triple {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:33:45,768 INFO L290 TraceCheckUtils]: 25: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:33:45,768 INFO L290 TraceCheckUtils]: 26: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:33:45,768 INFO L290 TraceCheckUtils]: 27: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:33:45,768 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {7121#true} {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} #77#return; {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,769 INFO L290 TraceCheckUtils]: 29: Hoare triple {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,770 INFO L290 TraceCheckUtils]: 30: Hoare triple {7195#(and (<= main_~y~0 main_~b~0) (<= 1 main_~y~0))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,770 INFO L290 TraceCheckUtils]: 31: Hoare triple {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} assume !false; {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,770 INFO L272 TraceCheckUtils]: 32: Hoare triple {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:33:45,770 INFO L290 TraceCheckUtils]: 33: Hoare triple {7121#true} ~cond := #in~cond; {7230#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:33:45,771 INFO L290 TraceCheckUtils]: 34: Hoare triple {7230#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:33:45,771 INFO L290 TraceCheckUtils]: 35: Hoare triple {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:33:45,772 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} #77#return; {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,772 INFO L290 TraceCheckUtils]: 37: Hoare triple {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,773 INFO L290 TraceCheckUtils]: 38: Hoare triple {7220#(and (<= (div (- main_~y~0) (- 2)) main_~b~0) (<= 1 main_~y~0))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,773 INFO L290 TraceCheckUtils]: 39: Hoare triple {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} assume !false; {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,773 INFO L272 TraceCheckUtils]: 40: Hoare triple {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:33:45,773 INFO L290 TraceCheckUtils]: 41: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:33:45,774 INFO L290 TraceCheckUtils]: 42: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:33:45,774 INFO L290 TraceCheckUtils]: 43: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:33:45,774 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7121#true} {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} #77#return; {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,775 INFO L290 TraceCheckUtils]: 45: Hoare triple {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,775 INFO L290 TraceCheckUtils]: 46: Hoare triple {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,775 INFO L290 TraceCheckUtils]: 47: Hoare triple {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:45,776 INFO L290 TraceCheckUtils]: 48: Hoare triple {7247#(and (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 1)) (<= 1 main_~y~0))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {7278#(and (<= 1 main_~y~0) (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 2)))} is VALID [2022-04-15 10:33:45,777 INFO L290 TraceCheckUtils]: 49: Hoare triple {7278#(and (<= 1 main_~y~0) (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 2)))} assume !false; {7278#(and (<= 1 main_~y~0) (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 2)))} is VALID [2022-04-15 10:33:45,777 INFO L272 TraceCheckUtils]: 50: Hoare triple {7278#(and (<= 1 main_~y~0) (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 2)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:33:45,777 INFO L290 TraceCheckUtils]: 51: Hoare triple {7121#true} ~cond := #in~cond; {7230#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:33:45,777 INFO L290 TraceCheckUtils]: 52: Hoare triple {7230#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:33:45,778 INFO L290 TraceCheckUtils]: 53: Hoare triple {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:33:47,780 WARN L284 TraceCheckUtils]: 54: Hoare quadruple {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} {7278#(and (<= 1 main_~y~0) (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 2)))} #77#return; {7297#(and (<= 1 main_~y~0) (or (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0)) (not (= main_~a~0 0)))) (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 2)))} is UNKNOWN [2022-04-15 10:33:47,782 INFO L290 TraceCheckUtils]: 55: Hoare triple {7297#(and (<= 1 main_~y~0) (or (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0)) (not (= main_~a~0 0)))) (< (div (* (- 1) (div (* (- 1) main_~y~0) (- 2))) (- 2)) (+ main_~b~0 2)))} assume !(0 != ~a~0 && 0 != ~b~0); {7301#(and (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0) (<= 1 main_~y~0))} is VALID [2022-04-15 10:33:47,783 INFO L272 TraceCheckUtils]: 56: Hoare triple {7301#(and (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0) (<= 1 main_~y~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {7305#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:33:47,783 INFO L290 TraceCheckUtils]: 57: Hoare triple {7305#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7309#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:33:47,783 INFO L290 TraceCheckUtils]: 58: Hoare triple {7309#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7122#false} is VALID [2022-04-15 10:33:47,784 INFO L290 TraceCheckUtils]: 59: Hoare triple {7122#false} assume !false; {7122#false} is VALID [2022-04-15 10:33:47,784 INFO L134 CoverageAnalysis]: Checked inductivity of 65 backedges. 21 proven. 26 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2022-04-15 10:33:47,784 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:34:34,579 INFO L290 TraceCheckUtils]: 59: Hoare triple {7122#false} assume !false; {7122#false} is VALID [2022-04-15 10:34:34,580 INFO L290 TraceCheckUtils]: 58: Hoare triple {7309#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {7122#false} is VALID [2022-04-15 10:34:34,580 INFO L290 TraceCheckUtils]: 57: Hoare triple {7305#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {7309#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:34:34,581 INFO L272 TraceCheckUtils]: 56: Hoare triple {7325#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {7305#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:34:34,582 INFO L290 TraceCheckUtils]: 55: Hoare triple {7329#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {7325#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:34:34,583 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} {7121#true} #77#return; {7329#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is VALID [2022-04-15 10:34:34,583 INFO L290 TraceCheckUtils]: 53: Hoare triple {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:34:34,584 INFO L290 TraceCheckUtils]: 52: Hoare triple {7342#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {7234#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:34:34,584 INFO L290 TraceCheckUtils]: 51: Hoare triple {7121#true} ~cond := #in~cond; {7342#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-15 10:34:34,584 INFO L272 TraceCheckUtils]: 50: Hoare triple {7121#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:34:34,584 INFO L290 TraceCheckUtils]: 49: Hoare triple {7121#true} assume !false; {7121#true} is VALID [2022-04-15 10:34:34,584 INFO L290 TraceCheckUtils]: 48: Hoare triple {7121#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {7121#true} is VALID [2022-04-15 10:34:34,584 INFO L290 TraceCheckUtils]: 47: Hoare triple {7121#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {7121#true} is VALID [2022-04-15 10:34:34,584 INFO L290 TraceCheckUtils]: 46: Hoare triple {7121#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {7121#true} is VALID [2022-04-15 10:34:34,584 INFO L290 TraceCheckUtils]: 45: Hoare triple {7121#true} assume !!(0 != ~a~0 && 0 != ~b~0); {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7121#true} {7121#true} #77#return; {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L290 TraceCheckUtils]: 43: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L290 TraceCheckUtils]: 42: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L290 TraceCheckUtils]: 41: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L272 TraceCheckUtils]: 40: Hoare triple {7121#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L290 TraceCheckUtils]: 39: Hoare triple {7121#true} assume !false; {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L290 TraceCheckUtils]: 38: Hoare triple {7121#true} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L290 TraceCheckUtils]: 37: Hoare triple {7121#true} assume !!(0 != ~a~0 && 0 != ~b~0); {7121#true} is VALID [2022-04-15 10:34:34,590 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {7121#true} {7121#true} #77#return; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 35: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 34: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 33: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L272 TraceCheckUtils]: 32: Hoare triple {7121#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 31: Hoare triple {7121#true} assume !false; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 30: Hoare triple {7121#true} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 29: Hoare triple {7121#true} assume !!(0 != ~a~0 && 0 != ~b~0); {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {7121#true} {7121#true} #77#return; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 27: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 26: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 25: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L272 TraceCheckUtils]: 24: Hoare triple {7121#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 23: Hoare triple {7121#true} assume !false; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L290 TraceCheckUtils]: 22: Hoare triple {7121#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {7121#true} is VALID [2022-04-15 10:34:34,591 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {7121#true} {7121#true} #75#return; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 20: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 19: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 18: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L272 TraceCheckUtils]: 17: Hoare triple {7121#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {7121#true} {7121#true} #73#return; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 15: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 14: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 13: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L272 TraceCheckUtils]: 12: Hoare triple {7121#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 11: Hoare triple {7121#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {7121#true} {7121#true} #71#return; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 9: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 8: Hoare triple {7121#true} assume !(0 == ~cond); {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 7: Hoare triple {7121#true} ~cond := #in~cond; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L272 TraceCheckUtils]: 6: Hoare triple {7121#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L290 TraceCheckUtils]: 5: Hoare triple {7121#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L272 TraceCheckUtils]: 4: Hoare triple {7121#true} call #t~ret6 := main(); {7121#true} is VALID [2022-04-15 10:34:34,592 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {7121#true} {7121#true} #83#return; {7121#true} is VALID [2022-04-15 10:34:34,593 INFO L290 TraceCheckUtils]: 2: Hoare triple {7121#true} assume true; {7121#true} is VALID [2022-04-15 10:34:34,593 INFO L290 TraceCheckUtils]: 1: Hoare triple {7121#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {7121#true} is VALID [2022-04-15 10:34:34,593 INFO L272 TraceCheckUtils]: 0: Hoare triple {7121#true} call ULTIMATE.init(); {7121#true} is VALID [2022-04-15 10:34:34,593 INFO L134 CoverageAnalysis]: Checked inductivity of 65 backedges. 19 proven. 1 refuted. 0 times theorem prover too weak. 45 trivial. 0 not checked. [2022-04-15 10:34:34,593 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:34:34,593 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1650221054] [2022-04-15 10:34:34,593 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:34:34,593 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [40659163] [2022-04-15 10:34:34,593 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [40659163] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:34:34,593 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:34:34,593 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [15, 8] total 18 [2022-04-15 10:34:34,593 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:34:34,593 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [725618440] [2022-04-15 10:34:34,594 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [725618440] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:34:34,594 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:34:34,594 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [15] imperfect sequences [] total 15 [2022-04-15 10:34:34,594 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [341142202] [2022-04-15 10:34:34,594 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:34:34,594 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 14 states have (on average 2.357142857142857) internal successors, (33), 12 states have internal predecessors, (33), 6 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) Word has length 60 [2022-04-15 10:34:34,594 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:34:34,594 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 15 states, 14 states have (on average 2.357142857142857) internal successors, (33), 12 states have internal predecessors, (33), 6 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-15 10:34:36,638 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 50 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:34:36,638 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-04-15 10:34:36,638 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:34:36,639 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-04-15 10:34:36,639 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=252, Unknown=0, NotChecked=0, Total=306 [2022-04-15 10:34:36,639 INFO L87 Difference]: Start difference. First operand 57 states and 71 transitions. Second operand has 15 states, 14 states have (on average 2.357142857142857) internal successors, (33), 12 states have internal predecessors, (33), 6 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-15 10:34:39,856 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:34:46,397 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:34:49,391 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.12s for a HTC check with result INVALID. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:34:49,966 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:34:49,966 INFO L93 Difference]: Finished difference Result 98 states and 128 transitions. [2022-04-15 10:34:49,967 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 18 states. [2022-04-15 10:34:49,967 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 14 states have (on average 2.357142857142857) internal successors, (33), 12 states have internal predecessors, (33), 6 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) Word has length 60 [2022-04-15 10:34:49,967 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:34:49,967 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 2.357142857142857) internal successors, (33), 12 states have internal predecessors, (33), 6 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-15 10:34:49,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 80 transitions. [2022-04-15 10:34:49,968 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 14 states have (on average 2.357142857142857) internal successors, (33), 12 states have internal predecessors, (33), 6 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-15 10:34:49,969 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 80 transitions. [2022-04-15 10:34:49,970 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 18 states and 80 transitions. [2022-04-15 10:34:58,085 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 80 edges. 76 inductive. 0 not inductive. 4 times theorem prover too weak to decide inductivity. [2022-04-15 10:34:58,087 INFO L225 Difference]: With dead ends: 98 [2022-04-15 10:34:58,087 INFO L226 Difference]: Without dead ends: 93 [2022-04-15 10:34:58,087 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 126 GetRequests, 101 SyntacticMatches, 2 SemanticMatches, 23 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 118 ImplicationChecksByTransitivity, 1.3s TimeCoverageRelationStatistics Valid=106, Invalid=494, Unknown=0, NotChecked=0, Total=600 [2022-04-15 10:34:58,088 INFO L913 BasicCegarLoop]: 18 mSDtfsCounter, 37 mSDsluCounter, 116 mSDsCounter, 0 mSdLazyCounter, 257 mSolverCounterSat, 24 mSolverCounterUnsat, 2 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 8.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 39 SdHoareTripleChecker+Valid, 134 SdHoareTripleChecker+Invalid, 283 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 24 IncrementalHoareTripleChecker+Valid, 257 IncrementalHoareTripleChecker+Invalid, 2 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 8.4s IncrementalHoareTripleChecker+Time [2022-04-15 10:34:58,088 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [39 Valid, 134 Invalid, 283 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [24 Valid, 257 Invalid, 2 Unknown, 0 Unchecked, 8.4s Time] [2022-04-15 10:34:58,088 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 93 states. [2022-04-15 10:34:58,408 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 93 to 71. [2022-04-15 10:34:58,408 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:34:58,409 INFO L82 GeneralOperation]: Start isEquivalent. First operand 93 states. Second operand has 71 states, 51 states have (on average 1.2352941176470589) internal successors, (63), 51 states have internal predecessors, (63), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-15 10:34:58,409 INFO L74 IsIncluded]: Start isIncluded. First operand 93 states. Second operand has 71 states, 51 states have (on average 1.2352941176470589) internal successors, (63), 51 states have internal predecessors, (63), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-15 10:34:58,409 INFO L87 Difference]: Start difference. First operand 93 states. Second operand has 71 states, 51 states have (on average 1.2352941176470589) internal successors, (63), 51 states have internal predecessors, (63), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-15 10:34:58,411 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:34:58,411 INFO L93 Difference]: Finished difference Result 93 states and 123 transitions. [2022-04-15 10:34:58,411 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 123 transitions. [2022-04-15 10:34:58,412 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:34:58,412 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:34:58,412 INFO L74 IsIncluded]: Start isIncluded. First operand has 71 states, 51 states have (on average 1.2352941176470589) internal successors, (63), 51 states have internal predecessors, (63), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) Second operand 93 states. [2022-04-15 10:34:58,412 INFO L87 Difference]: Start difference. First operand has 71 states, 51 states have (on average 1.2352941176470589) internal successors, (63), 51 states have internal predecessors, (63), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) Second operand 93 states. [2022-04-15 10:34:58,415 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:34:58,415 INFO L93 Difference]: Finished difference Result 93 states and 123 transitions. [2022-04-15 10:34:58,415 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 123 transitions. [2022-04-15 10:34:58,415 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:34:58,415 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:34:58,415 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:34:58,415 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:34:58,416 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 71 states, 51 states have (on average 1.2352941176470589) internal successors, (63), 51 states have internal predecessors, (63), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-15 10:34:58,417 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 91 transitions. [2022-04-15 10:34:58,417 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 91 transitions. Word has length 60 [2022-04-15 10:34:58,418 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:34:58,418 INFO L478 AbstractCegarLoop]: Abstraction has 71 states and 91 transitions. [2022-04-15 10:34:58,418 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 14 states have (on average 2.357142857142857) internal successors, (33), 12 states have internal predecessors, (33), 6 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 5 states have call successors, (8) [2022-04-15 10:34:58,418 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 71 states and 91 transitions. [2022-04-15 10:35:13,443 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 91 edges. 84 inductive. 0 not inductive. 7 times theorem prover too weak to decide inductivity. [2022-04-15 10:35:13,443 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 91 transitions. [2022-04-15 10:35:13,444 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2022-04-15 10:35:13,444 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:35:13,444 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:35:13,461 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (14)] Forceful destruction successful, exit code 0 [2022-04-15 10:35:13,647 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 14 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable13 [2022-04-15 10:35:13,647 INFO L403 AbstractCegarLoop]: === Iteration 15 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:35:13,648 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:35:13,648 INFO L85 PathProgramCache]: Analyzing trace with hash 464884373, now seen corresponding path program 1 times [2022-04-15 10:35:13,648 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:35:13,648 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [1271484498] [2022-04-15 10:35:13,648 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:35:13,648 INFO L85 PathProgramCache]: Analyzing trace with hash 464884373, now seen corresponding path program 2 times [2022-04-15 10:35:13,648 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:35:13,649 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1288754071] [2022-04-15 10:35:13,649 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:35:13,649 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:35:13,661 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:35:13,661 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [718713999] [2022-04-15 10:35:13,662 INFO L93 rtionOrderModulation]: Changing assertion order to OUTSIDE_LOOP_FIRST1 [2022-04-15 10:35:13,662 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:35:13,662 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:35:13,663 INFO L229 MonitoredProcess]: Starting monitored process 15 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:35:13,663 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (15)] Waiting until timeout for monitored process [2022-04-15 10:35:13,711 INFO L228 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST1 issued 2 check-sat command(s) [2022-04-15 10:35:13,711 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:35:13,712 INFO L263 TraceCheckSpWp]: Trace formula consists of 167 conjuncts, 28 conjunts are in the unsatisfiable core [2022-04-15 10:35:13,727 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:35:13,728 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:35:26,081 INFO L272 TraceCheckUtils]: 0: Hoare triple {8036#true} call ULTIMATE.init(); {8036#true} is VALID [2022-04-15 10:35:26,081 INFO L290 TraceCheckUtils]: 1: Hoare triple {8036#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {8036#true} is VALID [2022-04-15 10:35:26,082 INFO L290 TraceCheckUtils]: 2: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:35:26,082 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8036#true} {8036#true} #83#return; {8036#true} is VALID [2022-04-15 10:35:26,082 INFO L272 TraceCheckUtils]: 4: Hoare triple {8036#true} call #t~ret6 := main(); {8036#true} is VALID [2022-04-15 10:35:26,082 INFO L290 TraceCheckUtils]: 5: Hoare triple {8036#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {8036#true} is VALID [2022-04-15 10:35:26,082 INFO L272 TraceCheckUtils]: 6: Hoare triple {8036#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:35:26,082 INFO L290 TraceCheckUtils]: 7: Hoare triple {8036#true} ~cond := #in~cond; {8062#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} is VALID [2022-04-15 10:35:26,083 INFO L290 TraceCheckUtils]: 8: Hoare triple {8062#(= assume_abort_if_not_~cond |assume_abort_if_not_#in~cond|)} assume !(0 == ~cond); {8066#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:35:26,083 INFO L290 TraceCheckUtils]: 9: Hoare triple {8066#(not (= |assume_abort_if_not_#in~cond| 0))} assume true; {8066#(not (= |assume_abort_if_not_#in~cond| 0))} is VALID [2022-04-15 10:35:26,083 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8066#(not (= |assume_abort_if_not_#in~cond| 0))} {8036#true} #71#return; {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:35:26,084 INFO L290 TraceCheckUtils]: 11: Hoare triple {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:35:26,084 INFO L272 TraceCheckUtils]: 12: Hoare triple {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:35:26,084 INFO L290 TraceCheckUtils]: 13: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:35:26,084 INFO L290 TraceCheckUtils]: 14: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:35:26,084 INFO L290 TraceCheckUtils]: 15: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:35:26,084 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8036#true} {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #73#return; {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:35:26,085 INFO L272 TraceCheckUtils]: 17: Hoare triple {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:35:26,085 INFO L290 TraceCheckUtils]: 18: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:35:26,085 INFO L290 TraceCheckUtils]: 19: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:35:26,085 INFO L290 TraceCheckUtils]: 20: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:35:26,085 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {8036#true} {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} #75#return; {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:35:26,085 INFO L290 TraceCheckUtils]: 22: Hoare triple {8073#(and (<= 0 main_~x~0) (<= main_~x~0 50))} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {8110#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0))} is VALID [2022-04-15 10:35:26,086 INFO L290 TraceCheckUtils]: 23: Hoare triple {8110#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0))} assume !false; {8110#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0))} is VALID [2022-04-15 10:35:26,086 INFO L272 TraceCheckUtils]: 24: Hoare triple {8110#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:35:26,086 INFO L290 TraceCheckUtils]: 25: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:35:26,086 INFO L290 TraceCheckUtils]: 26: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:35:26,086 INFO L290 TraceCheckUtils]: 27: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:35:26,087 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {8036#true} {8110#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0))} #77#return; {8110#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0))} is VALID [2022-04-15 10:35:26,087 INFO L290 TraceCheckUtils]: 29: Hoare triple {8110#(and (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0))} assume !!(0 != ~a~0 && 0 != ~b~0); {8132#(and (<= 0 main_~x~0) (<= main_~x~0 50) (not (= main_~b~0 0)) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:35:26,087 INFO L290 TraceCheckUtils]: 30: Hoare triple {8132#(and (<= 0 main_~x~0) (<= main_~x~0 50) (not (= main_~b~0 0)) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8132#(and (<= 0 main_~x~0) (<= main_~x~0 50) (not (= main_~b~0 0)) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:35:26,088 INFO L290 TraceCheckUtils]: 31: Hoare triple {8132#(and (<= 0 main_~x~0) (<= main_~x~0 50) (not (= main_~b~0 0)) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8132#(and (<= 0 main_~x~0) (<= main_~x~0 50) (not (= main_~b~0 0)) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:35:26,089 INFO L290 TraceCheckUtils]: 32: Hoare triple {8132#(and (<= 0 main_~x~0) (<= main_~x~0 50) (not (= main_~b~0 0)) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~b~0 := ~b~0 - 1;~q~0 := ~q~0 + ~a~0 * ~p~0; {8142#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:35:26,089 INFO L290 TraceCheckUtils]: 33: Hoare triple {8142#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} assume !false; {8142#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:35:26,090 INFO L272 TraceCheckUtils]: 34: Hoare triple {8142#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:35:26,090 INFO L290 TraceCheckUtils]: 35: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:35:26,090 INFO L290 TraceCheckUtils]: 36: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:35:26,090 INFO L290 TraceCheckUtils]: 37: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:35:26,090 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {8036#true} {8142#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} #77#return; {8142#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:35:26,091 INFO L290 TraceCheckUtils]: 39: Hoare triple {8142#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} assume !!(0 != ~a~0 && 0 != ~b~0); {8164#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (not (= main_~b~0 0)) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} is VALID [2022-04-15 10:35:26,092 INFO L290 TraceCheckUtils]: 40: Hoare triple {8164#(and (= (mod main_~a~0 2) 0) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (not (= main_~b~0 0)) (<= main_~x~0 main_~a~0) (not (= main_~a~0 0)))} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:35:26,092 INFO L290 TraceCheckUtils]: 41: Hoare triple {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !false; {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:35:26,092 INFO L272 TraceCheckUtils]: 42: Hoare triple {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:35:26,092 INFO L290 TraceCheckUtils]: 43: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:35:26,093 INFO L290 TraceCheckUtils]: 44: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:35:26,093 INFO L290 TraceCheckUtils]: 45: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:35:26,093 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {8036#true} {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} #77#return; {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:35:26,093 INFO L290 TraceCheckUtils]: 47: Hoare triple {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !!(0 != ~a~0 && 0 != ~b~0); {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:35:26,094 INFO L290 TraceCheckUtils]: 48: Hoare triple {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:35:26,094 INFO L290 TraceCheckUtils]: 49: Hoare triple {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} is VALID [2022-04-15 10:35:26,096 INFO L290 TraceCheckUtils]: 50: Hoare triple {8168#(and (<= 0 main_~x~0) (<= main_~x~0 50) (< 0 main_~a~0) (< 0 main_~b~0) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 1)))} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {8199#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:35:26,096 INFO L290 TraceCheckUtils]: 51: Hoare triple {8199#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50))} assume !false; {8199#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50))} is VALID [2022-04-15 10:35:26,096 INFO L272 TraceCheckUtils]: 52: Hoare triple {8199#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50))} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:35:26,096 INFO L290 TraceCheckUtils]: 53: Hoare triple {8036#true} ~cond := #in~cond; {8209#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:35:26,097 INFO L290 TraceCheckUtils]: 54: Hoare triple {8209#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {8213#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:35:26,097 INFO L290 TraceCheckUtils]: 55: Hoare triple {8213#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {8213#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:35:28,100 WARN L284 TraceCheckUtils]: 56: Hoare quadruple {8213#(not (= |__VERIFIER_assert_#in~cond| 0))} {8199#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50))} #77#return; {8220#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (or (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0)) (not (= main_~a~0 0)))))} is UNKNOWN [2022-04-15 10:35:28,102 INFO L290 TraceCheckUtils]: 57: Hoare triple {8220#(and (< 0 (+ main_~a~0 1)) (< (div (* (- 1) main_~x~0) (- 2)) (+ main_~a~0 2)) (< 0 (+ main_~b~0 1)) (<= 0 main_~x~0) (<= main_~x~0 50) (or (= (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) 0) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0)) (not (= main_~a~0 0)))))} assume !(0 != ~a~0 && 0 != ~b~0); {8224#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~q~0 (* main_~y~0 main_~x~0)))} is VALID [2022-04-15 10:35:28,103 INFO L272 TraceCheckUtils]: 58: Hoare triple {8224#(and (<= 0 main_~x~0) (<= main_~x~0 50) (= main_~q~0 (* main_~y~0 main_~x~0)))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {8228#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:35:28,103 INFO L290 TraceCheckUtils]: 59: Hoare triple {8228#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {8232#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:35:28,103 INFO L290 TraceCheckUtils]: 60: Hoare triple {8232#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8037#false} is VALID [2022-04-15 10:35:28,103 INFO L290 TraceCheckUtils]: 61: Hoare triple {8037#false} assume !false; {8037#false} is VALID [2022-04-15 10:35:28,104 INFO L134 CoverageAnalysis]: Checked inductivity of 67 backedges. 20 proven. 26 refuted. 0 times theorem prover too weak. 21 trivial. 0 not checked. [2022-04-15 10:35:28,104 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:36:29,109 INFO L290 TraceCheckUtils]: 61: Hoare triple {8037#false} assume !false; {8037#false} is VALID [2022-04-15 10:36:29,109 INFO L290 TraceCheckUtils]: 60: Hoare triple {8232#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8037#false} is VALID [2022-04-15 10:36:29,110 INFO L290 TraceCheckUtils]: 59: Hoare triple {8228#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {8232#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:36:29,110 INFO L272 TraceCheckUtils]: 58: Hoare triple {8248#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {8228#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:36:29,111 INFO L290 TraceCheckUtils]: 57: Hoare triple {8252#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {8248#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:36:29,113 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {8213#(not (= |__VERIFIER_assert_#in~cond| 0))} {8036#true} #77#return; {8252#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is VALID [2022-04-15 10:36:29,113 INFO L290 TraceCheckUtils]: 55: Hoare triple {8213#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {8213#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:36:29,113 INFO L290 TraceCheckUtils]: 54: Hoare triple {8265#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {8213#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 53: Hoare triple {8036#true} ~cond := #in~cond; {8265#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-15 10:36:29,114 INFO L272 TraceCheckUtils]: 52: Hoare triple {8036#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 51: Hoare triple {8036#true} assume !false; {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 50: Hoare triple {8036#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 49: Hoare triple {8036#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 48: Hoare triple {8036#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 47: Hoare triple {8036#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {8036#true} {8036#true} #77#return; {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 45: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 44: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 43: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L272 TraceCheckUtils]: 42: Hoare triple {8036#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 41: Hoare triple {8036#true} assume !false; {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 40: Hoare triple {8036#true} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 39: Hoare triple {8036#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {8036#true} {8036#true} #77#return; {8036#true} is VALID [2022-04-15 10:36:29,114 INFO L290 TraceCheckUtils]: 37: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 36: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 35: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L272 TraceCheckUtils]: 34: Hoare triple {8036#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 33: Hoare triple {8036#true} assume !false; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 32: Hoare triple {8036#true} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~b~0 := ~b~0 - 1;~q~0 := ~q~0 + ~a~0 * ~p~0; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 31: Hoare triple {8036#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 30: Hoare triple {8036#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 29: Hoare triple {8036#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {8036#true} {8036#true} #77#return; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 27: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 26: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 25: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L272 TraceCheckUtils]: 24: Hoare triple {8036#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 23: Hoare triple {8036#true} assume !false; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 22: Hoare triple {8036#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {8036#true} {8036#true} #75#return; {8036#true} is VALID [2022-04-15 10:36:29,115 INFO L290 TraceCheckUtils]: 20: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 19: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 18: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L272 TraceCheckUtils]: 17: Hoare triple {8036#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8036#true} {8036#true} #73#return; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 15: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 14: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 13: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L272 TraceCheckUtils]: 12: Hoare triple {8036#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 11: Hoare triple {8036#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8036#true} {8036#true} #71#return; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 9: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 8: Hoare triple {8036#true} assume !(0 == ~cond); {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L290 TraceCheckUtils]: 7: Hoare triple {8036#true} ~cond := #in~cond; {8036#true} is VALID [2022-04-15 10:36:29,116 INFO L272 TraceCheckUtils]: 6: Hoare triple {8036#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {8036#true} is VALID [2022-04-15 10:36:29,117 INFO L290 TraceCheckUtils]: 5: Hoare triple {8036#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {8036#true} is VALID [2022-04-15 10:36:29,117 INFO L272 TraceCheckUtils]: 4: Hoare triple {8036#true} call #t~ret6 := main(); {8036#true} is VALID [2022-04-15 10:36:29,117 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8036#true} {8036#true} #83#return; {8036#true} is VALID [2022-04-15 10:36:29,117 INFO L290 TraceCheckUtils]: 2: Hoare triple {8036#true} assume true; {8036#true} is VALID [2022-04-15 10:36:29,117 INFO L290 TraceCheckUtils]: 1: Hoare triple {8036#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {8036#true} is VALID [2022-04-15 10:36:29,117 INFO L272 TraceCheckUtils]: 0: Hoare triple {8036#true} call ULTIMATE.init(); {8036#true} is VALID [2022-04-15 10:36:29,117 INFO L134 CoverageAnalysis]: Checked inductivity of 67 backedges. 19 proven. 1 refuted. 0 times theorem prover too weak. 47 trivial. 0 not checked. [2022-04-15 10:36:29,117 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:36:29,117 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1288754071] [2022-04-15 10:36:29,117 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:36:29,117 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [718713999] [2022-04-15 10:36:29,117 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [718713999] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:36:29,117 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:36:29,117 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [17, 8] total 20 [2022-04-15 10:36:29,118 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:36:29,118 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [1271484498] [2022-04-15 10:36:29,118 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [1271484498] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:36:29,118 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:36:29,118 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [17] imperfect sequences [] total 17 [2022-04-15 10:36:29,118 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [943815048] [2022-04-15 10:36:29,118 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:36:29,118 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 16 states have (on average 2.1875) internal successors, (35), 15 states have internal predecessors, (35), 7 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 6 states have call successors, (8) Word has length 62 [2022-04-15 10:36:29,118 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:36:29,119 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 17 states, 16 states have (on average 2.1875) internal successors, (35), 15 states have internal predecessors, (35), 7 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 6 states have call successors, (8) [2022-04-15 10:36:31,165 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 52 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:36:31,165 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 17 states [2022-04-15 10:36:31,165 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:36:31,166 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2022-04-15 10:36:31,166 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=314, Unknown=0, NotChecked=0, Total=380 [2022-04-15 10:36:31,166 INFO L87 Difference]: Start difference. First operand 71 states and 91 transitions. Second operand has 17 states, 16 states have (on average 2.1875) internal successors, (35), 15 states have internal predecessors, (35), 7 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 6 states have call successors, (8) [2022-04-15 10:36:34,839 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:36:36,441 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:36:36,441 INFO L93 Difference]: Finished difference Result 97 states and 126 transitions. [2022-04-15 10:36:36,441 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 19 states. [2022-04-15 10:36:36,441 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 16 states have (on average 2.1875) internal successors, (35), 15 states have internal predecessors, (35), 7 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 6 states have call successors, (8) Word has length 62 [2022-04-15 10:36:36,441 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:36:36,442 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 16 states have (on average 2.1875) internal successors, (35), 15 states have internal predecessors, (35), 7 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 6 states have call successors, (8) [2022-04-15 10:36:36,443 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 72 transitions. [2022-04-15 10:36:36,443 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 16 states have (on average 2.1875) internal successors, (35), 15 states have internal predecessors, (35), 7 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 6 states have call successors, (8) [2022-04-15 10:36:36,444 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 19 states and 72 transitions. [2022-04-15 10:36:36,444 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 19 states and 72 transitions. [2022-04-15 10:36:42,524 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 69 inductive. 0 not inductive. 3 times theorem prover too weak to decide inductivity. [2022-04-15 10:36:42,525 INFO L225 Difference]: With dead ends: 97 [2022-04-15 10:36:42,525 INFO L226 Difference]: Without dead ends: 92 [2022-04-15 10:36:42,526 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 130 GetRequests, 104 SyntacticMatches, 1 SemanticMatches, 25 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 157 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=119, Invalid=583, Unknown=0, NotChecked=0, Total=702 [2022-04-15 10:36:42,526 INFO L913 BasicCegarLoop]: 24 mSDtfsCounter, 41 mSDsluCounter, 112 mSDsCounter, 0 mSdLazyCounter, 338 mSolverCounterSat, 18 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 3.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 43 SdHoareTripleChecker+Valid, 136 SdHoareTripleChecker+Invalid, 357 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 18 IncrementalHoareTripleChecker+Valid, 338 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 3.0s IncrementalHoareTripleChecker+Time [2022-04-15 10:36:42,526 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [43 Valid, 136 Invalid, 357 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [18 Valid, 338 Invalid, 1 Unknown, 0 Unchecked, 3.0s Time] [2022-04-15 10:36:42,527 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 92 states. [2022-04-15 10:36:42,910 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 92 to 72. [2022-04-15 10:36:42,911 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:36:42,911 INFO L82 GeneralOperation]: Start isEquivalent. First operand 92 states. Second operand has 72 states, 52 states have (on average 1.25) internal successors, (65), 52 states have internal predecessors, (65), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-15 10:36:42,911 INFO L74 IsIncluded]: Start isIncluded. First operand 92 states. Second operand has 72 states, 52 states have (on average 1.25) internal successors, (65), 52 states have internal predecessors, (65), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-15 10:36:42,911 INFO L87 Difference]: Start difference. First operand 92 states. Second operand has 72 states, 52 states have (on average 1.25) internal successors, (65), 52 states have internal predecessors, (65), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-15 10:36:42,913 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:36:42,913 INFO L93 Difference]: Finished difference Result 92 states and 121 transitions. [2022-04-15 10:36:42,913 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 121 transitions. [2022-04-15 10:36:42,914 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:36:42,914 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:36:42,914 INFO L74 IsIncluded]: Start isIncluded. First operand has 72 states, 52 states have (on average 1.25) internal successors, (65), 52 states have internal predecessors, (65), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) Second operand 92 states. [2022-04-15 10:36:42,914 INFO L87 Difference]: Start difference. First operand has 72 states, 52 states have (on average 1.25) internal successors, (65), 52 states have internal predecessors, (65), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) Second operand 92 states. [2022-04-15 10:36:42,916 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:36:42,916 INFO L93 Difference]: Finished difference Result 92 states and 121 transitions. [2022-04-15 10:36:42,916 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 121 transitions. [2022-04-15 10:36:42,917 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:36:42,917 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:36:42,917 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:36:42,917 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:36:42,917 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 72 states, 52 states have (on average 1.25) internal successors, (65), 52 states have internal predecessors, (65), 15 states have call successors, (15), 6 states have call predecessors, (15), 4 states have return successors, (13), 13 states have call predecessors, (13), 13 states have call successors, (13) [2022-04-15 10:36:42,918 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 72 states to 72 states and 93 transitions. [2022-04-15 10:36:42,919 INFO L78 Accepts]: Start accepts. Automaton has 72 states and 93 transitions. Word has length 62 [2022-04-15 10:36:42,919 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:36:42,919 INFO L478 AbstractCegarLoop]: Abstraction has 72 states and 93 transitions. [2022-04-15 10:36:42,919 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 17 states, 16 states have (on average 2.1875) internal successors, (35), 15 states have internal predecessors, (35), 7 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (8), 6 states have call predecessors, (8), 6 states have call successors, (8) [2022-04-15 10:36:42,919 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 72 states and 93 transitions. [2022-04-15 10:36:58,084 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 86 inductive. 0 not inductive. 7 times theorem prover too weak to decide inductivity. [2022-04-15 10:36:58,084 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 93 transitions. [2022-04-15 10:36:58,085 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2022-04-15 10:36:58,085 INFO L491 BasicCegarLoop]: Found error trace [2022-04-15 10:36:58,085 INFO L499 BasicCegarLoop]: trace histogram [5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-04-15 10:36:58,101 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (15)] Ended with exit code 0 [2022-04-15 10:36:58,285 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable14,15 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:36:58,286 INFO L403 AbstractCegarLoop]: === Iteration 16 === Targeting __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION === [__VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION] === [2022-04-15 10:36:58,286 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-04-15 10:36:58,286 INFO L85 PathProgramCache]: Analyzing trace with hash 487516627, now seen corresponding path program 5 times [2022-04-15 10:36:58,286 INFO L118 FreeRefinementEngine]: Executing refinement strategy ACCELERATED_INTERPOLATION [2022-04-15 10:36:58,286 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleAcceleratedInterpolation [334588090] [2022-04-15 10:36:58,286 INFO L202 tedInterpolationCore]: No loops in this trace, falling back to nested interpolation [2022-04-15 10:36:58,286 INFO L85 PathProgramCache]: Analyzing trace with hash 487516627, now seen corresponding path program 6 times [2022-04-15 10:36:58,286 INFO L118 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-04-15 10:36:58,286 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1878228700] [2022-04-15 10:36:58,287 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-04-15 10:36:58,287 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-04-15 10:36:58,300 ERROR L245 FreeRefinementEngine]: Caught known exception: Unsupported non-linear arithmetic [2022-04-15 10:36:58,300 INFO L333 FreeRefinementEngine]: Using trace check IpTcStrategyModuleZ3 [336221952] [2022-04-15 10:36:58,300 INFO L93 rtionOrderModulation]: Changing assertion order to MIX_INSIDE_OUTSIDE [2022-04-15 10:36:58,300 INFO L173 SolverBuilder]: Constructing external solver with command: z3 -smt2 -in SMTLIB2_COMPLIANT=true [2022-04-15 10:36:58,300 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-04-15 10:36:58,301 INFO L229 MonitoredProcess]: Starting monitored process 16 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (exit command is (exit), workingDir is null) [2022-04-15 10:36:58,306 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (16)] Waiting until timeout for monitored process [2022-04-15 10:36:58,353 INFO L228 tOrderPrioritization]: Assert order MIX_INSIDE_OUTSIDE issued 3 check-sat command(s) [2022-04-15 10:36:58,353 INFO L229 tOrderPrioritization]: Conjunction of SSA is unsat [2022-04-15 10:36:58,353 INFO L263 TraceCheckSpWp]: Trace formula consists of 131 conjuncts, 9 conjunts are in the unsatisfiable core [2022-04-15 10:36:58,364 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-04-15 10:36:58,364 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-04-15 10:37:07,812 INFO L272 TraceCheckUtils]: 0: Hoare triple {8963#true} call ULTIMATE.init(); {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L290 TraceCheckUtils]: 1: Hoare triple {8963#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L290 TraceCheckUtils]: 2: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8963#true} {8963#true} #83#return; {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L272 TraceCheckUtils]: 4: Hoare triple {8963#true} call #t~ret6 := main(); {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L290 TraceCheckUtils]: 5: Hoare triple {8963#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L272 TraceCheckUtils]: 6: Hoare triple {8963#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L290 TraceCheckUtils]: 7: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L290 TraceCheckUtils]: 8: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L290 TraceCheckUtils]: 9: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8963#true} {8963#true} #71#return; {8963#true} is VALID [2022-04-15 10:37:07,813 INFO L290 TraceCheckUtils]: 11: Hoare triple {8963#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L272 TraceCheckUtils]: 12: Hoare triple {8963#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 13: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 14: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 15: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8963#true} {8963#true} #73#return; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L272 TraceCheckUtils]: 17: Hoare triple {8963#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 18: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 19: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 20: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {8963#true} {8963#true} #75#return; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 22: Hoare triple {8963#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 23: Hoare triple {8963#true} assume !false; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L272 TraceCheckUtils]: 24: Hoare triple {8963#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 25: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 26: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 27: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {8963#true} {8963#true} #77#return; {8963#true} is VALID [2022-04-15 10:37:07,814 INFO L290 TraceCheckUtils]: 29: Hoare triple {8963#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 30: Hoare triple {8963#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 31: Hoare triple {8963#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 32: Hoare triple {8963#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 33: Hoare triple {8963#true} assume !false; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L272 TraceCheckUtils]: 34: Hoare triple {8963#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 35: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 36: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 37: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {8963#true} {8963#true} #77#return; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 39: Hoare triple {8963#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 40: Hoare triple {8963#true} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 41: Hoare triple {8963#true} assume !false; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L272 TraceCheckUtils]: 42: Hoare triple {8963#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 43: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 44: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 45: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {8963#true} {8963#true} #77#return; {8963#true} is VALID [2022-04-15 10:37:07,815 INFO L290 TraceCheckUtils]: 47: Hoare triple {8963#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8963#true} is VALID [2022-04-15 10:37:07,816 INFO L290 TraceCheckUtils]: 48: Hoare triple {8963#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8963#true} is VALID [2022-04-15 10:37:07,816 INFO L290 TraceCheckUtils]: 49: Hoare triple {8963#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8963#true} is VALID [2022-04-15 10:37:07,816 INFO L290 TraceCheckUtils]: 50: Hoare triple {8963#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {8963#true} is VALID [2022-04-15 10:37:07,816 INFO L290 TraceCheckUtils]: 51: Hoare triple {8963#true} assume !false; {8963#true} is VALID [2022-04-15 10:37:07,816 INFO L272 TraceCheckUtils]: 52: Hoare triple {8963#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:37:07,816 INFO L290 TraceCheckUtils]: 53: Hoare triple {8963#true} ~cond := #in~cond; {9127#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:37:07,816 INFO L290 TraceCheckUtils]: 54: Hoare triple {9127#(= |__VERIFIER_assert_#in~cond| __VERIFIER_assert_~cond)} assume !(0 == ~cond); {9131#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:37:07,817 INFO L290 TraceCheckUtils]: 55: Hoare triple {9131#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {9131#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:37:09,819 WARN L284 TraceCheckUtils]: 56: Hoare quadruple {9131#(not (= |__VERIFIER_assert_#in~cond| 0))} {8963#true} #77#return; {9138#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is UNKNOWN [2022-04-15 10:37:09,821 INFO L290 TraceCheckUtils]: 57: Hoare triple {9138#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (= (mod (+ (* main_~y~0 main_~x~0) (* (- 1) main_~q~0)) (* main_~b~0 main_~a~0)) 0) (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {9142#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:37:09,821 INFO L272 TraceCheckUtils]: 58: Hoare triple {9142#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {9146#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:37:09,822 INFO L290 TraceCheckUtils]: 59: Hoare triple {9146#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {9150#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:37:09,822 INFO L290 TraceCheckUtils]: 60: Hoare triple {9150#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8964#false} is VALID [2022-04-15 10:37:09,822 INFO L290 TraceCheckUtils]: 61: Hoare triple {8964#false} assume !false; {8964#false} is VALID [2022-04-15 10:37:09,822 INFO L134 CoverageAnalysis]: Checked inductivity of 67 backedges. 19 proven. 1 refuted. 0 times theorem prover too weak. 47 trivial. 0 not checked. [2022-04-15 10:37:09,822 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-04-15 10:38:01,032 INFO L290 TraceCheckUtils]: 61: Hoare triple {8964#false} assume !false; {8964#false} is VALID [2022-04-15 10:38:01,032 INFO L290 TraceCheckUtils]: 60: Hoare triple {9150#(<= 1 __VERIFIER_assert_~cond)} assume 0 == ~cond; {8964#false} is VALID [2022-04-15 10:38:01,033 INFO L290 TraceCheckUtils]: 59: Hoare triple {9146#(<= 1 |__VERIFIER_assert_#in~cond|)} ~cond := #in~cond; {9150#(<= 1 __VERIFIER_assert_~cond)} is VALID [2022-04-15 10:38:01,033 INFO L272 TraceCheckUtils]: 58: Hoare triple {9142#(= main_~q~0 (* main_~y~0 main_~x~0))} call __VERIFIER_assert((if ~q~0 == ~x~0 * ~y~0 then 1 else 0)); {9146#(<= 1 |__VERIFIER_assert_#in~cond|)} is VALID [2022-04-15 10:38:01,034 INFO L290 TraceCheckUtils]: 57: Hoare triple {9169#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} assume !(0 != ~a~0 && 0 != ~b~0); {9142#(= main_~q~0 (* main_~y~0 main_~x~0))} is VALID [2022-04-15 10:38:01,036 INFO L284 TraceCheckUtils]: 56: Hoare quadruple {9131#(not (= |__VERIFIER_assert_#in~cond| 0))} {8963#true} #77#return; {9169#(or (= main_~q~0 (* main_~y~0 main_~x~0)) (and (not (= main_~b~0 0)) (not (= main_~a~0 0))))} is VALID [2022-04-15 10:38:01,036 INFO L290 TraceCheckUtils]: 55: Hoare triple {9131#(not (= |__VERIFIER_assert_#in~cond| 0))} assume true; {9131#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:38:01,037 INFO L290 TraceCheckUtils]: 54: Hoare triple {9182#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} assume !(0 == ~cond); {9131#(not (= |__VERIFIER_assert_#in~cond| 0))} is VALID [2022-04-15 10:38:01,037 INFO L290 TraceCheckUtils]: 53: Hoare triple {8963#true} ~cond := #in~cond; {9182#(or (not (= |__VERIFIER_assert_#in~cond| 0)) (= __VERIFIER_assert_~cond 0))} is VALID [2022-04-15 10:38:01,037 INFO L272 TraceCheckUtils]: 52: Hoare triple {8963#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:38:01,037 INFO L290 TraceCheckUtils]: 51: Hoare triple {8963#true} assume !false; {8963#true} is VALID [2022-04-15 10:38:01,037 INFO L290 TraceCheckUtils]: 50: Hoare triple {8963#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {8963#true} is VALID [2022-04-15 10:38:01,037 INFO L290 TraceCheckUtils]: 49: Hoare triple {8963#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L290 TraceCheckUtils]: 48: Hoare triple {8963#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L290 TraceCheckUtils]: 47: Hoare triple {8963#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {8963#true} {8963#true} #77#return; {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L290 TraceCheckUtils]: 45: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L290 TraceCheckUtils]: 44: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L290 TraceCheckUtils]: 43: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L272 TraceCheckUtils]: 42: Hoare triple {8963#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L290 TraceCheckUtils]: 41: Hoare triple {8963#true} assume !false; {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L290 TraceCheckUtils]: 40: Hoare triple {8963#true} assume 0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2);~a~0 := (if ~a~0 < 0 && 0 != ~a~0 % 2 then 1 + ~a~0 / 2 else ~a~0 / 2);~b~0 := (if ~b~0 < 0 && 0 != ~b~0 % 2 then 1 + ~b~0 / 2 else ~b~0 / 2);~p~0 := 4 * ~p~0; {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L290 TraceCheckUtils]: 39: Hoare triple {8963#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8963#true} is VALID [2022-04-15 10:38:01,038 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {8963#true} {8963#true} #77#return; {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 37: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 36: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 35: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L272 TraceCheckUtils]: 34: Hoare triple {8963#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 33: Hoare triple {8963#true} assume !false; {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 32: Hoare triple {8963#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 1 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2));~a~0 := ~a~0 - 1;~b~0 := ~b~0 - 1;~q~0 := ~q~0 + (1 + (~a~0 + ~b~0)) * ~p~0; {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 31: Hoare triple {8963#true} assume !(1 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 30: Hoare triple {8963#true} assume !(0 == (if ~a~0 < 0 && 0 != ~a~0 % 2 then ~a~0 % 2 - 2 else ~a~0 % 2) && 0 == (if ~b~0 < 0 && 0 != ~b~0 % 2 then ~b~0 % 2 - 2 else ~b~0 % 2)); {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 29: Hoare triple {8963#true} assume !!(0 != ~a~0 && 0 != ~b~0); {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {8963#true} {8963#true} #77#return; {8963#true} is VALID [2022-04-15 10:38:01,039 INFO L290 TraceCheckUtils]: 27: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L290 TraceCheckUtils]: 26: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L290 TraceCheckUtils]: 25: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L272 TraceCheckUtils]: 24: Hoare triple {8963#true} call __VERIFIER_assert((if ~q~0 + ~a~0 * ~b~0 * ~p~0 == ~x~0 * ~y~0 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L290 TraceCheckUtils]: 23: Hoare triple {8963#true} assume !false; {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L290 TraceCheckUtils]: 22: Hoare triple {8963#true} ~a~0 := ~x~0;~b~0 := ~y~0;~p~0 := 1;~q~0 := 0; {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L284 TraceCheckUtils]: 21: Hoare quadruple {8963#true} {8963#true} #75#return; {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L290 TraceCheckUtils]: 20: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L290 TraceCheckUtils]: 19: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L290 TraceCheckUtils]: 18: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L272 TraceCheckUtils]: 17: Hoare triple {8963#true} call assume_abort_if_not((if ~y~0 >= 1 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {8963#true} {8963#true} #73#return; {8963#true} is VALID [2022-04-15 10:38:01,040 INFO L290 TraceCheckUtils]: 15: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L290 TraceCheckUtils]: 14: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L290 TraceCheckUtils]: 13: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L272 TraceCheckUtils]: 12: Hoare triple {8963#true} call assume_abort_if_not((if ~y~0 >= 0 && ~y~0 <= 50 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L290 TraceCheckUtils]: 11: Hoare triple {8963#true} assume -2147483648 <= #t~nondet5 && #t~nondet5 <= 2147483647;~y~0 := #t~nondet5;havoc #t~nondet5; {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L284 TraceCheckUtils]: 10: Hoare quadruple {8963#true} {8963#true} #71#return; {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L290 TraceCheckUtils]: 9: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L290 TraceCheckUtils]: 8: Hoare triple {8963#true} assume !(0 == ~cond); {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L290 TraceCheckUtils]: 7: Hoare triple {8963#true} ~cond := #in~cond; {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L272 TraceCheckUtils]: 6: Hoare triple {8963#true} call assume_abort_if_not((if ~x~0 >= 0 && ~x~0 <= 50 then 1 else 0)); {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L290 TraceCheckUtils]: 5: Hoare triple {8963#true} havoc ~x~0;havoc ~y~0;havoc ~a~0;havoc ~b~0;havoc ~p~0;havoc ~q~0;assume -2147483648 <= #t~nondet4 && #t~nondet4 <= 2147483647;~x~0 := #t~nondet4;havoc #t~nondet4; {8963#true} is VALID [2022-04-15 10:38:01,041 INFO L272 TraceCheckUtils]: 4: Hoare triple {8963#true} call #t~ret6 := main(); {8963#true} is VALID [2022-04-15 10:38:01,042 INFO L284 TraceCheckUtils]: 3: Hoare quadruple {8963#true} {8963#true} #83#return; {8963#true} is VALID [2022-04-15 10:38:01,042 INFO L290 TraceCheckUtils]: 2: Hoare triple {8963#true} assume true; {8963#true} is VALID [2022-04-15 10:38:01,042 INFO L290 TraceCheckUtils]: 1: Hoare triple {8963#true} #NULL.base, #NULL.offset := 0, 0;assume 0 == #valid[0];assume 0 < #StackHeapBarrier;call #Ultimate.allocInit(2, 1);call write~init~int(48, 1, 0, 1);call write~init~int(0, 1, 1, 1);call #Ultimate.allocInit(13, 2);call #Ultimate.allocInit(12, 3); {8963#true} is VALID [2022-04-15 10:38:01,042 INFO L272 TraceCheckUtils]: 0: Hoare triple {8963#true} call ULTIMATE.init(); {8963#true} is VALID [2022-04-15 10:38:01,042 INFO L134 CoverageAnalysis]: Checked inductivity of 67 backedges. 19 proven. 1 refuted. 0 times theorem prover too weak. 47 trivial. 0 not checked. [2022-04-15 10:38:01,042 INFO L136 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-04-15 10:38:01,042 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1878228700] [2022-04-15 10:38:01,042 WARN L310 FreeRefinementEngine]: Interpolation failed due to KNOWN_IGNORE: SMT_SOLVER_CANNOT_INTERPOLATE_INPUT [2022-04-15 10:38:01,042 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleZ3 [336221952] [2022-04-15 10:38:01,043 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleZ3 [336221952] provided 0 perfect and 2 imperfect interpolant sequences [2022-04-15 10:38:01,043 INFO L184 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-04-15 10:38:01,043 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 8] total 10 [2022-04-15 10:38:01,043 INFO L136 FreeRefinementEngine]: Strategy ACCELERATED_INTERPOLATION found an infeasible trace [2022-04-15 10:38:01,043 INFO L333 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleAcceleratedInterpolation [334588090] [2022-04-15 10:38:01,043 INFO L157 FreeRefinementEngine]: IpTcStrategyModuleAcceleratedInterpolation [334588090] provided 1 perfect and 0 imperfect interpolant sequences [2022-04-15 10:38:01,043 INFO L184 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-04-15 10:38:01,043 INFO L197 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-04-15 10:38:01,043 INFO L121 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2141640952] [2022-04-15 10:38:01,043 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-04-15 10:38:01,044 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 7 states have (on average 3.4285714285714284) internal successors, (24), 6 states have internal predecessors, (24), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (6), 2 states have call predecessors, (6), 1 states have call successors, (6) Word has length 62 [2022-04-15 10:38:01,044 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-04-15 10:38:01,044 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with has 8 states, 7 states have (on average 3.4285714285714284) internal successors, (24), 6 states have internal predecessors, (24), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (6), 2 states have call predecessors, (6), 1 states have call successors, (6) [2022-04-15 10:38:03,077 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 36 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:38:03,077 INFO L554 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-04-15 10:38:03,077 INFO L100 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy ACCELERATED_INTERPOLATION [2022-04-15 10:38:03,078 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-04-15 10:38:03,078 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=66, Unknown=0, NotChecked=0, Total=90 [2022-04-15 10:38:03,078 INFO L87 Difference]: Start difference. First operand 72 states and 93 transitions. Second operand has 8 states, 7 states have (on average 3.4285714285714284) internal successors, (24), 6 states have internal predecessors, (24), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (6), 2 states have call predecessors, (6), 1 states have call successors, (6) [2022-04-15 10:38:05,666 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 2.00s for a HTC check with result UNKNOWN. Formula has sorts [Bool, Int], hasArrays=false, hasNonlinArith=true, quantifiers [] [2022-04-15 10:38:08,796 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:38:08,796 INFO L93 Difference]: Finished difference Result 72 states and 93 transitions. [2022-04-15 10:38:08,796 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-04-15 10:38:08,797 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 7 states have (on average 3.4285714285714284) internal successors, (24), 6 states have internal predecessors, (24), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (6), 2 states have call predecessors, (6), 1 states have call successors, (6) Word has length 62 [2022-04-15 10:38:08,797 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-04-15 10:38:08,797 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 7 states have (on average 3.4285714285714284) internal successors, (24), 6 states have internal predecessors, (24), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (6), 2 states have call predecessors, (6), 1 states have call successors, (6) [2022-04-15 10:38:08,798 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 38 transitions. [2022-04-15 10:38:08,798 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 7 states have (on average 3.4285714285714284) internal successors, (24), 6 states have internal predecessors, (24), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (6), 2 states have call predecessors, (6), 1 states have call successors, (6) [2022-04-15 10:38:08,798 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 38 transitions. [2022-04-15 10:38:08,798 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 8 states and 38 transitions. [2022-04-15 10:38:10,847 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 37 inductive. 0 not inductive. 1 times theorem prover too weak to decide inductivity. [2022-04-15 10:38:10,848 INFO L225 Difference]: With dead ends: 72 [2022-04-15 10:38:10,848 INFO L226 Difference]: Without dead ends: 0 [2022-04-15 10:38:10,848 INFO L912 BasicCegarLoop]: 0 DeclaredPredicates, 125 GetRequests, 114 SyntacticMatches, 1 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 14 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=37, Invalid=95, Unknown=0, NotChecked=0, Total=132 [2022-04-15 10:38:10,849 INFO L913 BasicCegarLoop]: 22 mSDtfsCounter, 9 mSDsluCounter, 71 mSDsCounter, 0 mSdLazyCounter, 69 mSolverCounterSat, 2 mSolverCounterUnsat, 1 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 4.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 9 SdHoareTripleChecker+Valid, 93 SdHoareTripleChecker+Invalid, 72 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 2 IncrementalHoareTripleChecker+Valid, 69 IncrementalHoareTripleChecker+Invalid, 1 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 4.1s IncrementalHoareTripleChecker+Time [2022-04-15 10:38:10,849 INFO L914 BasicCegarLoop]: SdHoareTripleChecker [9 Valid, 93 Invalid, 72 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [2 Valid, 69 Invalid, 1 Unknown, 0 Unchecked, 4.1s Time] [2022-04-15 10:38:10,849 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2022-04-15 10:38:10,850 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2022-04-15 10:38:10,850 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-04-15 10:38:10,850 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-15 10:38:10,850 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-15 10:38:10,850 INFO L87 Difference]: Start difference. First operand 0 states. Second operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-15 10:38:10,850 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:38:10,850 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-15 10:38:10,850 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-15 10:38:10,850 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:38:10,850 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:38:10,850 INFO L74 IsIncluded]: Start isIncluded. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 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) Second operand 0 states. [2022-04-15 10:38:10,850 INFO L87 Difference]: Start difference. First operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 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) Second operand 0 states. [2022-04-15 10:38:10,850 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-04-15 10:38:10,850 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-04-15 10:38:10,850 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-15 10:38:10,850 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:38:10,850 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-04-15 10:38:10,851 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-04-15 10:38:10,851 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-04-15 10:38:10,851 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 0 states, 0 states have (on average 0.0) internal successors, (0), 0 states have internal predecessors, (0), 0 states have call successors, (0), 0 states have call predecessors, (0), 0 states have return successors, (0), 0 states have call predecessors, (0), 0 states have call successors, (0) [2022-04-15 10:38:10,851 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2022-04-15 10:38:10,851 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 62 [2022-04-15 10:38:10,851 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-04-15 10:38:10,851 INFO L478 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2022-04-15 10:38:10,851 INFO L479 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 7 states have (on average 3.4285714285714284) internal successors, (24), 6 states have internal predecessors, (24), 2 states have call successors, (7), 2 states have call predecessors, (7), 2 states have return successors, (6), 2 states have call predecessors, (6), 1 states have call successors, (6) [2022-04-15 10:38:10,851 INFO L86 InductivityCheck]: Starting inductivity check of a Floyd-Hoare automaton with 0 states and 0 transitions. [2022-04-15 10:38:10,851 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 0 edges. 0 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-04-15 10:38:10,851 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-04-15 10:38:10,851 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-04-15 10:38:10,853 INFO L788 garLoopResultBuilder]: Registering result SAFE for location __VERIFIER_assertErr0ASSERT_VIOLATIONERROR_FUNCTION (0 of 1 remaining) [2022-04-15 10:38:10,872 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true (16)] Forceful destruction successful, exit code 0 [2022-04-15 10:38:11,067 WARN L460 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 16 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 -smt2 -in SMTLIB2_COMPLIANT=true,SelfDestructingSolverStorable15 [2022-04-15 10:38:11,069 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2022-04-15 10:38:33,386 WARN L232 SmtUtils]: Spent 13.67s on a formula simplification. DAG size of input: 165 DAG size of output: 162 (called from [L 182] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.or) [2022-04-15 10:38:45,062 WARN L232 SmtUtils]: Spent 7.56s on a formula simplification. DAG size of input: 156 DAG size of output: 155 (called from [L 182] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.or) [2022-04-15 10:38:59,754 WARN L232 SmtUtils]: Spent 14.58s on a formula simplification. DAG size of input: 171 DAG size of output: 169 (called from [L 182] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.or) [2022-04-15 10:39:10,865 WARN L232 SmtUtils]: Spent 11.07s on a formula simplification. DAG size of input: 139 DAG size of output: 28 (called from [L 149] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.combineInter) [2022-04-15 10:39:57,198 WARN L232 SmtUtils]: Spent 46.32s on a formula simplification. DAG size of input: 145 DAG size of output: 37 (called from [L 149] de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.HoareAnnotationComposer.combineInter)