./Ultimate.py --spec ../sv-benchmarks/c/properties/unreach-call.prp --file ../sv-benchmarks/c/float-newlib/float_req_bl_1251.c --full-output -ea --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version 03d7b7b3 Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/float-newlib/float_req_bl_1251.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash de540e539c3db6027c1fdb04fcc6cae02aafb8aa58950d31054b2b0b8391af6d --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 16:46:52,516 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 16:46:52,519 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 16:46:52,547 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 16:46:52,549 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 16:46:52,552 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 16:46:52,554 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 16:46:52,557 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 16:46:52,558 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 16:46:52,562 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 16:46:52,563 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 16:46:52,564 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 16:46:52,564 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 16:46:52,566 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 16:46:52,568 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 16:46:52,570 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 16:46:52,570 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 16:46:52,571 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 16:46:52,574 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 16:46:52,580 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 16:46:52,581 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 16:46:52,581 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 16:46:52,583 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 16:46:52,583 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 16:46:52,585 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 16:46:52,585 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 16:46:52,585 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 16:46:52,587 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 16:46:52,587 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 16:46:52,588 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 16:46:52,588 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 16:46:52,589 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 16:46:52,590 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 16:46:52,590 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 16:46:52,591 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 16:46:52,591 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 16:46:52,592 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 16:46:52,592 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 16:46:52,592 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 16:46:52,593 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 16:46:52,593 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 16:46:52,594 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Default.epf [2022-02-20 16:46:52,623 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 16:46:52,624 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 16:46:52,624 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 16:46:52,625 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 16:46:52,625 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 16:46:52,625 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 16:46:52,626 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 16:46:52,626 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 16:46:52,626 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 16:46:52,626 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 16:46:52,627 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 16:46:52,627 INFO L138 SettingsManager]: * Overapproximate operations on floating types=true [2022-02-20 16:46:52,627 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 16:46:52,627 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 16:46:52,628 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 16:46:52,628 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 16:46:52,628 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 16:46:52,628 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 16:46:52,628 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 16:46:52,628 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 16:46:52,628 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 16:46:52,628 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 16:46:52,629 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 16:46:52,629 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 16:46:52,629 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:46:52,629 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 16:46:52,629 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 16:46:52,629 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 16:46:52,630 INFO L138 SettingsManager]: * Trace refinement strategy=CAMEL [2022-02-20 16:46:52,630 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2022-02-20 16:46:52,630 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 16:46:52,630 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 16:46:52,630 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 16:46:52,630 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> de540e539c3db6027c1fdb04fcc6cae02aafb8aa58950d31054b2b0b8391af6d [2022-02-20 16:46:52,829 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 16:46:52,849 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 16:46:52,851 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 16:46:52,852 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 16:46:52,853 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 16:46:52,854 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/float-newlib/float_req_bl_1251.c [2022-02-20 16:46:52,901 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/381d7bc1d/48021ee2eba041cf9c78407ca4fe1583/FLAG06256dbd0 [2022-02-20 16:46:53,245 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 16:46:53,246 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c [2022-02-20 16:46:53,253 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/381d7bc1d/48021ee2eba041cf9c78407ca4fe1583/FLAG06256dbd0 [2022-02-20 16:46:53,676 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/381d7bc1d/48021ee2eba041cf9c78407ca4fe1583 [2022-02-20 16:46:53,677 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 16:46:53,678 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 16:46:53,679 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 16:46:53,679 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 16:46:53,684 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 16:46:53,685 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,685 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@67ba1d08 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53, skipping insertion in model container [2022-02-20 16:46:53,686 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,693 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 16:46:53,703 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 16:46:53,860 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c[1980,1993] [2022-02-20 16:46:53,863 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c[2139,2152] [2022-02-20 16:46:53,865 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:46:53,872 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 16:46:53,907 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c[1980,1993] [2022-02-20 16:46:53,914 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c[2139,2152] [2022-02-20 16:46:53,915 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:46:53,926 INFO L208 MainTranslator]: Completed translation [2022-02-20 16:46:53,927 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53 WrapperNode [2022-02-20 16:46:53,927 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 16:46:53,928 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 16:46:53,928 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 16:46:53,928 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 16:46:53,933 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,946 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,972 INFO L137 Inliner]: procedures = 18, calls = 22, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 107 [2022-02-20 16:46:53,973 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 16:46:53,974 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 16:46:53,974 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 16:46:53,974 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 16:46:53,980 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,980 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,989 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,990 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,993 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,996 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,997 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:53,998 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 16:46:53,999 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 16:46:53,999 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 16:46:53,999 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 16:46:54,000 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (1/1) ... [2022-02-20 16:46:54,008 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:46:54,016 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:46:54,026 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 16:46:54,032 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 16:46:54,053 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 16:46:54,053 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~int [2022-02-20 16:46:54,053 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-02-20 16:46:54,054 INFO L130 BoogieDeclarations]: Found specification of procedure __fpclassify_float [2022-02-20 16:46:54,054 INFO L138 BoogieDeclarations]: Found implementation of procedure __fpclassify_float [2022-02-20 16:46:54,054 INFO L130 BoogieDeclarations]: Found specification of procedure isnan_float [2022-02-20 16:46:54,054 INFO L138 BoogieDeclarations]: Found implementation of procedure isnan_float [2022-02-20 16:46:54,054 INFO L130 BoogieDeclarations]: Found specification of procedure write~real [2022-02-20 16:46:54,054 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 16:46:54,054 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 16:46:54,054 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2022-02-20 16:46:54,055 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 16:46:54,109 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 16:46:54,110 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 16:46:54,322 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 16:46:54,327 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 16:46:54,327 INFO L299 CfgBuilder]: Removed 2 assume(true) statements. [2022-02-20 16:46:54,328 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:46:54 BoogieIcfgContainer [2022-02-20 16:46:54,328 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 16:46:54,329 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 16:46:54,329 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 16:46:54,331 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 16:46:54,332 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 04:46:53" (1/3) ... [2022-02-20 16:46:54,332 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7370d3ef and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:46:54, skipping insertion in model container [2022-02-20 16:46:54,332 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:53" (2/3) ... [2022-02-20 16:46:54,333 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@7370d3ef and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:46:54, skipping insertion in model container [2022-02-20 16:46:54,333 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:46:54" (3/3) ... [2022-02-20 16:46:54,334 INFO L111 eAbstractionObserver]: Analyzing ICFG float_req_bl_1251.c [2022-02-20 16:46:54,337 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 16:46:54,342 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 2 error locations. [2022-02-20 16:46:54,383 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 16:46:54,396 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 16:46:54,396 INFO L340 AbstractCegarLoop]: Starting to check reachability of 2 error locations. [2022-02-20 16:46:54,415 INFO L276 IsEmpty]: Start isEmpty. Operand has 57 states, 42 states have (on average 1.4523809523809523) internal successors, (61), 44 states have internal predecessors, (61), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:46:54,420 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2022-02-20 16:46:54,420 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:46:54,421 INFO L514 BasicCegarLoop]: trace histogram [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, 1] [2022-02-20 16:46:54,421 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:46:54,425 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:46:54,425 INFO L85 PathProgramCache]: Analyzing trace with hash -625969503, now seen corresponding path program 1 times [2022-02-20 16:46:54,431 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:46:54,431 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1356635791] [2022-02-20 16:46:54,431 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:46:54,432 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:46:54,530 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:54,585 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:46:54,594 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:54,608 INFO L290 TraceCheckUtils]: 0: Hoare triple {60#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {60#true} is VALID [2022-02-20 16:46:54,609 INFO L290 TraceCheckUtils]: 1: Hoare triple {60#true} assume true; {60#true} is VALID [2022-02-20 16:46:54,609 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {60#true} {60#true} #131#return; {60#true} is VALID [2022-02-20 16:46:54,621 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 11 [2022-02-20 16:46:54,660 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:54,668 INFO L290 TraceCheckUtils]: 0: Hoare triple {75#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {60#true} is VALID [2022-02-20 16:46:54,669 INFO L290 TraceCheckUtils]: 1: Hoare triple {60#true} assume !true; {61#false} is VALID [2022-02-20 16:46:54,670 INFO L290 TraceCheckUtils]: 2: Hoare triple {61#false} assume 0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296;#res := 2; {61#false} is VALID [2022-02-20 16:46:54,670 INFO L290 TraceCheckUtils]: 3: Hoare triple {61#false} assume true; {61#false} is VALID [2022-02-20 16:46:54,670 INFO L284 TraceCheckUtils]: 4: Hoare quadruple {61#false} {61#false} #139#return; {61#false} is VALID [2022-02-20 16:46:54,671 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 20 [2022-02-20 16:46:54,673 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:54,676 INFO L290 TraceCheckUtils]: 0: Hoare triple {60#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {60#true} is VALID [2022-02-20 16:46:54,677 INFO L290 TraceCheckUtils]: 1: Hoare triple {60#true} assume true; {60#true} is VALID [2022-02-20 16:46:54,677 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {60#true} {61#false} #143#return; {61#false} is VALID [2022-02-20 16:46:54,677 INFO L290 TraceCheckUtils]: 0: Hoare triple {60#true} assume { :begin_inline_ULTIMATE.init } 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(20, 2);call #Ultimate.allocInit(12, 3); {60#true} is VALID [2022-02-20 16:46:54,677 INFO L290 TraceCheckUtils]: 1: Hoare triple {60#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {60#true} is VALID [2022-02-20 16:46:54,678 INFO L272 TraceCheckUtils]: 2: Hoare triple {60#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {60#true} is VALID [2022-02-20 16:46:54,678 INFO L290 TraceCheckUtils]: 3: Hoare triple {60#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {60#true} is VALID [2022-02-20 16:46:54,678 INFO L290 TraceCheckUtils]: 4: Hoare triple {60#true} assume true; {60#true} is VALID [2022-02-20 16:46:54,678 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {60#true} {60#true} #131#return; {60#true} is VALID [2022-02-20 16:46:54,678 INFO L290 TraceCheckUtils]: 6: Hoare triple {60#true} assume -2147483648 <= main_#t~ret10#1 && main_#t~ret10#1 <= 2147483647;main_#t~short12#1 := 0 != main_#t~ret10#1; {60#true} is VALID [2022-02-20 16:46:54,691 INFO L290 TraceCheckUtils]: 7: Hoare triple {60#true} assume !main_#t~short12#1; {65#(not |ULTIMATE.start_main_#t~short12#1|)} is VALID [2022-02-20 16:46:54,692 INFO L290 TraceCheckUtils]: 8: Hoare triple {65#(not |ULTIMATE.start_main_#t~short12#1|)} main_#t~short16#1 := main_#t~short12#1; {66#(not |ULTIMATE.start_main_#t~short16#1|)} is VALID [2022-02-20 16:46:54,693 INFO L290 TraceCheckUtils]: 9: Hoare triple {66#(not |ULTIMATE.start_main_#t~short16#1|)} assume main_#t~short16#1; {61#false} is VALID [2022-02-20 16:46:54,693 INFO L290 TraceCheckUtils]: 10: Hoare triple {61#false} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {61#false} is VALID [2022-02-20 16:46:54,694 INFO L272 TraceCheckUtils]: 11: Hoare triple {61#false} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {75#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:46:54,694 INFO L290 TraceCheckUtils]: 12: Hoare triple {75#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {60#true} is VALID [2022-02-20 16:46:54,695 INFO L290 TraceCheckUtils]: 13: Hoare triple {60#true} assume !true; {61#false} is VALID [2022-02-20 16:46:54,695 INFO L290 TraceCheckUtils]: 14: Hoare triple {61#false} assume 0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296;#res := 2; {61#false} is VALID [2022-02-20 16:46:54,696 INFO L290 TraceCheckUtils]: 15: Hoare triple {61#false} assume true; {61#false} is VALID [2022-02-20 16:46:54,696 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {61#false} {61#false} #139#return; {61#false} is VALID [2022-02-20 16:46:54,696 INFO L290 TraceCheckUtils]: 17: Hoare triple {61#false} assume -2147483648 <= fmax_float_#t~ret5#1 && fmax_float_#t~ret5#1 <= 2147483647; {61#false} is VALID [2022-02-20 16:46:54,696 INFO L290 TraceCheckUtils]: 18: Hoare triple {61#false} assume 0 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {61#false} is VALID [2022-02-20 16:46:54,697 INFO L290 TraceCheckUtils]: 19: Hoare triple {61#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {61#false} is VALID [2022-02-20 16:46:54,697 INFO L272 TraceCheckUtils]: 20: Hoare triple {61#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {60#true} is VALID [2022-02-20 16:46:54,697 INFO L290 TraceCheckUtils]: 21: Hoare triple {60#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {60#true} is VALID [2022-02-20 16:46:54,698 INFO L290 TraceCheckUtils]: 22: Hoare triple {60#true} assume true; {60#true} is VALID [2022-02-20 16:46:54,698 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {60#true} {61#false} #143#return; {61#false} is VALID [2022-02-20 16:46:54,698 INFO L290 TraceCheckUtils]: 24: Hoare triple {61#false} assume -2147483648 <= main_#t~ret18#1 && main_#t~ret18#1 <= 2147483647;main_#t~short20#1 := 0 != main_#t~ret18#1; {61#false} is VALID [2022-02-20 16:46:54,698 INFO L290 TraceCheckUtils]: 25: Hoare triple {61#false} assume !main_#t~short20#1; {61#false} is VALID [2022-02-20 16:46:54,698 INFO L290 TraceCheckUtils]: 26: Hoare triple {61#false} assume main_#t~short20#1 && ~someBinaryFLOATComparisonOperation(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {61#false} is VALID [2022-02-20 16:46:54,699 INFO L290 TraceCheckUtils]: 27: Hoare triple {61#false} assume !false; {61#false} is VALID [2022-02-20 16:46:54,700 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2022-02-20 16:46:54,700 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:46:54,700 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1356635791] [2022-02-20 16:46:54,701 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1356635791] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:46:54,701 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:46:54,702 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-02-20 16:46:54,705 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1626433276] [2022-02-20 16:46:54,705 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:46:54,710 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.0) internal successors, (20), 4 states have internal predecessors, (20), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 28 [2022-02-20 16:46:54,711 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:46:54,713 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 4.0) internal successors, (20), 4 states have internal predecessors, (20), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:46:54,743 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 26 edges. 26 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:54,744 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-02-20 16:46:54,744 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:46:54,761 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-02-20 16:46:54,762 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:46:54,764 INFO L87 Difference]: Start difference. First operand has 57 states, 42 states have (on average 1.4523809523809523) internal successors, (61), 44 states have internal predecessors, (61), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand has 5 states, 5 states have (on average 4.0) internal successors, (20), 4 states have internal predecessors, (20), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:46:55,104 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:55,104 INFO L93 Difference]: Finished difference Result 108 states and 156 transitions. [2022-02-20 16:46:55,105 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2022-02-20 16:46:55,105 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.0) internal successors, (20), 4 states have internal predecessors, (20), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 28 [2022-02-20 16:46:55,105 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:46:55,106 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.0) internal successors, (20), 4 states have internal predecessors, (20), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:46:55,121 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 156 transitions. [2022-02-20 16:46:55,122 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.0) internal successors, (20), 4 states have internal predecessors, (20), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:46:55,132 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 156 transitions. [2022-02-20 16:46:55,132 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 156 transitions. [2022-02-20 16:46:55,245 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 156 edges. 156 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:55,254 INFO L225 Difference]: With dead ends: 108 [2022-02-20 16:46:55,254 INFO L226 Difference]: Without dead ends: 62 [2022-02-20 16:46:55,257 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 8 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-02-20 16:46:55,261 INFO L933 BasicCegarLoop]: 78 mSDtfsCounter, 19 mSDsluCounter, 167 mSDsCounter, 0 mSdLazyCounter, 54 mSolverCounterSat, 17 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 21 SdHoareTripleChecker+Valid, 245 SdHoareTripleChecker+Invalid, 71 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 17 IncrementalHoareTripleChecker+Valid, 54 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 16:46:55,262 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [21 Valid, 245 Invalid, 71 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [17 Valid, 54 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 16:46:55,273 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 62 states. [2022-02-20 16:46:55,291 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 62 to 55. [2022-02-20 16:46:55,292 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:46:55,293 INFO L82 GeneralOperation]: Start isEquivalent. First operand 62 states. Second operand has 55 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:46:55,294 INFO L74 IsIncluded]: Start isIncluded. First operand 62 states. Second operand has 55 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:46:55,295 INFO L87 Difference]: Start difference. First operand 62 states. Second operand has 55 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:46:55,302 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:55,302 INFO L93 Difference]: Finished difference Result 62 states and 84 transitions. [2022-02-20 16:46:55,302 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 84 transitions. [2022-02-20 16:46:55,303 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:55,304 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:55,304 INFO L74 IsIncluded]: Start isIncluded. First operand has 55 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 62 states. [2022-02-20 16:46:55,305 INFO L87 Difference]: Start difference. First operand has 55 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 62 states. [2022-02-20 16:46:55,308 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:55,308 INFO L93 Difference]: Finished difference Result 62 states and 84 transitions. [2022-02-20 16:46:55,308 INFO L276 IsEmpty]: Start isEmpty. Operand 62 states and 84 transitions. [2022-02-20 16:46:55,309 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:55,309 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:55,309 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:46:55,309 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:46:55,310 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 55 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:46:55,312 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 74 transitions. [2022-02-20 16:46:55,313 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 74 transitions. Word has length 28 [2022-02-20 16:46:55,313 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:46:55,313 INFO L470 AbstractCegarLoop]: Abstraction has 55 states and 74 transitions. [2022-02-20 16:46:55,313 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 4.0) internal successors, (20), 4 states have internal predecessors, (20), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:46:55,313 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 74 transitions. [2022-02-20 16:46:55,314 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2022-02-20 16:46:55,314 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:46:55,314 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:46:55,315 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable0 [2022-02-20 16:46:55,315 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:46:55,320 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:46:55,320 INFO L85 PathProgramCache]: Analyzing trace with hash 716059, now seen corresponding path program 1 times [2022-02-20 16:46:55,320 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:46:55,320 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1774670203] [2022-02-20 16:46:55,321 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:46:55,321 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:46:55,352 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,382 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:46:55,383 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,386 INFO L290 TraceCheckUtils]: 0: Hoare triple {409#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {409#true} is VALID [2022-02-20 16:46:55,387 INFO L290 TraceCheckUtils]: 1: Hoare triple {409#true} assume true; {409#true} is VALID [2022-02-20 16:46:55,387 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {409#true} {409#true} #131#return; {409#true} is VALID [2022-02-20 16:46:55,387 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 16:46:55,388 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,390 INFO L290 TraceCheckUtils]: 0: Hoare triple {409#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {409#true} is VALID [2022-02-20 16:46:55,391 INFO L290 TraceCheckUtils]: 1: Hoare triple {409#true} assume true; {409#true} is VALID [2022-02-20 16:46:55,391 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {409#true} {409#true} #133#return; {409#true} is VALID [2022-02-20 16:46:55,397 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 16 [2022-02-20 16:46:55,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,424 INFO L290 TraceCheckUtils]: 0: Hoare triple {427#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {409#true} is VALID [2022-02-20 16:46:55,424 INFO L290 TraceCheckUtils]: 1: Hoare triple {409#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4);call write~real(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4);call #t~mem4 := read~int(~#gf_u~0.base, ~#gf_u~0.offset, 4);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {409#true} is VALID [2022-02-20 16:46:55,425 INFO L290 TraceCheckUtils]: 2: Hoare triple {409#true} goto; {409#true} is VALID [2022-02-20 16:46:55,425 INFO L290 TraceCheckUtils]: 3: Hoare triple {409#true} assume 0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296;#res := 2; {428#(and (<= |__fpclassify_float_#res| 2) (<= 2 |__fpclassify_float_#res|))} is VALID [2022-02-20 16:46:55,425 INFO L290 TraceCheckUtils]: 4: Hoare triple {428#(and (<= |__fpclassify_float_#res| 2) (<= 2 |__fpclassify_float_#res|))} assume true; {428#(and (<= |__fpclassify_float_#res| 2) (<= 2 |__fpclassify_float_#res|))} is VALID [2022-02-20 16:46:55,426 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {428#(and (<= |__fpclassify_float_#res| 2) (<= 2 |__fpclassify_float_#res|))} {409#true} #139#return; {423#(= (+ (- 2) |ULTIMATE.start_fmax_float_#t~ret5#1|) 0)} is VALID [2022-02-20 16:46:55,426 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 26 [2022-02-20 16:46:55,428 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,433 INFO L290 TraceCheckUtils]: 0: Hoare triple {409#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {409#true} is VALID [2022-02-20 16:46:55,433 INFO L290 TraceCheckUtils]: 1: Hoare triple {409#true} assume true; {409#true} is VALID [2022-02-20 16:46:55,433 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {409#true} {410#false} #143#return; {410#false} is VALID [2022-02-20 16:46:55,434 INFO L290 TraceCheckUtils]: 0: Hoare triple {409#true} assume { :begin_inline_ULTIMATE.init } 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(20, 2);call #Ultimate.allocInit(12, 3); {409#true} is VALID [2022-02-20 16:46:55,434 INFO L290 TraceCheckUtils]: 1: Hoare triple {409#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {409#true} is VALID [2022-02-20 16:46:55,434 INFO L272 TraceCheckUtils]: 2: Hoare triple {409#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {409#true} is VALID [2022-02-20 16:46:55,434 INFO L290 TraceCheckUtils]: 3: Hoare triple {409#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {409#true} is VALID [2022-02-20 16:46:55,434 INFO L290 TraceCheckUtils]: 4: Hoare triple {409#true} assume true; {409#true} is VALID [2022-02-20 16:46:55,435 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {409#true} {409#true} #131#return; {409#true} is VALID [2022-02-20 16:46:55,435 INFO L290 TraceCheckUtils]: 6: Hoare triple {409#true} assume -2147483648 <= main_#t~ret10#1 && main_#t~ret10#1 <= 2147483647;main_#t~short12#1 := 0 != main_#t~ret10#1; {409#true} is VALID [2022-02-20 16:46:55,435 INFO L290 TraceCheckUtils]: 7: Hoare triple {409#true} assume main_#t~short12#1; {409#true} is VALID [2022-02-20 16:46:55,435 INFO L272 TraceCheckUtils]: 8: Hoare triple {409#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {409#true} is VALID [2022-02-20 16:46:55,435 INFO L290 TraceCheckUtils]: 9: Hoare triple {409#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {409#true} is VALID [2022-02-20 16:46:55,435 INFO L290 TraceCheckUtils]: 10: Hoare triple {409#true} assume true; {409#true} is VALID [2022-02-20 16:46:55,435 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {409#true} {409#true} #133#return; {409#true} is VALID [2022-02-20 16:46:55,436 INFO L290 TraceCheckUtils]: 12: Hoare triple {409#true} assume -2147483648 <= main_#t~ret11#1 && main_#t~ret11#1 <= 2147483647;main_#t~short12#1 := 0 == main_#t~ret11#1; {409#true} is VALID [2022-02-20 16:46:55,436 INFO L290 TraceCheckUtils]: 13: Hoare triple {409#true} main_#t~short16#1 := main_#t~short12#1; {409#true} is VALID [2022-02-20 16:46:55,436 INFO L290 TraceCheckUtils]: 14: Hoare triple {409#true} assume main_#t~short16#1; {409#true} is VALID [2022-02-20 16:46:55,436 INFO L290 TraceCheckUtils]: 15: Hoare triple {409#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {409#true} is VALID [2022-02-20 16:46:55,437 INFO L272 TraceCheckUtils]: 16: Hoare triple {409#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {427#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:46:55,437 INFO L290 TraceCheckUtils]: 17: Hoare triple {427#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {409#true} is VALID [2022-02-20 16:46:55,437 INFO L290 TraceCheckUtils]: 18: Hoare triple {409#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4);call write~real(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4);call #t~mem4 := read~int(~#gf_u~0.base, ~#gf_u~0.offset, 4);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {409#true} is VALID [2022-02-20 16:46:55,438 INFO L290 TraceCheckUtils]: 19: Hoare triple {409#true} goto; {409#true} is VALID [2022-02-20 16:46:55,438 INFO L290 TraceCheckUtils]: 20: Hoare triple {409#true} assume 0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296;#res := 2; {428#(and (<= |__fpclassify_float_#res| 2) (<= 2 |__fpclassify_float_#res|))} is VALID [2022-02-20 16:46:55,438 INFO L290 TraceCheckUtils]: 21: Hoare triple {428#(and (<= |__fpclassify_float_#res| 2) (<= 2 |__fpclassify_float_#res|))} assume true; {428#(and (<= |__fpclassify_float_#res| 2) (<= 2 |__fpclassify_float_#res|))} is VALID [2022-02-20 16:46:55,439 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {428#(and (<= |__fpclassify_float_#res| 2) (<= 2 |__fpclassify_float_#res|))} {409#true} #139#return; {423#(= (+ (- 2) |ULTIMATE.start_fmax_float_#t~ret5#1|) 0)} is VALID [2022-02-20 16:46:55,440 INFO L290 TraceCheckUtils]: 23: Hoare triple {423#(= (+ (- 2) |ULTIMATE.start_fmax_float_#t~ret5#1|) 0)} assume -2147483648 <= fmax_float_#t~ret5#1 && fmax_float_#t~ret5#1 <= 2147483647; {423#(= (+ (- 2) |ULTIMATE.start_fmax_float_#t~ret5#1|) 0)} is VALID [2022-02-20 16:46:55,440 INFO L290 TraceCheckUtils]: 24: Hoare triple {423#(= (+ (- 2) |ULTIMATE.start_fmax_float_#t~ret5#1|) 0)} assume 0 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {410#false} is VALID [2022-02-20 16:46:55,440 INFO L290 TraceCheckUtils]: 25: Hoare triple {410#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {410#false} is VALID [2022-02-20 16:46:55,440 INFO L272 TraceCheckUtils]: 26: Hoare triple {410#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {409#true} is VALID [2022-02-20 16:46:55,441 INFO L290 TraceCheckUtils]: 27: Hoare triple {409#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {409#true} is VALID [2022-02-20 16:46:55,441 INFO L290 TraceCheckUtils]: 28: Hoare triple {409#true} assume true; {409#true} is VALID [2022-02-20 16:46:55,441 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {409#true} {410#false} #143#return; {410#false} is VALID [2022-02-20 16:46:55,441 INFO L290 TraceCheckUtils]: 30: Hoare triple {410#false} assume -2147483648 <= main_#t~ret18#1 && main_#t~ret18#1 <= 2147483647;main_#t~short20#1 := 0 != main_#t~ret18#1; {410#false} is VALID [2022-02-20 16:46:55,441 INFO L290 TraceCheckUtils]: 31: Hoare triple {410#false} assume !main_#t~short20#1; {410#false} is VALID [2022-02-20 16:46:55,441 INFO L290 TraceCheckUtils]: 32: Hoare triple {410#false} assume main_#t~short20#1 && ~someBinaryFLOATComparisonOperation(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {410#false} is VALID [2022-02-20 16:46:55,442 INFO L290 TraceCheckUtils]: 33: Hoare triple {410#false} assume !false; {410#false} is VALID [2022-02-20 16:46:55,442 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-02-20 16:46:55,442 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:46:55,442 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1774670203] [2022-02-20 16:46:55,442 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1774670203] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:46:55,443 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:46:55,443 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-02-20 16:46:55,443 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [281085938] [2022-02-20 16:46:55,443 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:46:55,444 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.4) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 34 [2022-02-20 16:46:55,444 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:46:55,445 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 4.4) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:55,463 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 30 edges. 30 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:55,464 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-02-20 16:46:55,464 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:46:55,464 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-02-20 16:46:55,464 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:46:55,465 INFO L87 Difference]: Start difference. First operand 55 states and 74 transitions. Second operand has 5 states, 5 states have (on average 4.4) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:55,672 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:55,673 INFO L93 Difference]: Finished difference Result 79 states and 104 transitions. [2022-02-20 16:46:55,673 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-02-20 16:46:55,673 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.4) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 34 [2022-02-20 16:46:55,673 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:46:55,673 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.4) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:55,676 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 102 transitions. [2022-02-20 16:46:55,676 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.4) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:55,678 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 102 transitions. [2022-02-20 16:46:55,678 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 102 transitions. [2022-02-20 16:46:55,755 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 102 edges. 102 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:55,757 INFO L225 Difference]: With dead ends: 79 [2022-02-20 16:46:55,757 INFO L226 Difference]: Without dead ends: 59 [2022-02-20 16:46:55,758 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:46:55,759 INFO L933 BasicCegarLoop]: 69 mSDtfsCounter, 3 mSDsluCounter, 158 mSDsCounter, 0 mSdLazyCounter, 47 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 3 SdHoareTripleChecker+Valid, 227 SdHoareTripleChecker+Invalid, 56 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 47 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:46:55,760 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [3 Valid, 227 Invalid, 56 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 47 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:46:55,761 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2022-02-20 16:46:55,764 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 59. [2022-02-20 16:46:55,764 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:46:55,765 INFO L82 GeneralOperation]: Start isEquivalent. First operand 59 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:55,765 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:55,765 INFO L87 Difference]: Start difference. First operand 59 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:55,768 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:55,768 INFO L93 Difference]: Finished difference Result 59 states and 79 transitions. [2022-02-20 16:46:55,768 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 79 transitions. [2022-02-20 16:46:55,769 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:55,769 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:55,769 INFO L74 IsIncluded]: Start isIncluded. First operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 59 states. [2022-02-20 16:46:55,769 INFO L87 Difference]: Start difference. First operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 59 states. [2022-02-20 16:46:55,773 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:55,773 INFO L93 Difference]: Finished difference Result 59 states and 79 transitions. [2022-02-20 16:46:55,774 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 79 transitions. [2022-02-20 16:46:55,774 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:55,774 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:55,774 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:46:55,774 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:46:55,775 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:55,777 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 79 transitions. [2022-02-20 16:46:55,777 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 79 transitions. Word has length 34 [2022-02-20 16:46:55,777 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:46:55,777 INFO L470 AbstractCegarLoop]: Abstraction has 59 states and 79 transitions. [2022-02-20 16:46:55,778 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 4.4) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:55,778 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 79 transitions. [2022-02-20 16:46:55,778 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2022-02-20 16:46:55,778 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:46:55,779 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:46:55,779 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable1 [2022-02-20 16:46:55,779 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:46:55,783 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:46:55,783 INFO L85 PathProgramCache]: Analyzing trace with hash 840977401, now seen corresponding path program 1 times [2022-02-20 16:46:55,784 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:46:55,784 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1305761501] [2022-02-20 16:46:55,784 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:46:55,784 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:46:55,820 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,865 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:46:55,867 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,871 INFO L290 TraceCheckUtils]: 0: Hoare triple {721#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {721#true} is VALID [2022-02-20 16:46:55,871 INFO L290 TraceCheckUtils]: 1: Hoare triple {721#true} assume true; {721#true} is VALID [2022-02-20 16:46:55,871 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {721#true} {721#true} #131#return; {721#true} is VALID [2022-02-20 16:46:55,871 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 16:46:55,872 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,879 INFO L290 TraceCheckUtils]: 0: Hoare triple {721#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {721#true} is VALID [2022-02-20 16:46:55,879 INFO L290 TraceCheckUtils]: 1: Hoare triple {721#true} assume true; {721#true} is VALID [2022-02-20 16:46:55,879 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {721#true} {721#true} #133#return; {721#true} is VALID [2022-02-20 16:46:55,885 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 16 [2022-02-20 16:46:55,896 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,916 INFO L290 TraceCheckUtils]: 0: Hoare triple {740#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {721#true} is VALID [2022-02-20 16:46:55,916 INFO L290 TraceCheckUtils]: 1: Hoare triple {721#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4);call write~real(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4);call #t~mem4 := read~int(~#gf_u~0.base, ~#gf_u~0.offset, 4);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {721#true} is VALID [2022-02-20 16:46:55,916 INFO L290 TraceCheckUtils]: 2: Hoare triple {721#true} goto; {721#true} is VALID [2022-02-20 16:46:55,916 INFO L290 TraceCheckUtils]: 3: Hoare triple {721#true} assume !(0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296); {721#true} is VALID [2022-02-20 16:46:55,917 INFO L290 TraceCheckUtils]: 4: Hoare triple {721#true} assume (~w~0 % 4294967296 >= 8388608 && ~w~0 % 4294967296 <= 2139095039) || (~w~0 % 4294967296 >= 2155872256 && ~w~0 % 4294967296 <= 4286578687);#res := 4; {741#(= |__fpclassify_float_#res| 4)} is VALID [2022-02-20 16:46:55,917 INFO L290 TraceCheckUtils]: 5: Hoare triple {741#(= |__fpclassify_float_#res| 4)} assume true; {741#(= |__fpclassify_float_#res| 4)} is VALID [2022-02-20 16:46:55,918 INFO L284 TraceCheckUtils]: 6: Hoare quadruple {741#(= |__fpclassify_float_#res| 4)} {721#true} #139#return; {736#(<= 4 |ULTIMATE.start_fmax_float_#t~ret5#1|)} is VALID [2022-02-20 16:46:55,918 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 27 [2022-02-20 16:46:55,920 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:55,922 INFO L290 TraceCheckUtils]: 0: Hoare triple {721#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {721#true} is VALID [2022-02-20 16:46:55,922 INFO L290 TraceCheckUtils]: 1: Hoare triple {721#true} assume true; {721#true} is VALID [2022-02-20 16:46:55,922 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {721#true} {722#false} #143#return; {722#false} is VALID [2022-02-20 16:46:55,922 INFO L290 TraceCheckUtils]: 0: Hoare triple {721#true} assume { :begin_inline_ULTIMATE.init } 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(20, 2);call #Ultimate.allocInit(12, 3); {721#true} is VALID [2022-02-20 16:46:55,923 INFO L290 TraceCheckUtils]: 1: Hoare triple {721#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {721#true} is VALID [2022-02-20 16:46:55,923 INFO L272 TraceCheckUtils]: 2: Hoare triple {721#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {721#true} is VALID [2022-02-20 16:46:55,923 INFO L290 TraceCheckUtils]: 3: Hoare triple {721#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {721#true} is VALID [2022-02-20 16:46:55,923 INFO L290 TraceCheckUtils]: 4: Hoare triple {721#true} assume true; {721#true} is VALID [2022-02-20 16:46:55,923 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {721#true} {721#true} #131#return; {721#true} is VALID [2022-02-20 16:46:55,923 INFO L290 TraceCheckUtils]: 6: Hoare triple {721#true} assume -2147483648 <= main_#t~ret10#1 && main_#t~ret10#1 <= 2147483647;main_#t~short12#1 := 0 != main_#t~ret10#1; {721#true} is VALID [2022-02-20 16:46:55,924 INFO L290 TraceCheckUtils]: 7: Hoare triple {721#true} assume main_#t~short12#1; {721#true} is VALID [2022-02-20 16:46:55,924 INFO L272 TraceCheckUtils]: 8: Hoare triple {721#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {721#true} is VALID [2022-02-20 16:46:55,924 INFO L290 TraceCheckUtils]: 9: Hoare triple {721#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {721#true} is VALID [2022-02-20 16:46:55,924 INFO L290 TraceCheckUtils]: 10: Hoare triple {721#true} assume true; {721#true} is VALID [2022-02-20 16:46:55,924 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {721#true} {721#true} #133#return; {721#true} is VALID [2022-02-20 16:46:55,924 INFO L290 TraceCheckUtils]: 12: Hoare triple {721#true} assume -2147483648 <= main_#t~ret11#1 && main_#t~ret11#1 <= 2147483647;main_#t~short12#1 := 0 == main_#t~ret11#1; {721#true} is VALID [2022-02-20 16:46:55,925 INFO L290 TraceCheckUtils]: 13: Hoare triple {721#true} main_#t~short16#1 := main_#t~short12#1; {721#true} is VALID [2022-02-20 16:46:55,925 INFO L290 TraceCheckUtils]: 14: Hoare triple {721#true} assume main_#t~short16#1; {721#true} is VALID [2022-02-20 16:46:55,925 INFO L290 TraceCheckUtils]: 15: Hoare triple {721#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {721#true} is VALID [2022-02-20 16:46:55,926 INFO L272 TraceCheckUtils]: 16: Hoare triple {721#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {740#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:46:55,926 INFO L290 TraceCheckUtils]: 17: Hoare triple {740#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {721#true} is VALID [2022-02-20 16:46:55,926 INFO L290 TraceCheckUtils]: 18: Hoare triple {721#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4);call write~real(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4);call #t~mem4 := read~int(~#gf_u~0.base, ~#gf_u~0.offset, 4);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {721#true} is VALID [2022-02-20 16:46:55,926 INFO L290 TraceCheckUtils]: 19: Hoare triple {721#true} goto; {721#true} is VALID [2022-02-20 16:46:55,926 INFO L290 TraceCheckUtils]: 20: Hoare triple {721#true} assume !(0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296); {721#true} is VALID [2022-02-20 16:46:55,926 INFO L290 TraceCheckUtils]: 21: Hoare triple {721#true} assume (~w~0 % 4294967296 >= 8388608 && ~w~0 % 4294967296 <= 2139095039) || (~w~0 % 4294967296 >= 2155872256 && ~w~0 % 4294967296 <= 4286578687);#res := 4; {741#(= |__fpclassify_float_#res| 4)} is VALID [2022-02-20 16:46:55,927 INFO L290 TraceCheckUtils]: 22: Hoare triple {741#(= |__fpclassify_float_#res| 4)} assume true; {741#(= |__fpclassify_float_#res| 4)} is VALID [2022-02-20 16:46:55,927 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {741#(= |__fpclassify_float_#res| 4)} {721#true} #139#return; {736#(<= 4 |ULTIMATE.start_fmax_float_#t~ret5#1|)} is VALID [2022-02-20 16:46:55,928 INFO L290 TraceCheckUtils]: 24: Hoare triple {736#(<= 4 |ULTIMATE.start_fmax_float_#t~ret5#1|)} assume -2147483648 <= fmax_float_#t~ret5#1 && fmax_float_#t~ret5#1 <= 2147483647; {736#(<= 4 |ULTIMATE.start_fmax_float_#t~ret5#1|)} is VALID [2022-02-20 16:46:55,928 INFO L290 TraceCheckUtils]: 25: Hoare triple {736#(<= 4 |ULTIMATE.start_fmax_float_#t~ret5#1|)} assume 0 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {722#false} is VALID [2022-02-20 16:46:55,928 INFO L290 TraceCheckUtils]: 26: Hoare triple {722#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {722#false} is VALID [2022-02-20 16:46:55,928 INFO L272 TraceCheckUtils]: 27: Hoare triple {722#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {721#true} is VALID [2022-02-20 16:46:55,929 INFO L290 TraceCheckUtils]: 28: Hoare triple {721#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {721#true} is VALID [2022-02-20 16:46:55,929 INFO L290 TraceCheckUtils]: 29: Hoare triple {721#true} assume true; {721#true} is VALID [2022-02-20 16:46:55,929 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {721#true} {722#false} #143#return; {722#false} is VALID [2022-02-20 16:46:55,929 INFO L290 TraceCheckUtils]: 31: Hoare triple {722#false} assume -2147483648 <= main_#t~ret18#1 && main_#t~ret18#1 <= 2147483647;main_#t~short20#1 := 0 != main_#t~ret18#1; {722#false} is VALID [2022-02-20 16:46:55,929 INFO L290 TraceCheckUtils]: 32: Hoare triple {722#false} assume !main_#t~short20#1; {722#false} is VALID [2022-02-20 16:46:55,929 INFO L290 TraceCheckUtils]: 33: Hoare triple {722#false} assume main_#t~short20#1 && ~someBinaryFLOATComparisonOperation(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {722#false} is VALID [2022-02-20 16:46:55,929 INFO L290 TraceCheckUtils]: 34: Hoare triple {722#false} assume !false; {722#false} is VALID [2022-02-20 16:46:55,930 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-02-20 16:46:55,930 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:46:55,930 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [1305761501] [2022-02-20 16:46:55,930 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [1305761501] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:46:55,930 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:46:55,930 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-02-20 16:46:55,930 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [569675081] [2022-02-20 16:46:55,931 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:46:55,931 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.6) internal successors, (23), 4 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 35 [2022-02-20 16:46:55,932 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:46:55,932 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 4.6) internal successors, (23), 4 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:55,950 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 31 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:55,950 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-02-20 16:46:55,950 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:46:55,951 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-02-20 16:46:55,951 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:46:55,951 INFO L87 Difference]: Start difference. First operand 59 states and 79 transitions. Second operand has 5 states, 5 states have (on average 4.6) internal successors, (23), 4 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,151 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:56,152 INFO L93 Difference]: Finished difference Result 83 states and 109 transitions. [2022-02-20 16:46:56,152 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-02-20 16:46:56,152 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.6) internal successors, (23), 4 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 35 [2022-02-20 16:46:56,152 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:46:56,153 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.6) internal successors, (23), 4 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,166 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 102 transitions. [2022-02-20 16:46:56,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.6) internal successors, (23), 4 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,173 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 102 transitions. [2022-02-20 16:46:56,176 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 102 transitions. [2022-02-20 16:46:56,238 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 102 edges. 102 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:56,239 INFO L225 Difference]: With dead ends: 83 [2022-02-20 16:46:56,239 INFO L226 Difference]: Without dead ends: 63 [2022-02-20 16:46:56,240 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:46:56,241 INFO L933 BasicCegarLoop]: 74 mSDtfsCounter, 3 mSDsluCounter, 169 mSDsCounter, 0 mSdLazyCounter, 48 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 3 SdHoareTripleChecker+Valid, 243 SdHoareTripleChecker+Invalid, 57 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 48 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:46:56,241 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [3 Valid, 243 Invalid, 57 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 48 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:46:56,242 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 63 states. [2022-02-20 16:46:56,247 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 63 to 59. [2022-02-20 16:46:56,247 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:46:56,247 INFO L82 GeneralOperation]: Start isEquivalent. First operand 63 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:56,247 INFO L74 IsIncluded]: Start isIncluded. First operand 63 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:56,248 INFO L87 Difference]: Start difference. First operand 63 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:56,250 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:56,250 INFO L93 Difference]: Finished difference Result 63 states and 84 transitions. [2022-02-20 16:46:56,250 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 84 transitions. [2022-02-20 16:46:56,251 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:56,251 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:56,251 INFO L74 IsIncluded]: Start isIncluded. First operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 63 states. [2022-02-20 16:46:56,251 INFO L87 Difference]: Start difference. First operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 63 states. [2022-02-20 16:46:56,253 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:56,253 INFO L93 Difference]: Finished difference Result 63 states and 84 transitions. [2022-02-20 16:46:56,254 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 84 transitions. [2022-02-20 16:46:56,254 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:56,254 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:56,254 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:46:56,254 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:46:56,254 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:56,256 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 79 transitions. [2022-02-20 16:46:56,256 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 79 transitions. Word has length 35 [2022-02-20 16:46:56,256 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:46:56,256 INFO L470 AbstractCegarLoop]: Abstraction has 59 states and 79 transitions. [2022-02-20 16:46:56,257 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 4.6) internal successors, (23), 4 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,257 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 79 transitions. [2022-02-20 16:46:56,257 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2022-02-20 16:46:56,257 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:46:56,258 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:46:56,258 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable2 [2022-02-20 16:46:56,258 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:46:56,258 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:46:56,258 INFO L85 PathProgramCache]: Analyzing trace with hash -902959273, now seen corresponding path program 1 times [2022-02-20 16:46:56,258 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:46:56,259 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [416570574] [2022-02-20 16:46:56,259 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:46:56,259 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:46:56,287 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,304 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:46:56,305 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,310 INFO L290 TraceCheckUtils]: 0: Hoare triple {1046#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1046#true} is VALID [2022-02-20 16:46:56,310 INFO L290 TraceCheckUtils]: 1: Hoare triple {1046#true} assume true; {1046#true} is VALID [2022-02-20 16:46:56,310 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1046#true} {1046#true} #131#return; {1046#true} is VALID [2022-02-20 16:46:56,311 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 16:46:56,311 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,324 INFO L290 TraceCheckUtils]: 0: Hoare triple {1046#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1046#true} is VALID [2022-02-20 16:46:56,324 INFO L290 TraceCheckUtils]: 1: Hoare triple {1046#true} assume true; {1046#true} is VALID [2022-02-20 16:46:56,324 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1046#true} {1046#true} #133#return; {1046#true} is VALID [2022-02-20 16:46:56,330 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 16 [2022-02-20 16:46:56,341 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,369 INFO L290 TraceCheckUtils]: 0: Hoare triple {1066#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {1046#true} is VALID [2022-02-20 16:46:56,369 INFO L290 TraceCheckUtils]: 1: Hoare triple {1046#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4);call write~real(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4);call #t~mem4 := read~int(~#gf_u~0.base, ~#gf_u~0.offset, 4);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {1046#true} is VALID [2022-02-20 16:46:56,369 INFO L290 TraceCheckUtils]: 2: Hoare triple {1046#true} goto; {1046#true} is VALID [2022-02-20 16:46:56,370 INFO L290 TraceCheckUtils]: 3: Hoare triple {1046#true} assume !(0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296); {1046#true} is VALID [2022-02-20 16:46:56,370 INFO L290 TraceCheckUtils]: 4: Hoare triple {1046#true} assume !((~w~0 % 4294967296 >= 8388608 && ~w~0 % 4294967296 <= 2139095039) || (~w~0 % 4294967296 >= 2155872256 && ~w~0 % 4294967296 <= 4286578687)); {1046#true} is VALID [2022-02-20 16:46:56,370 INFO L290 TraceCheckUtils]: 5: Hoare triple {1046#true} assume (~w~0 % 4294967296 >= 1 && ~w~0 % 4294967296 <= 8388607) || (~w~0 % 4294967296 >= 2147483649 && ~w~0 % 4294967296 <= 2155872255);#res := 3; {1067#(and (<= 3 |__fpclassify_float_#res|) (<= |__fpclassify_float_#res| 3))} is VALID [2022-02-20 16:46:56,371 INFO L290 TraceCheckUtils]: 6: Hoare triple {1067#(and (<= 3 |__fpclassify_float_#res|) (<= |__fpclassify_float_#res| 3))} assume true; {1067#(and (<= 3 |__fpclassify_float_#res|) (<= |__fpclassify_float_#res| 3))} is VALID [2022-02-20 16:46:56,372 INFO L284 TraceCheckUtils]: 7: Hoare quadruple {1067#(and (<= 3 |__fpclassify_float_#res|) (<= |__fpclassify_float_#res| 3))} {1046#true} #139#return; {1062#(= 0 (+ (- 3) |ULTIMATE.start_fmax_float_#t~ret5#1|))} is VALID [2022-02-20 16:46:56,372 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 28 [2022-02-20 16:46:56,375 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,377 INFO L290 TraceCheckUtils]: 0: Hoare triple {1046#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1046#true} is VALID [2022-02-20 16:46:56,377 INFO L290 TraceCheckUtils]: 1: Hoare triple {1046#true} assume true; {1046#true} is VALID [2022-02-20 16:46:56,377 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1046#true} {1047#false} #143#return; {1047#false} is VALID [2022-02-20 16:46:56,378 INFO L290 TraceCheckUtils]: 0: Hoare triple {1046#true} assume { :begin_inline_ULTIMATE.init } 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(20, 2);call #Ultimate.allocInit(12, 3); {1046#true} is VALID [2022-02-20 16:46:56,378 INFO L290 TraceCheckUtils]: 1: Hoare triple {1046#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {1046#true} is VALID [2022-02-20 16:46:56,378 INFO L272 TraceCheckUtils]: 2: Hoare triple {1046#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {1046#true} is VALID [2022-02-20 16:46:56,378 INFO L290 TraceCheckUtils]: 3: Hoare triple {1046#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1046#true} is VALID [2022-02-20 16:46:56,378 INFO L290 TraceCheckUtils]: 4: Hoare triple {1046#true} assume true; {1046#true} is VALID [2022-02-20 16:46:56,378 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1046#true} {1046#true} #131#return; {1046#true} is VALID [2022-02-20 16:46:56,378 INFO L290 TraceCheckUtils]: 6: Hoare triple {1046#true} assume -2147483648 <= main_#t~ret10#1 && main_#t~ret10#1 <= 2147483647;main_#t~short12#1 := 0 != main_#t~ret10#1; {1046#true} is VALID [2022-02-20 16:46:56,379 INFO L290 TraceCheckUtils]: 7: Hoare triple {1046#true} assume main_#t~short12#1; {1046#true} is VALID [2022-02-20 16:46:56,379 INFO L272 TraceCheckUtils]: 8: Hoare triple {1046#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {1046#true} is VALID [2022-02-20 16:46:56,379 INFO L290 TraceCheckUtils]: 9: Hoare triple {1046#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1046#true} is VALID [2022-02-20 16:46:56,379 INFO L290 TraceCheckUtils]: 10: Hoare triple {1046#true} assume true; {1046#true} is VALID [2022-02-20 16:46:56,379 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1046#true} {1046#true} #133#return; {1046#true} is VALID [2022-02-20 16:46:56,379 INFO L290 TraceCheckUtils]: 12: Hoare triple {1046#true} assume -2147483648 <= main_#t~ret11#1 && main_#t~ret11#1 <= 2147483647;main_#t~short12#1 := 0 == main_#t~ret11#1; {1046#true} is VALID [2022-02-20 16:46:56,380 INFO L290 TraceCheckUtils]: 13: Hoare triple {1046#true} main_#t~short16#1 := main_#t~short12#1; {1046#true} is VALID [2022-02-20 16:46:56,391 INFO L290 TraceCheckUtils]: 14: Hoare triple {1046#true} assume main_#t~short16#1; {1046#true} is VALID [2022-02-20 16:46:56,391 INFO L290 TraceCheckUtils]: 15: Hoare triple {1046#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {1046#true} is VALID [2022-02-20 16:46:56,392 INFO L272 TraceCheckUtils]: 16: Hoare triple {1046#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {1066#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:46:56,392 INFO L290 TraceCheckUtils]: 17: Hoare triple {1066#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {1046#true} is VALID [2022-02-20 16:46:56,392 INFO L290 TraceCheckUtils]: 18: Hoare triple {1046#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4);call write~real(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4);call #t~mem4 := read~int(~#gf_u~0.base, ~#gf_u~0.offset, 4);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {1046#true} is VALID [2022-02-20 16:46:56,393 INFO L290 TraceCheckUtils]: 19: Hoare triple {1046#true} goto; {1046#true} is VALID [2022-02-20 16:46:56,393 INFO L290 TraceCheckUtils]: 20: Hoare triple {1046#true} assume !(0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296); {1046#true} is VALID [2022-02-20 16:46:56,393 INFO L290 TraceCheckUtils]: 21: Hoare triple {1046#true} assume !((~w~0 % 4294967296 >= 8388608 && ~w~0 % 4294967296 <= 2139095039) || (~w~0 % 4294967296 >= 2155872256 && ~w~0 % 4294967296 <= 4286578687)); {1046#true} is VALID [2022-02-20 16:46:56,394 INFO L290 TraceCheckUtils]: 22: Hoare triple {1046#true} assume (~w~0 % 4294967296 >= 1 && ~w~0 % 4294967296 <= 8388607) || (~w~0 % 4294967296 >= 2147483649 && ~w~0 % 4294967296 <= 2155872255);#res := 3; {1067#(and (<= 3 |__fpclassify_float_#res|) (<= |__fpclassify_float_#res| 3))} is VALID [2022-02-20 16:46:56,395 INFO L290 TraceCheckUtils]: 23: Hoare triple {1067#(and (<= 3 |__fpclassify_float_#res|) (<= |__fpclassify_float_#res| 3))} assume true; {1067#(and (<= 3 |__fpclassify_float_#res|) (<= |__fpclassify_float_#res| 3))} is VALID [2022-02-20 16:46:56,396 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {1067#(and (<= 3 |__fpclassify_float_#res|) (<= |__fpclassify_float_#res| 3))} {1046#true} #139#return; {1062#(= 0 (+ (- 3) |ULTIMATE.start_fmax_float_#t~ret5#1|))} is VALID [2022-02-20 16:46:56,396 INFO L290 TraceCheckUtils]: 25: Hoare triple {1062#(= 0 (+ (- 3) |ULTIMATE.start_fmax_float_#t~ret5#1|))} assume -2147483648 <= fmax_float_#t~ret5#1 && fmax_float_#t~ret5#1 <= 2147483647; {1062#(= 0 (+ (- 3) |ULTIMATE.start_fmax_float_#t~ret5#1|))} is VALID [2022-02-20 16:46:56,398 INFO L290 TraceCheckUtils]: 26: Hoare triple {1062#(= 0 (+ (- 3) |ULTIMATE.start_fmax_float_#t~ret5#1|))} assume 0 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {1047#false} is VALID [2022-02-20 16:46:56,398 INFO L290 TraceCheckUtils]: 27: Hoare triple {1047#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {1047#false} is VALID [2022-02-20 16:46:56,398 INFO L272 TraceCheckUtils]: 28: Hoare triple {1047#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {1046#true} is VALID [2022-02-20 16:46:56,398 INFO L290 TraceCheckUtils]: 29: Hoare triple {1046#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1046#true} is VALID [2022-02-20 16:46:56,398 INFO L290 TraceCheckUtils]: 30: Hoare triple {1046#true} assume true; {1046#true} is VALID [2022-02-20 16:46:56,399 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {1046#true} {1047#false} #143#return; {1047#false} is VALID [2022-02-20 16:46:56,399 INFO L290 TraceCheckUtils]: 32: Hoare triple {1047#false} assume -2147483648 <= main_#t~ret18#1 && main_#t~ret18#1 <= 2147483647;main_#t~short20#1 := 0 != main_#t~ret18#1; {1047#false} is VALID [2022-02-20 16:46:56,399 INFO L290 TraceCheckUtils]: 33: Hoare triple {1047#false} assume !main_#t~short20#1; {1047#false} is VALID [2022-02-20 16:46:56,399 INFO L290 TraceCheckUtils]: 34: Hoare triple {1047#false} assume main_#t~short20#1 && ~someBinaryFLOATComparisonOperation(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {1047#false} is VALID [2022-02-20 16:46:56,399 INFO L290 TraceCheckUtils]: 35: Hoare triple {1047#false} assume !false; {1047#false} is VALID [2022-02-20 16:46:56,399 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-02-20 16:46:56,400 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:46:56,400 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [416570574] [2022-02-20 16:46:56,400 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [416570574] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:46:56,400 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:46:56,400 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [5] imperfect sequences [] total 5 [2022-02-20 16:46:56,400 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1856528588] [2022-02-20 16:46:56,400 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:46:56,401 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.8) internal successors, (24), 4 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 36 [2022-02-20 16:46:56,401 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:46:56,401 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 5 states, 5 states have (on average 4.8) internal successors, (24), 4 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,422 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:56,422 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 5 states [2022-02-20 16:46:56,422 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:46:56,423 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2022-02-20 16:46:56,423 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:46:56,423 INFO L87 Difference]: Start difference. First operand 59 states and 79 transitions. Second operand has 5 states, 5 states have (on average 4.8) internal successors, (24), 4 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,635 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:56,635 INFO L93 Difference]: Finished difference Result 83 states and 109 transitions. [2022-02-20 16:46:56,635 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-02-20 16:46:56,636 INFO L78 Accepts]: Start accepts. Automaton has has 5 states, 5 states have (on average 4.8) internal successors, (24), 4 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 36 [2022-02-20 16:46:56,636 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:46:56,636 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.8) internal successors, (24), 4 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,638 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 102 transitions. [2022-02-20 16:46:56,638 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 5 states, 5 states have (on average 4.8) internal successors, (24), 4 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,639 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 102 transitions. [2022-02-20 16:46:56,639 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 102 transitions. [2022-02-20 16:46:56,713 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 102 edges. 102 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:56,714 INFO L225 Difference]: With dead ends: 83 [2022-02-20 16:46:56,714 INFO L226 Difference]: Without dead ends: 63 [2022-02-20 16:46:56,714 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=7, Invalid=13, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:46:56,715 INFO L933 BasicCegarLoop]: 74 mSDtfsCounter, 3 mSDsluCounter, 169 mSDsCounter, 0 mSdLazyCounter, 48 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 3 SdHoareTripleChecker+Valid, 243 SdHoareTripleChecker+Invalid, 57 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 48 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:46:56,715 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [3 Valid, 243 Invalid, 57 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 48 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:46:56,716 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 63 states. [2022-02-20 16:46:56,719 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 63 to 59. [2022-02-20 16:46:56,719 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:46:56,719 INFO L82 GeneralOperation]: Start isEquivalent. First operand 63 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:56,719 INFO L74 IsIncluded]: Start isIncluded. First operand 63 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:56,720 INFO L87 Difference]: Start difference. First operand 63 states. Second operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:56,729 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:56,729 INFO L93 Difference]: Finished difference Result 63 states and 84 transitions. [2022-02-20 16:46:56,729 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 84 transitions. [2022-02-20 16:46:56,730 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:56,730 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:56,730 INFO L74 IsIncluded]: Start isIncluded. First operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 63 states. [2022-02-20 16:46:56,730 INFO L87 Difference]: Start difference. First operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 63 states. [2022-02-20 16:46:56,732 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:56,732 INFO L93 Difference]: Finished difference Result 63 states and 84 transitions. [2022-02-20 16:46:56,732 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 84 transitions. [2022-02-20 16:46:56,733 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:56,733 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:56,733 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:46:56,733 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:46:56,733 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 59 states, 44 states have (on average 1.2954545454545454) internal successors, (57), 45 states have internal predecessors, (57), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:56,735 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 79 transitions. [2022-02-20 16:46:56,735 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 79 transitions. Word has length 36 [2022-02-20 16:46:56,735 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:46:56,735 INFO L470 AbstractCegarLoop]: Abstraction has 59 states and 79 transitions. [2022-02-20 16:46:56,735 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 5 states, 5 states have (on average 4.8) internal successors, (24), 4 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:46:56,735 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 79 transitions. [2022-02-20 16:46:56,736 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 38 [2022-02-20 16:46:56,736 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:46:56,736 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:46:56,736 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable3 [2022-02-20 16:46:56,736 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:46:56,736 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:46:56,736 INFO L85 PathProgramCache]: Analyzing trace with hash -1658214444, now seen corresponding path program 1 times [2022-02-20 16:46:56,736 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:46:56,736 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [340537932] [2022-02-20 16:46:56,736 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:46:56,737 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:46:56,764 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,785 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 2 [2022-02-20 16:46:56,786 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,788 INFO L290 TraceCheckUtils]: 0: Hoare triple {1372#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1372#true} is VALID [2022-02-20 16:46:56,788 INFO L290 TraceCheckUtils]: 1: Hoare triple {1372#true} assume true; {1372#true} is VALID [2022-02-20 16:46:56,789 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1372#true} {1372#true} #131#return; {1372#true} is VALID [2022-02-20 16:46:56,789 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 8 [2022-02-20 16:46:56,790 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,794 INFO L290 TraceCheckUtils]: 0: Hoare triple {1372#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1372#true} is VALID [2022-02-20 16:46:56,795 INFO L290 TraceCheckUtils]: 1: Hoare triple {1372#true} assume true; {1372#true} is VALID [2022-02-20 16:46:56,798 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1372#true} {1372#true} #133#return; {1372#true} is VALID [2022-02-20 16:46:56,804 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 16 [2022-02-20 16:46:56,808 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,827 INFO L290 TraceCheckUtils]: 0: Hoare triple {1393#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {1372#true} is VALID [2022-02-20 16:46:56,827 INFO L290 TraceCheckUtils]: 1: Hoare triple {1372#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4);call write~real(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4);call #t~mem4 := read~int(~#gf_u~0.base, ~#gf_u~0.offset, 4);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {1372#true} is VALID [2022-02-20 16:46:56,827 INFO L290 TraceCheckUtils]: 2: Hoare triple {1372#true} goto; {1372#true} is VALID [2022-02-20 16:46:56,827 INFO L290 TraceCheckUtils]: 3: Hoare triple {1372#true} assume !(0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296); {1372#true} is VALID [2022-02-20 16:46:56,827 INFO L290 TraceCheckUtils]: 4: Hoare triple {1372#true} assume !((~w~0 % 4294967296 >= 8388608 && ~w~0 % 4294967296 <= 2139095039) || (~w~0 % 4294967296 >= 2155872256 && ~w~0 % 4294967296 <= 4286578687)); {1372#true} is VALID [2022-02-20 16:46:56,827 INFO L290 TraceCheckUtils]: 5: Hoare triple {1372#true} assume !((~w~0 % 4294967296 >= 1 && ~w~0 % 4294967296 <= 8388607) || (~w~0 % 4294967296 >= 2147483649 && ~w~0 % 4294967296 <= 2155872255)); {1372#true} is VALID [2022-02-20 16:46:56,827 INFO L290 TraceCheckUtils]: 6: Hoare triple {1372#true} assume !(2139095040 == ~w~0 % 4294967296 || 4286578688 == ~w~0 % 4294967296);#res := 0; {1372#true} is VALID [2022-02-20 16:46:56,827 INFO L290 TraceCheckUtils]: 7: Hoare triple {1372#true} assume true; {1372#true} is VALID [2022-02-20 16:46:56,828 INFO L284 TraceCheckUtils]: 8: Hoare quadruple {1372#true} {1372#true} #139#return; {1372#true} is VALID [2022-02-20 16:46:56,828 INFO L376 atingTraceCheckCraig]: Compute interpolants for subsequence at non-pending call position 29 [2022-02-20 16:46:56,830 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:46:56,832 INFO L290 TraceCheckUtils]: 0: Hoare triple {1372#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L290 TraceCheckUtils]: 1: Hoare triple {1372#true} assume true; {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L284 TraceCheckUtils]: 2: Hoare quadruple {1372#true} {1372#true} #143#return; {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L290 TraceCheckUtils]: 0: Hoare triple {1372#true} assume { :begin_inline_ULTIMATE.init } 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(20, 2);call #Ultimate.allocInit(12, 3); {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L290 TraceCheckUtils]: 1: Hoare triple {1372#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L272 TraceCheckUtils]: 2: Hoare triple {1372#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L290 TraceCheckUtils]: 3: Hoare triple {1372#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L290 TraceCheckUtils]: 4: Hoare triple {1372#true} assume true; {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1372#true} {1372#true} #131#return; {1372#true} is VALID [2022-02-20 16:46:56,832 INFO L290 TraceCheckUtils]: 6: Hoare triple {1372#true} assume -2147483648 <= main_#t~ret10#1 && main_#t~ret10#1 <= 2147483647;main_#t~short12#1 := 0 != main_#t~ret10#1; {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L290 TraceCheckUtils]: 7: Hoare triple {1372#true} assume main_#t~short12#1; {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L272 TraceCheckUtils]: 8: Hoare triple {1372#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L290 TraceCheckUtils]: 9: Hoare triple {1372#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L290 TraceCheckUtils]: 10: Hoare triple {1372#true} assume true; {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1372#true} {1372#true} #133#return; {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L290 TraceCheckUtils]: 12: Hoare triple {1372#true} assume -2147483648 <= main_#t~ret11#1 && main_#t~ret11#1 <= 2147483647;main_#t~short12#1 := 0 == main_#t~ret11#1; {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L290 TraceCheckUtils]: 13: Hoare triple {1372#true} main_#t~short16#1 := main_#t~short12#1; {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L290 TraceCheckUtils]: 14: Hoare triple {1372#true} assume main_#t~short16#1; {1372#true} is VALID [2022-02-20 16:46:56,833 INFO L290 TraceCheckUtils]: 15: Hoare triple {1372#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L272 TraceCheckUtils]: 16: Hoare triple {1372#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {1393#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 17: Hoare triple {1393#(and (= |old(#length)| |#length|) (= |old(#memory_real)| |#memory_real|) (= |#memory_int| |old(#memory_int)|) (= |old(#valid)| |#valid|))} ~x := #in~x;havoc ~w~0; {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 18: Hoare triple {1372#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4);call write~real(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4);call #t~mem4 := read~int(~#gf_u~0.base, ~#gf_u~0.offset, 4);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 19: Hoare triple {1372#true} goto; {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 20: Hoare triple {1372#true} assume !(0 == ~w~0 % 4294967296 || 2147483648 == ~w~0 % 4294967296); {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 21: Hoare triple {1372#true} assume !((~w~0 % 4294967296 >= 8388608 && ~w~0 % 4294967296 <= 2139095039) || (~w~0 % 4294967296 >= 2155872256 && ~w~0 % 4294967296 <= 4286578687)); {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 22: Hoare triple {1372#true} assume !((~w~0 % 4294967296 >= 1 && ~w~0 % 4294967296 <= 8388607) || (~w~0 % 4294967296 >= 2147483649 && ~w~0 % 4294967296 <= 2155872255)); {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 23: Hoare triple {1372#true} assume !(2139095040 == ~w~0 % 4294967296 || 4286578688 == ~w~0 % 4294967296);#res := 0; {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 24: Hoare triple {1372#true} assume true; {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {1372#true} {1372#true} #139#return; {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 26: Hoare triple {1372#true} assume -2147483648 <= fmax_float_#t~ret5#1 && fmax_float_#t~ret5#1 <= 2147483647; {1372#true} is VALID [2022-02-20 16:46:56,834 INFO L290 TraceCheckUtils]: 27: Hoare triple {1372#true} assume 0 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {1372#true} is VALID [2022-02-20 16:46:56,835 INFO L290 TraceCheckUtils]: 28: Hoare triple {1372#true} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {1372#true} is VALID [2022-02-20 16:46:56,835 INFO L272 TraceCheckUtils]: 29: Hoare triple {1372#true} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {1372#true} is VALID [2022-02-20 16:46:56,835 INFO L290 TraceCheckUtils]: 30: Hoare triple {1372#true} ~x := #in~x;#res := (if ~someBinaryFLOATComparisonOperation(~x, ~x) then 1 else 0); {1372#true} is VALID [2022-02-20 16:46:56,835 INFO L290 TraceCheckUtils]: 31: Hoare triple {1372#true} assume true; {1372#true} is VALID [2022-02-20 16:46:56,835 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {1372#true} {1372#true} #143#return; {1372#true} is VALID [2022-02-20 16:46:56,835 INFO L290 TraceCheckUtils]: 33: Hoare triple {1372#true} assume -2147483648 <= main_#t~ret18#1 && main_#t~ret18#1 <= 2147483647;main_#t~short20#1 := 0 != main_#t~ret18#1; {1372#true} is VALID [2022-02-20 16:46:56,835 INFO L290 TraceCheckUtils]: 34: Hoare triple {1372#true} assume !main_#t~short20#1; {1392#(not |ULTIMATE.start_main_#t~short20#1|)} is VALID [2022-02-20 16:46:56,835 INFO L290 TraceCheckUtils]: 35: Hoare triple {1392#(not |ULTIMATE.start_main_#t~short20#1|)} assume main_#t~short20#1 && ~someBinaryFLOATComparisonOperation(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {1373#false} is VALID [2022-02-20 16:46:56,835 INFO L290 TraceCheckUtils]: 36: Hoare triple {1373#false} assume !false; {1373#false} is VALID [2022-02-20 16:46:56,836 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 9 trivial. 0 not checked. [2022-02-20 16:46:56,836 INFO L144 FreeRefinementEngine]: Strategy CAMEL found an infeasible trace [2022-02-20 16:46:56,836 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleSmtInterpolCraig [340537932] [2022-02-20 16:46:56,836 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleSmtInterpolCraig [340537932] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:46:56,836 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:46:56,836 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:46:56,836 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [126878695] [2022-02-20 16:46:56,836 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:46:56,837 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 1 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) Word has length 37 [2022-02-20 16:46:56,837 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:46:56,837 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 1 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-02-20 16:46:56,853 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:56,853 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:46:56,853 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy CAMEL [2022-02-20 16:46:56,854 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:46:56,854 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:46:56,854 INFO L87 Difference]: Start difference. First operand 59 states and 79 transitions. Second operand has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 1 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-02-20 16:46:56,989 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:56,990 INFO L93 Difference]: Finished difference Result 62 states and 82 transitions. [2022-02-20 16:46:56,990 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:46:56,990 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 1 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) Word has length 37 [2022-02-20 16:46:56,990 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:46:56,992 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 1 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-02-20 16:46:56,993 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 75 transitions. [2022-02-20 16:46:56,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 1 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-02-20 16:46:56,994 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 75 transitions. [2022-02-20 16:46:56,994 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 75 transitions. [2022-02-20 16:46:57,048 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 75 edges. 75 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:46:57,049 INFO L225 Difference]: With dead ends: 62 [2022-02-20 16:46:57,049 INFO L226 Difference]: Without dead ends: 60 [2022-02-20 16:46:57,050 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 9 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:46:57,050 INFO L933 BasicCegarLoop]: 70 mSDtfsCounter, 3 mSDsluCounter, 102 mSDsCounter, 0 mSdLazyCounter, 30 mSolverCounterSat, 9 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 3 SdHoareTripleChecker+Valid, 172 SdHoareTripleChecker+Invalid, 39 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 9 IncrementalHoareTripleChecker+Valid, 30 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:46:57,051 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [3 Valid, 172 Invalid, 39 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [9 Valid, 30 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:46:57,051 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2022-02-20 16:46:57,054 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 60. [2022-02-20 16:46:57,054 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:46:57,054 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand has 60 states, 45 states have (on average 1.288888888888889) internal successors, (58), 46 states have internal predecessors, (58), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:57,054 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand has 60 states, 45 states have (on average 1.288888888888889) internal successors, (58), 46 states have internal predecessors, (58), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:57,055 INFO L87 Difference]: Start difference. First operand 60 states. Second operand has 60 states, 45 states have (on average 1.288888888888889) internal successors, (58), 46 states have internal predecessors, (58), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:57,056 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:57,056 INFO L93 Difference]: Finished difference Result 60 states and 80 transitions. [2022-02-20 16:46:57,056 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 80 transitions. [2022-02-20 16:46:57,057 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:57,057 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:57,057 INFO L74 IsIncluded]: Start isIncluded. First operand has 60 states, 45 states have (on average 1.288888888888889) internal successors, (58), 46 states have internal predecessors, (58), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 60 states. [2022-02-20 16:46:57,057 INFO L87 Difference]: Start difference. First operand has 60 states, 45 states have (on average 1.288888888888889) internal successors, (58), 46 states have internal predecessors, (58), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 60 states. [2022-02-20 16:46:57,059 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:46:57,059 INFO L93 Difference]: Finished difference Result 60 states and 80 transitions. [2022-02-20 16:46:57,059 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 80 transitions. [2022-02-20 16:46:57,059 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:46:57,059 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:46:57,059 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:46:57,059 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:46:57,060 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 60 states, 45 states have (on average 1.288888888888889) internal successors, (58), 46 states have internal predecessors, (58), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:46:57,061 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 80 transitions. [2022-02-20 16:46:57,061 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 80 transitions. Word has length 37 [2022-02-20 16:46:57,061 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:46:57,062 INFO L470 AbstractCegarLoop]: Abstraction has 60 states and 80 transitions. [2022-02-20 16:46:57,062 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 1 states have call successors, (4), 2 states have call predecessors, (4), 1 states have return successors, (4), 1 states have call predecessors, (4), 1 states have call successors, (4) [2022-02-20 16:46:57,062 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 80 transitions. [2022-02-20 16:46:57,062 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 43 [2022-02-20 16:46:57,063 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:46:57,063 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:46:57,063 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable4 [2022-02-20 16:46:57,063 INFO L402 AbstractCegarLoop]: === Iteration 6 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:46:57,063 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:46:57,063 INFO L85 PathProgramCache]: Analyzing trace with hash -1826594765, now seen corresponding path program 1 times [2022-02-20 16:46:57,064 INFO L126 FreeRefinementEngine]: Executing refinement strategy CAMEL [2022-02-20 16:46:57,064 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleSmtInterpolCraig [1617582305] [2022-02-20 16:46:57,064 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:46:57,064 INFO L127 SolverBuilder]: Constructing new instance of SMTInterpol with explicit timeout -1 ms and remaining time -1 ms [2022-02-20 16:46:57,098 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 16:46:57,102 INFO L352 TraceCheck]: Trace is feasible, we will do another trace check, this time with branch encoders. [2022-02-20 16:46:57,115 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2022-02-20 16:46:57,149 INFO L138 FreeRefinementEngine]: Strategy CAMEL found a feasible trace [2022-02-20 16:46:57,149 INFO L628 BasicCegarLoop]: Counterexample is feasible [2022-02-20 16:46:57,150 INFO L764 garLoopResultBuilder]: Registering result UNSAFE for location ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION (1 of 2 remaining) [2022-02-20 16:46:57,151 INFO L764 garLoopResultBuilder]: Registering result UNKNOWN for location ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION (0 of 2 remaining) [2022-02-20 16:46:57,151 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: SelfDestructingSolverStorable5 [2022-02-20 16:46:57,153 INFO L732 BasicCegarLoop]: Path program histogram: [1, 1, 1, 1, 1, 1] [2022-02-20 16:46:57,156 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 16:46:57,167 FATAL L489 DefaultTranslator]: Callstack has procedure call flag but succeeding procedure is empty at [CALL] call #t~ret10 := isnan_float(~x~0); [2022-02-20 16:46:57,167 FATAL L? ?]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction has thrown an exception: java.lang.AssertionError: callstack broken after backtranslation by InlinerBacktranslator at de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:216) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:225) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ModelTranslationContainer.translateProgramExecution(ModelTranslationContainer.java:206) at de.uni_freiburg.informatik.ultimate.core.lib.results.UnprovableResult.getProgramExecutionAsString(UnprovableResult.java:132) at de.uni_freiburg.informatik.ultimate.core.lib.results.UnprovableResult.getLongDescription(UnprovableResult.java:125) at de.uni_freiburg.informatik.ultimate.core.coreplugin.services.ResultService.reportResult(ResultService.java:86) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.CegarLoopResultReporter.reportResult(CegarLoopResultReporter.java:141) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.reportLocationResults(TraceAbstractionStarter.java:607) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:182) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:156) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:320) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) [2022-02-20 16:46:57,170 INFO L158 Benchmark]: Toolchain (without parser) took 3491.41ms. Allocated memory was 102.8MB in the beginning and 134.2MB in the end (delta: 31.5MB). Free memory was 64.5MB in the beginning and 92.1MB in the end (delta: -27.6MB). Peak memory consumption was 2.6MB. Max. memory is 16.1GB. [2022-02-20 16:46:57,170 INFO L158 Benchmark]: CDTParser took 0.15ms. Allocated memory is still 102.8MB. Free memory is still 80.6MB. There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:46:57,170 INFO L158 Benchmark]: CACSL2BoogieTranslator took 247.91ms. Allocated memory is still 102.8MB. Free memory was 64.3MB in the beginning and 76.8MB in the end (delta: -12.5MB). Peak memory consumption was 10.5MB. Max. memory is 16.1GB. [2022-02-20 16:46:57,170 INFO L158 Benchmark]: Boogie Procedure Inliner took 45.18ms. Allocated memory is still 102.8MB. Free memory was 76.4MB in the beginning and 74.8MB in the end (delta: 1.6MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:46:57,171 INFO L158 Benchmark]: Boogie Preprocessor took 24.79ms. Allocated memory is still 102.8MB. Free memory was 74.8MB in the beginning and 73.1MB in the end (delta: 1.7MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:46:57,171 INFO L158 Benchmark]: RCFGBuilder took 329.35ms. Allocated memory is still 102.8MB. Free memory was 73.1MB in the beginning and 57.2MB in the end (delta: 15.9MB). Peak memory consumption was 14.7MB. Max. memory is 16.1GB. [2022-02-20 16:46:57,171 INFO L158 Benchmark]: TraceAbstraction took 2839.85ms. Allocated memory was 102.8MB in the beginning and 134.2MB in the end (delta: 31.5MB). Free memory was 56.7MB in the beginning and 92.1MB in the end (delta: -35.4MB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:46:57,172 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.15ms. Allocated memory is still 102.8MB. Free memory is still 80.6MB. There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 247.91ms. Allocated memory is still 102.8MB. Free memory was 64.3MB in the beginning and 76.8MB in the end (delta: -12.5MB). Peak memory consumption was 10.5MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 45.18ms. Allocated memory is still 102.8MB. Free memory was 76.4MB in the beginning and 74.8MB in the end (delta: 1.6MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 24.79ms. Allocated memory is still 102.8MB. Free memory was 74.8MB in the beginning and 73.1MB in the end (delta: 1.7MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * RCFGBuilder took 329.35ms. Allocated memory is still 102.8MB. Free memory was 73.1MB in the beginning and 57.2MB in the end (delta: 15.9MB). Peak memory consumption was 14.7MB. Max. memory is 16.1GB. * TraceAbstraction took 2839.85ms. Allocated memory was 102.8MB in the beginning and 134.2MB in the end (delta: 31.5MB). Free memory was 56.7MB in the beginning and 92.1MB in the end (delta: -35.4MB). There was no memory consumed. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - ExceptionOrErrorResult: AssertionError: callstack broken after backtranslation by InlinerBacktranslator de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: AssertionError: callstack broken after backtranslation by InlinerBacktranslator: de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator.translateProgramExecution(InlinerBacktranslator.java:230) RESULT: Ultimate could not prove your program: Toolchain returned no result. [2022-02-20 16:46:57,200 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Ended with exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Using bit-precise analysis Retrying with bit-precise analysis ### Bit-precise run ### Calling Ultimate with: /usr/bin/java -Dosgi.configuration.area=/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/config -Xmx15G -Xms4m -ea -jar /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/org.eclipse.equinox.launcher_1.5.800.v20200727-1323.jar -data @noDefault -ultimatedata /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data -tc /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/AutomizerReach.xml -i ../sv-benchmarks/c/float-newlib/float_req_bl_1251.c -s /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(reach_error())) ) --witnessprinter.graph.data.producer Automizer --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash de540e539c3db6027c1fdb04fcc6cae02aafb8aa58950d31054b2b0b8391af6d --- Real Ultimate output --- This is Ultimate 0.2.2-dev-03d7b7b [2022-02-20 16:46:58,799 INFO L177 SettingsManager]: Resetting all preferences to default values... [2022-02-20 16:46:58,800 INFO L181 SettingsManager]: Resetting UltimateCore preferences to default values [2022-02-20 16:46:58,827 INFO L184 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2022-02-20 16:46:58,828 INFO L181 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2022-02-20 16:46:58,830 INFO L181 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2022-02-20 16:46:58,832 INFO L181 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2022-02-20 16:46:58,837 INFO L181 SettingsManager]: Resetting LassoRanker preferences to default values [2022-02-20 16:46:58,838 INFO L181 SettingsManager]: Resetting Reaching Definitions preferences to default values [2022-02-20 16:46:58,843 INFO L181 SettingsManager]: Resetting SyntaxChecker preferences to default values [2022-02-20 16:46:58,843 INFO L181 SettingsManager]: Resetting Sifa preferences to default values [2022-02-20 16:46:58,847 INFO L184 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2022-02-20 16:46:58,847 INFO L181 SettingsManager]: Resetting LTL2Aut preferences to default values [2022-02-20 16:46:58,849 INFO L181 SettingsManager]: Resetting PEA to Boogie preferences to default values [2022-02-20 16:46:58,850 INFO L181 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2022-02-20 16:46:58,851 INFO L181 SettingsManager]: Resetting ChcToBoogie preferences to default values [2022-02-20 16:46:58,851 INFO L181 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2022-02-20 16:46:58,852 INFO L181 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2022-02-20 16:46:58,854 INFO L181 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2022-02-20 16:46:58,857 INFO L181 SettingsManager]: Resetting CodeCheck preferences to default values [2022-02-20 16:46:58,858 INFO L181 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2022-02-20 16:46:58,859 INFO L181 SettingsManager]: Resetting RCFGBuilder preferences to default values [2022-02-20 16:46:58,860 INFO L181 SettingsManager]: Resetting Referee preferences to default values [2022-02-20 16:46:58,861 INFO L181 SettingsManager]: Resetting TraceAbstraction preferences to default values [2022-02-20 16:46:58,865 INFO L184 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2022-02-20 16:46:58,865 INFO L184 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2022-02-20 16:46:58,866 INFO L181 SettingsManager]: Resetting TreeAutomizer preferences to default values [2022-02-20 16:46:58,866 INFO L181 SettingsManager]: Resetting IcfgToChc preferences to default values [2022-02-20 16:46:58,866 INFO L181 SettingsManager]: Resetting IcfgTransformer preferences to default values [2022-02-20 16:46:58,867 INFO L184 SettingsManager]: ReqToTest provides no preferences, ignoring... [2022-02-20 16:46:58,867 INFO L181 SettingsManager]: Resetting Boogie Printer preferences to default values [2022-02-20 16:46:58,868 INFO L181 SettingsManager]: Resetting ChcSmtPrinter preferences to default values [2022-02-20 16:46:58,868 INFO L181 SettingsManager]: Resetting ReqPrinter preferences to default values [2022-02-20 16:46:58,869 INFO L181 SettingsManager]: Resetting Witness Printer preferences to default values [2022-02-20 16:46:58,869 INFO L184 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2022-02-20 16:46:58,869 INFO L181 SettingsManager]: Resetting CDTParser preferences to default values [2022-02-20 16:46:58,870 INFO L184 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2022-02-20 16:46:58,870 INFO L184 SettingsManager]: ReqParser provides no preferences, ignoring... [2022-02-20 16:46:58,870 INFO L181 SettingsManager]: Resetting SmtParser preferences to default values [2022-02-20 16:46:58,871 INFO L181 SettingsManager]: Resetting Witness Parser preferences to default values [2022-02-20 16:46:58,871 INFO L188 SettingsManager]: Finished resetting all preferences to default values... [2022-02-20 16:46:58,874 INFO L101 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/config/svcomp-Reach-32bit-Automizer_Bitvector.epf [2022-02-20 16:46:58,915 INFO L113 SettingsManager]: Loading preferences was successful [2022-02-20 16:46:58,915 INFO L115 SettingsManager]: Preferences different from defaults after loading the file: [2022-02-20 16:46:58,915 INFO L136 SettingsManager]: Preferences of UltimateCore differ from their defaults: [2022-02-20 16:46:58,916 INFO L138 SettingsManager]: * Log level for class=de.uni_freiburg.informatik.ultimate.lib.smtlibutils.quantifier.QuantifierPusher=ERROR; [2022-02-20 16:46:58,916 INFO L136 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2022-02-20 16:46:58,916 INFO L138 SettingsManager]: * Ignore calls to procedures called more than once=ONLY_FOR_SEQUENTIAL_PROGRAMS [2022-02-20 16:46:58,917 INFO L136 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2022-02-20 16:46:58,917 INFO L138 SettingsManager]: * Create parallel compositions if possible=false [2022-02-20 16:46:58,917 INFO L138 SettingsManager]: * Use SBE=true [2022-02-20 16:46:58,917 INFO L136 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2022-02-20 16:46:58,917 INFO L138 SettingsManager]: * sizeof long=4 [2022-02-20 16:46:58,918 INFO L138 SettingsManager]: * sizeof POINTER=4 [2022-02-20 16:46:58,918 INFO L138 SettingsManager]: * Check division by zero=IGNORE [2022-02-20 16:46:58,918 INFO L138 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2022-02-20 16:46:58,918 INFO L138 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2022-02-20 16:46:58,918 INFO L138 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2022-02-20 16:46:58,918 INFO L138 SettingsManager]: * Adapt memory model on pointer casts if necessary=true [2022-02-20 16:46:58,918 INFO L138 SettingsManager]: * Use bitvectors instead of ints=true [2022-02-20 16:46:58,919 INFO L138 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2022-02-20 16:46:58,919 INFO L138 SettingsManager]: * sizeof long double=12 [2022-02-20 16:46:58,920 INFO L138 SettingsManager]: * Check if freed pointer was valid=false [2022-02-20 16:46:58,920 INFO L138 SettingsManager]: * Use constant arrays=true [2022-02-20 16:46:58,920 INFO L138 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2022-02-20 16:46:58,920 INFO L136 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2022-02-20 16:46:58,921 INFO L138 SettingsManager]: * Size of a code block=SequenceOfStatements [2022-02-20 16:46:58,921 INFO L138 SettingsManager]: * SMT solver=External_DefaultMode [2022-02-20 16:46:58,921 INFO L138 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:46:58,921 INFO L136 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2022-02-20 16:46:58,921 INFO L138 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2022-02-20 16:46:58,922 INFO L138 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2022-02-20 16:46:58,922 INFO L138 SettingsManager]: * Trace refinement strategy=WOLF [2022-02-20 16:46:58,922 INFO L138 SettingsManager]: * Command for external solver=cvc4 --incremental --print-success --lang smt [2022-02-20 16:46:58,922 INFO L138 SettingsManager]: * Large block encoding in concurrent analysis=OFF [2022-02-20 16:46:58,922 INFO L138 SettingsManager]: * Automaton type used in concurrency analysis=PETRI_NET [2022-02-20 16:46:58,923 INFO L138 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2022-02-20 16:46:58,923 INFO L138 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2022-02-20 16:46:58,923 INFO L138 SettingsManager]: * Logic for external solver=AUFBV WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 (file:/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/plugins/com.sun.xml.bind_2.2.0.v201505121915.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector$1 WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Applying setting for plugin de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator: Entry function -> main Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness directory -> /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Witness filename -> witness.graphml Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Write witness besides input file -> false Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data specification -> CHECK( init(main()), LTL(G ! call(reach_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Automizer Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data architecture -> 32bit Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data programhash -> de540e539c3db6027c1fdb04fcc6cae02aafb8aa58950d31054b2b0b8391af6d [2022-02-20 16:46:59,160 INFO L75 nceAwareModelManager]: Repository-Root is: /tmp [2022-02-20 16:46:59,179 INFO L261 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2022-02-20 16:46:59,181 INFO L217 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2022-02-20 16:46:59,181 INFO L271 PluginConnector]: Initializing CDTParser... [2022-02-20 16:46:59,182 INFO L275 PluginConnector]: CDTParser initialized [2022-02-20 16:46:59,183 INFO L432 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../sv-benchmarks/c/float-newlib/float_req_bl_1251.c [2022-02-20 16:46:59,239 INFO L220 CDTParser]: Created temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/190f96e24/00bb1ffae8b24ca69b432ba8bce3671f/FLAGf71036811 [2022-02-20 16:46:59,603 INFO L306 CDTParser]: Found 1 translation units. [2022-02-20 16:46:59,603 INFO L160 CDTParser]: Scanning /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c [2022-02-20 16:46:59,608 INFO L349 CDTParser]: About to delete temporary CDT project at /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/190f96e24/00bb1ffae8b24ca69b432ba8bce3671f/FLAGf71036811 [2022-02-20 16:46:59,619 INFO L357 CDTParser]: Successfully deleted /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/data/190f96e24/00bb1ffae8b24ca69b432ba8bce3671f [2022-02-20 16:46:59,621 INFO L299 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2022-02-20 16:46:59,622 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2022-02-20 16:46:59,623 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2022-02-20 16:46:59,623 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2022-02-20 16:46:59,625 INFO L275 PluginConnector]: CACSL2BoogieTranslator initialized [2022-02-20 16:46:59,629 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,630 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@260f72 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59, skipping insertion in model container [2022-02-20 16:46:59,630 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,635 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2022-02-20 16:46:59,645 INFO L178 MainTranslator]: Built tables and reachable declarations [2022-02-20 16:46:59,772 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c[1980,1993] [2022-02-20 16:46:59,779 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c[2139,2152] [2022-02-20 16:46:59,781 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:46:59,797 INFO L203 MainTranslator]: Completed pre-run [2022-02-20 16:46:59,831 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c[1980,1993] [2022-02-20 16:46:59,843 WARN L230 ndardFunctionHandler]: Function reach_error is already implemented but we override the implementation for the call at /storage/repos/ultimate/releaseScripts/default/sv-benchmarks/c/float-newlib/float_req_bl_1251.c[2139,2152] [2022-02-20 16:46:59,844 INFO L210 PostProcessor]: Analyzing one entry point: main [2022-02-20 16:46:59,857 INFO L208 MainTranslator]: Completed translation [2022-02-20 16:46:59,858 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59 WrapperNode [2022-02-20 16:46:59,858 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2022-02-20 16:46:59,859 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2022-02-20 16:46:59,859 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2022-02-20 16:46:59,859 INFO L275 PluginConnector]: Boogie Procedure Inliner initialized [2022-02-20 16:46:59,863 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,877 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,904 INFO L137 Inliner]: procedures = 21, calls = 22, calls flagged for inlining = 3, calls inlined = 3, statements flattened = 98 [2022-02-20 16:46:59,904 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2022-02-20 16:46:59,905 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2022-02-20 16:46:59,905 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2022-02-20 16:46:59,905 INFO L275 PluginConnector]: Boogie Preprocessor initialized [2022-02-20 16:46:59,911 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,911 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,924 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,924 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,936 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,941 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,946 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,948 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2022-02-20 16:46:59,950 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2022-02-20 16:46:59,950 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2022-02-20 16:46:59,950 INFO L275 PluginConnector]: RCFGBuilder initialized [2022-02-20 16:46:59,951 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (1/1) ... [2022-02-20 16:46:59,955 INFO L173 SolverBuilder]: Constructing external solver with command: z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2022-02-20 16:46:59,962 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 [2022-02-20 16:46:59,984 INFO L229 MonitoredProcess]: Starting monitored process 1 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) [2022-02-20 16:46:59,995 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Waiting until timeout for monitored process [2022-02-20 16:47:00,024 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocInit [2022-02-20 16:47:00,025 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~intINTTYPE1 [2022-02-20 16:47:00,025 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.allocOnStack [2022-02-20 16:47:00,025 INFO L130 BoogieDeclarations]: Found specification of procedure __fpclassify_float [2022-02-20 16:47:00,025 INFO L138 BoogieDeclarations]: Found implementation of procedure __fpclassify_float [2022-02-20 16:47:00,025 INFO L130 BoogieDeclarations]: Found specification of procedure isnan_float [2022-02-20 16:47:00,025 INFO L138 BoogieDeclarations]: Found implementation of procedure isnan_float [2022-02-20 16:47:00,026 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2022-02-20 16:47:00,026 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2022-02-20 16:47:00,026 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2022-02-20 16:47:00,026 INFO L130 BoogieDeclarations]: Found specification of procedure write~intFLOATTYPE4 [2022-02-20 16:47:00,026 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2022-02-20 16:47:00,095 INFO L234 CfgBuilder]: Building ICFG [2022-02-20 16:47:00,096 INFO L260 CfgBuilder]: Building CFG for each procedure with an implementation [2022-02-20 16:47:00,360 INFO L275 CfgBuilder]: Performing block encoding [2022-02-20 16:47:00,368 INFO L294 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2022-02-20 16:47:00,369 INFO L299 CfgBuilder]: Removed 2 assume(true) statements. [2022-02-20 16:47:00,371 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:47:00 BoogieIcfgContainer [2022-02-20 16:47:00,371 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2022-02-20 16:47:00,372 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2022-02-20 16:47:00,373 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2022-02-20 16:47:00,376 INFO L275 PluginConnector]: TraceAbstraction initialized [2022-02-20 16:47:00,376 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 20.02 04:46:59" (1/3) ... [2022-02-20 16:47:00,377 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@381dff19 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:47:00, skipping insertion in model container [2022-02-20 16:47:00,377 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 20.02 04:46:59" (2/3) ... [2022-02-20 16:47:00,378 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@381dff19 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 20.02 04:47:00, skipping insertion in model container [2022-02-20 16:47:00,378 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:47:00" (3/3) ... [2022-02-20 16:47:00,379 INFO L111 eAbstractionObserver]: Analyzing ICFG float_req_bl_1251.c [2022-02-20 16:47:00,383 INFO L205 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2022-02-20 16:47:00,383 INFO L164 ceAbstractionStarter]: Applying trace abstraction to program that has 2 error locations. [2022-02-20 16:47:00,430 INFO L338 AbstractCegarLoop]: ======== Iteration 0 == of CEGAR loop == AllErrorsAtOnce ======== [2022-02-20 16:47:00,437 INFO L339 AbstractCegarLoop]: Settings: SEPARATE_VIOLATION_CHECK=true, mInterprocedural=true, mMaxIterations=1000000, mWatchIteration=1000000, mArtifact=RCFG, mInterpolation=FPandBP, mInterpolantAutomaton=STRAIGHT_LINE, mDumpAutomata=false, mAutomataFormat=ATS_NUMERATE, mDumpPath=., mDeterminiation=PREDICATE_ABSTRACTION, mMinimize=MINIMIZE_SEVPA, mHoare=true, mAutomataTypeConcurrency=PETRI_NET, mHoareTripleChecks=INCREMENTAL, mHoareAnnotationPositions=LoopsAndPotentialCycles, mDumpOnlyReuseAutomata=false, mLimitTraceHistogram=0, mErrorLocTimeLimit=0, mLimitPathProgramCount=0, mCollectInterpolantStatistics=true, mHeuristicEmptinessCheck=false, mHeuristicEmptinessCheckAStarHeuristic=ZERO, mHeuristicEmptinessCheckAStarHeuristicRandomSeed=1337, mHeuristicEmptinessCheckSmtFeatureScoringMethod=DAGSIZE, mSMTFeatureExtraction=false, mSMTFeatureExtractionDumpPath=., mOverrideInterpolantAutomaton=false, mMcrInterpolantMethod=WP, mLoopAccelerationTechnique=FAST_UPR [2022-02-20 16:47:00,438 INFO L340 AbstractCegarLoop]: Starting to check reachability of 2 error locations. [2022-02-20 16:47:00,454 INFO L276 IsEmpty]: Start isEmpty. Operand has 55 states, 40 states have (on average 1.475) internal successors, (59), 42 states have internal predecessors, (59), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:00,459 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 28 [2022-02-20 16:47:00,460 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:00,460 INFO L514 BasicCegarLoop]: trace histogram [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-02-20 16:47:00,461 INFO L402 AbstractCegarLoop]: === Iteration 1 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:00,464 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:00,465 INFO L85 PathProgramCache]: Analyzing trace with hash 956195031, now seen corresponding path program 1 times [2022-02-20 16:47:00,474 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:00,474 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1189781058] [2022-02-20 16:47:00,475 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:00,475 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:00,476 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:00,478 INFO L229 MonitoredProcess]: Starting monitored process 2 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:00,479 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Waiting until timeout for monitored process [2022-02-20 16:47:00,557 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:00,560 INFO L263 TraceCheckSpWp]: Trace formula consists of 60 conjuncts, 1 conjunts are in the unsatisfiable core [2022-02-20 16:47:00,581 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:00,584 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:00,702 INFO L290 TraceCheckUtils]: 0: Hoare triple {58#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {58#true} is VALID [2022-02-20 16:47:00,703 INFO L290 TraceCheckUtils]: 1: Hoare triple {58#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {58#true} is VALID [2022-02-20 16:47:00,703 INFO L272 TraceCheckUtils]: 2: Hoare triple {58#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {58#true} is VALID [2022-02-20 16:47:00,704 INFO L290 TraceCheckUtils]: 3: Hoare triple {58#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {58#true} is VALID [2022-02-20 16:47:00,704 INFO L290 TraceCheckUtils]: 4: Hoare triple {58#true} assume true; {58#true} is VALID [2022-02-20 16:47:00,704 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {58#true} {58#true} #129#return; {58#true} is VALID [2022-02-20 16:47:00,704 INFO L290 TraceCheckUtils]: 6: Hoare triple {58#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {58#true} is VALID [2022-02-20 16:47:00,705 INFO L290 TraceCheckUtils]: 7: Hoare triple {58#true} assume !main_#t~short12#1; {58#true} is VALID [2022-02-20 16:47:00,705 INFO L290 TraceCheckUtils]: 8: Hoare triple {58#true} main_#t~short16#1 := main_#t~short12#1; {58#true} is VALID [2022-02-20 16:47:00,705 INFO L290 TraceCheckUtils]: 9: Hoare triple {58#true} assume main_#t~short16#1; {58#true} is VALID [2022-02-20 16:47:00,706 INFO L290 TraceCheckUtils]: 10: Hoare triple {58#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {58#true} is VALID [2022-02-20 16:47:00,706 INFO L272 TraceCheckUtils]: 11: Hoare triple {58#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {58#true} is VALID [2022-02-20 16:47:00,706 INFO L290 TraceCheckUtils]: 12: Hoare triple {58#true} ~x := #in~x;havoc ~w~0; {58#true} is VALID [2022-02-20 16:47:00,707 INFO L290 TraceCheckUtils]: 13: Hoare triple {58#true} assume !true; {59#false} is VALID [2022-02-20 16:47:00,707 INFO L290 TraceCheckUtils]: 14: Hoare triple {59#false} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {59#false} is VALID [2022-02-20 16:47:00,707 INFO L290 TraceCheckUtils]: 15: Hoare triple {59#false} assume true; {59#false} is VALID [2022-02-20 16:47:00,708 INFO L284 TraceCheckUtils]: 16: Hoare quadruple {59#false} {58#true} #137#return; {59#false} is VALID [2022-02-20 16:47:00,708 INFO L290 TraceCheckUtils]: 17: Hoare triple {59#false} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {59#false} is VALID [2022-02-20 16:47:00,708 INFO L290 TraceCheckUtils]: 18: Hoare triple {59#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {59#false} is VALID [2022-02-20 16:47:00,709 INFO L272 TraceCheckUtils]: 19: Hoare triple {59#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {59#false} is VALID [2022-02-20 16:47:00,709 INFO L290 TraceCheckUtils]: 20: Hoare triple {59#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {59#false} is VALID [2022-02-20 16:47:00,709 INFO L290 TraceCheckUtils]: 21: Hoare triple {59#false} assume true; {59#false} is VALID [2022-02-20 16:47:00,709 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {59#false} {59#false} #141#return; {59#false} is VALID [2022-02-20 16:47:00,709 INFO L290 TraceCheckUtils]: 23: Hoare triple {59#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {59#false} is VALID [2022-02-20 16:47:00,710 INFO L290 TraceCheckUtils]: 24: Hoare triple {59#false} assume !main_#t~short20#1; {59#false} is VALID [2022-02-20 16:47:00,710 INFO L290 TraceCheckUtils]: 25: Hoare triple {59#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {59#false} is VALID [2022-02-20 16:47:00,711 INFO L290 TraceCheckUtils]: 26: Hoare triple {59#false} assume !false; {59#false} is VALID [2022-02-20 16:47:00,711 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 16:47:00,712 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:00,712 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:00,712 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1189781058] [2022-02-20 16:47:00,713 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1189781058] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:00,713 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:00,713 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2022-02-20 16:47:00,715 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [358798700] [2022-02-20 16:47:00,717 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:00,720 INFO L78 Accepts]: Start accepts. Automaton has has 2 states, 2 states have (on average 10.5) internal successors, (21), 2 states have internal predecessors, (21), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 27 [2022-02-20 16:47:00,721 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:00,724 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 2 states, 2 states have (on average 10.5) internal successors, (21), 2 states have internal predecessors, (21), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:00,751 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:00,752 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 2 states [2022-02-20 16:47:00,752 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:00,770 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 2 interpolants. [2022-02-20 16:47:00,771 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2022-02-20 16:47:00,773 INFO L87 Difference]: Start difference. First operand has 55 states, 40 states have (on average 1.475) internal successors, (59), 42 states have internal predecessors, (59), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand has 2 states, 2 states have (on average 10.5) internal successors, (21), 2 states have internal predecessors, (21), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:00,860 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:00,861 INFO L93 Difference]: Finished difference Result 93 states and 134 transitions. [2022-02-20 16:47:00,861 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 2 states. [2022-02-20 16:47:00,862 INFO L78 Accepts]: Start accepts. Automaton has has 2 states, 2 states have (on average 10.5) internal successors, (21), 2 states have internal predecessors, (21), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 27 [2022-02-20 16:47:00,862 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:00,863 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2 states, 2 states have (on average 10.5) internal successors, (21), 2 states have internal predecessors, (21), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:00,877 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 134 transitions. [2022-02-20 16:47:00,878 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 2 states, 2 states have (on average 10.5) internal successors, (21), 2 states have internal predecessors, (21), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:00,881 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 2 states to 2 states and 134 transitions. [2022-02-20 16:47:00,881 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 2 states and 134 transitions. [2022-02-20 16:47:00,982 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 134 edges. 134 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:00,989 INFO L225 Difference]: With dead ends: 93 [2022-02-20 16:47:00,989 INFO L226 Difference]: Without dead ends: 51 [2022-02-20 16:47:00,991 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 26 GetRequests, 26 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=1, Invalid=1, Unknown=0, NotChecked=0, Total=2 [2022-02-20 16:47:00,994 INFO L933 BasicCegarLoop]: 75 mSDtfsCounter, 0 mSDsluCounter, 0 mSDsCounter, 0 mSdLazyCounter, 0 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 75 SdHoareTripleChecker+Invalid, 0 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 0 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:00,994 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 75 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 0 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:01,008 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 51 states. [2022-02-20 16:47:01,020 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 51 to 51. [2022-02-20 16:47:01,020 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:01,021 INFO L82 GeneralOperation]: Start isEquivalent. First operand 51 states. Second operand has 51 states, 37 states have (on average 1.3513513513513513) internal successors, (50), 38 states have internal predecessors, (50), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:01,023 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand has 51 states, 37 states have (on average 1.3513513513513513) internal successors, (50), 38 states have internal predecessors, (50), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:01,024 INFO L87 Difference]: Start difference. First operand 51 states. Second operand has 51 states, 37 states have (on average 1.3513513513513513) internal successors, (50), 38 states have internal predecessors, (50), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:01,029 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:01,030 INFO L93 Difference]: Finished difference Result 51 states and 70 transitions. [2022-02-20 16:47:01,030 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 70 transitions. [2022-02-20 16:47:01,034 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:01,034 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:01,034 INFO L74 IsIncluded]: Start isIncluded. First operand has 51 states, 37 states have (on average 1.3513513513513513) internal successors, (50), 38 states have internal predecessors, (50), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 51 states. [2022-02-20 16:47:01,036 INFO L87 Difference]: Start difference. First operand has 51 states, 37 states have (on average 1.3513513513513513) internal successors, (50), 38 states have internal predecessors, (50), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 51 states. [2022-02-20 16:47:01,042 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:01,042 INFO L93 Difference]: Finished difference Result 51 states and 70 transitions. [2022-02-20 16:47:01,046 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 70 transitions. [2022-02-20 16:47:01,048 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:01,048 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:01,048 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:01,048 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:01,049 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 51 states, 37 states have (on average 1.3513513513513513) internal successors, (50), 38 states have internal predecessors, (50), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:01,054 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 70 transitions. [2022-02-20 16:47:01,055 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 70 transitions. Word has length 27 [2022-02-20 16:47:01,056 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:01,056 INFO L470 AbstractCegarLoop]: Abstraction has 51 states and 70 transitions. [2022-02-20 16:47:01,056 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 2 states, 2 states have (on average 10.5) internal successors, (21), 2 states have internal predecessors, (21), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:01,057 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 70 transitions. [2022-02-20 16:47:01,060 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 29 [2022-02-20 16:47:01,060 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:01,061 INFO L514 BasicCegarLoop]: trace histogram [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, 1] [2022-02-20 16:47:01,075 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (2)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:01,267 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 2 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:01,268 INFO L402 AbstractCegarLoop]: === Iteration 2 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:01,268 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:01,268 INFO L85 PathProgramCache]: Analyzing trace with hash -1128254016, now seen corresponding path program 1 times [2022-02-20 16:47:01,269 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:01,269 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [2002013616] [2022-02-20 16:47:01,269 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:01,269 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:01,269 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:01,270 INFO L229 MonitoredProcess]: Starting monitored process 3 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:01,272 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Waiting until timeout for monitored process [2022-02-20 16:47:01,313 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:01,314 INFO L263 TraceCheckSpWp]: Trace formula consists of 72 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:01,323 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:01,324 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:01,412 INFO L290 TraceCheckUtils]: 0: Hoare triple {425#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {425#true} is VALID [2022-02-20 16:47:01,412 INFO L290 TraceCheckUtils]: 1: Hoare triple {425#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {425#true} is VALID [2022-02-20 16:47:01,413 INFO L272 TraceCheckUtils]: 2: Hoare triple {425#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {425#true} is VALID [2022-02-20 16:47:01,413 INFO L290 TraceCheckUtils]: 3: Hoare triple {425#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {425#true} is VALID [2022-02-20 16:47:01,413 INFO L290 TraceCheckUtils]: 4: Hoare triple {425#true} assume true; {425#true} is VALID [2022-02-20 16:47:01,413 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {425#true} {425#true} #129#return; {425#true} is VALID [2022-02-20 16:47:01,413 INFO L290 TraceCheckUtils]: 6: Hoare triple {425#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {425#true} is VALID [2022-02-20 16:47:01,414 INFO L290 TraceCheckUtils]: 7: Hoare triple {425#true} assume !main_#t~short12#1; {451#(not |ULTIMATE.start_main_#t~short12#1|)} is VALID [2022-02-20 16:47:01,416 INFO L290 TraceCheckUtils]: 8: Hoare triple {451#(not |ULTIMATE.start_main_#t~short12#1|)} main_#t~short16#1 := main_#t~short12#1; {455#(not |ULTIMATE.start_main_#t~short16#1|)} is VALID [2022-02-20 16:47:01,417 INFO L290 TraceCheckUtils]: 9: Hoare triple {455#(not |ULTIMATE.start_main_#t~short16#1|)} assume main_#t~short16#1; {426#false} is VALID [2022-02-20 16:47:01,417 INFO L290 TraceCheckUtils]: 10: Hoare triple {426#false} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {426#false} is VALID [2022-02-20 16:47:01,417 INFO L272 TraceCheckUtils]: 11: Hoare triple {426#false} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {426#false} is VALID [2022-02-20 16:47:01,418 INFO L290 TraceCheckUtils]: 12: Hoare triple {426#false} ~x := #in~x;havoc ~w~0; {426#false} is VALID [2022-02-20 16:47:01,418 INFO L290 TraceCheckUtils]: 13: Hoare triple {426#false} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {426#false} is VALID [2022-02-20 16:47:01,418 INFO L290 TraceCheckUtils]: 14: Hoare triple {426#false} goto; {426#false} is VALID [2022-02-20 16:47:01,418 INFO L290 TraceCheckUtils]: 15: Hoare triple {426#false} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {426#false} is VALID [2022-02-20 16:47:01,419 INFO L290 TraceCheckUtils]: 16: Hoare triple {426#false} assume true; {426#false} is VALID [2022-02-20 16:47:01,419 INFO L284 TraceCheckUtils]: 17: Hoare quadruple {426#false} {426#false} #137#return; {426#false} is VALID [2022-02-20 16:47:01,419 INFO L290 TraceCheckUtils]: 18: Hoare triple {426#false} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {426#false} is VALID [2022-02-20 16:47:01,419 INFO L290 TraceCheckUtils]: 19: Hoare triple {426#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {426#false} is VALID [2022-02-20 16:47:01,419 INFO L272 TraceCheckUtils]: 20: Hoare triple {426#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {426#false} is VALID [2022-02-20 16:47:01,420 INFO L290 TraceCheckUtils]: 21: Hoare triple {426#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {426#false} is VALID [2022-02-20 16:47:01,420 INFO L290 TraceCheckUtils]: 22: Hoare triple {426#false} assume true; {426#false} is VALID [2022-02-20 16:47:01,420 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {426#false} {426#false} #141#return; {426#false} is VALID [2022-02-20 16:47:01,420 INFO L290 TraceCheckUtils]: 24: Hoare triple {426#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {426#false} is VALID [2022-02-20 16:47:01,420 INFO L290 TraceCheckUtils]: 25: Hoare triple {426#false} assume !main_#t~short20#1; {426#false} is VALID [2022-02-20 16:47:01,421 INFO L290 TraceCheckUtils]: 26: Hoare triple {426#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {426#false} is VALID [2022-02-20 16:47:01,421 INFO L290 TraceCheckUtils]: 27: Hoare triple {426#false} assume !false; {426#false} is VALID [2022-02-20 16:47:01,421 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2022-02-20 16:47:01,421 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:01,422 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:01,422 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [2002013616] [2022-02-20 16:47:01,422 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [2002013616] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:01,422 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:01,422 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:01,423 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1675198234] [2022-02-20 16:47:01,423 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:01,424 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.5) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 28 [2022-02-20 16:47:01,424 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:01,424 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 5.5) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:01,449 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 28 edges. 28 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:01,449 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:01,449 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:01,450 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:01,450 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:01,450 INFO L87 Difference]: Start difference. First operand 51 states and 70 transitions. Second operand has 4 states, 4 states have (on average 5.5) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:01,641 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:01,641 INFO L93 Difference]: Finished difference Result 96 states and 131 transitions. [2022-02-20 16:47:01,641 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2022-02-20 16:47:01,641 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.5) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) Word has length 28 [2022-02-20 16:47:01,642 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:01,642 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.5) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:01,644 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 131 transitions. [2022-02-20 16:47:01,644 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.5) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:01,646 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 131 transitions. [2022-02-20 16:47:01,652 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 131 transitions. [2022-02-20 16:47:01,781 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 131 edges. 131 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:01,784 INFO L225 Difference]: With dead ends: 96 [2022-02-20 16:47:01,785 INFO L226 Difference]: Without dead ends: 60 [2022-02-20 16:47:01,785 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 28 GetRequests, 25 SyntacticMatches, 0 SemanticMatches, 3 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=9, Invalid=11, Unknown=0, NotChecked=0, Total=20 [2022-02-20 16:47:01,787 INFO L933 BasicCegarLoop]: 70 mSDtfsCounter, 16 mSDsluCounter, 121 mSDsCounter, 0 mSdLazyCounter, 13 mSolverCounterSat, 5 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 18 SdHoareTripleChecker+Valid, 191 SdHoareTripleChecker+Invalid, 18 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 5 IncrementalHoareTripleChecker+Valid, 13 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:01,788 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [18 Valid, 191 Invalid, 18 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [5 Valid, 13 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:01,789 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2022-02-20 16:47:01,797 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 53. [2022-02-20 16:47:01,797 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:01,798 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand has 53 states, 39 states have (on average 1.3333333333333333) internal successors, (52), 40 states have internal predecessors, (52), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:01,799 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand has 53 states, 39 states have (on average 1.3333333333333333) internal successors, (52), 40 states have internal predecessors, (52), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:01,800 INFO L87 Difference]: Start difference. First operand 60 states. Second operand has 53 states, 39 states have (on average 1.3333333333333333) internal successors, (52), 40 states have internal predecessors, (52), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:01,804 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:01,804 INFO L93 Difference]: Finished difference Result 60 states and 82 transitions. [2022-02-20 16:47:01,804 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 82 transitions. [2022-02-20 16:47:01,805 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:01,805 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:01,806 INFO L74 IsIncluded]: Start isIncluded. First operand has 53 states, 39 states have (on average 1.3333333333333333) internal successors, (52), 40 states have internal predecessors, (52), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 60 states. [2022-02-20 16:47:01,806 INFO L87 Difference]: Start difference. First operand has 53 states, 39 states have (on average 1.3333333333333333) internal successors, (52), 40 states have internal predecessors, (52), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) Second operand 60 states. [2022-02-20 16:47:01,809 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:01,809 INFO L93 Difference]: Finished difference Result 60 states and 82 transitions. [2022-02-20 16:47:01,809 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 82 transitions. [2022-02-20 16:47:01,810 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:01,810 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:01,810 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:01,810 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:01,813 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 53 states, 39 states have (on average 1.3333333333333333) internal successors, (52), 40 states have internal predecessors, (52), 10 states have call successors, (10), 2 states have call predecessors, (10), 2 states have return successors, (10), 10 states have call predecessors, (10), 10 states have call successors, (10) [2022-02-20 16:47:01,814 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 53 states to 53 states and 72 transitions. [2022-02-20 16:47:01,815 INFO L78 Accepts]: Start accepts. Automaton has 53 states and 72 transitions. Word has length 28 [2022-02-20 16:47:01,815 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:01,815 INFO L470 AbstractCegarLoop]: Abstraction has 53 states and 72 transitions. [2022-02-20 16:47:01,816 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 5.5) internal successors, (22), 4 states have internal predecessors, (22), 2 states have call successors, (3), 2 states have call predecessors, (3), 2 states have return successors, (3), 2 states have call predecessors, (3), 2 states have call successors, (3) [2022-02-20 16:47:01,816 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 72 transitions. [2022-02-20 16:47:01,817 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 34 [2022-02-20 16:47:01,818 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:01,818 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:01,835 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (3)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:02,023 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 3 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:02,024 INFO L402 AbstractCegarLoop]: === Iteration 3 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:02,024 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:02,024 INFO L85 PathProgramCache]: Analyzing trace with hash 987158491, now seen corresponding path program 1 times [2022-02-20 16:47:02,024 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:02,025 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [725180898] [2022-02-20 16:47:02,025 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:02,025 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:02,025 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:02,026 INFO L229 MonitoredProcess]: Starting monitored process 4 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:02,027 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Waiting until timeout for monitored process [2022-02-20 16:47:02,106 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:02,108 INFO L263 TraceCheckSpWp]: Trace formula consists of 80 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:02,116 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:02,117 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:02,193 INFO L290 TraceCheckUtils]: 0: Hoare triple {823#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {823#true} is VALID [2022-02-20 16:47:02,193 INFO L290 TraceCheckUtils]: 1: Hoare triple {823#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {823#true} is VALID [2022-02-20 16:47:02,194 INFO L272 TraceCheckUtils]: 2: Hoare triple {823#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {823#true} is VALID [2022-02-20 16:47:02,194 INFO L290 TraceCheckUtils]: 3: Hoare triple {823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {823#true} is VALID [2022-02-20 16:47:02,194 INFO L290 TraceCheckUtils]: 4: Hoare triple {823#true} assume true; {823#true} is VALID [2022-02-20 16:47:02,194 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {823#true} {823#true} #129#return; {823#true} is VALID [2022-02-20 16:47:02,194 INFO L290 TraceCheckUtils]: 6: Hoare triple {823#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {823#true} is VALID [2022-02-20 16:47:02,194 INFO L290 TraceCheckUtils]: 7: Hoare triple {823#true} assume main_#t~short12#1; {823#true} is VALID [2022-02-20 16:47:02,194 INFO L272 TraceCheckUtils]: 8: Hoare triple {823#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {823#true} is VALID [2022-02-20 16:47:02,194 INFO L290 TraceCheckUtils]: 9: Hoare triple {823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {823#true} is VALID [2022-02-20 16:47:02,194 INFO L290 TraceCheckUtils]: 10: Hoare triple {823#true} assume true; {823#true} is VALID [2022-02-20 16:47:02,195 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {823#true} {823#true} #131#return; {823#true} is VALID [2022-02-20 16:47:02,195 INFO L290 TraceCheckUtils]: 12: Hoare triple {823#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {823#true} is VALID [2022-02-20 16:47:02,195 INFO L290 TraceCheckUtils]: 13: Hoare triple {823#true} main_#t~short16#1 := main_#t~short12#1; {823#true} is VALID [2022-02-20 16:47:02,195 INFO L290 TraceCheckUtils]: 14: Hoare triple {823#true} assume main_#t~short16#1; {823#true} is VALID [2022-02-20 16:47:02,195 INFO L290 TraceCheckUtils]: 15: Hoare triple {823#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {823#true} is VALID [2022-02-20 16:47:02,195 INFO L272 TraceCheckUtils]: 16: Hoare triple {823#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {823#true} is VALID [2022-02-20 16:47:02,195 INFO L290 TraceCheckUtils]: 17: Hoare triple {823#true} ~x := #in~x;havoc ~w~0; {823#true} is VALID [2022-02-20 16:47:02,195 INFO L290 TraceCheckUtils]: 18: Hoare triple {823#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {823#true} is VALID [2022-02-20 16:47:02,195 INFO L290 TraceCheckUtils]: 19: Hoare triple {823#true} goto; {823#true} is VALID [2022-02-20 16:47:02,196 INFO L290 TraceCheckUtils]: 20: Hoare triple {823#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {888#(= (_ bv2 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:02,196 INFO L290 TraceCheckUtils]: 21: Hoare triple {888#(= (_ bv2 32) |__fpclassify_float_#res|)} assume true; {888#(= (_ bv2 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:02,197 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {888#(= (_ bv2 32) |__fpclassify_float_#res|)} {823#true} #137#return; {895#(= |ULTIMATE.start_fmax_float_#t~ret5#1| (_ bv2 32))} is VALID [2022-02-20 16:47:02,197 INFO L290 TraceCheckUtils]: 23: Hoare triple {895#(= |ULTIMATE.start_fmax_float_#t~ret5#1| (_ bv2 32))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {824#false} is VALID [2022-02-20 16:47:02,197 INFO L290 TraceCheckUtils]: 24: Hoare triple {824#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {824#false} is VALID [2022-02-20 16:47:02,197 INFO L272 TraceCheckUtils]: 25: Hoare triple {824#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {824#false} is VALID [2022-02-20 16:47:02,197 INFO L290 TraceCheckUtils]: 26: Hoare triple {824#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {824#false} is VALID [2022-02-20 16:47:02,197 INFO L290 TraceCheckUtils]: 27: Hoare triple {824#false} assume true; {824#false} is VALID [2022-02-20 16:47:02,198 INFO L284 TraceCheckUtils]: 28: Hoare quadruple {824#false} {824#false} #141#return; {824#false} is VALID [2022-02-20 16:47:02,198 INFO L290 TraceCheckUtils]: 29: Hoare triple {824#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {824#false} is VALID [2022-02-20 16:47:02,198 INFO L290 TraceCheckUtils]: 30: Hoare triple {824#false} assume !main_#t~short20#1; {824#false} is VALID [2022-02-20 16:47:02,198 INFO L290 TraceCheckUtils]: 31: Hoare triple {824#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {824#false} is VALID [2022-02-20 16:47:02,198 INFO L290 TraceCheckUtils]: 32: Hoare triple {824#false} assume !false; {824#false} is VALID [2022-02-20 16:47:02,198 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 6 proven. 0 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2022-02-20 16:47:02,198 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:02,198 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:02,198 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [725180898] [2022-02-20 16:47:02,199 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [725180898] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:02,199 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:02,199 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:02,199 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [838625576] [2022-02-20 16:47:02,199 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:02,199 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.75) internal successors, (23), 3 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 33 [2022-02-20 16:47:02,200 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:02,200 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 5.75) internal successors, (23), 3 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:02,221 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 31 edges. 31 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:02,222 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:02,222 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:02,222 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:02,222 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:02,223 INFO L87 Difference]: Start difference. First operand 53 states and 72 transitions. Second operand has 4 states, 4 states have (on average 5.75) internal successors, (23), 3 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:02,396 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:02,396 INFO L93 Difference]: Finished difference Result 76 states and 101 transitions. [2022-02-20 16:47:02,396 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:02,396 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 5.75) internal successors, (23), 3 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 33 [2022-02-20 16:47:02,396 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:02,397 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.75) internal successors, (23), 3 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:02,398 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:02,398 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 5.75) internal successors, (23), 3 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:02,400 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:02,400 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 99 transitions. [2022-02-20 16:47:02,467 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:02,468 INFO L225 Difference]: With dead ends: 76 [2022-02-20 16:47:02,468 INFO L226 Difference]: Without dead ends: 56 [2022-02-20 16:47:02,468 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 32 GetRequests, 30 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:02,469 INFO L933 BasicCegarLoop]: 69 mSDtfsCounter, 0 mSDsluCounter, 131 mSDsCounter, 0 mSdLazyCounter, 9 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 200 SdHoareTripleChecker+Invalid, 9 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 9 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:02,469 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 200 Invalid, 9 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 9 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:02,470 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2022-02-20 16:47:02,473 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 56. [2022-02-20 16:47:02,473 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:02,473 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:02,473 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:02,473 INFO L87 Difference]: Start difference. First operand 56 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:02,475 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:02,475 INFO L93 Difference]: Finished difference Result 56 states and 76 transitions. [2022-02-20 16:47:02,475 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 76 transitions. [2022-02-20 16:47:02,475 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:02,476 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:02,476 INFO L74 IsIncluded]: Start isIncluded. First operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 56 states. [2022-02-20 16:47:02,476 INFO L87 Difference]: Start difference. First operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 56 states. [2022-02-20 16:47:02,478 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:02,478 INFO L93 Difference]: Finished difference Result 56 states and 76 transitions. [2022-02-20 16:47:02,478 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 76 transitions. [2022-02-20 16:47:02,478 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:02,478 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:02,478 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:02,478 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:02,478 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:02,484 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 76 transitions. [2022-02-20 16:47:02,485 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 76 transitions. Word has length 33 [2022-02-20 16:47:02,485 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:02,485 INFO L470 AbstractCegarLoop]: Abstraction has 56 states and 76 transitions. [2022-02-20 16:47:02,485 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 5.75) internal successors, (23), 3 states have internal predecessors, (23), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:02,485 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 76 transitions. [2022-02-20 16:47:02,486 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 35 [2022-02-20 16:47:02,486 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:02,486 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:02,494 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (4)] Ended with exit code 0 [2022-02-20 16:47:02,694 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 4 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:02,695 INFO L402 AbstractCegarLoop]: === Iteration 4 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:02,695 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:02,695 INFO L85 PathProgramCache]: Analyzing trace with hash 871427583, now seen corresponding path program 1 times [2022-02-20 16:47:02,695 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:02,695 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [958140590] [2022-02-20 16:47:02,696 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:02,696 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:02,696 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:02,697 INFO L229 MonitoredProcess]: Starting monitored process 5 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:02,698 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Waiting until timeout for monitored process [2022-02-20 16:47:02,749 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:02,751 INFO L263 TraceCheckSpWp]: Trace formula consists of 82 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:02,758 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:02,759 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:02,819 INFO L290 TraceCheckUtils]: 0: Hoare triple {1203#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {1203#true} is VALID [2022-02-20 16:47:02,819 INFO L290 TraceCheckUtils]: 1: Hoare triple {1203#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {1203#true} is VALID [2022-02-20 16:47:02,819 INFO L272 TraceCheckUtils]: 2: Hoare triple {1203#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {1203#true} is VALID [2022-02-20 16:47:02,819 INFO L290 TraceCheckUtils]: 3: Hoare triple {1203#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1203#true} is VALID [2022-02-20 16:47:02,819 INFO L290 TraceCheckUtils]: 4: Hoare triple {1203#true} assume true; {1203#true} is VALID [2022-02-20 16:47:02,819 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1203#true} {1203#true} #129#return; {1203#true} is VALID [2022-02-20 16:47:02,819 INFO L290 TraceCheckUtils]: 6: Hoare triple {1203#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {1203#true} is VALID [2022-02-20 16:47:02,819 INFO L290 TraceCheckUtils]: 7: Hoare triple {1203#true} assume main_#t~short12#1; {1203#true} is VALID [2022-02-20 16:47:02,819 INFO L272 TraceCheckUtils]: 8: Hoare triple {1203#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 9: Hoare triple {1203#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 10: Hoare triple {1203#true} assume true; {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1203#true} {1203#true} #131#return; {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 12: Hoare triple {1203#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 13: Hoare triple {1203#true} main_#t~short16#1 := main_#t~short12#1; {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 14: Hoare triple {1203#true} assume main_#t~short16#1; {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 15: Hoare triple {1203#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L272 TraceCheckUtils]: 16: Hoare triple {1203#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 17: Hoare triple {1203#true} ~x := #in~x;havoc ~w~0; {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 18: Hoare triple {1203#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {1203#true} is VALID [2022-02-20 16:47:02,820 INFO L290 TraceCheckUtils]: 19: Hoare triple {1203#true} goto; {1203#true} is VALID [2022-02-20 16:47:02,821 INFO L290 TraceCheckUtils]: 20: Hoare triple {1203#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {1203#true} is VALID [2022-02-20 16:47:02,822 INFO L290 TraceCheckUtils]: 21: Hoare triple {1203#true} assume (~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32));#res := 4bv32; {1271#(= (_ bv4 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:02,823 INFO L290 TraceCheckUtils]: 22: Hoare triple {1271#(= (_ bv4 32) |__fpclassify_float_#res|)} assume true; {1271#(= (_ bv4 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:02,823 INFO L284 TraceCheckUtils]: 23: Hoare quadruple {1271#(= (_ bv4 32) |__fpclassify_float_#res|)} {1203#true} #137#return; {1278#(= |ULTIMATE.start_fmax_float_#t~ret5#1| (_ bv4 32))} is VALID [2022-02-20 16:47:02,823 INFO L290 TraceCheckUtils]: 24: Hoare triple {1278#(= |ULTIMATE.start_fmax_float_#t~ret5#1| (_ bv4 32))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L290 TraceCheckUtils]: 25: Hoare triple {1204#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L272 TraceCheckUtils]: 26: Hoare triple {1204#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L290 TraceCheckUtils]: 27: Hoare triple {1204#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L290 TraceCheckUtils]: 28: Hoare triple {1204#false} assume true; {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {1204#false} {1204#false} #141#return; {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L290 TraceCheckUtils]: 30: Hoare triple {1204#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L290 TraceCheckUtils]: 31: Hoare triple {1204#false} assume !main_#t~short20#1; {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L290 TraceCheckUtils]: 32: Hoare triple {1204#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L290 TraceCheckUtils]: 33: Hoare triple {1204#false} assume !false; {1204#false} is VALID [2022-02-20 16:47:02,824 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 6 proven. 0 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2022-02-20 16:47:02,825 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:02,825 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:02,825 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [958140590] [2022-02-20 16:47:02,825 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [958140590] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:02,825 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:02,825 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:02,825 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [161121628] [2022-02-20 16:47:02,825 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:02,825 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.0) internal successors, (24), 3 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 34 [2022-02-20 16:47:02,826 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:02,826 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 6.0) internal successors, (24), 3 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:02,852 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:02,852 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:02,852 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:02,853 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:02,853 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:02,853 INFO L87 Difference]: Start difference. First operand 56 states and 76 transitions. Second operand has 4 states, 4 states have (on average 6.0) internal successors, (24), 3 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:02,998 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:02,999 INFO L93 Difference]: Finished difference Result 79 states and 105 transitions. [2022-02-20 16:47:02,999 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:02,999 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.0) internal successors, (24), 3 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 34 [2022-02-20 16:47:02,999 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:02,999 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.0) internal successors, (24), 3 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:03,001 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:03,001 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.0) internal successors, (24), 3 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:03,002 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:03,002 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 99 transitions. [2022-02-20 16:47:03,076 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:03,078 INFO L225 Difference]: With dead ends: 79 [2022-02-20 16:47:03,078 INFO L226 Difference]: Without dead ends: 59 [2022-02-20 16:47:03,078 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 33 GetRequests, 31 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:03,079 INFO L933 BasicCegarLoop]: 73 mSDtfsCounter, 0 mSDsluCounter, 136 mSDsCounter, 0 mSdLazyCounter, 10 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 209 SdHoareTripleChecker+Invalid, 10 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 10 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:03,083 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 209 Invalid, 10 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 10 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:03,084 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2022-02-20 16:47:03,087 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 56. [2022-02-20 16:47:03,087 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:03,087 INFO L82 GeneralOperation]: Start isEquivalent. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:03,087 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:03,088 INFO L87 Difference]: Start difference. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:03,090 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:03,090 INFO L93 Difference]: Finished difference Result 59 states and 80 transitions. [2022-02-20 16:47:03,090 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 80 transitions. [2022-02-20 16:47:03,090 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:03,090 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:03,090 INFO L74 IsIncluded]: Start isIncluded. First operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 59 states. [2022-02-20 16:47:03,091 INFO L87 Difference]: Start difference. First operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 59 states. [2022-02-20 16:47:03,092 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:03,092 INFO L93 Difference]: Finished difference Result 59 states and 80 transitions. [2022-02-20 16:47:03,093 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 80 transitions. [2022-02-20 16:47:03,093 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:03,093 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:03,093 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:03,093 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:03,093 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:03,095 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 76 transitions. [2022-02-20 16:47:03,095 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 76 transitions. Word has length 34 [2022-02-20 16:47:03,095 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:03,096 INFO L470 AbstractCegarLoop]: Abstraction has 56 states and 76 transitions. [2022-02-20 16:47:03,096 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 6.0) internal successors, (24), 3 states have internal predecessors, (24), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:03,096 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 76 transitions. [2022-02-20 16:47:03,096 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 36 [2022-02-20 16:47:03,096 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:03,097 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:03,106 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (5)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:03,303 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 5 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:03,304 INFO L402 AbstractCegarLoop]: === Iteration 5 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:03,304 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:03,304 INFO L85 PathProgramCache]: Analyzing trace with hash 405124703, now seen corresponding path program 1 times [2022-02-20 16:47:03,304 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:03,305 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [63754464] [2022-02-20 16:47:03,305 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:03,305 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:03,305 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:03,306 INFO L229 MonitoredProcess]: Starting monitored process 6 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:03,307 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (6)] Waiting until timeout for monitored process [2022-02-20 16:47:03,350 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:03,358 INFO L263 TraceCheckSpWp]: Trace formula consists of 84 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:03,364 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:03,365 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:03,454 INFO L290 TraceCheckUtils]: 0: Hoare triple {1595#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {1595#true} is VALID [2022-02-20 16:47:03,454 INFO L290 TraceCheckUtils]: 1: Hoare triple {1595#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {1595#true} is VALID [2022-02-20 16:47:03,454 INFO L272 TraceCheckUtils]: 2: Hoare triple {1595#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {1595#true} is VALID [2022-02-20 16:47:03,454 INFO L290 TraceCheckUtils]: 3: Hoare triple {1595#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1595#true} is VALID [2022-02-20 16:47:03,454 INFO L290 TraceCheckUtils]: 4: Hoare triple {1595#true} assume true; {1595#true} is VALID [2022-02-20 16:47:03,454 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1595#true} {1595#true} #129#return; {1595#true} is VALID [2022-02-20 16:47:03,455 INFO L290 TraceCheckUtils]: 6: Hoare triple {1595#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {1595#true} is VALID [2022-02-20 16:47:03,455 INFO L290 TraceCheckUtils]: 7: Hoare triple {1595#true} assume main_#t~short12#1; {1595#true} is VALID [2022-02-20 16:47:03,455 INFO L272 TraceCheckUtils]: 8: Hoare triple {1595#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {1595#true} is VALID [2022-02-20 16:47:03,455 INFO L290 TraceCheckUtils]: 9: Hoare triple {1595#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1595#true} is VALID [2022-02-20 16:47:03,455 INFO L290 TraceCheckUtils]: 10: Hoare triple {1595#true} assume true; {1595#true} is VALID [2022-02-20 16:47:03,455 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1595#true} {1595#true} #131#return; {1595#true} is VALID [2022-02-20 16:47:03,456 INFO L290 TraceCheckUtils]: 12: Hoare triple {1595#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {1595#true} is VALID [2022-02-20 16:47:03,456 INFO L290 TraceCheckUtils]: 13: Hoare triple {1595#true} main_#t~short16#1 := main_#t~short12#1; {1595#true} is VALID [2022-02-20 16:47:03,456 INFO L290 TraceCheckUtils]: 14: Hoare triple {1595#true} assume main_#t~short16#1; {1595#true} is VALID [2022-02-20 16:47:03,456 INFO L290 TraceCheckUtils]: 15: Hoare triple {1595#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {1595#true} is VALID [2022-02-20 16:47:03,456 INFO L272 TraceCheckUtils]: 16: Hoare triple {1595#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {1595#true} is VALID [2022-02-20 16:47:03,456 INFO L290 TraceCheckUtils]: 17: Hoare triple {1595#true} ~x := #in~x;havoc ~w~0; {1595#true} is VALID [2022-02-20 16:47:03,456 INFO L290 TraceCheckUtils]: 18: Hoare triple {1595#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {1595#true} is VALID [2022-02-20 16:47:03,457 INFO L290 TraceCheckUtils]: 19: Hoare triple {1595#true} goto; {1595#true} is VALID [2022-02-20 16:47:03,457 INFO L290 TraceCheckUtils]: 20: Hoare triple {1595#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {1595#true} is VALID [2022-02-20 16:47:03,457 INFO L290 TraceCheckUtils]: 21: Hoare triple {1595#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {1595#true} is VALID [2022-02-20 16:47:03,457 INFO L290 TraceCheckUtils]: 22: Hoare triple {1595#true} assume (~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32));#res := 3bv32; {1666#(= (_ bv3 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:03,458 INFO L290 TraceCheckUtils]: 23: Hoare triple {1666#(= (_ bv3 32) |__fpclassify_float_#res|)} assume true; {1666#(= (_ bv3 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:03,458 INFO L284 TraceCheckUtils]: 24: Hoare quadruple {1666#(= (_ bv3 32) |__fpclassify_float_#res|)} {1595#true} #137#return; {1673#(= |ULTIMATE.start_fmax_float_#t~ret5#1| (_ bv3 32))} is VALID [2022-02-20 16:47:03,459 INFO L290 TraceCheckUtils]: 25: Hoare triple {1673#(= |ULTIMATE.start_fmax_float_#t~ret5#1| (_ bv3 32))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {1596#false} is VALID [2022-02-20 16:47:03,459 INFO L290 TraceCheckUtils]: 26: Hoare triple {1596#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {1596#false} is VALID [2022-02-20 16:47:03,459 INFO L272 TraceCheckUtils]: 27: Hoare triple {1596#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {1596#false} is VALID [2022-02-20 16:47:03,459 INFO L290 TraceCheckUtils]: 28: Hoare triple {1596#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1596#false} is VALID [2022-02-20 16:47:03,459 INFO L290 TraceCheckUtils]: 29: Hoare triple {1596#false} assume true; {1596#false} is VALID [2022-02-20 16:47:03,460 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {1596#false} {1596#false} #141#return; {1596#false} is VALID [2022-02-20 16:47:03,460 INFO L290 TraceCheckUtils]: 31: Hoare triple {1596#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {1596#false} is VALID [2022-02-20 16:47:03,460 INFO L290 TraceCheckUtils]: 32: Hoare triple {1596#false} assume !main_#t~short20#1; {1596#false} is VALID [2022-02-20 16:47:03,460 INFO L290 TraceCheckUtils]: 33: Hoare triple {1596#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {1596#false} is VALID [2022-02-20 16:47:03,460 INFO L290 TraceCheckUtils]: 34: Hoare triple {1596#false} assume !false; {1596#false} is VALID [2022-02-20 16:47:03,460 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 6 proven. 0 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2022-02-20 16:47:03,461 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:03,461 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:03,461 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [63754464] [2022-02-20 16:47:03,461 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [63754464] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:03,461 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:03,461 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:03,461 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [520217062] [2022-02-20 16:47:03,461 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:03,462 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 35 [2022-02-20 16:47:03,462 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:03,462 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:03,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-02-20 16:47:03,491 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:03,491 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:03,491 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:03,491 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:03,491 INFO L87 Difference]: Start difference. First operand 56 states and 76 transitions. Second operand has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:03,627 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:03,627 INFO L93 Difference]: Finished difference Result 79 states and 105 transitions. [2022-02-20 16:47:03,627 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:03,627 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 35 [2022-02-20 16:47:03,627 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:03,627 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:03,629 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:03,629 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:03,630 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:03,630 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 99 transitions. [2022-02-20 16:47:03,697 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:03,698 INFO L225 Difference]: With dead ends: 79 [2022-02-20 16:47:03,698 INFO L226 Difference]: Without dead ends: 59 [2022-02-20 16:47:03,698 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 34 GetRequests, 32 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:03,699 INFO L933 BasicCegarLoop]: 73 mSDtfsCounter, 0 mSDsluCounter, 136 mSDsCounter, 0 mSdLazyCounter, 10 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 209 SdHoareTripleChecker+Invalid, 10 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 10 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:03,699 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 209 Invalid, 10 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 10 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:03,700 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2022-02-20 16:47:03,702 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 56. [2022-02-20 16:47:03,702 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:03,702 INFO L82 GeneralOperation]: Start isEquivalent. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:03,703 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:03,703 INFO L87 Difference]: Start difference. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:03,704 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:03,704 INFO L93 Difference]: Finished difference Result 59 states and 80 transitions. [2022-02-20 16:47:03,705 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 80 transitions. [2022-02-20 16:47:03,705 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:03,705 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:03,705 INFO L74 IsIncluded]: Start isIncluded. First operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 59 states. [2022-02-20 16:47:03,705 INFO L87 Difference]: Start difference. First operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 59 states. [2022-02-20 16:47:03,707 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:03,707 INFO L93 Difference]: Finished difference Result 59 states and 80 transitions. [2022-02-20 16:47:03,707 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 80 transitions. [2022-02-20 16:47:03,707 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:03,707 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:03,707 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:03,707 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:03,708 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:03,709 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 76 transitions. [2022-02-20 16:47:03,709 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 76 transitions. Word has length 35 [2022-02-20 16:47:03,709 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:03,709 INFO L470 AbstractCegarLoop]: Abstraction has 56 states and 76 transitions. [2022-02-20 16:47:03,709 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 6.25) internal successors, (25), 3 states have internal predecessors, (25), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:03,709 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 76 transitions. [2022-02-20 16:47:03,710 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2022-02-20 16:47:03,710 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:03,710 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:03,729 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (6)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:03,918 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 6 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:03,918 INFO L402 AbstractCegarLoop]: === Iteration 6 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:03,918 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:03,919 INFO L85 PathProgramCache]: Analyzing trace with hash 1955992579, now seen corresponding path program 1 times [2022-02-20 16:47:03,919 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:03,919 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1816217439] [2022-02-20 16:47:03,919 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:03,919 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:03,919 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:03,920 INFO L229 MonitoredProcess]: Starting monitored process 7 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:03,921 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (7)] Waiting until timeout for monitored process [2022-02-20 16:47:03,963 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:03,964 INFO L263 TraceCheckSpWp]: Trace formula consists of 86 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:03,980 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:03,980 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:04,040 INFO L290 TraceCheckUtils]: 0: Hoare triple {1990#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L290 TraceCheckUtils]: 1: Hoare triple {1990#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L272 TraceCheckUtils]: 2: Hoare triple {1990#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L290 TraceCheckUtils]: 3: Hoare triple {1990#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L290 TraceCheckUtils]: 4: Hoare triple {1990#true} assume true; {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {1990#true} {1990#true} #129#return; {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L290 TraceCheckUtils]: 6: Hoare triple {1990#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L290 TraceCheckUtils]: 7: Hoare triple {1990#true} assume main_#t~short12#1; {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L272 TraceCheckUtils]: 8: Hoare triple {1990#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L290 TraceCheckUtils]: 9: Hoare triple {1990#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L290 TraceCheckUtils]: 10: Hoare triple {1990#true} assume true; {1990#true} is VALID [2022-02-20 16:47:04,041 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {1990#true} {1990#true} #131#return; {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L290 TraceCheckUtils]: 12: Hoare triple {1990#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L290 TraceCheckUtils]: 13: Hoare triple {1990#true} main_#t~short16#1 := main_#t~short12#1; {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L290 TraceCheckUtils]: 14: Hoare triple {1990#true} assume main_#t~short16#1; {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L290 TraceCheckUtils]: 15: Hoare triple {1990#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L272 TraceCheckUtils]: 16: Hoare triple {1990#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L290 TraceCheckUtils]: 17: Hoare triple {1990#true} ~x := #in~x;havoc ~w~0; {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L290 TraceCheckUtils]: 18: Hoare triple {1990#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L290 TraceCheckUtils]: 19: Hoare triple {1990#true} goto; {1990#true} is VALID [2022-02-20 16:47:04,042 INFO L290 TraceCheckUtils]: 20: Hoare triple {1990#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {1990#true} is VALID [2022-02-20 16:47:04,043 INFO L290 TraceCheckUtils]: 21: Hoare triple {1990#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {1990#true} is VALID [2022-02-20 16:47:04,043 INFO L290 TraceCheckUtils]: 22: Hoare triple {1990#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {1990#true} is VALID [2022-02-20 16:47:04,043 INFO L290 TraceCheckUtils]: 23: Hoare triple {1990#true} assume 2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0;#res := 1bv32; {2064#(= (_ bv1 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:04,045 INFO L290 TraceCheckUtils]: 24: Hoare triple {2064#(= (_ bv1 32) |__fpclassify_float_#res|)} assume true; {2064#(= (_ bv1 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:04,046 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {2064#(= (_ bv1 32) |__fpclassify_float_#res|)} {1990#true} #137#return; {2071#(= |ULTIMATE.start_fmax_float_#t~ret5#1| (_ bv1 32))} is VALID [2022-02-20 16:47:04,046 INFO L290 TraceCheckUtils]: 26: Hoare triple {2071#(= |ULTIMATE.start_fmax_float_#t~ret5#1| (_ bv1 32))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {1991#false} is VALID [2022-02-20 16:47:04,048 INFO L290 TraceCheckUtils]: 27: Hoare triple {1991#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {1991#false} is VALID [2022-02-20 16:47:04,048 INFO L272 TraceCheckUtils]: 28: Hoare triple {1991#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {1991#false} is VALID [2022-02-20 16:47:04,048 INFO L290 TraceCheckUtils]: 29: Hoare triple {1991#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {1991#false} is VALID [2022-02-20 16:47:04,048 INFO L290 TraceCheckUtils]: 30: Hoare triple {1991#false} assume true; {1991#false} is VALID [2022-02-20 16:47:04,049 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {1991#false} {1991#false} #141#return; {1991#false} is VALID [2022-02-20 16:47:04,049 INFO L290 TraceCheckUtils]: 32: Hoare triple {1991#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {1991#false} is VALID [2022-02-20 16:47:04,049 INFO L290 TraceCheckUtils]: 33: Hoare triple {1991#false} assume !main_#t~short20#1; {1991#false} is VALID [2022-02-20 16:47:04,049 INFO L290 TraceCheckUtils]: 34: Hoare triple {1991#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {1991#false} is VALID [2022-02-20 16:47:04,049 INFO L290 TraceCheckUtils]: 35: Hoare triple {1991#false} assume !false; {1991#false} is VALID [2022-02-20 16:47:04,049 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 6 proven. 0 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2022-02-20 16:47:04,049 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:04,049 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:04,049 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1816217439] [2022-02-20 16:47:04,049 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1816217439] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:04,049 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:04,049 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:04,050 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1534597184] [2022-02-20 16:47:04,050 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:04,050 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.5) internal successors, (26), 3 states have internal predecessors, (26), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 36 [2022-02-20 16:47:04,050 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:04,050 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 6.5) internal successors, (26), 3 states have internal predecessors, (26), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:04,073 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:04,074 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:04,074 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:04,075 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:04,075 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:04,075 INFO L87 Difference]: Start difference. First operand 56 states and 76 transitions. Second operand has 4 states, 4 states have (on average 6.5) internal successors, (26), 3 states have internal predecessors, (26), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:04,214 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:04,214 INFO L93 Difference]: Finished difference Result 79 states and 105 transitions. [2022-02-20 16:47:04,214 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:04,214 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.5) internal successors, (26), 3 states have internal predecessors, (26), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) Word has length 36 [2022-02-20 16:47:04,214 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:04,214 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.5) internal successors, (26), 3 states have internal predecessors, (26), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:04,216 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:04,216 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.5) internal successors, (26), 3 states have internal predecessors, (26), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:04,217 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:04,217 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 99 transitions. [2022-02-20 16:47:04,286 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:04,289 INFO L225 Difference]: With dead ends: 79 [2022-02-20 16:47:04,289 INFO L226 Difference]: Without dead ends: 59 [2022-02-20 16:47:04,290 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 35 GetRequests, 33 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:04,290 INFO L933 BasicCegarLoop]: 73 mSDtfsCounter, 0 mSDsluCounter, 136 mSDsCounter, 0 mSdLazyCounter, 10 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 209 SdHoareTripleChecker+Invalid, 10 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 10 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:04,291 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 209 Invalid, 10 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 10 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:04,291 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 59 states. [2022-02-20 16:47:04,297 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 59 to 56. [2022-02-20 16:47:04,298 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:04,298 INFO L82 GeneralOperation]: Start isEquivalent. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:04,298 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:04,298 INFO L87 Difference]: Start difference. First operand 59 states. Second operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:04,300 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:04,300 INFO L93 Difference]: Finished difference Result 59 states and 80 transitions. [2022-02-20 16:47:04,300 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 80 transitions. [2022-02-20 16:47:04,301 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:04,301 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:04,301 INFO L74 IsIncluded]: Start isIncluded. First operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 59 states. [2022-02-20 16:47:04,301 INFO L87 Difference]: Start difference. First operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) Second operand 59 states. [2022-02-20 16:47:04,303 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:04,303 INFO L93 Difference]: Finished difference Result 59 states and 80 transitions. [2022-02-20 16:47:04,303 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 80 transitions. [2022-02-20 16:47:04,303 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:04,303 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:04,303 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:04,304 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:04,304 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 56 states, 41 states have (on average 1.3170731707317074) internal successors, (54), 42 states have internal predecessors, (54), 10 states have call successors, (10), 2 states have call predecessors, (10), 3 states have return successors, (12), 11 states have call predecessors, (12), 10 states have call successors, (12) [2022-02-20 16:47:04,305 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 56 states to 56 states and 76 transitions. [2022-02-20 16:47:04,305 INFO L78 Accepts]: Start accepts. Automaton has 56 states and 76 transitions. Word has length 36 [2022-02-20 16:47:04,305 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:04,305 INFO L470 AbstractCegarLoop]: Abstraction has 56 states and 76 transitions. [2022-02-20 16:47:04,306 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 6.5) internal successors, (26), 3 states have internal predecessors, (26), 2 states have call successors, (4), 2 states have call predecessors, (4), 3 states have return successors, (4), 3 states have call predecessors, (4), 2 states have call successors, (4) [2022-02-20 16:47:04,306 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 76 transitions. [2022-02-20 16:47:04,306 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 37 [2022-02-20 16:47:04,306 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:04,306 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:04,317 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (7)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:04,514 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 7 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:04,514 INFO L402 AbstractCegarLoop]: === Iteration 7 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:04,515 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:04,515 INFO L85 PathProgramCache]: Analyzing trace with hash 1662589572, now seen corresponding path program 1 times [2022-02-20 16:47:04,515 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:04,515 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [785049618] [2022-02-20 16:47:04,515 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:04,515 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:04,515 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:04,516 INFO L229 MonitoredProcess]: Starting monitored process 8 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:04,520 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (8)] Waiting until timeout for monitored process [2022-02-20 16:47:04,560 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:04,561 INFO L263 TraceCheckSpWp]: Trace formula consists of 87 conjuncts, 12 conjunts are in the unsatisfiable core [2022-02-20 16:47:04,574 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:04,575 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:04,836 INFO L290 TraceCheckUtils]: 0: Hoare triple {2388#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {2388#true} is VALID [2022-02-20 16:47:04,836 INFO L290 TraceCheckUtils]: 1: Hoare triple {2388#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {2388#true} is VALID [2022-02-20 16:47:04,836 INFO L272 TraceCheckUtils]: 2: Hoare triple {2388#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {2388#true} is VALID [2022-02-20 16:47:04,837 INFO L290 TraceCheckUtils]: 3: Hoare triple {2388#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {2402#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:04,838 INFO L290 TraceCheckUtils]: 4: Hoare triple {2402#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {2402#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:04,838 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2402#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {2388#true} #129#return; {2409#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:04,839 INFO L290 TraceCheckUtils]: 6: Hoare triple {2409#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {2413#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:04,843 INFO L290 TraceCheckUtils]: 7: Hoare triple {2413#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume main_#t~short12#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,843 INFO L272 TraceCheckUtils]: 8: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {2388#true} is VALID [2022-02-20 16:47:04,843 INFO L290 TraceCheckUtils]: 9: Hoare triple {2388#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {2388#true} is VALID [2022-02-20 16:47:04,843 INFO L290 TraceCheckUtils]: 10: Hoare triple {2388#true} assume true; {2388#true} is VALID [2022-02-20 16:47:04,844 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {2388#true} {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #131#return; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,844 INFO L290 TraceCheckUtils]: 12: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,844 INFO L290 TraceCheckUtils]: 13: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short16#1 := main_#t~short12#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,844 INFO L290 TraceCheckUtils]: 14: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,845 INFO L290 TraceCheckUtils]: 15: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,845 INFO L272 TraceCheckUtils]: 16: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {2388#true} is VALID [2022-02-20 16:47:04,845 INFO L290 TraceCheckUtils]: 17: Hoare triple {2388#true} ~x := #in~x;havoc ~w~0; {2388#true} is VALID [2022-02-20 16:47:04,845 INFO L290 TraceCheckUtils]: 18: Hoare triple {2388#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {2388#true} is VALID [2022-02-20 16:47:04,845 INFO L290 TraceCheckUtils]: 19: Hoare triple {2388#true} goto; {2388#true} is VALID [2022-02-20 16:47:04,846 INFO L290 TraceCheckUtils]: 20: Hoare triple {2388#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {2388#true} is VALID [2022-02-20 16:47:04,846 INFO L290 TraceCheckUtils]: 21: Hoare triple {2388#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {2388#true} is VALID [2022-02-20 16:47:04,846 INFO L290 TraceCheckUtils]: 22: Hoare triple {2388#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {2388#true} is VALID [2022-02-20 16:47:04,846 INFO L290 TraceCheckUtils]: 23: Hoare triple {2388#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {2388#true} is VALID [2022-02-20 16:47:04,846 INFO L290 TraceCheckUtils]: 24: Hoare triple {2388#true} assume true; {2388#true} is VALID [2022-02-20 16:47:04,847 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {2388#true} {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #137#return; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,847 INFO L290 TraceCheckUtils]: 26: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,847 INFO L290 TraceCheckUtils]: 27: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:04,848 INFO L272 TraceCheckUtils]: 28: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {2388#true} is VALID [2022-02-20 16:47:04,849 INFO L290 TraceCheckUtils]: 29: Hoare triple {2388#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {2402#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:04,850 INFO L290 TraceCheckUtils]: 30: Hoare triple {2402#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {2402#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:04,850 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {2402#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #141#return; {2490#(= |ULTIMATE.start_main_#t~ret18#1| (_ bv1 32))} is VALID [2022-02-20 16:47:04,851 INFO L290 TraceCheckUtils]: 32: Hoare triple {2490#(= |ULTIMATE.start_main_#t~ret18#1| (_ bv1 32))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {2494#|ULTIMATE.start_main_#t~short20#1|} is VALID [2022-02-20 16:47:04,851 INFO L290 TraceCheckUtils]: 33: Hoare triple {2494#|ULTIMATE.start_main_#t~short20#1|} assume !main_#t~short20#1; {2389#false} is VALID [2022-02-20 16:47:04,851 INFO L290 TraceCheckUtils]: 34: Hoare triple {2389#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {2389#false} is VALID [2022-02-20 16:47:04,851 INFO L290 TraceCheckUtils]: 35: Hoare triple {2389#false} assume !false; {2389#false} is VALID [2022-02-20 16:47:04,852 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 2 proven. 2 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-02-20 16:47:04,852 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:05,168 INFO L290 TraceCheckUtils]: 35: Hoare triple {2389#false} assume !false; {2389#false} is VALID [2022-02-20 16:47:05,168 INFO L290 TraceCheckUtils]: 34: Hoare triple {2389#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {2389#false} is VALID [2022-02-20 16:47:05,168 INFO L290 TraceCheckUtils]: 33: Hoare triple {2494#|ULTIMATE.start_main_#t~short20#1|} assume !main_#t~short20#1; {2389#false} is VALID [2022-02-20 16:47:05,169 INFO L290 TraceCheckUtils]: 32: Hoare triple {2513#(not (= |ULTIMATE.start_main_#t~ret18#1| (_ bv0 32)))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {2494#|ULTIMATE.start_main_#t~short20#1|} is VALID [2022-02-20 16:47:05,170 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {2520#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #141#return; {2513#(not (= |ULTIMATE.start_main_#t~ret18#1| (_ bv0 32)))} is VALID [2022-02-20 16:47:05,170 INFO L290 TraceCheckUtils]: 30: Hoare triple {2520#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} assume true; {2520#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:05,170 INFO L290 TraceCheckUtils]: 29: Hoare triple {2388#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {2520#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:05,170 INFO L272 TraceCheckUtils]: 28: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {2388#true} is VALID [2022-02-20 16:47:05,171 INFO L290 TraceCheckUtils]: 27: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,171 INFO L290 TraceCheckUtils]: 26: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,171 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {2388#true} {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #137#return; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,171 INFO L290 TraceCheckUtils]: 24: Hoare triple {2388#true} assume true; {2388#true} is VALID [2022-02-20 16:47:05,172 INFO L290 TraceCheckUtils]: 23: Hoare triple {2388#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {2388#true} is VALID [2022-02-20 16:47:05,176 INFO L290 TraceCheckUtils]: 22: Hoare triple {2388#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {2388#true} is VALID [2022-02-20 16:47:05,176 INFO L290 TraceCheckUtils]: 21: Hoare triple {2388#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {2388#true} is VALID [2022-02-20 16:47:05,177 INFO L290 TraceCheckUtils]: 20: Hoare triple {2388#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {2388#true} is VALID [2022-02-20 16:47:05,178 INFO L290 TraceCheckUtils]: 19: Hoare triple {2388#true} goto; {2388#true} is VALID [2022-02-20 16:47:05,181 INFO L290 TraceCheckUtils]: 18: Hoare triple {2388#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {2388#true} is VALID [2022-02-20 16:47:05,181 INFO L290 TraceCheckUtils]: 17: Hoare triple {2388#true} ~x := #in~x;havoc ~w~0; {2388#true} is VALID [2022-02-20 16:47:05,181 INFO L272 TraceCheckUtils]: 16: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {2388#true} is VALID [2022-02-20 16:47:05,182 INFO L290 TraceCheckUtils]: 15: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,182 INFO L290 TraceCheckUtils]: 14: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,183 INFO L290 TraceCheckUtils]: 13: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short16#1 := main_#t~short12#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,184 INFO L290 TraceCheckUtils]: 12: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,184 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {2388#true} {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #131#return; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,184 INFO L290 TraceCheckUtils]: 10: Hoare triple {2388#true} assume true; {2388#true} is VALID [2022-02-20 16:47:05,187 INFO L290 TraceCheckUtils]: 9: Hoare triple {2388#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {2388#true} is VALID [2022-02-20 16:47:05,187 INFO L272 TraceCheckUtils]: 8: Hoare triple {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {2388#true} is VALID [2022-02-20 16:47:05,188 INFO L290 TraceCheckUtils]: 7: Hoare triple {2590#(or (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume main_#t~short12#1; {2417#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:05,188 INFO L290 TraceCheckUtils]: 6: Hoare triple {2594#(or (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {2590#(or (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:05,189 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {2601#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} {2388#true} #129#return; {2594#(or (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:05,189 INFO L290 TraceCheckUtils]: 4: Hoare triple {2601#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} assume true; {2601#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} is VALID [2022-02-20 16:47:05,189 INFO L290 TraceCheckUtils]: 3: Hoare triple {2388#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {2601#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} is VALID [2022-02-20 16:47:05,189 INFO L272 TraceCheckUtils]: 2: Hoare triple {2388#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {2388#true} is VALID [2022-02-20 16:47:05,189 INFO L290 TraceCheckUtils]: 1: Hoare triple {2388#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {2388#true} is VALID [2022-02-20 16:47:05,189 INFO L290 TraceCheckUtils]: 0: Hoare triple {2388#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {2388#true} is VALID [2022-02-20 16:47:05,190 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2022-02-20 16:47:05,190 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:05,190 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [785049618] [2022-02-20 16:47:05,190 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [785049618] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:05,190 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:05,190 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 13 [2022-02-20 16:47:05,190 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1720622968] [2022-02-20 16:47:05,190 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:05,191 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 2.5384615384615383) internal successors, (33), 9 states have internal predecessors, (33), 2 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (6), 5 states have call predecessors, (6), 2 states have call successors, (6) Word has length 36 [2022-02-20 16:47:05,191 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:05,191 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 13 states, 13 states have (on average 2.5384615384615383) internal successors, (33), 9 states have internal predecessors, (33), 2 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (6), 5 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:05,221 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:05,221 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-02-20 16:47:05,222 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:05,222 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-02-20 16:47:05,222 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=30, Invalid=126, Unknown=0, NotChecked=0, Total=156 [2022-02-20 16:47:05,222 INFO L87 Difference]: Start difference. First operand 56 states and 76 transitions. Second operand has 13 states, 13 states have (on average 2.5384615384615383) internal successors, (33), 9 states have internal predecessors, (33), 2 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (6), 5 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:07,268 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:07,268 INFO L93 Difference]: Finished difference Result 102 states and 138 transitions. [2022-02-20 16:47:07,268 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2022-02-20 16:47:07,268 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 2.5384615384615383) internal successors, (33), 9 states have internal predecessors, (33), 2 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (6), 5 states have call predecessors, (6), 2 states have call successors, (6) Word has length 36 [2022-02-20 16:47:07,268 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:07,268 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 2.5384615384615383) internal successors, (33), 9 states have internal predecessors, (33), 2 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (6), 5 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:07,271 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 131 transitions. [2022-02-20 16:47:07,271 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 2.5384615384615383) internal successors, (33), 9 states have internal predecessors, (33), 2 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (6), 5 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:07,273 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 131 transitions. [2022-02-20 16:47:07,274 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 131 transitions. [2022-02-20 16:47:07,370 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 131 edges. 131 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:07,372 INFO L225 Difference]: With dead ends: 102 [2022-02-20 16:47:07,372 INFO L226 Difference]: Without dead ends: 88 [2022-02-20 16:47:07,372 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 75 GetRequests, 59 SyntacticMatches, 0 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 17 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=67, Invalid=239, Unknown=0, NotChecked=0, Total=306 [2022-02-20 16:47:07,372 INFO L933 BasicCegarLoop]: 85 mSDtfsCounter, 106 mSDsluCounter, 617 mSDsCounter, 0 mSdLazyCounter, 249 mSolverCounterSat, 35 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 111 SdHoareTripleChecker+Valid, 702 SdHoareTripleChecker+Invalid, 284 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 35 IncrementalHoareTripleChecker+Valid, 249 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.1s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:07,373 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [111 Valid, 702 Invalid, 284 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [35 Valid, 249 Invalid, 0 Unknown, 0 Unchecked, 1.1s Time] [2022-02-20 16:47:07,373 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 88 states. [2022-02-20 16:47:07,376 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 88 to 74. [2022-02-20 16:47:07,376 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:07,377 INFO L82 GeneralOperation]: Start isEquivalent. First operand 88 states. Second operand has 74 states, 54 states have (on average 1.3148148148148149) internal successors, (71), 54 states have internal predecessors, (71), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) [2022-02-20 16:47:07,377 INFO L74 IsIncluded]: Start isIncluded. First operand 88 states. Second operand has 74 states, 54 states have (on average 1.3148148148148149) internal successors, (71), 54 states have internal predecessors, (71), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) [2022-02-20 16:47:07,377 INFO L87 Difference]: Start difference. First operand 88 states. Second operand has 74 states, 54 states have (on average 1.3148148148148149) internal successors, (71), 54 states have internal predecessors, (71), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) [2022-02-20 16:47:07,380 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:07,380 INFO L93 Difference]: Finished difference Result 88 states and 122 transitions. [2022-02-20 16:47:07,380 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 122 transitions. [2022-02-20 16:47:07,380 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:07,380 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:07,380 INFO L74 IsIncluded]: Start isIncluded. First operand has 74 states, 54 states have (on average 1.3148148148148149) internal successors, (71), 54 states have internal predecessors, (71), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) Second operand 88 states. [2022-02-20 16:47:07,380 INFO L87 Difference]: Start difference. First operand has 74 states, 54 states have (on average 1.3148148148148149) internal successors, (71), 54 states have internal predecessors, (71), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) Second operand 88 states. [2022-02-20 16:47:07,383 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:07,383 INFO L93 Difference]: Finished difference Result 88 states and 122 transitions. [2022-02-20 16:47:07,383 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 122 transitions. [2022-02-20 16:47:07,383 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:07,383 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:07,383 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:07,383 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:07,384 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 74 states, 54 states have (on average 1.3148148148148149) internal successors, (71), 54 states have internal predecessors, (71), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) [2022-02-20 16:47:07,385 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 105 transitions. [2022-02-20 16:47:07,385 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 105 transitions. Word has length 36 [2022-02-20 16:47:07,386 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:07,386 INFO L470 AbstractCegarLoop]: Abstraction has 74 states and 105 transitions. [2022-02-20 16:47:07,386 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 13 states have (on average 2.5384615384615383) internal successors, (33), 9 states have internal predecessors, (33), 2 states have call successors, (4), 1 states have call predecessors, (4), 4 states have return successors, (6), 5 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:07,386 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 105 transitions. [2022-02-20 16:47:07,386 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 39 [2022-02-20 16:47:07,386 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:07,386 INFO L514 BasicCegarLoop]: trace histogram [3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:07,407 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (8)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:07,594 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 8 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:07,594 INFO L402 AbstractCegarLoop]: === Iteration 8 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:07,595 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:07,595 INFO L85 PathProgramCache]: Analyzing trace with hash 2045835875, now seen corresponding path program 1 times [2022-02-20 16:47:07,595 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:07,595 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [886946083] [2022-02-20 16:47:07,595 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:07,595 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:07,595 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:07,596 INFO L229 MonitoredProcess]: Starting monitored process 9 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:07,597 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (9)] Waiting until timeout for monitored process [2022-02-20 16:47:07,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:07,636 INFO L263 TraceCheckSpWp]: Trace formula consists of 89 conjuncts, 12 conjunts are in the unsatisfiable core [2022-02-20 16:47:07,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:07,645 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:07,852 INFO L290 TraceCheckUtils]: 0: Hoare triple {3022#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {3022#true} is VALID [2022-02-20 16:47:07,852 INFO L290 TraceCheckUtils]: 1: Hoare triple {3022#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {3022#true} is VALID [2022-02-20 16:47:07,852 INFO L272 TraceCheckUtils]: 2: Hoare triple {3022#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {3022#true} is VALID [2022-02-20 16:47:07,854 INFO L290 TraceCheckUtils]: 3: Hoare triple {3022#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3036#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:07,854 INFO L290 TraceCheckUtils]: 4: Hoare triple {3036#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {3036#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:07,855 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3036#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {3022#true} #129#return; {3043#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:07,856 INFO L290 TraceCheckUtils]: 6: Hoare triple {3043#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {3047#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:07,856 INFO L290 TraceCheckUtils]: 7: Hoare triple {3047#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume !main_#t~short12#1; {3051#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:07,856 INFO L290 TraceCheckUtils]: 8: Hoare triple {3051#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short12#1; {3051#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:07,857 INFO L290 TraceCheckUtils]: 9: Hoare triple {3051#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short16#1; {3051#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:07,857 INFO L272 TraceCheckUtils]: 10: Hoare triple {3051#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {3022#true} is VALID [2022-02-20 16:47:07,857 INFO L290 TraceCheckUtils]: 11: Hoare triple {3022#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3036#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:07,858 INFO L290 TraceCheckUtils]: 12: Hoare triple {3036#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {3036#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:07,858 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {3036#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {3051#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #133#return; {3070#(= |ULTIMATE.start_main_#t~ret13#1| (_ bv0 32))} is VALID [2022-02-20 16:47:07,859 INFO L290 TraceCheckUtils]: 14: Hoare triple {3070#(= |ULTIMATE.start_main_#t~ret13#1| (_ bv0 32))} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {3074#|ULTIMATE.start_main_#t~short15#1|} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 15: Hoare triple {3074#|ULTIMATE.start_main_#t~short15#1|} assume !main_#t~short15#1; {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 16: Hoare triple {3023#false} main_#t~short16#1 := main_#t~short15#1; {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 17: Hoare triple {3023#false} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L272 TraceCheckUtils]: 18: Hoare triple {3023#false} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 19: Hoare triple {3023#false} ~x := #in~x;havoc ~w~0; {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 20: Hoare triple {3023#false} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 21: Hoare triple {3023#false} goto; {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 22: Hoare triple {3023#false} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 23: Hoare triple {3023#false} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 24: Hoare triple {3023#false} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 25: Hoare triple {3023#false} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {3023#false} is VALID [2022-02-20 16:47:07,860 INFO L290 TraceCheckUtils]: 26: Hoare triple {3023#false} assume true; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L284 TraceCheckUtils]: 27: Hoare quadruple {3023#false} {3023#false} #137#return; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L290 TraceCheckUtils]: 28: Hoare triple {3023#false} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L290 TraceCheckUtils]: 29: Hoare triple {3023#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L272 TraceCheckUtils]: 30: Hoare triple {3023#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L290 TraceCheckUtils]: 31: Hoare triple {3023#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L290 TraceCheckUtils]: 32: Hoare triple {3023#false} assume true; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {3023#false} {3023#false} #141#return; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L290 TraceCheckUtils]: 34: Hoare triple {3023#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L290 TraceCheckUtils]: 35: Hoare triple {3023#false} assume !main_#t~short20#1; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L290 TraceCheckUtils]: 36: Hoare triple {3023#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L290 TraceCheckUtils]: 37: Hoare triple {3023#false} assume !false; {3023#false} is VALID [2022-02-20 16:47:07,861 INFO L134 CoverageAnalysis]: Checked inductivity of 9 backedges. 6 proven. 0 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2022-02-20 16:47:07,861 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:07,862 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:07,862 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [886946083] [2022-02-20 16:47:07,862 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [886946083] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:07,862 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:07,862 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [8] imperfect sequences [] total 8 [2022-02-20 16:47:07,862 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [279208669] [2022-02-20 16:47:07,862 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:07,862 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 3.5) internal successors, (28), 6 states have internal predecessors, (28), 3 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 3 states have call successors, (4) Word has length 38 [2022-02-20 16:47:07,862 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:07,863 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 8 states, 8 states have (on average 3.5) internal successors, (28), 6 states have internal predecessors, (28), 3 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:47:07,889 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:07,889 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 8 states [2022-02-20 16:47:07,889 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:07,890 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2022-02-20 16:47:07,890 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=13, Invalid=43, Unknown=0, NotChecked=0, Total=56 [2022-02-20 16:47:07,890 INFO L87 Difference]: Start difference. First operand 74 states and 105 transitions. Second operand has 8 states, 8 states have (on average 3.5) internal successors, (28), 6 states have internal predecessors, (28), 3 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:47:09,584 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:09,584 INFO L93 Difference]: Finished difference Result 127 states and 174 transitions. [2022-02-20 16:47:09,584 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 16:47:09,584 INFO L78 Accepts]: Start accepts. Automaton has has 8 states, 8 states have (on average 3.5) internal successors, (28), 6 states have internal predecessors, (28), 3 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 3 states have call successors, (4) Word has length 38 [2022-02-20 16:47:09,584 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:09,584 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 3.5) internal successors, (28), 6 states have internal predecessors, (28), 3 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:47:09,586 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 163 transitions. [2022-02-20 16:47:09,586 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 8 states, 8 states have (on average 3.5) internal successors, (28), 6 states have internal predecessors, (28), 3 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:47:09,588 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 163 transitions. [2022-02-20 16:47:09,588 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 163 transitions. [2022-02-20 16:47:09,701 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 163 edges. 163 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:09,702 INFO L225 Difference]: With dead ends: 127 [2022-02-20 16:47:09,702 INFO L226 Difference]: Without dead ends: 87 [2022-02-20 16:47:09,702 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 42 GetRequests, 31 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=46, Invalid=110, Unknown=0, NotChecked=0, Total=156 [2022-02-20 16:47:09,703 INFO L933 BasicCegarLoop]: 82 mSDtfsCounter, 56 mSDsluCounter, 440 mSDsCounter, 0 mSdLazyCounter, 151 mSolverCounterSat, 14 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 63 SdHoareTripleChecker+Valid, 522 SdHoareTripleChecker+Invalid, 165 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 14 IncrementalHoareTripleChecker+Valid, 151 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.1s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:09,703 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [63 Valid, 522 Invalid, 165 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [14 Valid, 151 Invalid, 0 Unknown, 0 Unchecked, 1.1s Time] [2022-02-20 16:47:09,703 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 87 states. [2022-02-20 16:47:09,707 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 87 to 74. [2022-02-20 16:47:09,707 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:09,707 INFO L82 GeneralOperation]: Start isEquivalent. First operand 87 states. Second operand has 74 states, 54 states have (on average 1.2962962962962963) internal successors, (70), 54 states have internal predecessors, (70), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) [2022-02-20 16:47:09,707 INFO L74 IsIncluded]: Start isIncluded. First operand 87 states. Second operand has 74 states, 54 states have (on average 1.2962962962962963) internal successors, (70), 54 states have internal predecessors, (70), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) [2022-02-20 16:47:09,708 INFO L87 Difference]: Start difference. First operand 87 states. Second operand has 74 states, 54 states have (on average 1.2962962962962963) internal successors, (70), 54 states have internal predecessors, (70), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) [2022-02-20 16:47:09,710 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:09,710 INFO L93 Difference]: Finished difference Result 87 states and 120 transitions. [2022-02-20 16:47:09,710 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 120 transitions. [2022-02-20 16:47:09,710 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:09,711 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:09,711 INFO L74 IsIncluded]: Start isIncluded. First operand has 74 states, 54 states have (on average 1.2962962962962963) internal successors, (70), 54 states have internal predecessors, (70), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) Second operand 87 states. [2022-02-20 16:47:09,711 INFO L87 Difference]: Start difference. First operand has 74 states, 54 states have (on average 1.2962962962962963) internal successors, (70), 54 states have internal predecessors, (70), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) Second operand 87 states. [2022-02-20 16:47:09,713 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:09,713 INFO L93 Difference]: Finished difference Result 87 states and 120 transitions. [2022-02-20 16:47:09,714 INFO L276 IsEmpty]: Start isEmpty. Operand 87 states and 120 transitions. [2022-02-20 16:47:09,714 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:09,714 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:09,714 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:09,714 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:09,714 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 74 states, 54 states have (on average 1.2962962962962963) internal successors, (70), 54 states have internal predecessors, (70), 15 states have call successors, (15), 2 states have call predecessors, (15), 3 states have return successors, (19), 17 states have call predecessors, (19), 15 states have call successors, (19) [2022-02-20 16:47:09,716 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 104 transitions. [2022-02-20 16:47:09,716 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 104 transitions. Word has length 38 [2022-02-20 16:47:09,716 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:09,717 INFO L470 AbstractCegarLoop]: Abstraction has 74 states and 104 transitions. [2022-02-20 16:47:09,717 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 8 states, 8 states have (on average 3.5) internal successors, (28), 6 states have internal predecessors, (28), 3 states have call successors, (4), 2 states have call predecessors, (4), 2 states have return successors, (4), 3 states have call predecessors, (4), 3 states have call successors, (4) [2022-02-20 16:47:09,717 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 104 transitions. [2022-02-20 16:47:09,717 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 42 [2022-02-20 16:47:09,717 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:09,718 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:09,735 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (9)] Ended with exit code 0 [2022-02-20 16:47:09,924 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 9 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:09,925 INFO L402 AbstractCegarLoop]: === Iteration 9 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:09,926 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:09,926 INFO L85 PathProgramCache]: Analyzing trace with hash -490349503, now seen corresponding path program 1 times [2022-02-20 16:47:09,926 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:09,926 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1311149819] [2022-02-20 16:47:09,926 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:09,926 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:09,926 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:09,927 INFO L229 MonitoredProcess]: Starting monitored process 10 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:09,928 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (10)] Waiting until timeout for monitored process [2022-02-20 16:47:09,977 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:09,979 INFO L263 TraceCheckSpWp]: Trace formula consists of 95 conjuncts, 12 conjunts are in the unsatisfiable core [2022-02-20 16:47:09,988 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:09,988 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:10,378 INFO L290 TraceCheckUtils]: 0: Hoare triple {3581#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {3581#true} is VALID [2022-02-20 16:47:10,378 INFO L290 TraceCheckUtils]: 1: Hoare triple {3581#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {3581#true} is VALID [2022-02-20 16:47:10,378 INFO L272 TraceCheckUtils]: 2: Hoare triple {3581#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {3581#true} is VALID [2022-02-20 16:47:10,378 INFO L290 TraceCheckUtils]: 3: Hoare triple {3581#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3581#true} is VALID [2022-02-20 16:47:10,378 INFO L290 TraceCheckUtils]: 4: Hoare triple {3581#true} assume true; {3581#true} is VALID [2022-02-20 16:47:10,379 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3581#true} {3581#true} #129#return; {3581#true} is VALID [2022-02-20 16:47:10,379 INFO L290 TraceCheckUtils]: 6: Hoare triple {3581#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {3581#true} is VALID [2022-02-20 16:47:10,379 INFO L290 TraceCheckUtils]: 7: Hoare triple {3581#true} assume main_#t~short12#1; {3581#true} is VALID [2022-02-20 16:47:10,379 INFO L272 TraceCheckUtils]: 8: Hoare triple {3581#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {3581#true} is VALID [2022-02-20 16:47:10,380 INFO L290 TraceCheckUtils]: 9: Hoare triple {3581#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3613#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:10,381 INFO L290 TraceCheckUtils]: 10: Hoare triple {3613#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {3613#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:10,381 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {3613#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {3581#true} #131#return; {3620#(or (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} is VALID [2022-02-20 16:47:10,382 INFO L290 TraceCheckUtils]: 12: Hoare triple {3620#(or (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {3624#(or (and (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} is VALID [2022-02-20 16:47:10,382 INFO L290 TraceCheckUtils]: 13: Hoare triple {3624#(or (and (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} main_#t~short16#1 := main_#t~short12#1; {3628#(or (and |ULTIMATE.start_main_#t~short16#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (not |ULTIMATE.start_main_#t~short16#1|)))} is VALID [2022-02-20 16:47:10,383 INFO L290 TraceCheckUtils]: 14: Hoare triple {3628#(or (and |ULTIMATE.start_main_#t~short16#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (not |ULTIMATE.start_main_#t~short16#1|)))} assume main_#t~short16#1; {3632#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,383 INFO L290 TraceCheckUtils]: 15: Hoare triple {3632#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {3636#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,383 INFO L272 TraceCheckUtils]: 16: Hoare triple {3636#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {3581#true} is VALID [2022-02-20 16:47:10,383 INFO L290 TraceCheckUtils]: 17: Hoare triple {3581#true} ~x := #in~x;havoc ~w~0; {3581#true} is VALID [2022-02-20 16:47:10,383 INFO L290 TraceCheckUtils]: 18: Hoare triple {3581#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {3581#true} is VALID [2022-02-20 16:47:10,383 INFO L290 TraceCheckUtils]: 19: Hoare triple {3581#true} goto; {3581#true} is VALID [2022-02-20 16:47:10,383 INFO L290 TraceCheckUtils]: 20: Hoare triple {3581#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {3581#true} is VALID [2022-02-20 16:47:10,384 INFO L290 TraceCheckUtils]: 21: Hoare triple {3581#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {3581#true} is VALID [2022-02-20 16:47:10,384 INFO L290 TraceCheckUtils]: 22: Hoare triple {3581#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {3581#true} is VALID [2022-02-20 16:47:10,384 INFO L290 TraceCheckUtils]: 23: Hoare triple {3581#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {3581#true} is VALID [2022-02-20 16:47:10,384 INFO L290 TraceCheckUtils]: 24: Hoare triple {3581#true} assume true; {3581#true} is VALID [2022-02-20 16:47:10,384 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {3581#true} {3636#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} #137#return; {3636#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,385 INFO L290 TraceCheckUtils]: 26: Hoare triple {3636#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {3670#(and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,385 INFO L290 TraceCheckUtils]: 27: Hoare triple {3670#(and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,385 INFO L272 TraceCheckUtils]: 28: Hoare triple {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {3581#true} is VALID [2022-02-20 16:47:10,385 INFO L290 TraceCheckUtils]: 29: Hoare triple {3581#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3581#true} is VALID [2022-02-20 16:47:10,385 INFO L290 TraceCheckUtils]: 30: Hoare triple {3581#true} assume true; {3581#true} is VALID [2022-02-20 16:47:10,386 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {3581#true} {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} #141#return; {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,386 INFO L290 TraceCheckUtils]: 32: Hoare triple {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,386 INFO L290 TraceCheckUtils]: 33: Hoare triple {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume main_#t~short20#1; {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,386 INFO L272 TraceCheckUtils]: 34: Hoare triple {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {3581#true} is VALID [2022-02-20 16:47:10,387 INFO L290 TraceCheckUtils]: 35: Hoare triple {3581#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3581#true} is VALID [2022-02-20 16:47:10,387 INFO L290 TraceCheckUtils]: 36: Hoare triple {3581#true} assume true; {3581#true} is VALID [2022-02-20 16:47:10,387 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {3581#true} {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} #143#return; {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,387 INFO L290 TraceCheckUtils]: 38: Hoare triple {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,388 INFO L290 TraceCheckUtils]: 39: Hoare triple {3674#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {3582#false} is VALID [2022-02-20 16:47:10,388 INFO L290 TraceCheckUtils]: 40: Hoare triple {3582#false} assume !false; {3582#false} is VALID [2022-02-20 16:47:10,388 INFO L134 CoverageAnalysis]: Checked inductivity of 18 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 16:47:10,388 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:10,644 INFO L290 TraceCheckUtils]: 40: Hoare triple {3582#false} assume !false; {3582#false} is VALID [2022-02-20 16:47:10,644 INFO L290 TraceCheckUtils]: 39: Hoare triple {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {3582#false} is VALID [2022-02-20 16:47:10,645 INFO L290 TraceCheckUtils]: 38: Hoare triple {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,645 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {3581#true} {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} #143#return; {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,645 INFO L290 TraceCheckUtils]: 36: Hoare triple {3581#true} assume true; {3581#true} is VALID [2022-02-20 16:47:10,645 INFO L290 TraceCheckUtils]: 35: Hoare triple {3581#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3581#true} is VALID [2022-02-20 16:47:10,645 INFO L272 TraceCheckUtils]: 34: Hoare triple {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {3581#true} is VALID [2022-02-20 16:47:10,646 INFO L290 TraceCheckUtils]: 33: Hoare triple {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short20#1; {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,646 INFO L290 TraceCheckUtils]: 32: Hoare triple {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,647 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {3581#true} {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} #141#return; {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,647 INFO L290 TraceCheckUtils]: 30: Hoare triple {3581#true} assume true; {3581#true} is VALID [2022-02-20 16:47:10,647 INFO L290 TraceCheckUtils]: 29: Hoare triple {3581#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3581#true} is VALID [2022-02-20 16:47:10,647 INFO L272 TraceCheckUtils]: 28: Hoare triple {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {3581#true} is VALID [2022-02-20 16:47:10,647 INFO L290 TraceCheckUtils]: 27: Hoare triple {3754#(fp.eq |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|)} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {3717#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,648 INFO L290 TraceCheckUtils]: 26: Hoare triple {3758#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {3754#(fp.eq |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,648 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {3581#true} {3758#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} #137#return; {3758#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,648 INFO L290 TraceCheckUtils]: 24: Hoare triple {3581#true} assume true; {3581#true} is VALID [2022-02-20 16:47:10,648 INFO L290 TraceCheckUtils]: 23: Hoare triple {3581#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {3581#true} is VALID [2022-02-20 16:47:10,648 INFO L290 TraceCheckUtils]: 22: Hoare triple {3581#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {3581#true} is VALID [2022-02-20 16:47:10,649 INFO L290 TraceCheckUtils]: 21: Hoare triple {3581#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {3581#true} is VALID [2022-02-20 16:47:10,649 INFO L290 TraceCheckUtils]: 20: Hoare triple {3581#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {3581#true} is VALID [2022-02-20 16:47:10,649 INFO L290 TraceCheckUtils]: 19: Hoare triple {3581#true} goto; {3581#true} is VALID [2022-02-20 16:47:10,649 INFO L290 TraceCheckUtils]: 18: Hoare triple {3581#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {3581#true} is VALID [2022-02-20 16:47:10,649 INFO L290 TraceCheckUtils]: 17: Hoare triple {3581#true} ~x := #in~x;havoc ~w~0; {3581#true} is VALID [2022-02-20 16:47:10,649 INFO L272 TraceCheckUtils]: 16: Hoare triple {3758#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {3581#true} is VALID [2022-02-20 16:47:10,649 INFO L290 TraceCheckUtils]: 15: Hoare triple {3632#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {3758#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,650 INFO L290 TraceCheckUtils]: 14: Hoare triple {3795#(or (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume main_#t~short16#1; {3632#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:10,650 INFO L290 TraceCheckUtils]: 13: Hoare triple {3799#(or (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short16#1 := main_#t~short12#1; {3795#(or (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,650 INFO L290 TraceCheckUtils]: 12: Hoare triple {3803#(or (not (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {3799#(or (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,651 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {3810#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} {3581#true} #131#return; {3803#(or (not (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:10,651 INFO L290 TraceCheckUtils]: 10: Hoare triple {3810#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} assume true; {3810#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:10,652 INFO L290 TraceCheckUtils]: 9: Hoare triple {3581#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3810#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:10,652 INFO L272 TraceCheckUtils]: 8: Hoare triple {3581#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {3581#true} is VALID [2022-02-20 16:47:10,652 INFO L290 TraceCheckUtils]: 7: Hoare triple {3581#true} assume main_#t~short12#1; {3581#true} is VALID [2022-02-20 16:47:10,652 INFO L290 TraceCheckUtils]: 6: Hoare triple {3581#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {3581#true} is VALID [2022-02-20 16:47:10,652 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {3581#true} {3581#true} #129#return; {3581#true} is VALID [2022-02-20 16:47:10,652 INFO L290 TraceCheckUtils]: 4: Hoare triple {3581#true} assume true; {3581#true} is VALID [2022-02-20 16:47:10,652 INFO L290 TraceCheckUtils]: 3: Hoare triple {3581#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {3581#true} is VALID [2022-02-20 16:47:10,653 INFO L272 TraceCheckUtils]: 2: Hoare triple {3581#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {3581#true} is VALID [2022-02-20 16:47:10,653 INFO L290 TraceCheckUtils]: 1: Hoare triple {3581#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {3581#true} is VALID [2022-02-20 16:47:10,653 INFO L290 TraceCheckUtils]: 0: Hoare triple {3581#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {3581#true} is VALID [2022-02-20 16:47:10,653 INFO L134 CoverageAnalysis]: Checked inductivity of 18 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 12 trivial. 0 not checked. [2022-02-20 16:47:10,653 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:10,653 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1311149819] [2022-02-20 16:47:10,654 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1311149819] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:10,654 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:10,654 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [10, 10] total 17 [2022-02-20 16:47:10,654 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [804629515] [2022-02-20 16:47:10,654 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:10,655 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 17 states have (on average 2.2941176470588234) internal successors, (39), 15 states have internal predecessors, (39), 5 states have call successors, (8), 1 states have call predecessors, (8), 3 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) Word has length 41 [2022-02-20 16:47:10,655 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:10,656 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 17 states, 17 states have (on average 2.2941176470588234) internal successors, (39), 15 states have internal predecessors, (39), 5 states have call successors, (8), 1 states have call predecessors, (8), 3 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:47:10,694 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:10,694 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 17 states [2022-02-20 16:47:10,695 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:10,695 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 17 interpolants. [2022-02-20 16:47:10,695 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=207, Unknown=0, NotChecked=0, Total=272 [2022-02-20 16:47:10,695 INFO L87 Difference]: Start difference. First operand 74 states and 104 transitions. Second operand has 17 states, 17 states have (on average 2.2941176470588234) internal successors, (39), 15 states have internal predecessors, (39), 5 states have call successors, (8), 1 states have call predecessors, (8), 3 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:47:12,397 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:12,397 INFO L93 Difference]: Finished difference Result 117 states and 162 transitions. [2022-02-20 16:47:12,398 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-02-20 16:47:12,398 INFO L78 Accepts]: Start accepts. Automaton has has 17 states, 17 states have (on average 2.2941176470588234) internal successors, (39), 15 states have internal predecessors, (39), 5 states have call successors, (8), 1 states have call predecessors, (8), 3 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) Word has length 41 [2022-02-20 16:47:12,398 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:12,398 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 17 states have (on average 2.2941176470588234) internal successors, (39), 15 states have internal predecessors, (39), 5 states have call successors, (8), 1 states have call predecessors, (8), 3 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:47:12,411 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 136 transitions. [2022-02-20 16:47:12,412 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 17 states, 17 states have (on average 2.2941176470588234) internal successors, (39), 15 states have internal predecessors, (39), 5 states have call successors, (8), 1 states have call predecessors, (8), 3 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:47:12,414 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 136 transitions. [2022-02-20 16:47:12,414 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 136 transitions. [2022-02-20 16:47:12,516 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 136 edges. 136 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:12,518 INFO L225 Difference]: With dead ends: 117 [2022-02-20 16:47:12,518 INFO L226 Difference]: Without dead ends: 115 [2022-02-20 16:47:12,519 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 86 GetRequests, 65 SyntacticMatches, 0 SemanticMatches, 21 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 85 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=129, Invalid=377, Unknown=0, NotChecked=0, Total=506 [2022-02-20 16:47:12,519 INFO L933 BasicCegarLoop]: 58 mSDtfsCounter, 162 mSDsluCounter, 477 mSDsCounter, 0 mSdLazyCounter, 308 mSolverCounterSat, 51 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 167 SdHoareTripleChecker+Valid, 535 SdHoareTripleChecker+Invalid, 359 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 51 IncrementalHoareTripleChecker+Valid, 308 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.8s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:12,520 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [167 Valid, 535 Invalid, 359 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [51 Valid, 308 Invalid, 0 Unknown, 0 Unchecked, 0.8s Time] [2022-02-20 16:47:12,520 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 115 states. [2022-02-20 16:47:12,533 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 115 to 84. [2022-02-20 16:47:12,533 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:12,534 INFO L82 GeneralOperation]: Start isEquivalent. First operand 115 states. Second operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) [2022-02-20 16:47:12,535 INFO L74 IsIncluded]: Start isIncluded. First operand 115 states. Second operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) [2022-02-20 16:47:12,535 INFO L87 Difference]: Start difference. First operand 115 states. Second operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) [2022-02-20 16:47:12,538 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:12,538 INFO L93 Difference]: Finished difference Result 115 states and 160 transitions. [2022-02-20 16:47:12,538 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 160 transitions. [2022-02-20 16:47:12,539 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:12,539 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:12,540 INFO L74 IsIncluded]: Start isIncluded. First operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) Second operand 115 states. [2022-02-20 16:47:12,540 INFO L87 Difference]: Start difference. First operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) Second operand 115 states. [2022-02-20 16:47:12,543 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:12,543 INFO L93 Difference]: Finished difference Result 115 states and 160 transitions. [2022-02-20 16:47:12,543 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 160 transitions. [2022-02-20 16:47:12,543 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:12,543 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:12,543 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:12,544 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:12,544 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) [2022-02-20 16:47:12,547 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 84 states to 84 states and 119 transitions. [2022-02-20 16:47:12,547 INFO L78 Accepts]: Start accepts. Automaton has 84 states and 119 transitions. Word has length 41 [2022-02-20 16:47:12,547 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:12,547 INFO L470 AbstractCegarLoop]: Abstraction has 84 states and 119 transitions. [2022-02-20 16:47:12,548 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 17 states, 17 states have (on average 2.2941176470588234) internal successors, (39), 15 states have internal predecessors, (39), 5 states have call successors, (8), 1 states have call predecessors, (8), 3 states have return successors, (9), 7 states have call predecessors, (9), 5 states have call successors, (9) [2022-02-20 16:47:12,548 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 119 transitions. [2022-02-20 16:47:12,548 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 44 [2022-02-20 16:47:12,548 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:12,549 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:12,562 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (10)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:12,756 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 10 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:12,756 INFO L402 AbstractCegarLoop]: === Iteration 10 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:12,756 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:12,756 INFO L85 PathProgramCache]: Analyzing trace with hash 38675638, now seen corresponding path program 1 times [2022-02-20 16:47:12,757 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:12,757 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [486710552] [2022-02-20 16:47:12,757 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:12,757 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:12,757 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:12,758 INFO L229 MonitoredProcess]: Starting monitored process 11 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:12,759 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (11)] Waiting until timeout for monitored process [2022-02-20 16:47:12,796 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:12,798 INFO L263 TraceCheckSpWp]: Trace formula consists of 97 conjuncts, 2 conjunts are in the unsatisfiable core [2022-02-20 16:47:12,806 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:12,807 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:12,877 INFO L290 TraceCheckUtils]: 0: Hoare triple {4340#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {4340#true} is VALID [2022-02-20 16:47:12,877 INFO L290 TraceCheckUtils]: 1: Hoare triple {4340#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {4340#true} is VALID [2022-02-20 16:47:12,877 INFO L272 TraceCheckUtils]: 2: Hoare triple {4340#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {4340#true} is VALID [2022-02-20 16:47:12,877 INFO L290 TraceCheckUtils]: 3: Hoare triple {4340#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {4340#true} is VALID [2022-02-20 16:47:12,877 INFO L290 TraceCheckUtils]: 4: Hoare triple {4340#true} assume true; {4340#true} is VALID [2022-02-20 16:47:12,877 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {4340#true} {4340#true} #129#return; {4340#true} is VALID [2022-02-20 16:47:12,877 INFO L290 TraceCheckUtils]: 6: Hoare triple {4340#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {4340#true} is VALID [2022-02-20 16:47:12,877 INFO L290 TraceCheckUtils]: 7: Hoare triple {4340#true} assume !main_#t~short12#1; {4340#true} is VALID [2022-02-20 16:47:12,877 INFO L290 TraceCheckUtils]: 8: Hoare triple {4340#true} main_#t~short16#1 := main_#t~short12#1; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 9: Hoare triple {4340#true} assume !main_#t~short16#1; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L272 TraceCheckUtils]: 10: Hoare triple {4340#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 11: Hoare triple {4340#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 12: Hoare triple {4340#true} assume true; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {4340#true} {4340#true} #133#return; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 14: Hoare triple {4340#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 15: Hoare triple {4340#true} assume main_#t~short15#1; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L272 TraceCheckUtils]: 16: Hoare triple {4340#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 17: Hoare triple {4340#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 18: Hoare triple {4340#true} assume true; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {4340#true} {4340#true} #135#return; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 20: Hoare triple {4340#true} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {4340#true} is VALID [2022-02-20 16:47:12,878 INFO L290 TraceCheckUtils]: 21: Hoare triple {4340#true} main_#t~short16#1 := main_#t~short15#1; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 22: Hoare triple {4340#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L272 TraceCheckUtils]: 23: Hoare triple {4340#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 24: Hoare triple {4340#true} ~x := #in~x;havoc ~w~0; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 25: Hoare triple {4340#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 26: Hoare triple {4340#true} goto; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 27: Hoare triple {4340#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 28: Hoare triple {4340#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 29: Hoare triple {4340#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 30: Hoare triple {4340#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 31: Hoare triple {4340#true} assume true; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {4340#true} {4340#true} #137#return; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 33: Hoare triple {4340#true} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 34: Hoare triple {4340#true} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L272 TraceCheckUtils]: 35: Hoare triple {4340#true} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 36: Hoare triple {4340#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {4340#true} is VALID [2022-02-20 16:47:12,879 INFO L290 TraceCheckUtils]: 37: Hoare triple {4340#true} assume true; {4340#true} is VALID [2022-02-20 16:47:12,880 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {4340#true} {4340#true} #141#return; {4340#true} is VALID [2022-02-20 16:47:12,880 INFO L290 TraceCheckUtils]: 39: Hoare triple {4340#true} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {4340#true} is VALID [2022-02-20 16:47:12,880 INFO L290 TraceCheckUtils]: 40: Hoare triple {4340#true} assume !main_#t~short20#1; {4465#(not |ULTIMATE.start_main_#t~short20#1|)} is VALID [2022-02-20 16:47:12,880 INFO L290 TraceCheckUtils]: 41: Hoare triple {4465#(not |ULTIMATE.start_main_#t~short20#1|)} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {4341#false} is VALID [2022-02-20 16:47:12,880 INFO L290 TraceCheckUtils]: 42: Hoare triple {4341#false} assume !false; {4341#false} is VALID [2022-02-20 16:47:12,880 INFO L134 CoverageAnalysis]: Checked inductivity of 18 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2022-02-20 16:47:12,880 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:12,881 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:12,881 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [486710552] [2022-02-20 16:47:12,881 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [486710552] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:12,881 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:12,881 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2022-02-20 16:47:12,881 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2101755724] [2022-02-20 16:47:12,881 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:12,881 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 9.0) internal successors, (27), 3 states have internal predecessors, (27), 1 states have call successors, (5), 1 states have call predecessors, (5), 1 states have return successors, (5), 1 states have call predecessors, (5), 1 states have call successors, (5) Word has length 43 [2022-02-20 16:47:12,882 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:12,882 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 3 states, 3 states have (on average 9.0) internal successors, (27), 3 states have internal predecessors, (27), 1 states have call successors, (5), 1 states have call predecessors, (5), 1 states have return successors, (5), 1 states have call predecessors, (5), 1 states have call successors, (5) [2022-02-20 16:47:12,905 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 37 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:12,906 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 3 states [2022-02-20 16:47:12,906 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:12,906 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2022-02-20 16:47:12,906 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2022-02-20 16:47:12,906 INFO L87 Difference]: Start difference. First operand 84 states and 119 transitions. Second operand has 3 states, 3 states have (on average 9.0) internal successors, (27), 3 states have internal predecessors, (27), 1 states have call successors, (5), 1 states have call predecessors, (5), 1 states have return successors, (5), 1 states have call predecessors, (5), 1 states have call successors, (5) [2022-02-20 16:47:12,985 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:12,985 INFO L93 Difference]: Finished difference Result 87 states and 122 transitions. [2022-02-20 16:47:12,985 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2022-02-20 16:47:12,985 INFO L78 Accepts]: Start accepts. Automaton has has 3 states, 3 states have (on average 9.0) internal successors, (27), 3 states have internal predecessors, (27), 1 states have call successors, (5), 1 states have call predecessors, (5), 1 states have return successors, (5), 1 states have call predecessors, (5), 1 states have call successors, (5) Word has length 43 [2022-02-20 16:47:12,986 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:12,986 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 9.0) internal successors, (27), 3 states have internal predecessors, (27), 1 states have call successors, (5), 1 states have call predecessors, (5), 1 states have return successors, (5), 1 states have call predecessors, (5), 1 states have call successors, (5) [2022-02-20 16:47:12,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 73 transitions. [2022-02-20 16:47:12,987 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 3 states, 3 states have (on average 9.0) internal successors, (27), 3 states have internal predecessors, (27), 1 states have call successors, (5), 1 states have call predecessors, (5), 1 states have return successors, (5), 1 states have call predecessors, (5), 1 states have call successors, (5) [2022-02-20 16:47:12,987 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 73 transitions. [2022-02-20 16:47:12,987 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 73 transitions. [2022-02-20 16:47:13,035 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:13,036 INFO L225 Difference]: With dead ends: 87 [2022-02-20 16:47:13,036 INFO L226 Difference]: Without dead ends: 85 [2022-02-20 16:47:13,036 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 42 GetRequests, 41 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-02-20 16:47:13,037 INFO L933 BasicCegarLoop]: 70 mSDtfsCounter, 0 mSDsluCounter, 63 mSDsCounter, 0 mSdLazyCounter, 8 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 133 SdHoareTripleChecker+Invalid, 8 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 8 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:13,037 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 133 Invalid, 8 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 8 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:13,037 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 85 states. [2022-02-20 16:47:13,040 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 85 to 84. [2022-02-20 16:47:13,040 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:13,041 INFO L82 GeneralOperation]: Start isEquivalent. First operand 85 states. Second operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) [2022-02-20 16:47:13,041 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) [2022-02-20 16:47:13,041 INFO L87 Difference]: Start difference. First operand 85 states. Second operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) [2022-02-20 16:47:13,043 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:13,043 INFO L93 Difference]: Finished difference Result 85 states and 120 transitions. [2022-02-20 16:47:13,043 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 120 transitions. [2022-02-20 16:47:13,043 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:13,043 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:13,043 INFO L74 IsIncluded]: Start isIncluded. First operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) Second operand 85 states. [2022-02-20 16:47:13,043 INFO L87 Difference]: Start difference. First operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) Second operand 85 states. [2022-02-20 16:47:13,045 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:13,045 INFO L93 Difference]: Finished difference Result 85 states and 120 transitions. [2022-02-20 16:47:13,045 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 120 transitions. [2022-02-20 16:47:13,045 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:13,046 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:13,046 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:13,046 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:13,046 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 84 states, 61 states have (on average 1.278688524590164) internal successors, (78), 61 states have internal predecessors, (78), 18 states have call successors, (18), 2 states have call predecessors, (18), 3 states have return successors, (23), 20 states have call predecessors, (23), 18 states have call successors, (23) [2022-02-20 16:47:13,047 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 84 states to 84 states and 119 transitions. [2022-02-20 16:47:13,048 INFO L78 Accepts]: Start accepts. Automaton has 84 states and 119 transitions. Word has length 43 [2022-02-20 16:47:13,048 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:13,048 INFO L470 AbstractCegarLoop]: Abstraction has 84 states and 119 transitions. [2022-02-20 16:47:13,048 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 3 states, 3 states have (on average 9.0) internal successors, (27), 3 states have internal predecessors, (27), 1 states have call successors, (5), 1 states have call predecessors, (5), 1 states have return successors, (5), 1 states have call predecessors, (5), 1 states have call successors, (5) [2022-02-20 16:47:13,048 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 119 transitions. [2022-02-20 16:47:13,048 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 47 [2022-02-20 16:47:13,048 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:13,048 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 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, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:13,058 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (11)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:13,258 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 11 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:13,259 INFO L402 AbstractCegarLoop]: === Iteration 11 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:13,259 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:13,259 INFO L85 PathProgramCache]: Analyzing trace with hash 972082008, now seen corresponding path program 1 times [2022-02-20 16:47:13,259 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:13,259 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [2109028802] [2022-02-20 16:47:13,259 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:13,260 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:13,260 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:13,260 INFO L229 MonitoredProcess]: Starting monitored process 12 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:13,266 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (12)] Waiting until timeout for monitored process [2022-02-20 16:47:13,347 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:13,350 INFO L263 TraceCheckSpWp]: Trace formula consists of 114 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:13,358 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:13,359 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:13,424 INFO L290 TraceCheckUtils]: 0: Hoare triple {4860#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L290 TraceCheckUtils]: 1: Hoare triple {4860#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L272 TraceCheckUtils]: 2: Hoare triple {4860#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L290 TraceCheckUtils]: 3: Hoare triple {4860#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L290 TraceCheckUtils]: 4: Hoare triple {4860#true} assume true; {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {4860#true} {4860#true} #129#return; {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L290 TraceCheckUtils]: 6: Hoare triple {4860#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L290 TraceCheckUtils]: 7: Hoare triple {4860#true} assume main_#t~short12#1; {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L272 TraceCheckUtils]: 8: Hoare triple {4860#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L290 TraceCheckUtils]: 9: Hoare triple {4860#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {4860#true} is VALID [2022-02-20 16:47:13,424 INFO L290 TraceCheckUtils]: 10: Hoare triple {4860#true} assume true; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {4860#true} {4860#true} #131#return; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L290 TraceCheckUtils]: 12: Hoare triple {4860#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L290 TraceCheckUtils]: 13: Hoare triple {4860#true} main_#t~short16#1 := main_#t~short12#1; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L290 TraceCheckUtils]: 14: Hoare triple {4860#true} assume main_#t~short16#1; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L290 TraceCheckUtils]: 15: Hoare triple {4860#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L272 TraceCheckUtils]: 16: Hoare triple {4860#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L290 TraceCheckUtils]: 17: Hoare triple {4860#true} ~x := #in~x;havoc ~w~0; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L290 TraceCheckUtils]: 18: Hoare triple {4860#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L290 TraceCheckUtils]: 19: Hoare triple {4860#true} goto; {4860#true} is VALID [2022-02-20 16:47:13,425 INFO L290 TraceCheckUtils]: 20: Hoare triple {4860#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {4860#true} is VALID [2022-02-20 16:47:13,426 INFO L290 TraceCheckUtils]: 21: Hoare triple {4860#true} assume true; {4860#true} is VALID [2022-02-20 16:47:13,426 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {4860#true} {4860#true} #137#return; {4860#true} is VALID [2022-02-20 16:47:13,426 INFO L290 TraceCheckUtils]: 23: Hoare triple {4860#true} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {4860#true} is VALID [2022-02-20 16:47:13,426 INFO L272 TraceCheckUtils]: 24: Hoare triple {4860#true} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {4860#true} is VALID [2022-02-20 16:47:13,426 INFO L290 TraceCheckUtils]: 25: Hoare triple {4860#true} ~x := #in~x;havoc ~w~0; {4860#true} is VALID [2022-02-20 16:47:13,426 INFO L290 TraceCheckUtils]: 26: Hoare triple {4860#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {4860#true} is VALID [2022-02-20 16:47:13,426 INFO L290 TraceCheckUtils]: 27: Hoare triple {4860#true} goto; {4860#true} is VALID [2022-02-20 16:47:13,426 INFO L290 TraceCheckUtils]: 28: Hoare triple {4860#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {4949#(= (_ bv2 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:13,427 INFO L290 TraceCheckUtils]: 29: Hoare triple {4949#(= (_ bv2 32) |__fpclassify_float_#res|)} assume true; {4949#(= (_ bv2 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:13,427 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {4949#(= (_ bv2 32) |__fpclassify_float_#res|)} {4860#true} #139#return; {4956#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv2 32))} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 31: Hoare triple {4956#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv2 32))} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 32: Hoare triple {4861#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L272 TraceCheckUtils]: 33: Hoare triple {4861#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 34: Hoare triple {4861#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 35: Hoare triple {4861#false} assume true; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L284 TraceCheckUtils]: 36: Hoare quadruple {4861#false} {4861#false} #141#return; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 37: Hoare triple {4861#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 38: Hoare triple {4861#false} assume main_#t~short20#1; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L272 TraceCheckUtils]: 39: Hoare triple {4861#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 40: Hoare triple {4861#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 41: Hoare triple {4861#false} assume true; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L284 TraceCheckUtils]: 42: Hoare quadruple {4861#false} {4861#false} #143#return; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 43: Hoare triple {4861#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {4861#false} is VALID [2022-02-20 16:47:13,428 INFO L290 TraceCheckUtils]: 44: Hoare triple {4861#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {4861#false} is VALID [2022-02-20 16:47:13,429 INFO L290 TraceCheckUtils]: 45: Hoare triple {4861#false} assume !false; {4861#false} is VALID [2022-02-20 16:47:13,429 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 14 proven. 0 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 16:47:13,429 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:13,429 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:13,429 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [2109028802] [2022-02-20 16:47:13,429 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [2109028802] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:13,429 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:13,429 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:13,429 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [138631549] [2022-02-20 16:47:13,429 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:13,430 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.75) internal successors, (27), 3 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) Word has length 46 [2022-02-20 16:47:13,430 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:13,430 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 6.75) internal successors, (27), 3 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:13,453 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 39 edges. 39 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:13,453 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:13,453 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:13,454 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:13,454 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:13,454 INFO L87 Difference]: Start difference. First operand 84 states and 119 transitions. Second operand has 4 states, 4 states have (on average 6.75) internal successors, (27), 3 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:13,580 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:13,580 INFO L93 Difference]: Finished difference Result 113 states and 159 transitions. [2022-02-20 16:47:13,580 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:13,580 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 6.75) internal successors, (27), 3 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) Word has length 46 [2022-02-20 16:47:13,580 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:13,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.75) internal successors, (27), 3 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:13,582 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:13,582 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 6.75) internal successors, (27), 3 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:13,583 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:13,583 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 99 transitions. [2022-02-20 16:47:13,644 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:13,645 INFO L225 Difference]: With dead ends: 113 [2022-02-20 16:47:13,645 INFO L226 Difference]: Without dead ends: 88 [2022-02-20 16:47:13,646 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 45 GetRequests, 43 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:13,646 INFO L933 BasicCegarLoop]: 69 mSDtfsCounter, 0 mSDsluCounter, 131 mSDsCounter, 0 mSdLazyCounter, 9 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 200 SdHoareTripleChecker+Invalid, 9 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 9 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:13,646 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 200 Invalid, 9 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 9 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:13,647 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 88 states. [2022-02-20 16:47:13,649 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 88 to 88. [2022-02-20 16:47:13,650 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:13,650 INFO L82 GeneralOperation]: Start isEquivalent. First operand 88 states. Second operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:13,650 INFO L74 IsIncluded]: Start isIncluded. First operand 88 states. Second operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:13,650 INFO L87 Difference]: Start difference. First operand 88 states. Second operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:13,652 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:13,652 INFO L93 Difference]: Finished difference Result 88 states and 127 transitions. [2022-02-20 16:47:13,652 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 127 transitions. [2022-02-20 16:47:13,652 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:13,652 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:13,653 INFO L74 IsIncluded]: Start isIncluded. First operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) Second operand 88 states. [2022-02-20 16:47:13,653 INFO L87 Difference]: Start difference. First operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) Second operand 88 states. [2022-02-20 16:47:13,657 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:13,657 INFO L93 Difference]: Finished difference Result 88 states and 127 transitions. [2022-02-20 16:47:13,657 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 127 transitions. [2022-02-20 16:47:13,658 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:13,658 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:13,658 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:13,658 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:13,658 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:13,660 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 88 states to 88 states and 127 transitions. [2022-02-20 16:47:13,660 INFO L78 Accepts]: Start accepts. Automaton has 88 states and 127 transitions. Word has length 46 [2022-02-20 16:47:13,660 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:13,660 INFO L470 AbstractCegarLoop]: Abstraction has 88 states and 127 transitions. [2022-02-20 16:47:13,661 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 6.75) internal successors, (27), 3 states have internal predecessors, (27), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:13,661 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 127 transitions. [2022-02-20 16:47:13,661 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 48 [2022-02-20 16:47:13,661 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:13,661 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:13,679 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (12)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:13,875 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 12 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:13,875 INFO L402 AbstractCegarLoop]: === Iteration 12 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:13,876 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:13,876 INFO L85 PathProgramCache]: Analyzing trace with hash 411048800, now seen corresponding path program 1 times [2022-02-20 16:47:13,876 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:13,876 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [2101460652] [2022-02-20 16:47:13,877 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:13,877 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:13,877 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:13,878 INFO L229 MonitoredProcess]: Starting monitored process 13 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:13,879 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (13)] Waiting until timeout for monitored process [2022-02-20 16:47:13,928 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:13,930 INFO L263 TraceCheckSpWp]: Trace formula consists of 116 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:13,941 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:13,942 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:14,042 INFO L290 TraceCheckUtils]: 0: Hoare triple {5434#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L290 TraceCheckUtils]: 1: Hoare triple {5434#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L272 TraceCheckUtils]: 2: Hoare triple {5434#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L290 TraceCheckUtils]: 3: Hoare triple {5434#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L290 TraceCheckUtils]: 4: Hoare triple {5434#true} assume true; {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {5434#true} {5434#true} #129#return; {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L290 TraceCheckUtils]: 6: Hoare triple {5434#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L290 TraceCheckUtils]: 7: Hoare triple {5434#true} assume main_#t~short12#1; {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L272 TraceCheckUtils]: 8: Hoare triple {5434#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L290 TraceCheckUtils]: 9: Hoare triple {5434#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L290 TraceCheckUtils]: 10: Hoare triple {5434#true} assume true; {5434#true} is VALID [2022-02-20 16:47:14,042 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {5434#true} {5434#true} #131#return; {5434#true} is VALID [2022-02-20 16:47:14,043 INFO L290 TraceCheckUtils]: 12: Hoare triple {5434#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {5434#true} is VALID [2022-02-20 16:47:14,043 INFO L290 TraceCheckUtils]: 13: Hoare triple {5434#true} main_#t~short16#1 := main_#t~short12#1; {5434#true} is VALID [2022-02-20 16:47:14,043 INFO L290 TraceCheckUtils]: 14: Hoare triple {5434#true} assume main_#t~short16#1; {5434#true} is VALID [2022-02-20 16:47:14,043 INFO L290 TraceCheckUtils]: 15: Hoare triple {5434#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {5434#true} is VALID [2022-02-20 16:47:14,043 INFO L272 TraceCheckUtils]: 16: Hoare triple {5434#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 17: Hoare triple {5434#true} ~x := #in~x;havoc ~w~0; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 18: Hoare triple {5434#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 19: Hoare triple {5434#true} goto; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 20: Hoare triple {5434#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 21: Hoare triple {5434#true} assume true; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {5434#true} {5434#true} #137#return; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 23: Hoare triple {5434#true} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L272 TraceCheckUtils]: 24: Hoare triple {5434#true} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 25: Hoare triple {5434#true} ~x := #in~x;havoc ~w~0; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 26: Hoare triple {5434#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {5434#true} is VALID [2022-02-20 16:47:14,048 INFO L290 TraceCheckUtils]: 27: Hoare triple {5434#true} goto; {5434#true} is VALID [2022-02-20 16:47:14,049 INFO L290 TraceCheckUtils]: 28: Hoare triple {5434#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {5434#true} is VALID [2022-02-20 16:47:14,049 INFO L290 TraceCheckUtils]: 29: Hoare triple {5434#true} assume (~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32));#res := 4bv32; {5526#(= (_ bv4 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:14,050 INFO L290 TraceCheckUtils]: 30: Hoare triple {5526#(= (_ bv4 32) |__fpclassify_float_#res|)} assume true; {5526#(= (_ bv4 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:14,050 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {5526#(= (_ bv4 32) |__fpclassify_float_#res|)} {5434#true} #139#return; {5533#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv4 32))} is VALID [2022-02-20 16:47:14,050 INFO L290 TraceCheckUtils]: 32: Hoare triple {5533#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv4 32))} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {5435#false} is VALID [2022-02-20 16:47:14,050 INFO L290 TraceCheckUtils]: 33: Hoare triple {5435#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L272 TraceCheckUtils]: 34: Hoare triple {5435#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 35: Hoare triple {5435#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 36: Hoare triple {5435#false} assume true; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {5435#false} {5435#false} #141#return; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 38: Hoare triple {5435#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 39: Hoare triple {5435#false} assume main_#t~short20#1; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L272 TraceCheckUtils]: 40: Hoare triple {5435#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 41: Hoare triple {5435#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 42: Hoare triple {5435#false} assume true; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {5435#false} {5435#false} #143#return; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 44: Hoare triple {5435#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 45: Hoare triple {5435#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L290 TraceCheckUtils]: 46: Hoare triple {5435#false} assume !false; {5435#false} is VALID [2022-02-20 16:47:14,051 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 14 proven. 0 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 16:47:14,052 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:14,052 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:14,052 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [2101460652] [2022-02-20 16:47:14,052 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [2101460652] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:14,052 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:14,052 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:14,052 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2134298768] [2022-02-20 16:47:14,052 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:14,055 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 7.0) internal successors, (28), 3 states have internal predecessors, (28), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) Word has length 47 [2022-02-20 16:47:14,055 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:14,055 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 7.0) internal successors, (28), 3 states have internal predecessors, (28), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:14,076 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:14,077 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:14,077 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:14,077 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:14,077 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:14,078 INFO L87 Difference]: Start difference. First operand 88 states and 127 transitions. Second operand has 4 states, 4 states have (on average 7.0) internal successors, (28), 3 states have internal predecessors, (28), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:14,202 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:14,202 INFO L93 Difference]: Finished difference Result 117 states and 167 transitions. [2022-02-20 16:47:14,202 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:14,202 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 7.0) internal successors, (28), 3 states have internal predecessors, (28), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) Word has length 47 [2022-02-20 16:47:14,203 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:14,203 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 7.0) internal successors, (28), 3 states have internal predecessors, (28), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:14,205 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:14,206 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 7.0) internal successors, (28), 3 states have internal predecessors, (28), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:14,207 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:14,207 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 99 transitions. [2022-02-20 16:47:14,268 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:14,270 INFO L225 Difference]: With dead ends: 117 [2022-02-20 16:47:14,270 INFO L226 Difference]: Without dead ends: 92 [2022-02-20 16:47:14,270 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 46 GetRequests, 44 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:14,270 INFO L933 BasicCegarLoop]: 73 mSDtfsCounter, 0 mSDsluCounter, 136 mSDsCounter, 0 mSdLazyCounter, 10 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 209 SdHoareTripleChecker+Invalid, 10 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 10 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:14,271 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 209 Invalid, 10 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 10 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:14,271 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 92 states. [2022-02-20 16:47:14,274 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 92 to 88. [2022-02-20 16:47:14,274 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:14,274 INFO L82 GeneralOperation]: Start isEquivalent. First operand 92 states. Second operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:14,274 INFO L74 IsIncluded]: Start isIncluded. First operand 92 states. Second operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:14,274 INFO L87 Difference]: Start difference. First operand 92 states. Second operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:14,279 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:14,279 INFO L93 Difference]: Finished difference Result 92 states and 135 transitions. [2022-02-20 16:47:14,279 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 135 transitions. [2022-02-20 16:47:14,281 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:14,281 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:14,281 INFO L74 IsIncluded]: Start isIncluded. First operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) Second operand 92 states. [2022-02-20 16:47:14,282 INFO L87 Difference]: Start difference. First operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) Second operand 92 states. [2022-02-20 16:47:14,284 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:14,284 INFO L93 Difference]: Finished difference Result 92 states and 135 transitions. [2022-02-20 16:47:14,284 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 135 transitions. [2022-02-20 16:47:14,284 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:14,284 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:14,284 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:14,284 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:14,285 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 88 states, 64 states have (on average 1.265625) internal successors, (81), 63 states have internal predecessors, (81), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:14,286 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 88 states to 88 states and 127 transitions. [2022-02-20 16:47:14,286 INFO L78 Accepts]: Start accepts. Automaton has 88 states and 127 transitions. Word has length 47 [2022-02-20 16:47:14,286 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:14,286 INFO L470 AbstractCegarLoop]: Abstraction has 88 states and 127 transitions. [2022-02-20 16:47:14,287 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 7.0) internal successors, (28), 3 states have internal predecessors, (28), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:14,287 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 127 transitions. [2022-02-20 16:47:14,287 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 16:47:14,287 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:14,287 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:14,298 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (13)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:14,488 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 13 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:14,488 INFO L402 AbstractCegarLoop]: === Iteration 13 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:14,488 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:14,488 INFO L85 PathProgramCache]: Analyzing trace with hash -877982242, now seen corresponding path program 1 times [2022-02-20 16:47:14,489 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:14,489 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [2122977454] [2022-02-20 16:47:14,489 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:14,489 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:14,489 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:14,490 INFO L229 MonitoredProcess]: Starting monitored process 14 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:14,490 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (14)] Waiting until timeout for monitored process [2022-02-20 16:47:14,541 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:14,544 INFO L263 TraceCheckSpWp]: Trace formula consists of 116 conjuncts, 9 conjunts are in the unsatisfiable core [2022-02-20 16:47:14,555 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:14,558 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:14,747 INFO L290 TraceCheckUtils]: 0: Hoare triple {6023#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {6023#true} is VALID [2022-02-20 16:47:14,747 INFO L290 TraceCheckUtils]: 1: Hoare triple {6023#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {6023#true} is VALID [2022-02-20 16:47:14,747 INFO L272 TraceCheckUtils]: 2: Hoare triple {6023#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {6023#true} is VALID [2022-02-20 16:47:14,748 INFO L290 TraceCheckUtils]: 3: Hoare triple {6023#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6037#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:14,749 INFO L290 TraceCheckUtils]: 4: Hoare triple {6037#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {6037#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:14,750 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {6037#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {6023#true} #129#return; {6044#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:14,750 INFO L290 TraceCheckUtils]: 6: Hoare triple {6044#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {6048#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:14,750 INFO L290 TraceCheckUtils]: 7: Hoare triple {6048#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume main_#t~short12#1; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:14,751 INFO L272 TraceCheckUtils]: 8: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {6023#true} is VALID [2022-02-20 16:47:14,751 INFO L290 TraceCheckUtils]: 9: Hoare triple {6023#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6023#true} is VALID [2022-02-20 16:47:14,751 INFO L290 TraceCheckUtils]: 10: Hoare triple {6023#true} assume true; {6023#true} is VALID [2022-02-20 16:47:14,751 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {6023#true} {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #131#return; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:14,751 INFO L290 TraceCheckUtils]: 12: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:14,752 INFO L290 TraceCheckUtils]: 13: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short16#1 := main_#t~short12#1; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:14,752 INFO L290 TraceCheckUtils]: 14: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:14,752 INFO L290 TraceCheckUtils]: 15: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:14,752 INFO L272 TraceCheckUtils]: 16: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {6023#true} is VALID [2022-02-20 16:47:14,752 INFO L290 TraceCheckUtils]: 17: Hoare triple {6023#true} ~x := #in~x;havoc ~w~0; {6023#true} is VALID [2022-02-20 16:47:14,753 INFO L290 TraceCheckUtils]: 18: Hoare triple {6023#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {6023#true} is VALID [2022-02-20 16:47:14,753 INFO L290 TraceCheckUtils]: 19: Hoare triple {6023#true} goto; {6023#true} is VALID [2022-02-20 16:47:14,753 INFO L290 TraceCheckUtils]: 20: Hoare triple {6023#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {6023#true} is VALID [2022-02-20 16:47:14,753 INFO L290 TraceCheckUtils]: 21: Hoare triple {6023#true} assume true; {6023#true} is VALID [2022-02-20 16:47:14,758 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6023#true} {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} #137#return; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:14,758 INFO L290 TraceCheckUtils]: 23: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:14,758 INFO L272 TraceCheckUtils]: 24: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {6023#true} is VALID [2022-02-20 16:47:14,758 INFO L290 TraceCheckUtils]: 25: Hoare triple {6023#true} ~x := #in~x;havoc ~w~0; {6023#true} is VALID [2022-02-20 16:47:14,758 INFO L290 TraceCheckUtils]: 26: Hoare triple {6023#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {6023#true} is VALID [2022-02-20 16:47:14,758 INFO L290 TraceCheckUtils]: 27: Hoare triple {6023#true} goto; {6023#true} is VALID [2022-02-20 16:47:14,758 INFO L290 TraceCheckUtils]: 28: Hoare triple {6023#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {6023#true} is VALID [2022-02-20 16:47:14,759 INFO L290 TraceCheckUtils]: 29: Hoare triple {6023#true} assume true; {6023#true} is VALID [2022-02-20 16:47:14,759 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {6023#true} {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} #139#return; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:14,759 INFO L290 TraceCheckUtils]: 31: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:14,760 INFO L290 TraceCheckUtils]: 32: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} assume ~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~x#1; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 33: Hoare triple {6024#false} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 34: Hoare triple {6024#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L272 TraceCheckUtils]: 35: Hoare triple {6024#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 36: Hoare triple {6024#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 37: Hoare triple {6024#false} assume true; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {6024#false} {6024#false} #141#return; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 39: Hoare triple {6024#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 40: Hoare triple {6024#false} assume main_#t~short20#1; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L272 TraceCheckUtils]: 41: Hoare triple {6024#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 42: Hoare triple {6024#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 43: Hoare triple {6024#false} assume true; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {6024#false} {6024#false} #143#return; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 45: Hoare triple {6024#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 46: Hoare triple {6024#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {6024#false} is VALID [2022-02-20 16:47:14,761 INFO L290 TraceCheckUtils]: 47: Hoare triple {6024#false} assume !false; {6024#false} is VALID [2022-02-20 16:47:14,762 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 12 proven. 2 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 16:47:14,762 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:14,874 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:14,874 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [2122977454] [2022-02-20 16:47:14,874 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [2122977454] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:47:14,874 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleCvc4 [787981083] [2022-02-20 16:47:14,874 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:14,874 INFO L173 SolverBuilder]: Constructing external solver with command: cvc4 --incremental --print-success --lang smt [2022-02-20 16:47:14,875 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 [2022-02-20 16:47:14,876 INFO L229 MonitoredProcess]: Starting monitored process 15 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 --incremental --print-success --lang smt (exit command is (exit), workingDir is null) [2022-02-20 16:47:14,876 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 --incremental --print-success --lang smt (15)] Waiting until timeout for monitored process [2022-02-20 16:47:15,059 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:15,064 INFO L263 TraceCheckSpWp]: Trace formula consists of 116 conjuncts, 10 conjunts are in the unsatisfiable core [2022-02-20 16:47:15,075 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:15,076 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:15,230 INFO L290 TraceCheckUtils]: 0: Hoare triple {6023#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {6023#true} is VALID [2022-02-20 16:47:15,230 INFO L290 TraceCheckUtils]: 1: Hoare triple {6023#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {6023#true} is VALID [2022-02-20 16:47:15,231 INFO L272 TraceCheckUtils]: 2: Hoare triple {6023#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {6023#true} is VALID [2022-02-20 16:47:15,231 INFO L290 TraceCheckUtils]: 3: Hoare triple {6023#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6037#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:15,232 INFO L290 TraceCheckUtils]: 4: Hoare triple {6037#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {6037#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:15,232 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {6037#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {6023#true} #129#return; {6044#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:15,233 INFO L290 TraceCheckUtils]: 6: Hoare triple {6044#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {6048#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:15,233 INFO L290 TraceCheckUtils]: 7: Hoare triple {6048#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume main_#t~short12#1; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:15,233 INFO L272 TraceCheckUtils]: 8: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {6023#true} is VALID [2022-02-20 16:47:15,234 INFO L290 TraceCheckUtils]: 9: Hoare triple {6023#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6023#true} is VALID [2022-02-20 16:47:15,234 INFO L290 TraceCheckUtils]: 10: Hoare triple {6023#true} assume true; {6023#true} is VALID [2022-02-20 16:47:15,234 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {6023#true} {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #131#return; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:15,234 INFO L290 TraceCheckUtils]: 12: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:15,235 INFO L290 TraceCheckUtils]: 13: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short16#1 := main_#t~short12#1; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:15,235 INFO L290 TraceCheckUtils]: 14: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1; {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:15,235 INFO L290 TraceCheckUtils]: 15: Hoare triple {6052#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:15,235 INFO L272 TraceCheckUtils]: 16: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {6023#true} is VALID [2022-02-20 16:47:15,235 INFO L290 TraceCheckUtils]: 17: Hoare triple {6023#true} ~x := #in~x;havoc ~w~0; {6023#true} is VALID [2022-02-20 16:47:15,235 INFO L290 TraceCheckUtils]: 18: Hoare triple {6023#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {6023#true} is VALID [2022-02-20 16:47:15,235 INFO L290 TraceCheckUtils]: 19: Hoare triple {6023#true} goto; {6023#true} is VALID [2022-02-20 16:47:15,236 INFO L290 TraceCheckUtils]: 20: Hoare triple {6023#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {6023#true} is VALID [2022-02-20 16:47:15,236 INFO L290 TraceCheckUtils]: 21: Hoare triple {6023#true} assume true; {6023#true} is VALID [2022-02-20 16:47:15,236 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6023#true} {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} #137#return; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:15,236 INFO L290 TraceCheckUtils]: 23: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:15,236 INFO L272 TraceCheckUtils]: 24: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {6023#true} is VALID [2022-02-20 16:47:15,236 INFO L290 TraceCheckUtils]: 25: Hoare triple {6023#true} ~x := #in~x;havoc ~w~0; {6023#true} is VALID [2022-02-20 16:47:15,237 INFO L290 TraceCheckUtils]: 26: Hoare triple {6023#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {6023#true} is VALID [2022-02-20 16:47:15,237 INFO L290 TraceCheckUtils]: 27: Hoare triple {6023#true} goto; {6023#true} is VALID [2022-02-20 16:47:15,237 INFO L290 TraceCheckUtils]: 28: Hoare triple {6023#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {6023#true} is VALID [2022-02-20 16:47:15,237 INFO L290 TraceCheckUtils]: 29: Hoare triple {6023#true} assume true; {6023#true} is VALID [2022-02-20 16:47:15,237 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {6023#true} {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} #139#return; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:15,237 INFO L290 TraceCheckUtils]: 31: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} is VALID [2022-02-20 16:47:15,238 INFO L290 TraceCheckUtils]: 32: Hoare triple {6077#(not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|))} assume ~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~x#1; {6024#false} is VALID [2022-02-20 16:47:15,238 INFO L290 TraceCheckUtils]: 33: Hoare triple {6024#false} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {6024#false} is VALID [2022-02-20 16:47:15,238 INFO L290 TraceCheckUtils]: 34: Hoare triple {6024#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {6024#false} is VALID [2022-02-20 16:47:15,238 INFO L272 TraceCheckUtils]: 35: Hoare triple {6024#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 36: Hoare triple {6024#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 37: Hoare triple {6024#false} assume true; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {6024#false} {6024#false} #141#return; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 39: Hoare triple {6024#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 40: Hoare triple {6024#false} assume main_#t~short20#1; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L272 TraceCheckUtils]: 41: Hoare triple {6024#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 42: Hoare triple {6024#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 43: Hoare triple {6024#false} assume true; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {6024#false} {6024#false} #143#return; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 45: Hoare triple {6024#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 46: Hoare triple {6024#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L290 TraceCheckUtils]: 47: Hoare triple {6024#false} assume !false; {6024#false} is VALID [2022-02-20 16:47:15,239 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 12 proven. 2 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 16:47:15,240 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:15,298 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleCvc4 [787981083] provided 0 perfect and 1 imperfect interpolant sequences [2022-02-20 16:47:15,298 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:15,298 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [7, 7] total 7 [2022-02-20 16:47:15,298 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1623923898] [2022-02-20 16:47:15,298 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:15,299 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 4.142857142857143) internal successors, (29), 6 states have internal predecessors, (29), 4 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 48 [2022-02-20 16:47:15,299 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:15,299 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 4.142857142857143) internal successors, (29), 6 states have internal predecessors, (29), 4 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:47:15,327 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:15,327 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 16:47:15,327 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:15,327 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 16:47:15,327 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=14, Invalid=42, Unknown=0, NotChecked=0, Total=56 [2022-02-20 16:47:15,328 INFO L87 Difference]: Start difference. First operand 88 states and 127 transitions. Second operand has 7 states, 7 states have (on average 4.142857142857143) internal successors, (29), 6 states have internal predecessors, (29), 4 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:47:16,204 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:16,205 INFO L93 Difference]: Finished difference Result 123 states and 168 transitions. [2022-02-20 16:47:16,205 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2022-02-20 16:47:16,205 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 4.142857142857143) internal successors, (29), 6 states have internal predecessors, (29), 4 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) Word has length 48 [2022-02-20 16:47:16,205 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:16,205 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 4.142857142857143) internal successors, (29), 6 states have internal predecessors, (29), 4 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:47:16,206 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 137 transitions. [2022-02-20 16:47:16,206 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 4.142857142857143) internal successors, (29), 6 states have internal predecessors, (29), 4 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:47:16,207 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 137 transitions. [2022-02-20 16:47:16,207 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 137 transitions. [2022-02-20 16:47:16,308 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 137 edges. 137 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:16,309 INFO L225 Difference]: With dead ends: 123 [2022-02-20 16:47:16,309 INFO L226 Difference]: Without dead ends: 102 [2022-02-20 16:47:16,310 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 134 GetRequests, 124 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 5 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=34, Invalid=98, Unknown=0, NotChecked=0, Total=132 [2022-02-20 16:47:16,310 INFO L933 BasicCegarLoop]: 64 mSDtfsCounter, 68 mSDsluCounter, 269 mSDsCounter, 0 mSdLazyCounter, 124 mSolverCounterSat, 21 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 68 SdHoareTripleChecker+Valid, 333 SdHoareTripleChecker+Invalid, 145 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 21 IncrementalHoareTripleChecker+Valid, 124 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:16,310 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [68 Valid, 333 Invalid, 145 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [21 Valid, 124 Invalid, 0 Unknown, 0 Unchecked, 0.4s Time] [2022-02-20 16:47:16,311 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 102 states. [2022-02-20 16:47:16,313 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 102 to 88. [2022-02-20 16:47:16,313 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:16,314 INFO L82 GeneralOperation]: Start isEquivalent. First operand 102 states. Second operand has 88 states, 64 states have (on average 1.25) internal successors, (80), 63 states have internal predecessors, (80), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:16,314 INFO L74 IsIncluded]: Start isIncluded. First operand 102 states. Second operand has 88 states, 64 states have (on average 1.25) internal successors, (80), 63 states have internal predecessors, (80), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:16,314 INFO L87 Difference]: Start difference. First operand 102 states. Second operand has 88 states, 64 states have (on average 1.25) internal successors, (80), 63 states have internal predecessors, (80), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:16,316 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:16,317 INFO L93 Difference]: Finished difference Result 102 states and 143 transitions. [2022-02-20 16:47:16,317 INFO L276 IsEmpty]: Start isEmpty. Operand 102 states and 143 transitions. [2022-02-20 16:47:16,317 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:16,317 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:16,317 INFO L74 IsIncluded]: Start isIncluded. First operand has 88 states, 64 states have (on average 1.25) internal successors, (80), 63 states have internal predecessors, (80), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) Second operand 102 states. [2022-02-20 16:47:16,317 INFO L87 Difference]: Start difference. First operand has 88 states, 64 states have (on average 1.25) internal successors, (80), 63 states have internal predecessors, (80), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) Second operand 102 states. [2022-02-20 16:47:16,320 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:16,320 INFO L93 Difference]: Finished difference Result 102 states and 143 transitions. [2022-02-20 16:47:16,320 INFO L276 IsEmpty]: Start isEmpty. Operand 102 states and 143 transitions. [2022-02-20 16:47:16,320 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:16,320 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:16,320 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:16,320 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:16,320 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 88 states, 64 states have (on average 1.25) internal successors, (80), 63 states have internal predecessors, (80), 18 states have call successors, (18), 2 states have call predecessors, (18), 4 states have return successors, (28), 22 states have call predecessors, (28), 18 states have call successors, (28) [2022-02-20 16:47:16,324 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 88 states to 88 states and 126 transitions. [2022-02-20 16:47:16,325 INFO L78 Accepts]: Start accepts. Automaton has 88 states and 126 transitions. Word has length 48 [2022-02-20 16:47:16,325 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:16,325 INFO L470 AbstractCegarLoop]: Abstraction has 88 states and 126 transitions. [2022-02-20 16:47:16,325 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 4.142857142857143) internal successors, (29), 6 states have internal predecessors, (29), 4 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 4 states have call predecessors, (6), 4 states have call successors, (6) [2022-02-20 16:47:16,325 INFO L276 IsEmpty]: Start isEmpty. Operand 88 states and 126 transitions. [2022-02-20 16:47:16,326 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 16:47:16,326 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:16,326 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:16,344 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 --incremental --print-success --lang smt (15)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:16,543 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (14)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:16,735 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 15 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/cvc4 --incremental --print-success --lang smt,14 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:16,736 INFO L402 AbstractCegarLoop]: === Iteration 14 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:16,736 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:16,736 INFO L85 PathProgramCache]: Analyzing trace with hash -1899050596, now seen corresponding path program 1 times [2022-02-20 16:47:16,736 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:16,736 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [699275411] [2022-02-20 16:47:16,736 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:16,736 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:16,736 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:16,737 INFO L229 MonitoredProcess]: Starting monitored process 16 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:16,738 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (16)] Waiting until timeout for monitored process [2022-02-20 16:47:16,789 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:16,791 INFO L263 TraceCheckSpWp]: Trace formula consists of 116 conjuncts, 14 conjunts are in the unsatisfiable core [2022-02-20 16:47:16,813 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:16,815 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:17,166 INFO L290 TraceCheckUtils]: 0: Hoare triple {6903#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {6903#true} is VALID [2022-02-20 16:47:17,166 INFO L290 TraceCheckUtils]: 1: Hoare triple {6903#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {6903#true} is VALID [2022-02-20 16:47:17,166 INFO L272 TraceCheckUtils]: 2: Hoare triple {6903#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {6903#true} is VALID [2022-02-20 16:47:17,166 INFO L290 TraceCheckUtils]: 3: Hoare triple {6903#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6903#true} is VALID [2022-02-20 16:47:17,166 INFO L290 TraceCheckUtils]: 4: Hoare triple {6903#true} assume true; {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {6903#true} {6903#true} #129#return; {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L290 TraceCheckUtils]: 6: Hoare triple {6903#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L290 TraceCheckUtils]: 7: Hoare triple {6903#true} assume main_#t~short12#1; {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L272 TraceCheckUtils]: 8: Hoare triple {6903#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L290 TraceCheckUtils]: 9: Hoare triple {6903#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L290 TraceCheckUtils]: 10: Hoare triple {6903#true} assume true; {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {6903#true} {6903#true} #131#return; {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L290 TraceCheckUtils]: 12: Hoare triple {6903#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L290 TraceCheckUtils]: 13: Hoare triple {6903#true} main_#t~short16#1 := main_#t~short12#1; {6903#true} is VALID [2022-02-20 16:47:17,167 INFO L290 TraceCheckUtils]: 14: Hoare triple {6903#true} assume main_#t~short16#1; {6903#true} is VALID [2022-02-20 16:47:17,168 INFO L290 TraceCheckUtils]: 15: Hoare triple {6903#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {6953#(= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:17,168 INFO L272 TraceCheckUtils]: 16: Hoare triple {6953#(= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {6903#true} is VALID [2022-02-20 16:47:17,168 INFO L290 TraceCheckUtils]: 17: Hoare triple {6903#true} ~x := #in~x;havoc ~w~0; {6903#true} is VALID [2022-02-20 16:47:17,168 INFO L290 TraceCheckUtils]: 18: Hoare triple {6903#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {6903#true} is VALID [2022-02-20 16:47:17,168 INFO L290 TraceCheckUtils]: 19: Hoare triple {6903#true} goto; {6903#true} is VALID [2022-02-20 16:47:17,168 INFO L290 TraceCheckUtils]: 20: Hoare triple {6903#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {6903#true} is VALID [2022-02-20 16:47:17,168 INFO L290 TraceCheckUtils]: 21: Hoare triple {6903#true} assume true; {6903#true} is VALID [2022-02-20 16:47:17,169 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {6903#true} {6953#(= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} #137#return; {6953#(= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:17,169 INFO L290 TraceCheckUtils]: 23: Hoare triple {6953#(= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {6953#(= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:17,169 INFO L272 TraceCheckUtils]: 24: Hoare triple {6953#(= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {6903#true} is VALID [2022-02-20 16:47:17,169 INFO L290 TraceCheckUtils]: 25: Hoare triple {6903#true} ~x := #in~x;havoc ~w~0; {6984#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} is VALID [2022-02-20 16:47:17,175 INFO L290 TraceCheckUtils]: 26: Hoare triple {6984#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {6988#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:17,175 INFO L290 TraceCheckUtils]: 27: Hoare triple {6988#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} goto; {6988#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:17,176 INFO L290 TraceCheckUtils]: 28: Hoare triple {6988#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {6995#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:17,176 INFO L290 TraceCheckUtils]: 29: Hoare triple {6995#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} assume true; {6995#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:17,177 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {6995#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} {6953#(= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} #139#return; {7002#(and (or (= |ULTIMATE.start_fmax_float_~y#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~y#1|)) (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,177 INFO L290 TraceCheckUtils]: 31: Hoare triple {7002#(and (or (= |ULTIMATE.start_fmax_float_~y#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~y#1|)) (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|))} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {7002#(and (or (= |ULTIMATE.start_fmax_float_~y#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~y#1|)) (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,178 INFO L290 TraceCheckUtils]: 32: Hoare triple {7002#(and (or (= |ULTIMATE.start_fmax_float_~y#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~y#1|)) (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|))} assume !~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~y#1; {7009#(and (= |ULTIMATE.start_fmax_float_#t~ite7#1| |ULTIMATE.start_main_~y~0#1|) (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_#t~ite7#1|) (= |ULTIMATE.start_fmax_float_#t~ite7#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))))} is VALID [2022-02-20 16:47:17,188 INFO L290 TraceCheckUtils]: 33: Hoare triple {7009#(and (= |ULTIMATE.start_fmax_float_#t~ite7#1| |ULTIMATE.start_main_~y~0#1|) (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_#t~ite7#1|) (= |ULTIMATE.start_fmax_float_#t~ite7#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))))} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {7013#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,188 INFO L290 TraceCheckUtils]: 34: Hoare triple {7013#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,188 INFO L272 TraceCheckUtils]: 35: Hoare triple {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {6903#true} is VALID [2022-02-20 16:47:17,189 INFO L290 TraceCheckUtils]: 36: Hoare triple {6903#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6903#true} is VALID [2022-02-20 16:47:17,189 INFO L290 TraceCheckUtils]: 37: Hoare triple {6903#true} assume true; {6903#true} is VALID [2022-02-20 16:47:17,189 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {6903#true} {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} #141#return; {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,190 INFO L290 TraceCheckUtils]: 39: Hoare triple {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,190 INFO L290 TraceCheckUtils]: 40: Hoare triple {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} assume main_#t~short20#1; {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,190 INFO L272 TraceCheckUtils]: 41: Hoare triple {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {6903#true} is VALID [2022-02-20 16:47:17,190 INFO L290 TraceCheckUtils]: 42: Hoare triple {6903#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {6903#true} is VALID [2022-02-20 16:47:17,191 INFO L290 TraceCheckUtils]: 43: Hoare triple {6903#true} assume true; {6903#true} is VALID [2022-02-20 16:47:17,191 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {6903#true} {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} #143#return; {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,192 INFO L290 TraceCheckUtils]: 45: Hoare triple {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:17,192 INFO L290 TraceCheckUtils]: 46: Hoare triple {7017#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~y~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|))} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {6904#false} is VALID [2022-02-20 16:47:17,193 INFO L290 TraceCheckUtils]: 47: Hoare triple {6904#false} assume !false; {6904#false} is VALID [2022-02-20 16:47:17,193 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 5 proven. 0 refuted. 0 times theorem prover too weak. 19 trivial. 0 not checked. [2022-02-20 16:47:17,193 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:17,193 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:17,193 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [699275411] [2022-02-20 16:47:17,193 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [699275411] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:17,193 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:17,194 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-02-20 16:47:17,194 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2043828888] [2022-02-20 16:47:17,194 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:17,194 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 3.0) internal successors, (30), 10 states have internal predecessors, (30), 3 states have call successors, (6), 1 states have call predecessors, (6), 2 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) Word has length 48 [2022-02-20 16:47:17,194 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:17,195 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 10 states, 10 states have (on average 3.0) internal successors, (30), 10 states have internal predecessors, (30), 3 states have call successors, (6), 1 states have call predecessors, (6), 2 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:17,230 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:17,230 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-02-20 16:47:17,230 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:17,231 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-02-20 16:47:17,231 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=18, Invalid=72, Unknown=0, NotChecked=0, Total=90 [2022-02-20 16:47:17,231 INFO L87 Difference]: Start difference. First operand 88 states and 126 transitions. Second operand has 10 states, 10 states have (on average 3.0) internal successors, (30), 10 states have internal predecessors, (30), 3 states have call successors, (6), 1 states have call predecessors, (6), 2 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:19,262 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:19,263 INFO L93 Difference]: Finished difference Result 137 states and 191 transitions. [2022-02-20 16:47:19,263 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 16:47:19,263 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 3.0) internal successors, (30), 10 states have internal predecessors, (30), 3 states have call successors, (6), 1 states have call predecessors, (6), 2 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) Word has length 48 [2022-02-20 16:47:19,263 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:19,264 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 3.0) internal successors, (30), 10 states have internal predecessors, (30), 3 states have call successors, (6), 1 states have call predecessors, (6), 2 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:19,265 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 122 transitions. [2022-02-20 16:47:19,265 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 3.0) internal successors, (30), 10 states have internal predecessors, (30), 3 states have call successors, (6), 1 states have call predecessors, (6), 2 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:19,266 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 122 transitions. [2022-02-20 16:47:19,266 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 122 transitions. [2022-02-20 16:47:19,387 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 122 edges. 122 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:19,389 INFO L225 Difference]: With dead ends: 137 [2022-02-20 16:47:19,389 INFO L226 Difference]: Without dead ends: 135 [2022-02-20 16:47:19,389 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 53 GetRequests, 40 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 13 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=45, Invalid=165, Unknown=0, NotChecked=0, Total=210 [2022-02-20 16:47:19,390 INFO L933 BasicCegarLoop]: 76 mSDtfsCounter, 93 mSDsluCounter, 448 mSDsCounter, 0 mSdLazyCounter, 196 mSolverCounterSat, 20 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 103 SdHoareTripleChecker+Valid, 524 SdHoareTripleChecker+Invalid, 216 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 20 IncrementalHoareTripleChecker+Valid, 196 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.2s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:19,390 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [103 Valid, 524 Invalid, 216 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [20 Valid, 196 Invalid, 0 Unknown, 0 Unchecked, 1.2s Time] [2022-02-20 16:47:19,390 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 135 states. [2022-02-20 16:47:19,399 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 135 to 100. [2022-02-20 16:47:19,400 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:19,400 INFO L82 GeneralOperation]: Start isEquivalent. First operand 135 states. Second operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) [2022-02-20 16:47:19,400 INFO L74 IsIncluded]: Start isIncluded. First operand 135 states. Second operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) [2022-02-20 16:47:19,401 INFO L87 Difference]: Start difference. First operand 135 states. Second operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) [2022-02-20 16:47:19,404 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:19,404 INFO L93 Difference]: Finished difference Result 135 states and 189 transitions. [2022-02-20 16:47:19,404 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 189 transitions. [2022-02-20 16:47:19,405 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:19,405 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:19,405 INFO L74 IsIncluded]: Start isIncluded. First operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) Second operand 135 states. [2022-02-20 16:47:19,406 INFO L87 Difference]: Start difference. First operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) Second operand 135 states. [2022-02-20 16:47:19,409 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:19,409 INFO L93 Difference]: Finished difference Result 135 states and 189 transitions. [2022-02-20 16:47:19,409 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 189 transitions. [2022-02-20 16:47:19,410 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:19,410 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:19,410 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:19,410 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:19,410 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) [2022-02-20 16:47:19,412 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 145 transitions. [2022-02-20 16:47:19,412 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 145 transitions. Word has length 48 [2022-02-20 16:47:19,412 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:19,413 INFO L470 AbstractCegarLoop]: Abstraction has 100 states and 145 transitions. [2022-02-20 16:47:19,413 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 10 states have (on average 3.0) internal successors, (30), 10 states have internal predecessors, (30), 3 states have call successors, (6), 1 states have call predecessors, (6), 2 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:19,413 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 145 transitions. [2022-02-20 16:47:19,414 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 16:47:19,414 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:19,414 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:19,424 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (16)] Ended with exit code 0 [2022-02-20 16:47:19,623 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 16 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:19,623 INFO L402 AbstractCegarLoop]: === Iteration 15 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:19,624 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:19,624 INFO L85 PathProgramCache]: Analyzing trace with hash 505566420, now seen corresponding path program 1 times [2022-02-20 16:47:19,624 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:19,624 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1914566763] [2022-02-20 16:47:19,624 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:19,624 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:19,625 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:19,626 INFO L229 MonitoredProcess]: Starting monitored process 17 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:19,627 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (17)] Waiting until timeout for monitored process [2022-02-20 16:47:19,672 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:19,675 INFO L263 TraceCheckSpWp]: Trace formula consists of 118 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:19,684 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:19,685 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:19,761 INFO L290 TraceCheckUtils]: 0: Hoare triple {7636#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {7636#true} is VALID [2022-02-20 16:47:19,761 INFO L290 TraceCheckUtils]: 1: Hoare triple {7636#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {7636#true} is VALID [2022-02-20 16:47:19,761 INFO L272 TraceCheckUtils]: 2: Hoare triple {7636#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {7636#true} is VALID [2022-02-20 16:47:19,761 INFO L290 TraceCheckUtils]: 3: Hoare triple {7636#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {7636#true} is VALID [2022-02-20 16:47:19,762 INFO L290 TraceCheckUtils]: 4: Hoare triple {7636#true} assume true; {7636#true} is VALID [2022-02-20 16:47:19,762 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {7636#true} {7636#true} #129#return; {7636#true} is VALID [2022-02-20 16:47:19,762 INFO L290 TraceCheckUtils]: 6: Hoare triple {7636#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {7636#true} is VALID [2022-02-20 16:47:19,762 INFO L290 TraceCheckUtils]: 7: Hoare triple {7636#true} assume main_#t~short12#1; {7636#true} is VALID [2022-02-20 16:47:19,762 INFO L272 TraceCheckUtils]: 8: Hoare triple {7636#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {7636#true} is VALID [2022-02-20 16:47:19,762 INFO L290 TraceCheckUtils]: 9: Hoare triple {7636#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {7636#true} is VALID [2022-02-20 16:47:19,762 INFO L290 TraceCheckUtils]: 10: Hoare triple {7636#true} assume true; {7636#true} is VALID [2022-02-20 16:47:19,762 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {7636#true} {7636#true} #131#return; {7636#true} is VALID [2022-02-20 16:47:19,763 INFO L290 TraceCheckUtils]: 12: Hoare triple {7636#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {7636#true} is VALID [2022-02-20 16:47:19,763 INFO L290 TraceCheckUtils]: 13: Hoare triple {7636#true} main_#t~short16#1 := main_#t~short12#1; {7636#true} is VALID [2022-02-20 16:47:19,763 INFO L290 TraceCheckUtils]: 14: Hoare triple {7636#true} assume main_#t~short16#1; {7636#true} is VALID [2022-02-20 16:47:19,763 INFO L290 TraceCheckUtils]: 15: Hoare triple {7636#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {7636#true} is VALID [2022-02-20 16:47:19,763 INFO L272 TraceCheckUtils]: 16: Hoare triple {7636#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {7636#true} is VALID [2022-02-20 16:47:19,763 INFO L290 TraceCheckUtils]: 17: Hoare triple {7636#true} ~x := #in~x;havoc ~w~0; {7636#true} is VALID [2022-02-20 16:47:19,763 INFO L290 TraceCheckUtils]: 18: Hoare triple {7636#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {7636#true} is VALID [2022-02-20 16:47:19,763 INFO L290 TraceCheckUtils]: 19: Hoare triple {7636#true} goto; {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L290 TraceCheckUtils]: 20: Hoare triple {7636#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L290 TraceCheckUtils]: 21: Hoare triple {7636#true} assume true; {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {7636#true} {7636#true} #137#return; {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L290 TraceCheckUtils]: 23: Hoare triple {7636#true} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L272 TraceCheckUtils]: 24: Hoare triple {7636#true} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L290 TraceCheckUtils]: 25: Hoare triple {7636#true} ~x := #in~x;havoc ~w~0; {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L290 TraceCheckUtils]: 26: Hoare triple {7636#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L290 TraceCheckUtils]: 27: Hoare triple {7636#true} goto; {7636#true} is VALID [2022-02-20 16:47:19,764 INFO L290 TraceCheckUtils]: 28: Hoare triple {7636#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {7636#true} is VALID [2022-02-20 16:47:19,765 INFO L290 TraceCheckUtils]: 29: Hoare triple {7636#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {7636#true} is VALID [2022-02-20 16:47:19,765 INFO L290 TraceCheckUtils]: 30: Hoare triple {7636#true} assume (~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32));#res := 3bv32; {7731#(= (_ bv3 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:19,765 INFO L290 TraceCheckUtils]: 31: Hoare triple {7731#(= (_ bv3 32) |__fpclassify_float_#res|)} assume true; {7731#(= (_ bv3 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:19,766 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {7731#(= (_ bv3 32) |__fpclassify_float_#res|)} {7636#true} #139#return; {7738#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv3 32))} is VALID [2022-02-20 16:47:19,766 INFO L290 TraceCheckUtils]: 33: Hoare triple {7738#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv3 32))} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {7637#false} is VALID [2022-02-20 16:47:19,766 INFO L290 TraceCheckUtils]: 34: Hoare triple {7637#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {7637#false} is VALID [2022-02-20 16:47:19,766 INFO L272 TraceCheckUtils]: 35: Hoare triple {7637#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {7637#false} is VALID [2022-02-20 16:47:19,767 INFO L290 TraceCheckUtils]: 36: Hoare triple {7637#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {7637#false} is VALID [2022-02-20 16:47:19,767 INFO L290 TraceCheckUtils]: 37: Hoare triple {7637#false} assume true; {7637#false} is VALID [2022-02-20 16:47:19,767 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {7637#false} {7637#false} #141#return; {7637#false} is VALID [2022-02-20 16:47:19,767 INFO L290 TraceCheckUtils]: 39: Hoare triple {7637#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {7637#false} is VALID [2022-02-20 16:47:19,767 INFO L290 TraceCheckUtils]: 40: Hoare triple {7637#false} assume main_#t~short20#1; {7637#false} is VALID [2022-02-20 16:47:19,767 INFO L272 TraceCheckUtils]: 41: Hoare triple {7637#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {7637#false} is VALID [2022-02-20 16:47:19,767 INFO L290 TraceCheckUtils]: 42: Hoare triple {7637#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {7637#false} is VALID [2022-02-20 16:47:19,767 INFO L290 TraceCheckUtils]: 43: Hoare triple {7637#false} assume true; {7637#false} is VALID [2022-02-20 16:47:19,768 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {7637#false} {7637#false} #143#return; {7637#false} is VALID [2022-02-20 16:47:19,768 INFO L290 TraceCheckUtils]: 45: Hoare triple {7637#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {7637#false} is VALID [2022-02-20 16:47:19,768 INFO L290 TraceCheckUtils]: 46: Hoare triple {7637#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {7637#false} is VALID [2022-02-20 16:47:19,768 INFO L290 TraceCheckUtils]: 47: Hoare triple {7637#false} assume !false; {7637#false} is VALID [2022-02-20 16:47:19,768 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 14 proven. 0 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 16:47:19,769 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:19,769 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:19,769 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1914566763] [2022-02-20 16:47:19,771 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1914566763] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:19,772 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:19,772 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:19,772 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [55981716] [2022-02-20 16:47:19,772 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:19,773 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 7.25) internal successors, (29), 3 states have internal predecessors, (29), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) Word has length 48 [2022-02-20 16:47:19,773 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:19,773 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 7.25) internal successors, (29), 3 states have internal predecessors, (29), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:19,797 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:19,801 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:19,801 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:19,802 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:19,802 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:19,802 INFO L87 Difference]: Start difference. First operand 100 states and 145 transitions. Second operand has 4 states, 4 states have (on average 7.25) internal successors, (29), 3 states have internal predecessors, (29), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:19,926 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:19,926 INFO L93 Difference]: Finished difference Result 129 states and 185 transitions. [2022-02-20 16:47:19,926 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:19,926 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 7.25) internal successors, (29), 3 states have internal predecessors, (29), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) Word has length 48 [2022-02-20 16:47:19,927 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:19,927 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 7.25) internal successors, (29), 3 states have internal predecessors, (29), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:19,928 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:19,928 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 7.25) internal successors, (29), 3 states have internal predecessors, (29), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:19,929 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 99 transitions. [2022-02-20 16:47:19,929 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 99 transitions. [2022-02-20 16:47:19,991 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 99 edges. 99 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:19,992 INFO L225 Difference]: With dead ends: 129 [2022-02-20 16:47:19,992 INFO L226 Difference]: Without dead ends: 104 [2022-02-20 16:47:19,993 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 47 GetRequests, 45 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:19,993 INFO L933 BasicCegarLoop]: 73 mSDtfsCounter, 0 mSDsluCounter, 136 mSDsCounter, 0 mSdLazyCounter, 10 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 209 SdHoareTripleChecker+Invalid, 10 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 10 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:19,993 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 209 Invalid, 10 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 10 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:19,994 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2022-02-20 16:47:19,998 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 100. [2022-02-20 16:47:19,998 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:19,998 INFO L82 GeneralOperation]: Start isEquivalent. First operand 104 states. Second operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) [2022-02-20 16:47:19,999 INFO L74 IsIncluded]: Start isIncluded. First operand 104 states. Second operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) [2022-02-20 16:47:19,999 INFO L87 Difference]: Start difference. First operand 104 states. Second operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) [2022-02-20 16:47:20,002 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:20,002 INFO L93 Difference]: Finished difference Result 104 states and 153 transitions. [2022-02-20 16:47:20,002 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 153 transitions. [2022-02-20 16:47:20,003 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:20,003 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:20,003 INFO L74 IsIncluded]: Start isIncluded. First operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) Second operand 104 states. [2022-02-20 16:47:20,004 INFO L87 Difference]: Start difference. First operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) Second operand 104 states. [2022-02-20 16:47:20,006 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:20,006 INFO L93 Difference]: Finished difference Result 104 states and 153 transitions. [2022-02-20 16:47:20,007 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 153 transitions. [2022-02-20 16:47:20,007 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:20,007 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:20,007 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:20,007 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:20,008 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 100 states, 74 states have (on average 1.2432432432432432) internal successors, (92), 72 states have internal predecessors, (92), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (34), 25 states have call predecessors, (34), 19 states have call successors, (34) [2022-02-20 16:47:20,009 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 145 transitions. [2022-02-20 16:47:20,010 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 145 transitions. Word has length 48 [2022-02-20 16:47:20,010 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:20,010 INFO L470 AbstractCegarLoop]: Abstraction has 100 states and 145 transitions. [2022-02-20 16:47:20,010 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 7.25) internal successors, (29), 3 states have internal predecessors, (29), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:20,010 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 145 transitions. [2022-02-20 16:47:20,011 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 16:47:20,011 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:20,012 INFO L514 BasicCegarLoop]: trace histogram [5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:20,024 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (17)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:20,219 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 17 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:20,219 INFO L402 AbstractCegarLoop]: === Iteration 16 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:20,220 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:20,220 INFO L85 PathProgramCache]: Analyzing trace with hash -1437385679, now seen corresponding path program 1 times [2022-02-20 16:47:20,220 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:20,220 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1261268623] [2022-02-20 16:47:20,220 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:20,220 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:20,220 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:20,221 INFO L229 MonitoredProcess]: Starting monitored process 18 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:20,222 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (18)] Waiting until timeout for monitored process [2022-02-20 16:47:20,263 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:20,265 INFO L263 TraceCheckSpWp]: Trace formula consists of 105 conjuncts, 12 conjunts are in the unsatisfiable core [2022-02-20 16:47:20,274 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:20,274 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:20,506 INFO L290 TraceCheckUtils]: 0: Hoare triple {8280#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {8280#true} is VALID [2022-02-20 16:47:20,506 INFO L290 TraceCheckUtils]: 1: Hoare triple {8280#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {8280#true} is VALID [2022-02-20 16:47:20,506 INFO L272 TraceCheckUtils]: 2: Hoare triple {8280#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {8280#true} is VALID [2022-02-20 16:47:20,507 INFO L290 TraceCheckUtils]: 3: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8294#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:20,508 INFO L290 TraceCheckUtils]: 4: Hoare triple {8294#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {8294#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:20,508 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {8294#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {8280#true} #129#return; {8301#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:20,509 INFO L290 TraceCheckUtils]: 6: Hoare triple {8301#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {8305#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:20,509 INFO L290 TraceCheckUtils]: 7: Hoare triple {8305#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume main_#t~short12#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,510 INFO L272 TraceCheckUtils]: 8: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {8280#true} is VALID [2022-02-20 16:47:20,510 INFO L290 TraceCheckUtils]: 9: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8280#true} is VALID [2022-02-20 16:47:20,510 INFO L290 TraceCheckUtils]: 10: Hoare triple {8280#true} assume true; {8280#true} is VALID [2022-02-20 16:47:20,510 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {8280#true} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #131#return; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,511 INFO L290 TraceCheckUtils]: 12: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,511 INFO L290 TraceCheckUtils]: 13: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short16#1 := main_#t~short12#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,511 INFO L290 TraceCheckUtils]: 14: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,512 INFO L290 TraceCheckUtils]: 15: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,512 INFO L272 TraceCheckUtils]: 16: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {8280#true} is VALID [2022-02-20 16:47:20,512 INFO L290 TraceCheckUtils]: 17: Hoare triple {8280#true} ~x := #in~x;havoc ~w~0; {8280#true} is VALID [2022-02-20 16:47:20,512 INFO L290 TraceCheckUtils]: 18: Hoare triple {8280#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {8280#true} is VALID [2022-02-20 16:47:20,512 INFO L290 TraceCheckUtils]: 19: Hoare triple {8280#true} goto; {8280#true} is VALID [2022-02-20 16:47:20,512 INFO L290 TraceCheckUtils]: 20: Hoare triple {8280#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {8280#true} is VALID [2022-02-20 16:47:20,512 INFO L290 TraceCheckUtils]: 21: Hoare triple {8280#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {8280#true} is VALID [2022-02-20 16:47:20,512 INFO L290 TraceCheckUtils]: 22: Hoare triple {8280#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {8280#true} is VALID [2022-02-20 16:47:20,513 INFO L290 TraceCheckUtils]: 23: Hoare triple {8280#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {8280#true} is VALID [2022-02-20 16:47:20,513 INFO L290 TraceCheckUtils]: 24: Hoare triple {8280#true} assume true; {8280#true} is VALID [2022-02-20 16:47:20,513 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {8280#true} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #137#return; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,514 INFO L290 TraceCheckUtils]: 26: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,514 INFO L290 TraceCheckUtils]: 27: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,514 INFO L272 TraceCheckUtils]: 28: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {8280#true} is VALID [2022-02-20 16:47:20,514 INFO L290 TraceCheckUtils]: 29: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8280#true} is VALID [2022-02-20 16:47:20,514 INFO L290 TraceCheckUtils]: 30: Hoare triple {8280#true} assume true; {8280#true} is VALID [2022-02-20 16:47:20,515 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {8280#true} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #141#return; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,515 INFO L290 TraceCheckUtils]: 32: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,515 INFO L290 TraceCheckUtils]: 33: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short20#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,516 INFO L272 TraceCheckUtils]: 34: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {8280#true} is VALID [2022-02-20 16:47:20,516 INFO L290 TraceCheckUtils]: 35: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8280#true} is VALID [2022-02-20 16:47:20,516 INFO L290 TraceCheckUtils]: 36: Hoare triple {8280#true} assume true; {8280#true} is VALID [2022-02-20 16:47:20,516 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {8280#true} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #143#return; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,517 INFO L290 TraceCheckUtils]: 38: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,517 INFO L290 TraceCheckUtils]: 39: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,517 INFO L272 TraceCheckUtils]: 40: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {8280#true} is VALID [2022-02-20 16:47:20,518 INFO L290 TraceCheckUtils]: 41: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8294#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:20,519 INFO L290 TraceCheckUtils]: 42: Hoare triple {8294#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {8294#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:20,519 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {8294#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #145#return; {8418#(= |ULTIMATE.start_main_#t~ret21#1| (_ bv1 32))} is VALID [2022-02-20 16:47:20,520 INFO L290 TraceCheckUtils]: 44: Hoare triple {8418#(= |ULTIMATE.start_main_#t~ret21#1| (_ bv1 32))} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {8422#(not |ULTIMATE.start_main_#t~short23#1|)} is VALID [2022-02-20 16:47:20,520 INFO L290 TraceCheckUtils]: 45: Hoare triple {8422#(not |ULTIMATE.start_main_#t~short23#1|)} assume !main_#t~short23#1; {8422#(not |ULTIMATE.start_main_#t~short23#1|)} is VALID [2022-02-20 16:47:20,520 INFO L290 TraceCheckUtils]: 46: Hoare triple {8422#(not |ULTIMATE.start_main_#t~short23#1|)} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {8281#false} is VALID [2022-02-20 16:47:20,521 INFO L290 TraceCheckUtils]: 47: Hoare triple {8281#false} assume !false; {8281#false} is VALID [2022-02-20 16:47:20,521 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 6 proven. 6 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2022-02-20 16:47:20,521 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:20,814 INFO L290 TraceCheckUtils]: 47: Hoare triple {8281#false} assume !false; {8281#false} is VALID [2022-02-20 16:47:20,814 INFO L290 TraceCheckUtils]: 46: Hoare triple {8422#(not |ULTIMATE.start_main_#t~short23#1|)} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {8281#false} is VALID [2022-02-20 16:47:20,815 INFO L290 TraceCheckUtils]: 45: Hoare triple {8422#(not |ULTIMATE.start_main_#t~short23#1|)} assume !main_#t~short23#1; {8422#(not |ULTIMATE.start_main_#t~short23#1|)} is VALID [2022-02-20 16:47:20,815 INFO L290 TraceCheckUtils]: 44: Hoare triple {8441#(not (= |ULTIMATE.start_main_#t~ret21#1| (_ bv0 32)))} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {8422#(not |ULTIMATE.start_main_#t~short23#1|)} is VALID [2022-02-20 16:47:20,816 INFO L284 TraceCheckUtils]: 43: Hoare quadruple {8448#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #145#return; {8441#(not (= |ULTIMATE.start_main_#t~ret21#1| (_ bv0 32)))} is VALID [2022-02-20 16:47:20,816 INFO L290 TraceCheckUtils]: 42: Hoare triple {8448#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} assume true; {8448#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:20,816 INFO L290 TraceCheckUtils]: 41: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8448#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:20,817 INFO L272 TraceCheckUtils]: 40: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {8280#true} is VALID [2022-02-20 16:47:20,817 INFO L290 TraceCheckUtils]: 39: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,817 INFO L290 TraceCheckUtils]: 38: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,818 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {8280#true} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #143#return; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,818 INFO L290 TraceCheckUtils]: 36: Hoare triple {8280#true} assume true; {8280#true} is VALID [2022-02-20 16:47:20,818 INFO L290 TraceCheckUtils]: 35: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8280#true} is VALID [2022-02-20 16:47:20,818 INFO L272 TraceCheckUtils]: 34: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {8280#true} is VALID [2022-02-20 16:47:20,819 INFO L290 TraceCheckUtils]: 33: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short20#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,819 INFO L290 TraceCheckUtils]: 32: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,820 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {8280#true} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #141#return; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,820 INFO L290 TraceCheckUtils]: 30: Hoare triple {8280#true} assume true; {8280#true} is VALID [2022-02-20 16:47:20,820 INFO L290 TraceCheckUtils]: 29: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8280#true} is VALID [2022-02-20 16:47:20,820 INFO L272 TraceCheckUtils]: 28: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {8280#true} is VALID [2022-02-20 16:47:20,820 INFO L290 TraceCheckUtils]: 27: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,821 INFO L290 TraceCheckUtils]: 26: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,821 INFO L284 TraceCheckUtils]: 25: Hoare quadruple {8280#true} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #137#return; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,821 INFO L290 TraceCheckUtils]: 24: Hoare triple {8280#true} assume true; {8280#true} is VALID [2022-02-20 16:47:20,821 INFO L290 TraceCheckUtils]: 23: Hoare triple {8280#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {8280#true} is VALID [2022-02-20 16:47:20,822 INFO L290 TraceCheckUtils]: 22: Hoare triple {8280#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {8280#true} is VALID [2022-02-20 16:47:20,822 INFO L290 TraceCheckUtils]: 21: Hoare triple {8280#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {8280#true} is VALID [2022-02-20 16:47:20,822 INFO L290 TraceCheckUtils]: 20: Hoare triple {8280#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {8280#true} is VALID [2022-02-20 16:47:20,822 INFO L290 TraceCheckUtils]: 19: Hoare triple {8280#true} goto; {8280#true} is VALID [2022-02-20 16:47:20,822 INFO L290 TraceCheckUtils]: 18: Hoare triple {8280#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {8280#true} is VALID [2022-02-20 16:47:20,822 INFO L290 TraceCheckUtils]: 17: Hoare triple {8280#true} ~x := #in~x;havoc ~w~0; {8280#true} is VALID [2022-02-20 16:47:20,822 INFO L272 TraceCheckUtils]: 16: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {8280#true} is VALID [2022-02-20 16:47:20,823 INFO L290 TraceCheckUtils]: 15: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,823 INFO L290 TraceCheckUtils]: 14: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short16#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,823 INFO L290 TraceCheckUtils]: 13: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short16#1 := main_#t~short12#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,823 INFO L290 TraceCheckUtils]: 12: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,824 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {8280#true} {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #131#return; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,824 INFO L290 TraceCheckUtils]: 10: Hoare triple {8280#true} assume true; {8280#true} is VALID [2022-02-20 16:47:20,824 INFO L290 TraceCheckUtils]: 9: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8280#true} is VALID [2022-02-20 16:47:20,824 INFO L272 TraceCheckUtils]: 8: Hoare triple {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {8280#true} is VALID [2022-02-20 16:47:20,825 INFO L290 TraceCheckUtils]: 7: Hoare triple {8554#(or (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume main_#t~short12#1; {8309#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:20,825 INFO L290 TraceCheckUtils]: 6: Hoare triple {8558#(or (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {8554#(or (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:20,826 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {8565#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} {8280#true} #129#return; {8558#(or (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:20,826 INFO L290 TraceCheckUtils]: 4: Hoare triple {8565#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} assume true; {8565#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} is VALID [2022-02-20 16:47:20,826 INFO L290 TraceCheckUtils]: 3: Hoare triple {8280#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {8565#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} is VALID [2022-02-20 16:47:20,826 INFO L272 TraceCheckUtils]: 2: Hoare triple {8280#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {8280#true} is VALID [2022-02-20 16:47:20,826 INFO L290 TraceCheckUtils]: 1: Hoare triple {8280#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {8280#true} is VALID [2022-02-20 16:47:20,827 INFO L290 TraceCheckUtils]: 0: Hoare triple {8280#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {8280#true} is VALID [2022-02-20 16:47:20,827 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 6 proven. 8 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-02-20 16:47:20,827 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:20,827 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1261268623] [2022-02-20 16:47:20,827 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1261268623] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:20,827 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:20,827 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 13 [2022-02-20 16:47:20,828 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1577950151] [2022-02-20 16:47:20,828 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:20,828 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 2.8461538461538463) internal successors, (37), 9 states have internal predecessors, (37), 2 states have call successors, (6), 1 states have call predecessors, (6), 4 states have return successors, (8), 5 states have call predecessors, (8), 2 states have call successors, (8) Word has length 48 [2022-02-20 16:47:20,828 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:20,829 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 13 states, 13 states have (on average 2.8461538461538463) internal successors, (37), 9 states have internal predecessors, (37), 2 states have call successors, (6), 1 states have call predecessors, (6), 4 states have return successors, (8), 5 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:20,862 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:20,862 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 13 states [2022-02-20 16:47:20,862 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:20,863 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2022-02-20 16:47:20,863 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=30, Invalid=126, Unknown=0, NotChecked=0, Total=156 [2022-02-20 16:47:20,863 INFO L87 Difference]: Start difference. First operand 100 states and 145 transitions. Second operand has 13 states, 13 states have (on average 2.8461538461538463) internal successors, (37), 9 states have internal predecessors, (37), 2 states have call successors, (6), 1 states have call predecessors, (6), 4 states have return successors, (8), 5 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:22,290 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:22,291 INFO L93 Difference]: Finished difference Result 122 states and 170 transitions. [2022-02-20 16:47:22,291 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 12 states. [2022-02-20 16:47:22,291 INFO L78 Accepts]: Start accepts. Automaton has has 13 states, 13 states have (on average 2.8461538461538463) internal successors, (37), 9 states have internal predecessors, (37), 2 states have call successors, (6), 1 states have call predecessors, (6), 4 states have return successors, (8), 5 states have call predecessors, (8), 2 states have call successors, (8) Word has length 48 [2022-02-20 16:47:22,291 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:22,291 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 2.8461538461538463) internal successors, (37), 9 states have internal predecessors, (37), 2 states have call successors, (6), 1 states have call predecessors, (6), 4 states have return successors, (8), 5 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:22,293 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 117 transitions. [2022-02-20 16:47:22,293 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 13 states, 13 states have (on average 2.8461538461538463) internal successors, (37), 9 states have internal predecessors, (37), 2 states have call successors, (6), 1 states have call predecessors, (6), 4 states have return successors, (8), 5 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:22,294 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 117 transitions. [2022-02-20 16:47:22,294 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states and 117 transitions. [2022-02-20 16:47:22,377 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 117 edges. 117 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:22,381 INFO L225 Difference]: With dead ends: 122 [2022-02-20 16:47:22,381 INFO L226 Difference]: Without dead ends: 99 [2022-02-20 16:47:22,381 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 99 GetRequests, 83 SyntacticMatches, 0 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 17 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=67, Invalid=239, Unknown=0, NotChecked=0, Total=306 [2022-02-20 16:47:22,382 INFO L933 BasicCegarLoop]: 65 mSDtfsCounter, 92 mSDsluCounter, 431 mSDsCounter, 0 mSdLazyCounter, 197 mSolverCounterSat, 34 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 94 SdHoareTripleChecker+Valid, 496 SdHoareTripleChecker+Invalid, 231 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 34 IncrementalHoareTripleChecker+Valid, 197 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.8s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:22,382 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [94 Valid, 496 Invalid, 231 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [34 Valid, 197 Invalid, 0 Unknown, 0 Unchecked, 0.8s Time] [2022-02-20 16:47:22,382 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 99 states. [2022-02-20 16:47:22,390 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 99 to 95. [2022-02-20 16:47:22,391 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:22,391 INFO L82 GeneralOperation]: Start isEquivalent. First operand 99 states. Second operand has 95 states, 69 states have (on average 1.2318840579710144) internal successors, (85), 69 states have internal predecessors, (85), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (33), 23 states have call predecessors, (33), 19 states have call successors, (33) [2022-02-20 16:47:22,391 INFO L74 IsIncluded]: Start isIncluded. First operand 99 states. Second operand has 95 states, 69 states have (on average 1.2318840579710144) internal successors, (85), 69 states have internal predecessors, (85), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (33), 23 states have call predecessors, (33), 19 states have call successors, (33) [2022-02-20 16:47:22,392 INFO L87 Difference]: Start difference. First operand 99 states. Second operand has 95 states, 69 states have (on average 1.2318840579710144) internal successors, (85), 69 states have internal predecessors, (85), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (33), 23 states have call predecessors, (33), 19 states have call successors, (33) [2022-02-20 16:47:22,395 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:22,395 INFO L93 Difference]: Finished difference Result 99 states and 140 transitions. [2022-02-20 16:47:22,395 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 140 transitions. [2022-02-20 16:47:22,396 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:22,396 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:22,396 INFO L74 IsIncluded]: Start isIncluded. First operand has 95 states, 69 states have (on average 1.2318840579710144) internal successors, (85), 69 states have internal predecessors, (85), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (33), 23 states have call predecessors, (33), 19 states have call successors, (33) Second operand 99 states. [2022-02-20 16:47:22,396 INFO L87 Difference]: Start difference. First operand has 95 states, 69 states have (on average 1.2318840579710144) internal successors, (85), 69 states have internal predecessors, (85), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (33), 23 states have call predecessors, (33), 19 states have call successors, (33) Second operand 99 states. [2022-02-20 16:47:22,400 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:22,400 INFO L93 Difference]: Finished difference Result 99 states and 140 transitions. [2022-02-20 16:47:22,400 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 140 transitions. [2022-02-20 16:47:22,401 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:22,401 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:22,401 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:22,401 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:22,402 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 95 states, 69 states have (on average 1.2318840579710144) internal successors, (85), 69 states have internal predecessors, (85), 19 states have call successors, (19), 2 states have call predecessors, (19), 5 states have return successors, (33), 23 states have call predecessors, (33), 19 states have call successors, (33) [2022-02-20 16:47:22,406 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 95 states to 95 states and 137 transitions. [2022-02-20 16:47:22,406 INFO L78 Accepts]: Start accepts. Automaton has 95 states and 137 transitions. Word has length 48 [2022-02-20 16:47:22,406 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:22,406 INFO L470 AbstractCegarLoop]: Abstraction has 95 states and 137 transitions. [2022-02-20 16:47:22,407 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 13 states, 13 states have (on average 2.8461538461538463) internal successors, (37), 9 states have internal predecessors, (37), 2 states have call successors, (6), 1 states have call predecessors, (6), 4 states have return successors, (8), 5 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:22,407 INFO L276 IsEmpty]: Start isEmpty. Operand 95 states and 137 transitions. [2022-02-20 16:47:22,407 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 16:47:22,407 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:22,408 INFO L514 BasicCegarLoop]: trace histogram [5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:22,415 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (18)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:22,613 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 18 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:22,614 INFO L402 AbstractCegarLoop]: === Iteration 17 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:22,614 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:22,614 INFO L85 PathProgramCache]: Analyzing trace with hash 1803392071, now seen corresponding path program 1 times [2022-02-20 16:47:22,614 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:22,615 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [881598839] [2022-02-20 16:47:22,615 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:22,615 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:22,615 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:22,616 INFO L229 MonitoredProcess]: Starting monitored process 19 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:22,617 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (19)] Waiting until timeout for monitored process [2022-02-20 16:47:22,659 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:22,661 INFO L263 TraceCheckSpWp]: Trace formula consists of 105 conjuncts, 13 conjunts are in the unsatisfiable core [2022-02-20 16:47:22,670 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:22,670 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:22,896 INFO L290 TraceCheckUtils]: 0: Hoare triple {9059#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {9059#true} is VALID [2022-02-20 16:47:22,897 INFO L290 TraceCheckUtils]: 1: Hoare triple {9059#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {9059#true} is VALID [2022-02-20 16:47:22,897 INFO L272 TraceCheckUtils]: 2: Hoare triple {9059#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {9059#true} is VALID [2022-02-20 16:47:22,898 INFO L290 TraceCheckUtils]: 3: Hoare triple {9059#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9073#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:22,898 INFO L290 TraceCheckUtils]: 4: Hoare triple {9073#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {9073#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:22,899 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {9073#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {9059#true} #129#return; {9080#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:22,900 INFO L290 TraceCheckUtils]: 6: Hoare triple {9080#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {9084#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:22,900 INFO L290 TraceCheckUtils]: 7: Hoare triple {9084#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume main_#t~short12#1; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:22,900 INFO L272 TraceCheckUtils]: 8: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {9059#true} is VALID [2022-02-20 16:47:22,900 INFO L290 TraceCheckUtils]: 9: Hoare triple {9059#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9059#true} is VALID [2022-02-20 16:47:22,900 INFO L290 TraceCheckUtils]: 10: Hoare triple {9059#true} assume true; {9059#true} is VALID [2022-02-20 16:47:22,901 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {9059#true} {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #131#return; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:22,901 INFO L290 TraceCheckUtils]: 12: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:22,901 INFO L290 TraceCheckUtils]: 13: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short16#1 := main_#t~short12#1; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:22,902 INFO L290 TraceCheckUtils]: 14: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !main_#t~short16#1; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:22,902 INFO L272 TraceCheckUtils]: 15: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {9059#true} is VALID [2022-02-20 16:47:22,904 INFO L290 TraceCheckUtils]: 16: Hoare triple {9059#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9073#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:22,904 INFO L290 TraceCheckUtils]: 17: Hoare triple {9073#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {9073#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:22,905 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {9073#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #133#return; {9122#(= |ULTIMATE.start_main_#t~ret13#1| (_ bv1 32))} is VALID [2022-02-20 16:47:22,905 INFO L290 TraceCheckUtils]: 19: Hoare triple {9122#(= |ULTIMATE.start_main_#t~ret13#1| (_ bv1 32))} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {9126#(not |ULTIMATE.start_main_#t~short15#1|)} is VALID [2022-02-20 16:47:22,906 INFO L290 TraceCheckUtils]: 20: Hoare triple {9126#(not |ULTIMATE.start_main_#t~short15#1|)} assume !main_#t~short15#1; {9126#(not |ULTIMATE.start_main_#t~short15#1|)} is VALID [2022-02-20 16:47:22,906 INFO L290 TraceCheckUtils]: 21: Hoare triple {9126#(not |ULTIMATE.start_main_#t~short15#1|)} main_#t~short16#1 := main_#t~short15#1; {9133#(not |ULTIMATE.start_main_#t~short16#1|)} is VALID [2022-02-20 16:47:22,906 INFO L290 TraceCheckUtils]: 22: Hoare triple {9133#(not |ULTIMATE.start_main_#t~short16#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {9060#false} is VALID [2022-02-20 16:47:22,906 INFO L272 TraceCheckUtils]: 23: Hoare triple {9060#false} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {9060#false} is VALID [2022-02-20 16:47:22,906 INFO L290 TraceCheckUtils]: 24: Hoare triple {9060#false} ~x := #in~x;havoc ~w~0; {9060#false} is VALID [2022-02-20 16:47:22,907 INFO L290 TraceCheckUtils]: 25: Hoare triple {9060#false} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {9060#false} is VALID [2022-02-20 16:47:22,907 INFO L290 TraceCheckUtils]: 26: Hoare triple {9060#false} goto; {9060#false} is VALID [2022-02-20 16:47:22,907 INFO L290 TraceCheckUtils]: 27: Hoare triple {9060#false} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {9060#false} is VALID [2022-02-20 16:47:22,907 INFO L290 TraceCheckUtils]: 28: Hoare triple {9060#false} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {9060#false} is VALID [2022-02-20 16:47:22,907 INFO L290 TraceCheckUtils]: 29: Hoare triple {9060#false} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {9060#false} is VALID [2022-02-20 16:47:22,907 INFO L290 TraceCheckUtils]: 30: Hoare triple {9060#false} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {9060#false} is VALID [2022-02-20 16:47:22,907 INFO L290 TraceCheckUtils]: 31: Hoare triple {9060#false} assume true; {9060#false} is VALID [2022-02-20 16:47:22,907 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9060#false} {9060#false} #137#return; {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L290 TraceCheckUtils]: 33: Hoare triple {9060#false} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L290 TraceCheckUtils]: 34: Hoare triple {9060#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L272 TraceCheckUtils]: 35: Hoare triple {9060#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L290 TraceCheckUtils]: 36: Hoare triple {9060#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L290 TraceCheckUtils]: 37: Hoare triple {9060#false} assume true; {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {9060#false} {9060#false} #141#return; {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L290 TraceCheckUtils]: 39: Hoare triple {9060#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L290 TraceCheckUtils]: 40: Hoare triple {9060#false} assume main_#t~short20#1; {9060#false} is VALID [2022-02-20 16:47:22,908 INFO L272 TraceCheckUtils]: 41: Hoare triple {9060#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {9060#false} is VALID [2022-02-20 16:47:22,909 INFO L290 TraceCheckUtils]: 42: Hoare triple {9060#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9060#false} is VALID [2022-02-20 16:47:22,909 INFO L290 TraceCheckUtils]: 43: Hoare triple {9060#false} assume true; {9060#false} is VALID [2022-02-20 16:47:22,909 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {9060#false} {9060#false} #143#return; {9060#false} is VALID [2022-02-20 16:47:22,909 INFO L290 TraceCheckUtils]: 45: Hoare triple {9060#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {9060#false} is VALID [2022-02-20 16:47:22,909 INFO L290 TraceCheckUtils]: 46: Hoare triple {9060#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {9060#false} is VALID [2022-02-20 16:47:22,909 INFO L290 TraceCheckUtils]: 47: Hoare triple {9060#false} assume !false; {9060#false} is VALID [2022-02-20 16:47:22,909 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 20 proven. 2 refuted. 0 times theorem prover too weak. 8 trivial. 0 not checked. [2022-02-20 16:47:22,909 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:23,180 INFO L290 TraceCheckUtils]: 47: Hoare triple {9060#false} assume !false; {9060#false} is VALID [2022-02-20 16:47:23,180 INFO L290 TraceCheckUtils]: 46: Hoare triple {9060#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {9060#false} is VALID [2022-02-20 16:47:23,180 INFO L290 TraceCheckUtils]: 45: Hoare triple {9060#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {9060#false} is VALID [2022-02-20 16:47:23,180 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {9059#true} {9060#false} #143#return; {9060#false} is VALID [2022-02-20 16:47:23,180 INFO L290 TraceCheckUtils]: 43: Hoare triple {9059#true} assume true; {9059#true} is VALID [2022-02-20 16:47:23,180 INFO L290 TraceCheckUtils]: 42: Hoare triple {9059#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9059#true} is VALID [2022-02-20 16:47:23,180 INFO L272 TraceCheckUtils]: 41: Hoare triple {9060#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {9059#true} is VALID [2022-02-20 16:47:23,180 INFO L290 TraceCheckUtils]: 40: Hoare triple {9060#false} assume main_#t~short20#1; {9060#false} is VALID [2022-02-20 16:47:23,180 INFO L290 TraceCheckUtils]: 39: Hoare triple {9060#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {9060#false} is VALID [2022-02-20 16:47:23,180 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {9059#true} {9060#false} #141#return; {9060#false} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 37: Hoare triple {9059#true} assume true; {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 36: Hoare triple {9059#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L272 TraceCheckUtils]: 35: Hoare triple {9060#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 34: Hoare triple {9060#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {9060#false} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 33: Hoare triple {9060#false} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {9060#false} is VALID [2022-02-20 16:47:23,181 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9059#true} {9060#false} #137#return; {9060#false} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 31: Hoare triple {9059#true} assume true; {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 30: Hoare triple {9059#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 29: Hoare triple {9059#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 28: Hoare triple {9059#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 27: Hoare triple {9059#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 26: Hoare triple {9059#true} goto; {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 25: Hoare triple {9059#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L290 TraceCheckUtils]: 24: Hoare triple {9059#true} ~x := #in~x;havoc ~w~0; {9059#true} is VALID [2022-02-20 16:47:23,181 INFO L272 TraceCheckUtils]: 23: Hoare triple {9060#false} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {9059#true} is VALID [2022-02-20 16:47:23,182 INFO L290 TraceCheckUtils]: 22: Hoare triple {9133#(not |ULTIMATE.start_main_#t~short16#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {9060#false} is VALID [2022-02-20 16:47:23,182 INFO L290 TraceCheckUtils]: 21: Hoare triple {9126#(not |ULTIMATE.start_main_#t~short15#1|)} main_#t~short16#1 := main_#t~short15#1; {9133#(not |ULTIMATE.start_main_#t~short16#1|)} is VALID [2022-02-20 16:47:23,182 INFO L290 TraceCheckUtils]: 20: Hoare triple {9126#(not |ULTIMATE.start_main_#t~short15#1|)} assume !main_#t~short15#1; {9126#(not |ULTIMATE.start_main_#t~short15#1|)} is VALID [2022-02-20 16:47:23,183 INFO L290 TraceCheckUtils]: 19: Hoare triple {9296#(not (= |ULTIMATE.start_main_#t~ret13#1| (_ bv0 32)))} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {9126#(not |ULTIMATE.start_main_#t~short15#1|)} is VALID [2022-02-20 16:47:23,183 INFO L284 TraceCheckUtils]: 18: Hoare quadruple {9303#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #133#return; {9296#(not (= |ULTIMATE.start_main_#t~ret13#1| (_ bv0 32)))} is VALID [2022-02-20 16:47:23,183 INFO L290 TraceCheckUtils]: 17: Hoare triple {9303#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} assume true; {9303#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:23,184 INFO L290 TraceCheckUtils]: 16: Hoare triple {9059#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9303#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:23,184 INFO L272 TraceCheckUtils]: 15: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {9059#true} is VALID [2022-02-20 16:47:23,184 INFO L290 TraceCheckUtils]: 14: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !main_#t~short16#1; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:23,184 INFO L290 TraceCheckUtils]: 13: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short16#1 := main_#t~short12#1; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:23,184 INFO L290 TraceCheckUtils]: 12: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:23,185 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {9059#true} {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #131#return; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:23,185 INFO L290 TraceCheckUtils]: 10: Hoare triple {9059#true} assume true; {9059#true} is VALID [2022-02-20 16:47:23,185 INFO L290 TraceCheckUtils]: 9: Hoare triple {9059#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9059#true} is VALID [2022-02-20 16:47:23,185 INFO L272 TraceCheckUtils]: 8: Hoare triple {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {9059#true} is VALID [2022-02-20 16:47:23,185 INFO L290 TraceCheckUtils]: 7: Hoare triple {9334#(or (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume main_#t~short12#1; {9088#(not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:23,186 INFO L290 TraceCheckUtils]: 6: Hoare triple {9338#(or (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {9334#(or (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:23,186 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {9345#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} {9059#true} #129#return; {9338#(or (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:23,187 INFO L290 TraceCheckUtils]: 4: Hoare triple {9345#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} assume true; {9345#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} is VALID [2022-02-20 16:47:23,187 INFO L290 TraceCheckUtils]: 3: Hoare triple {9059#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9345#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} is VALID [2022-02-20 16:47:23,187 INFO L272 TraceCheckUtils]: 2: Hoare triple {9059#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {9059#true} is VALID [2022-02-20 16:47:23,187 INFO L290 TraceCheckUtils]: 1: Hoare triple {9059#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {9059#true} is VALID [2022-02-20 16:47:23,187 INFO L290 TraceCheckUtils]: 0: Hoare triple {9059#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {9059#true} is VALID [2022-02-20 16:47:23,187 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 2 proven. 12 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-02-20 16:47:23,187 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:23,187 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [881598839] [2022-02-20 16:47:23,187 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [881598839] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:23,187 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:23,188 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 10] total 14 [2022-02-20 16:47:23,188 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [615401337] [2022-02-20 16:47:23,188 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:23,188 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 3.357142857142857) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (11), 6 states have call predecessors, (11), 3 states have call successors, (11) Word has length 48 [2022-02-20 16:47:23,189 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:23,189 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 14 states, 14 states have (on average 3.357142857142857) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (11), 6 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 16:47:23,234 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:23,234 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-02-20 16:47:23,234 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:23,234 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-02-20 16:47:23,234 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=32, Invalid=150, Unknown=0, NotChecked=0, Total=182 [2022-02-20 16:47:23,235 INFO L87 Difference]: Start difference. First operand 95 states and 137 transitions. Second operand has 14 states, 14 states have (on average 3.357142857142857) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (11), 6 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 16:47:25,045 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:25,045 INFO L93 Difference]: Finished difference Result 133 states and 178 transitions. [2022-02-20 16:47:25,045 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 13 states. [2022-02-20 16:47:25,046 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 3.357142857142857) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (11), 6 states have call predecessors, (11), 3 states have call successors, (11) Word has length 48 [2022-02-20 16:47:25,051 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:25,052 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 3.357142857142857) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (11), 6 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 16:47:25,053 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 137 transitions. [2022-02-20 16:47:25,053 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 3.357142857142857) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (11), 6 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 16:47:25,055 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 137 transitions. [2022-02-20 16:47:25,055 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states and 137 transitions. [2022-02-20 16:47:25,166 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 137 edges. 137 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:25,168 INFO L225 Difference]: With dead ends: 133 [2022-02-20 16:47:25,168 INFO L226 Difference]: Without dead ends: 89 [2022-02-20 16:47:25,168 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 101 GetRequests, 82 SyntacticMatches, 0 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 22 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=93, Invalid=327, Unknown=0, NotChecked=0, Total=420 [2022-02-20 16:47:25,169 INFO L933 BasicCegarLoop]: 60 mSDtfsCounter, 86 mSDsluCounter, 479 mSDsCounter, 0 mSdLazyCounter, 205 mSolverCounterSat, 39 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 90 SdHoareTripleChecker+Valid, 539 SdHoareTripleChecker+Invalid, 244 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 39 IncrementalHoareTripleChecker+Valid, 205 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:25,169 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [90 Valid, 539 Invalid, 244 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [39 Valid, 205 Invalid, 0 Unknown, 0 Unchecked, 1.0s Time] [2022-02-20 16:47:25,169 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 89 states. [2022-02-20 16:47:25,172 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 89 to 86. [2022-02-20 16:47:25,172 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:25,172 INFO L82 GeneralOperation]: Start isEquivalent. First operand 89 states. Second operand has 86 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 63 states have internal predecessors, (76), 16 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (27), 20 states have call predecessors, (27), 16 states have call successors, (27) [2022-02-20 16:47:25,172 INFO L74 IsIncluded]: Start isIncluded. First operand 89 states. Second operand has 86 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 63 states have internal predecessors, (76), 16 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (27), 20 states have call predecessors, (27), 16 states have call successors, (27) [2022-02-20 16:47:25,172 INFO L87 Difference]: Start difference. First operand 89 states. Second operand has 86 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 63 states have internal predecessors, (76), 16 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (27), 20 states have call predecessors, (27), 16 states have call successors, (27) [2022-02-20 16:47:25,177 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:25,177 INFO L93 Difference]: Finished difference Result 89 states and 121 transitions. [2022-02-20 16:47:25,177 INFO L276 IsEmpty]: Start isEmpty. Operand 89 states and 121 transitions. [2022-02-20 16:47:25,178 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:25,178 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:25,178 INFO L74 IsIncluded]: Start isIncluded. First operand has 86 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 63 states have internal predecessors, (76), 16 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (27), 20 states have call predecessors, (27), 16 states have call successors, (27) Second operand 89 states. [2022-02-20 16:47:25,178 INFO L87 Difference]: Start difference. First operand has 86 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 63 states have internal predecessors, (76), 16 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (27), 20 states have call predecessors, (27), 16 states have call successors, (27) Second operand 89 states. [2022-02-20 16:47:25,180 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:25,180 INFO L93 Difference]: Finished difference Result 89 states and 121 transitions. [2022-02-20 16:47:25,180 INFO L276 IsEmpty]: Start isEmpty. Operand 89 states and 121 transitions. [2022-02-20 16:47:25,180 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:25,181 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:25,181 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:25,181 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:25,181 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 86 states, 63 states have (on average 1.2063492063492063) internal successors, (76), 63 states have internal predecessors, (76), 16 states have call successors, (16), 2 states have call predecessors, (16), 5 states have return successors, (27), 20 states have call predecessors, (27), 16 states have call successors, (27) [2022-02-20 16:47:25,185 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 86 states to 86 states and 119 transitions. [2022-02-20 16:47:25,185 INFO L78 Accepts]: Start accepts. Automaton has 86 states and 119 transitions. Word has length 48 [2022-02-20 16:47:25,185 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:25,185 INFO L470 AbstractCegarLoop]: Abstraction has 86 states and 119 transitions. [2022-02-20 16:47:25,186 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 14 states have (on average 3.357142857142857) internal successors, (47), 10 states have internal predecessors, (47), 3 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (11), 6 states have call predecessors, (11), 3 states have call successors, (11) [2022-02-20 16:47:25,186 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 119 transitions. [2022-02-20 16:47:25,186 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 49 [2022-02-20 16:47:25,186 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:25,186 INFO L514 BasicCegarLoop]: trace histogram [5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:25,201 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (19)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:25,394 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 19 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:25,394 INFO L402 AbstractCegarLoop]: === Iteration 18 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:25,395 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:25,395 INFO L85 PathProgramCache]: Analyzing trace with hash -495361713, now seen corresponding path program 1 times [2022-02-20 16:47:25,395 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:25,395 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [556932114] [2022-02-20 16:47:25,395 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:25,395 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:25,395 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:25,396 INFO L229 MonitoredProcess]: Starting monitored process 20 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:25,399 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (20)] Waiting until timeout for monitored process [2022-02-20 16:47:25,441 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:25,442 INFO L263 TraceCheckSpWp]: Trace formula consists of 105 conjuncts, 12 conjunts are in the unsatisfiable core [2022-02-20 16:47:25,451 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:25,452 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:25,654 INFO L290 TraceCheckUtils]: 0: Hoare triple {9823#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {9823#true} is VALID [2022-02-20 16:47:25,654 INFO L290 TraceCheckUtils]: 1: Hoare triple {9823#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {9823#true} is VALID [2022-02-20 16:47:25,655 INFO L272 TraceCheckUtils]: 2: Hoare triple {9823#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {9823#true} is VALID [2022-02-20 16:47:25,655 INFO L290 TraceCheckUtils]: 3: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9837#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:25,656 INFO L290 TraceCheckUtils]: 4: Hoare triple {9837#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {9837#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:25,656 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {9837#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {9823#true} #129#return; {9844#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:25,657 INFO L290 TraceCheckUtils]: 6: Hoare triple {9844#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {9848#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:25,657 INFO L290 TraceCheckUtils]: 7: Hoare triple {9848#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume !main_#t~short12#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,658 INFO L290 TraceCheckUtils]: 8: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short12#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,658 INFO L290 TraceCheckUtils]: 9: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short16#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,658 INFO L272 TraceCheckUtils]: 10: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {9823#true} is VALID [2022-02-20 16:47:25,658 INFO L290 TraceCheckUtils]: 11: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9823#true} is VALID [2022-02-20 16:47:25,658 INFO L290 TraceCheckUtils]: 12: Hoare triple {9823#true} assume true; {9823#true} is VALID [2022-02-20 16:47:25,658 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {9823#true} {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #133#return; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,659 INFO L290 TraceCheckUtils]: 14: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,659 INFO L290 TraceCheckUtils]: 15: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short15#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,659 INFO L272 TraceCheckUtils]: 16: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {9823#true} is VALID [2022-02-20 16:47:25,659 INFO L290 TraceCheckUtils]: 17: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9823#true} is VALID [2022-02-20 16:47:25,659 INFO L290 TraceCheckUtils]: 18: Hoare triple {9823#true} assume true; {9823#true} is VALID [2022-02-20 16:47:25,663 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {9823#true} {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #135#return; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,663 INFO L290 TraceCheckUtils]: 20: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,663 INFO L290 TraceCheckUtils]: 21: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short15#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,663 INFO L290 TraceCheckUtils]: 22: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,664 INFO L272 TraceCheckUtils]: 23: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L290 TraceCheckUtils]: 24: Hoare triple {9823#true} ~x := #in~x;havoc ~w~0; {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L290 TraceCheckUtils]: 25: Hoare triple {9823#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L290 TraceCheckUtils]: 26: Hoare triple {9823#true} goto; {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L290 TraceCheckUtils]: 27: Hoare triple {9823#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L290 TraceCheckUtils]: 28: Hoare triple {9823#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L290 TraceCheckUtils]: 29: Hoare triple {9823#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L290 TraceCheckUtils]: 30: Hoare triple {9823#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L290 TraceCheckUtils]: 31: Hoare triple {9823#true} assume true; {9823#true} is VALID [2022-02-20 16:47:25,664 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9823#true} {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #137#return; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,665 INFO L290 TraceCheckUtils]: 33: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,665 INFO L290 TraceCheckUtils]: 34: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,665 INFO L272 TraceCheckUtils]: 35: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {9823#true} is VALID [2022-02-20 16:47:25,666 INFO L290 TraceCheckUtils]: 36: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9837#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:25,666 INFO L290 TraceCheckUtils]: 37: Hoare triple {9837#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {9837#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:25,667 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {9837#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #141#return; {9946#(= |ULTIMATE.start_main_#t~ret18#1| (_ bv0 32))} is VALID [2022-02-20 16:47:25,667 INFO L290 TraceCheckUtils]: 39: Hoare triple {9946#(= |ULTIMATE.start_main_#t~ret18#1| (_ bv0 32))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {9950#(not |ULTIMATE.start_main_#t~short20#1|)} is VALID [2022-02-20 16:47:25,667 INFO L290 TraceCheckUtils]: 40: Hoare triple {9950#(not |ULTIMATE.start_main_#t~short20#1|)} assume main_#t~short20#1; {9824#false} is VALID [2022-02-20 16:47:25,667 INFO L272 TraceCheckUtils]: 41: Hoare triple {9824#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {9824#false} is VALID [2022-02-20 16:47:25,667 INFO L290 TraceCheckUtils]: 42: Hoare triple {9824#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9824#false} is VALID [2022-02-20 16:47:25,667 INFO L290 TraceCheckUtils]: 43: Hoare triple {9824#false} assume true; {9824#false} is VALID [2022-02-20 16:47:25,667 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {9824#false} {9824#false} #143#return; {9824#false} is VALID [2022-02-20 16:47:25,667 INFO L290 TraceCheckUtils]: 45: Hoare triple {9824#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {9824#false} is VALID [2022-02-20 16:47:25,668 INFO L290 TraceCheckUtils]: 46: Hoare triple {9824#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {9824#false} is VALID [2022-02-20 16:47:25,668 INFO L290 TraceCheckUtils]: 47: Hoare triple {9824#false} assume !false; {9824#false} is VALID [2022-02-20 16:47:25,668 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 16 proven. 4 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 16:47:25,668 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:25,967 INFO L290 TraceCheckUtils]: 47: Hoare triple {9824#false} assume !false; {9824#false} is VALID [2022-02-20 16:47:25,967 INFO L290 TraceCheckUtils]: 46: Hoare triple {9824#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {9824#false} is VALID [2022-02-20 16:47:25,967 INFO L290 TraceCheckUtils]: 45: Hoare triple {9824#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {9824#false} is VALID [2022-02-20 16:47:25,967 INFO L284 TraceCheckUtils]: 44: Hoare quadruple {9823#true} {9824#false} #143#return; {9824#false} is VALID [2022-02-20 16:47:25,967 INFO L290 TraceCheckUtils]: 43: Hoare triple {9823#true} assume true; {9823#true} is VALID [2022-02-20 16:47:25,967 INFO L290 TraceCheckUtils]: 42: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9823#true} is VALID [2022-02-20 16:47:25,967 INFO L272 TraceCheckUtils]: 41: Hoare triple {9824#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {9823#true} is VALID [2022-02-20 16:47:25,967 INFO L290 TraceCheckUtils]: 40: Hoare triple {9950#(not |ULTIMATE.start_main_#t~short20#1|)} assume main_#t~short20#1; {9824#false} is VALID [2022-02-20 16:47:25,968 INFO L290 TraceCheckUtils]: 39: Hoare triple {9946#(= |ULTIMATE.start_main_#t~ret18#1| (_ bv0 32))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {9950#(not |ULTIMATE.start_main_#t~short20#1|)} is VALID [2022-02-20 16:47:25,969 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {10005#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #141#return; {9946#(= |ULTIMATE.start_main_#t~ret18#1| (_ bv0 32))} is VALID [2022-02-20 16:47:25,969 INFO L290 TraceCheckUtils]: 37: Hoare triple {10005#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} assume true; {10005#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} is VALID [2022-02-20 16:47:25,969 INFO L290 TraceCheckUtils]: 36: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10005#(or (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv0 32)))} is VALID [2022-02-20 16:47:25,970 INFO L272 TraceCheckUtils]: 35: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {9823#true} is VALID [2022-02-20 16:47:25,970 INFO L290 TraceCheckUtils]: 34: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,970 INFO L290 TraceCheckUtils]: 33: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,971 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {9823#true} {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #137#return; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 31: Hoare triple {9823#true} assume true; {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 30: Hoare triple {9823#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 29: Hoare triple {9823#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 28: Hoare triple {9823#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 27: Hoare triple {9823#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 26: Hoare triple {9823#true} goto; {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 25: Hoare triple {9823#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 24: Hoare triple {9823#true} ~x := #in~x;havoc ~w~0; {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L272 TraceCheckUtils]: 23: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {9823#true} is VALID [2022-02-20 16:47:25,971 INFO L290 TraceCheckUtils]: 22: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,972 INFO L290 TraceCheckUtils]: 21: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short15#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,972 INFO L290 TraceCheckUtils]: 20: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,972 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {9823#true} {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #135#return; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,972 INFO L290 TraceCheckUtils]: 18: Hoare triple {9823#true} assume true; {9823#true} is VALID [2022-02-20 16:47:25,973 INFO L290 TraceCheckUtils]: 17: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9823#true} is VALID [2022-02-20 16:47:25,973 INFO L272 TraceCheckUtils]: 16: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {9823#true} is VALID [2022-02-20 16:47:25,973 INFO L290 TraceCheckUtils]: 15: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short15#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,973 INFO L290 TraceCheckUtils]: 14: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,973 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {9823#true} {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #133#return; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,974 INFO L290 TraceCheckUtils]: 12: Hoare triple {9823#true} assume true; {9823#true} is VALID [2022-02-20 16:47:25,974 INFO L290 TraceCheckUtils]: 11: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {9823#true} is VALID [2022-02-20 16:47:25,974 INFO L272 TraceCheckUtils]: 10: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {9823#true} is VALID [2022-02-20 16:47:25,974 INFO L290 TraceCheckUtils]: 9: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short16#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,974 INFO L290 TraceCheckUtils]: 8: Hoare triple {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short12#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,974 INFO L290 TraceCheckUtils]: 7: Hoare triple {10096#(or |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !main_#t~short12#1; {9852#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:25,975 INFO L290 TraceCheckUtils]: 6: Hoare triple {10100#(or (not (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {10096#(or |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:25,975 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {10107#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} {9823#true} #129#return; {10100#(or (not (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:25,976 INFO L290 TraceCheckUtils]: 4: Hoare triple {10107#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} assume true; {10107#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:25,976 INFO L290 TraceCheckUtils]: 3: Hoare triple {9823#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10107#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:25,976 INFO L272 TraceCheckUtils]: 2: Hoare triple {9823#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {9823#true} is VALID [2022-02-20 16:47:25,976 INFO L290 TraceCheckUtils]: 1: Hoare triple {9823#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {9823#true} is VALID [2022-02-20 16:47:25,976 INFO L290 TraceCheckUtils]: 0: Hoare triple {9823#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {9823#true} is VALID [2022-02-20 16:47:25,977 INFO L134 CoverageAnalysis]: Checked inductivity of 30 backedges. 4 proven. 10 refuted. 0 times theorem prover too weak. 16 trivial. 0 not checked. [2022-02-20 16:47:25,977 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:25,977 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [556932114] [2022-02-20 16:47:25,977 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [556932114] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:25,977 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:25,977 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [8, 9] total 12 [2022-02-20 16:47:25,977 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1902308816] [2022-02-20 16:47:25,977 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:25,978 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 9 states have internal predecessors, (38), 3 states have call successors, (7), 2 states have call predecessors, (7), 5 states have return successors, (9), 5 states have call predecessors, (9), 3 states have call successors, (9) Word has length 48 [2022-02-20 16:47:25,978 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:25,978 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 12 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 9 states have internal predecessors, (38), 3 states have call successors, (7), 2 states have call predecessors, (7), 5 states have return successors, (9), 5 states have call predecessors, (9), 3 states have call successors, (9) [2022-02-20 16:47:26,025 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:26,025 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 12 states [2022-02-20 16:47:26,025 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:26,025 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2022-02-20 16:47:26,025 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=27, Invalid=105, Unknown=0, NotChecked=0, Total=132 [2022-02-20 16:47:26,026 INFO L87 Difference]: Start difference. First operand 86 states and 119 transitions. Second operand has 12 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 9 states have internal predecessors, (38), 3 states have call successors, (7), 2 states have call predecessors, (7), 5 states have return successors, (9), 5 states have call predecessors, (9), 3 states have call successors, (9) [2022-02-20 16:47:27,607 WARN L534 Checker$ProtectedHtc]: IncrementalHoareTripleChecker took 1.03s for a HTC check with result INVALID. Formula has sorts [Bool, FloatingPoint, BitVec], hasArrays=false, hasNonlinArith=false, quantifiers [] [2022-02-20 16:47:28,310 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:28,310 INFO L93 Difference]: Finished difference Result 101 states and 133 transitions. [2022-02-20 16:47:28,310 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 16:47:28,311 INFO L78 Accepts]: Start accepts. Automaton has has 12 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 9 states have internal predecessors, (38), 3 states have call successors, (7), 2 states have call predecessors, (7), 5 states have return successors, (9), 5 states have call predecessors, (9), 3 states have call successors, (9) Word has length 48 [2022-02-20 16:47:28,311 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:28,311 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 9 states have internal predecessors, (38), 3 states have call successors, (7), 2 states have call predecessors, (7), 5 states have return successors, (9), 5 states have call predecessors, (9), 3 states have call successors, (9) [2022-02-20 16:47:28,312 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 102 transitions. [2022-02-20 16:47:28,312 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 12 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 9 states have internal predecessors, (38), 3 states have call successors, (7), 2 states have call predecessors, (7), 5 states have return successors, (9), 5 states have call predecessors, (9), 3 states have call successors, (9) [2022-02-20 16:47:28,313 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 102 transitions. [2022-02-20 16:47:28,313 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 102 transitions. [2022-02-20 16:47:28,391 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 102 edges. 102 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:28,392 INFO L225 Difference]: With dead ends: 101 [2022-02-20 16:47:28,393 INFO L226 Difference]: Without dead ends: 82 [2022-02-20 16:47:28,393 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 98 GetRequests, 84 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 9 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=55, Invalid=185, Unknown=0, NotChecked=0, Total=240 [2022-02-20 16:47:28,393 INFO L933 BasicCegarLoop]: 63 mSDtfsCounter, 53 mSDsluCounter, 412 mSDsCounter, 0 mSdLazyCounter, 165 mSolverCounterSat, 19 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 1.8s Time, 0 mProtectedPredicate, 0 mProtectedAction, 57 SdHoareTripleChecker+Valid, 475 SdHoareTripleChecker+Invalid, 184 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 19 IncrementalHoareTripleChecker+Valid, 165 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 1.8s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:28,393 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [57 Valid, 475 Invalid, 184 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [19 Valid, 165 Invalid, 0 Unknown, 0 Unchecked, 1.8s Time] [2022-02-20 16:47:28,394 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2022-02-20 16:47:28,396 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 74. [2022-02-20 16:47:28,396 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:28,396 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand has 74 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 55 states have internal predecessors, (63), 13 states have call successors, (13), 2 states have call predecessors, (13), 5 states have return successors, (24), 16 states have call predecessors, (24), 13 states have call successors, (24) [2022-02-20 16:47:28,396 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand has 74 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 55 states have internal predecessors, (63), 13 states have call successors, (13), 2 states have call predecessors, (13), 5 states have return successors, (24), 16 states have call predecessors, (24), 13 states have call successors, (24) [2022-02-20 16:47:28,396 INFO L87 Difference]: Start difference. First operand 82 states. Second operand has 74 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 55 states have internal predecessors, (63), 13 states have call successors, (13), 2 states have call predecessors, (13), 5 states have return successors, (24), 16 states have call predecessors, (24), 13 states have call successors, (24) [2022-02-20 16:47:28,397 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:28,398 INFO L93 Difference]: Finished difference Result 82 states and 110 transitions. [2022-02-20 16:47:28,398 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 110 transitions. [2022-02-20 16:47:28,398 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:28,398 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:28,398 INFO L74 IsIncluded]: Start isIncluded. First operand has 74 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 55 states have internal predecessors, (63), 13 states have call successors, (13), 2 states have call predecessors, (13), 5 states have return successors, (24), 16 states have call predecessors, (24), 13 states have call successors, (24) Second operand 82 states. [2022-02-20 16:47:28,399 INFO L87 Difference]: Start difference. First operand has 74 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 55 states have internal predecessors, (63), 13 states have call successors, (13), 2 states have call predecessors, (13), 5 states have return successors, (24), 16 states have call predecessors, (24), 13 states have call successors, (24) Second operand 82 states. [2022-02-20 16:47:28,400 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:28,400 INFO L93 Difference]: Finished difference Result 82 states and 110 transitions. [2022-02-20 16:47:28,400 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 110 transitions. [2022-02-20 16:47:28,400 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:28,400 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:28,401 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:28,401 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:28,401 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 74 states, 54 states have (on average 1.1666666666666667) internal successors, (63), 55 states have internal predecessors, (63), 13 states have call successors, (13), 2 states have call predecessors, (13), 5 states have return successors, (24), 16 states have call predecessors, (24), 13 states have call successors, (24) [2022-02-20 16:47:28,402 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 100 transitions. [2022-02-20 16:47:28,402 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 100 transitions. Word has length 48 [2022-02-20 16:47:28,402 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:28,403 INFO L470 AbstractCegarLoop]: Abstraction has 74 states and 100 transitions. [2022-02-20 16:47:28,403 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 12 states, 12 states have (on average 3.1666666666666665) internal successors, (38), 9 states have internal predecessors, (38), 3 states have call successors, (7), 2 states have call predecessors, (7), 5 states have return successors, (9), 5 states have call predecessors, (9), 3 states have call successors, (9) [2022-02-20 16:47:28,403 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 100 transitions. [2022-02-20 16:47:28,403 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-02-20 16:47:28,403 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:28,403 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:28,419 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (20)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:28,611 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 20 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:28,611 INFO L402 AbstractCegarLoop]: === Iteration 19 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:28,611 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:28,612 INFO L85 PathProgramCache]: Analyzing trace with hash 113915812, now seen corresponding path program 1 times [2022-02-20 16:47:28,612 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:28,612 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1915978067] [2022-02-20 16:47:28,612 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:28,612 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:28,612 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:28,613 INFO L229 MonitoredProcess]: Starting monitored process 21 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:28,627 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (21)] Waiting until timeout for monitored process [2022-02-20 16:47:28,672 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:28,674 INFO L263 TraceCheckSpWp]: Trace formula consists of 118 conjuncts, 13 conjunts are in the unsatisfiable core [2022-02-20 16:47:28,683 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:28,684 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:29,150 INFO L290 TraceCheckUtils]: 0: Hoare triple {10510#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {10510#true} is VALID [2022-02-20 16:47:29,151 INFO L290 TraceCheckUtils]: 1: Hoare triple {10510#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {10510#true} is VALID [2022-02-20 16:47:29,151 INFO L272 TraceCheckUtils]: 2: Hoare triple {10510#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {10510#true} is VALID [2022-02-20 16:47:29,151 INFO L290 TraceCheckUtils]: 3: Hoare triple {10510#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10510#true} is VALID [2022-02-20 16:47:29,151 INFO L290 TraceCheckUtils]: 4: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,151 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {10510#true} {10510#true} #129#return; {10510#true} is VALID [2022-02-20 16:47:29,151 INFO L290 TraceCheckUtils]: 6: Hoare triple {10510#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {10510#true} is VALID [2022-02-20 16:47:29,151 INFO L290 TraceCheckUtils]: 7: Hoare triple {10510#true} assume main_#t~short12#1; {10510#true} is VALID [2022-02-20 16:47:29,151 INFO L272 TraceCheckUtils]: 8: Hoare triple {10510#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {10510#true} is VALID [2022-02-20 16:47:29,152 INFO L290 TraceCheckUtils]: 9: Hoare triple {10510#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10542#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:29,152 INFO L290 TraceCheckUtils]: 10: Hoare triple {10542#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {10542#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:29,153 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {10542#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {10510#true} #131#return; {10549#(or (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} is VALID [2022-02-20 16:47:29,153 INFO L290 TraceCheckUtils]: 12: Hoare triple {10549#(or (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {10553#(or (and (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} is VALID [2022-02-20 16:47:29,154 INFO L290 TraceCheckUtils]: 13: Hoare triple {10553#(or (and (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} main_#t~short16#1 := main_#t~short12#1; {10557#(or (and |ULTIMATE.start_main_#t~short16#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (not |ULTIMATE.start_main_#t~short16#1|)))} is VALID [2022-02-20 16:47:29,154 INFO L290 TraceCheckUtils]: 14: Hoare triple {10557#(or (and |ULTIMATE.start_main_#t~short16#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (not |ULTIMATE.start_main_#t~short16#1|)))} assume main_#t~short16#1; {10561#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,155 INFO L290 TraceCheckUtils]: 15: Hoare triple {10561#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,155 INFO L272 TraceCheckUtils]: 16: Hoare triple {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {10510#true} is VALID [2022-02-20 16:47:29,155 INFO L290 TraceCheckUtils]: 17: Hoare triple {10510#true} ~x := #in~x;havoc ~w~0; {10510#true} is VALID [2022-02-20 16:47:29,155 INFO L290 TraceCheckUtils]: 18: Hoare triple {10510#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {10510#true} is VALID [2022-02-20 16:47:29,155 INFO L290 TraceCheckUtils]: 19: Hoare triple {10510#true} goto; {10510#true} is VALID [2022-02-20 16:47:29,155 INFO L290 TraceCheckUtils]: 20: Hoare triple {10510#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {10510#true} is VALID [2022-02-20 16:47:29,155 INFO L290 TraceCheckUtils]: 21: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,155 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {10510#true} {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} #137#return; {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,156 INFO L290 TraceCheckUtils]: 23: Hoare triple {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,156 INFO L272 TraceCheckUtils]: 24: Hoare triple {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {10510#true} is VALID [2022-02-20 16:47:29,156 INFO L290 TraceCheckUtils]: 25: Hoare triple {10510#true} ~x := #in~x;havoc ~w~0; {10510#true} is VALID [2022-02-20 16:47:29,156 INFO L290 TraceCheckUtils]: 26: Hoare triple {10510#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {10510#true} is VALID [2022-02-20 16:47:29,156 INFO L290 TraceCheckUtils]: 27: Hoare triple {10510#true} goto; {10510#true} is VALID [2022-02-20 16:47:29,156 INFO L290 TraceCheckUtils]: 28: Hoare triple {10510#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {10510#true} is VALID [2022-02-20 16:47:29,156 INFO L290 TraceCheckUtils]: 29: Hoare triple {10510#true} assume (~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32));#res := 4bv32; {10510#true} is VALID [2022-02-20 16:47:29,156 INFO L290 TraceCheckUtils]: 30: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,157 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {10510#true} {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} #139#return; {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,157 INFO L290 TraceCheckUtils]: 32: Hoare triple {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,157 INFO L290 TraceCheckUtils]: 33: Hoare triple {10565#(and (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume !~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~y#1; {10620#(and (= |ULTIMATE.start_fmax_float_#t~ite7#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,158 INFO L290 TraceCheckUtils]: 34: Hoare triple {10620#(and (= |ULTIMATE.start_fmax_float_#t~ite7#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {10624#(and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,158 INFO L290 TraceCheckUtils]: 35: Hoare triple {10624#(and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,158 INFO L272 TraceCheckUtils]: 36: Hoare triple {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {10510#true} is VALID [2022-02-20 16:47:29,158 INFO L290 TraceCheckUtils]: 37: Hoare triple {10510#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10510#true} is VALID [2022-02-20 16:47:29,158 INFO L290 TraceCheckUtils]: 38: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,159 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {10510#true} {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} #141#return; {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,159 INFO L290 TraceCheckUtils]: 40: Hoare triple {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,159 INFO L290 TraceCheckUtils]: 41: Hoare triple {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume main_#t~short20#1; {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,159 INFO L272 TraceCheckUtils]: 42: Hoare triple {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {10510#true} is VALID [2022-02-20 16:47:29,159 INFO L290 TraceCheckUtils]: 43: Hoare triple {10510#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10510#true} is VALID [2022-02-20 16:47:29,160 INFO L290 TraceCheckUtils]: 44: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,160 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {10510#true} {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} #143#return; {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,160 INFO L290 TraceCheckUtils]: 46: Hoare triple {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,161 INFO L290 TraceCheckUtils]: 47: Hoare triple {10628#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {10511#false} is VALID [2022-02-20 16:47:29,161 INFO L290 TraceCheckUtils]: 48: Hoare triple {10511#false} assume !false; {10511#false} is VALID [2022-02-20 16:47:29,161 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2022-02-20 16:47:29,161 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:29,410 INFO L290 TraceCheckUtils]: 48: Hoare triple {10511#false} assume !false; {10511#false} is VALID [2022-02-20 16:47:29,410 INFO L290 TraceCheckUtils]: 47: Hoare triple {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {10511#false} is VALID [2022-02-20 16:47:29,410 INFO L290 TraceCheckUtils]: 46: Hoare triple {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,411 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {10510#true} {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} #143#return; {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,411 INFO L290 TraceCheckUtils]: 44: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,411 INFO L290 TraceCheckUtils]: 43: Hoare triple {10510#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10510#true} is VALID [2022-02-20 16:47:29,411 INFO L272 TraceCheckUtils]: 42: Hoare triple {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {10510#true} is VALID [2022-02-20 16:47:29,411 INFO L290 TraceCheckUtils]: 41: Hoare triple {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short20#1; {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,412 INFO L290 TraceCheckUtils]: 40: Hoare triple {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,412 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {10510#true} {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} #141#return; {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,412 INFO L290 TraceCheckUtils]: 38: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,412 INFO L290 TraceCheckUtils]: 37: Hoare triple {10510#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10510#true} is VALID [2022-02-20 16:47:29,412 INFO L272 TraceCheckUtils]: 36: Hoare triple {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {10510#true} is VALID [2022-02-20 16:47:29,412 INFO L290 TraceCheckUtils]: 35: Hoare triple {10708#(fp.eq |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|)} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {10671#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,413 INFO L290 TraceCheckUtils]: 34: Hoare triple {10712#(fp.eq |ULTIMATE.start_fmax_float_#t~ite7#1| |ULTIMATE.start_main_~y~0#1|)} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {10708#(fp.eq |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,413 INFO L290 TraceCheckUtils]: 33: Hoare triple {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} assume !~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~y#1; {10712#(fp.eq |ULTIMATE.start_fmax_float_#t~ite7#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,413 INFO L290 TraceCheckUtils]: 32: Hoare triple {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,414 INFO L284 TraceCheckUtils]: 31: Hoare quadruple {10510#true} {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} #139#return; {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,414 INFO L290 TraceCheckUtils]: 30: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,414 INFO L290 TraceCheckUtils]: 29: Hoare triple {10510#true} assume (~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32));#res := 4bv32; {10510#true} is VALID [2022-02-20 16:47:29,414 INFO L290 TraceCheckUtils]: 28: Hoare triple {10510#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {10510#true} is VALID [2022-02-20 16:47:29,414 INFO L290 TraceCheckUtils]: 27: Hoare triple {10510#true} goto; {10510#true} is VALID [2022-02-20 16:47:29,414 INFO L290 TraceCheckUtils]: 26: Hoare triple {10510#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {10510#true} is VALID [2022-02-20 16:47:29,414 INFO L290 TraceCheckUtils]: 25: Hoare triple {10510#true} ~x := #in~x;havoc ~w~0; {10510#true} is VALID [2022-02-20 16:47:29,414 INFO L272 TraceCheckUtils]: 24: Hoare triple {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {10510#true} is VALID [2022-02-20 16:47:29,414 INFO L290 TraceCheckUtils]: 23: Hoare triple {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,415 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {10510#true} {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} #137#return; {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,415 INFO L290 TraceCheckUtils]: 21: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,415 INFO L290 TraceCheckUtils]: 20: Hoare triple {10510#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {10510#true} is VALID [2022-02-20 16:47:29,415 INFO L290 TraceCheckUtils]: 19: Hoare triple {10510#true} goto; {10510#true} is VALID [2022-02-20 16:47:29,415 INFO L290 TraceCheckUtils]: 18: Hoare triple {10510#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {10510#true} is VALID [2022-02-20 16:47:29,415 INFO L290 TraceCheckUtils]: 17: Hoare triple {10510#true} ~x := #in~x;havoc ~w~0; {10510#true} is VALID [2022-02-20 16:47:29,415 INFO L272 TraceCheckUtils]: 16: Hoare triple {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {10510#true} is VALID [2022-02-20 16:47:29,416 INFO L290 TraceCheckUtils]: 15: Hoare triple {10561#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {10716#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,416 INFO L290 TraceCheckUtils]: 14: Hoare triple {10774#(or (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} assume main_#t~short16#1; {10561#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:29,416 INFO L290 TraceCheckUtils]: 13: Hoare triple {10778#(or (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short16#1 := main_#t~short12#1; {10774#(or (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,417 INFO L290 TraceCheckUtils]: 12: Hoare triple {10782#(or (not (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {10778#(or (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,417 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {10789#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} {10510#true} #131#return; {10782#(or (not (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))} is VALID [2022-02-20 16:47:29,417 INFO L290 TraceCheckUtils]: 10: Hoare triple {10789#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} assume true; {10789#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:29,418 INFO L290 TraceCheckUtils]: 9: Hoare triple {10510#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10789#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:29,418 INFO L272 TraceCheckUtils]: 8: Hoare triple {10510#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L290 TraceCheckUtils]: 7: Hoare triple {10510#true} assume main_#t~short12#1; {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L290 TraceCheckUtils]: 6: Hoare triple {10510#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {10510#true} {10510#true} #129#return; {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L290 TraceCheckUtils]: 4: Hoare triple {10510#true} assume true; {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L290 TraceCheckUtils]: 3: Hoare triple {10510#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L272 TraceCheckUtils]: 2: Hoare triple {10510#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L290 TraceCheckUtils]: 1: Hoare triple {10510#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L290 TraceCheckUtils]: 0: Hoare triple {10510#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {10510#true} is VALID [2022-02-20 16:47:29,418 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 18 trivial. 0 not checked. [2022-02-20 16:47:29,419 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:29,419 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1915978067] [2022-02-20 16:47:29,419 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1915978067] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:29,419 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:29,419 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [11, 11] total 19 [2022-02-20 16:47:29,419 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1696902382] [2022-02-20 16:47:29,419 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:29,419 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 17 states have internal predecessors, (44), 5 states have call successors, (10), 1 states have call predecessors, (10), 3 states have return successors, (11), 7 states have call predecessors, (11), 5 states have call successors, (11) Word has length 49 [2022-02-20 16:47:29,420 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:29,420 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 19 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 17 states have internal predecessors, (44), 5 states have call successors, (10), 1 states have call predecessors, (10), 3 states have return successors, (11), 7 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 16:47:29,473 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:29,473 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 19 states [2022-02-20 16:47:29,473 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:29,473 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 19 interpolants. [2022-02-20 16:47:29,474 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=78, Invalid=264, Unknown=0, NotChecked=0, Total=342 [2022-02-20 16:47:29,474 INFO L87 Difference]: Start difference. First operand 74 states and 100 transitions. Second operand has 19 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 17 states have internal predecessors, (44), 5 states have call successors, (10), 1 states have call predecessors, (10), 3 states have return successors, (11), 7 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 16:47:30,537 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:30,537 INFO L93 Difference]: Finished difference Result 84 states and 111 transitions. [2022-02-20 16:47:30,537 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-02-20 16:47:30,538 INFO L78 Accepts]: Start accepts. Automaton has has 19 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 17 states have internal predecessors, (44), 5 states have call successors, (10), 1 states have call predecessors, (10), 3 states have return successors, (11), 7 states have call predecessors, (11), 5 states have call successors, (11) Word has length 49 [2022-02-20 16:47:30,538 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:30,538 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 17 states have internal predecessors, (44), 5 states have call successors, (10), 1 states have call predecessors, (10), 3 states have return successors, (11), 7 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 16:47:30,540 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 94 transitions. [2022-02-20 16:47:30,540 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 19 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 17 states have internal predecessors, (44), 5 states have call successors, (10), 1 states have call predecessors, (10), 3 states have return successors, (11), 7 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 16:47:30,541 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 94 transitions. [2022-02-20 16:47:30,541 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 94 transitions. [2022-02-20 16:47:30,611 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:30,612 INFO L225 Difference]: With dead ends: 84 [2022-02-20 16:47:30,612 INFO L226 Difference]: Without dead ends: 72 [2022-02-20 16:47:30,612 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 103 GetRequests, 79 SyntacticMatches, 0 SemanticMatches, 24 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 116 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=155, Invalid=495, Unknown=0, NotChecked=0, Total=650 [2022-02-20 16:47:30,613 INFO L933 BasicCegarLoop]: 53 mSDtfsCounter, 69 mSDsluCounter, 327 mSDsCounter, 0 mSdLazyCounter, 205 mSolverCounterSat, 36 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 71 SdHoareTripleChecker+Valid, 380 SdHoareTripleChecker+Invalid, 241 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 36 IncrementalHoareTripleChecker+Valid, 205 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:30,613 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [71 Valid, 380 Invalid, 241 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [36 Valid, 205 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-02-20 16:47:30,613 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 72 states. [2022-02-20 16:47:30,615 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 72 to 69. [2022-02-20 16:47:30,615 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:30,616 INFO L82 GeneralOperation]: Start isEquivalent. First operand 72 states. Second operand has 69 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 2 states have call predecessors, (13), 4 states have return successors, (20), 15 states have call predecessors, (20), 13 states have call successors, (20) [2022-02-20 16:47:30,616 INFO L74 IsIncluded]: Start isIncluded. First operand 72 states. Second operand has 69 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 2 states have call predecessors, (13), 4 states have return successors, (20), 15 states have call predecessors, (20), 13 states have call successors, (20) [2022-02-20 16:47:30,616 INFO L87 Difference]: Start difference. First operand 72 states. Second operand has 69 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 2 states have call predecessors, (13), 4 states have return successors, (20), 15 states have call predecessors, (20), 13 states have call successors, (20) [2022-02-20 16:47:30,618 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:30,618 INFO L93 Difference]: Finished difference Result 72 states and 96 transitions. [2022-02-20 16:47:30,618 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 96 transitions. [2022-02-20 16:47:30,618 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:30,618 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:30,619 INFO L74 IsIncluded]: Start isIncluded. First operand has 69 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 2 states have call predecessors, (13), 4 states have return successors, (20), 15 states have call predecessors, (20), 13 states have call successors, (20) Second operand 72 states. [2022-02-20 16:47:30,619 INFO L87 Difference]: Start difference. First operand has 69 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 2 states have call predecessors, (13), 4 states have return successors, (20), 15 states have call predecessors, (20), 13 states have call successors, (20) Second operand 72 states. [2022-02-20 16:47:30,621 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:30,621 INFO L93 Difference]: Finished difference Result 72 states and 96 transitions. [2022-02-20 16:47:30,621 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 96 transitions. [2022-02-20 16:47:30,621 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:30,621 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:30,621 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:30,621 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:30,622 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 69 states, 50 states have (on average 1.16) internal successors, (58), 51 states have internal predecessors, (58), 13 states have call successors, (13), 2 states have call predecessors, (13), 4 states have return successors, (20), 15 states have call predecessors, (20), 13 states have call successors, (20) [2022-02-20 16:47:30,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 69 states to 69 states and 91 transitions. [2022-02-20 16:47:30,626 INFO L78 Accepts]: Start accepts. Automaton has 69 states and 91 transitions. Word has length 49 [2022-02-20 16:47:30,626 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:30,627 INFO L470 AbstractCegarLoop]: Abstraction has 69 states and 91 transitions. [2022-02-20 16:47:30,627 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 19 states, 19 states have (on average 2.3157894736842106) internal successors, (44), 17 states have internal predecessors, (44), 5 states have call successors, (10), 1 states have call predecessors, (10), 3 states have return successors, (11), 7 states have call predecessors, (11), 5 states have call successors, (11) [2022-02-20 16:47:30,627 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 91 transitions. [2022-02-20 16:47:30,627 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-02-20 16:47:30,627 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:30,627 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:30,635 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (21)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:30,835 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 21 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:30,835 INFO L402 AbstractCegarLoop]: === Iteration 20 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:30,836 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:30,836 INFO L85 PathProgramCache]: Analyzing trace with hash -552676772, now seen corresponding path program 1 times [2022-02-20 16:47:30,836 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:30,836 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [924107965] [2022-02-20 16:47:30,836 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:30,836 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:30,836 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:30,838 INFO L229 MonitoredProcess]: Starting monitored process 22 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:30,839 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (22)] Waiting until timeout for monitored process [2022-02-20 16:47:30,889 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:30,891 INFO L263 TraceCheckSpWp]: Trace formula consists of 120 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:30,899 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:30,900 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:30,972 INFO L290 TraceCheckUtils]: 0: Hoare triple {11170#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {11170#true} is VALID [2022-02-20 16:47:30,972 INFO L290 TraceCheckUtils]: 1: Hoare triple {11170#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {11170#true} is VALID [2022-02-20 16:47:30,972 INFO L272 TraceCheckUtils]: 2: Hoare triple {11170#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {11170#true} is VALID [2022-02-20 16:47:30,972 INFO L290 TraceCheckUtils]: 3: Hoare triple {11170#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {11170#true} is VALID [2022-02-20 16:47:30,972 INFO L290 TraceCheckUtils]: 4: Hoare triple {11170#true} assume true; {11170#true} is VALID [2022-02-20 16:47:30,972 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {11170#true} {11170#true} #129#return; {11170#true} is VALID [2022-02-20 16:47:30,973 INFO L290 TraceCheckUtils]: 6: Hoare triple {11170#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {11170#true} is VALID [2022-02-20 16:47:30,973 INFO L290 TraceCheckUtils]: 7: Hoare triple {11170#true} assume main_#t~short12#1; {11170#true} is VALID [2022-02-20 16:47:30,973 INFO L272 TraceCheckUtils]: 8: Hoare triple {11170#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {11170#true} is VALID [2022-02-20 16:47:30,973 INFO L290 TraceCheckUtils]: 9: Hoare triple {11170#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {11170#true} is VALID [2022-02-20 16:47:30,973 INFO L290 TraceCheckUtils]: 10: Hoare triple {11170#true} assume true; {11170#true} is VALID [2022-02-20 16:47:30,973 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {11170#true} {11170#true} #131#return; {11170#true} is VALID [2022-02-20 16:47:30,973 INFO L290 TraceCheckUtils]: 12: Hoare triple {11170#true} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {11170#true} is VALID [2022-02-20 16:47:30,973 INFO L290 TraceCheckUtils]: 13: Hoare triple {11170#true} main_#t~short16#1 := main_#t~short12#1; {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L290 TraceCheckUtils]: 14: Hoare triple {11170#true} assume main_#t~short16#1; {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L290 TraceCheckUtils]: 15: Hoare triple {11170#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L272 TraceCheckUtils]: 16: Hoare triple {11170#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L290 TraceCheckUtils]: 17: Hoare triple {11170#true} ~x := #in~x;havoc ~w~0; {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L290 TraceCheckUtils]: 18: Hoare triple {11170#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L290 TraceCheckUtils]: 19: Hoare triple {11170#true} goto; {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L290 TraceCheckUtils]: 20: Hoare triple {11170#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L290 TraceCheckUtils]: 21: Hoare triple {11170#true} assume true; {11170#true} is VALID [2022-02-20 16:47:30,974 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {11170#true} {11170#true} #137#return; {11170#true} is VALID [2022-02-20 16:47:30,975 INFO L290 TraceCheckUtils]: 23: Hoare triple {11170#true} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {11170#true} is VALID [2022-02-20 16:47:30,975 INFO L272 TraceCheckUtils]: 24: Hoare triple {11170#true} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {11170#true} is VALID [2022-02-20 16:47:30,975 INFO L290 TraceCheckUtils]: 25: Hoare triple {11170#true} ~x := #in~x;havoc ~w~0; {11170#true} is VALID [2022-02-20 16:47:30,975 INFO L290 TraceCheckUtils]: 26: Hoare triple {11170#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {11170#true} is VALID [2022-02-20 16:47:30,975 INFO L290 TraceCheckUtils]: 27: Hoare triple {11170#true} goto; {11170#true} is VALID [2022-02-20 16:47:30,975 INFO L290 TraceCheckUtils]: 28: Hoare triple {11170#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {11170#true} is VALID [2022-02-20 16:47:30,975 INFO L290 TraceCheckUtils]: 29: Hoare triple {11170#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {11170#true} is VALID [2022-02-20 16:47:30,975 INFO L290 TraceCheckUtils]: 30: Hoare triple {11170#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {11170#true} is VALID [2022-02-20 16:47:30,976 INFO L290 TraceCheckUtils]: 31: Hoare triple {11170#true} assume 2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0;#res := 1bv32; {11268#(= (_ bv1 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:30,976 INFO L290 TraceCheckUtils]: 32: Hoare triple {11268#(= (_ bv1 32) |__fpclassify_float_#res|)} assume true; {11268#(= (_ bv1 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:30,977 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11268#(= (_ bv1 32) |__fpclassify_float_#res|)} {11170#true} #139#return; {11275#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv1 32))} is VALID [2022-02-20 16:47:30,977 INFO L290 TraceCheckUtils]: 34: Hoare triple {11275#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv1 32))} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {11171#false} is VALID [2022-02-20 16:47:30,977 INFO L290 TraceCheckUtils]: 35: Hoare triple {11171#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {11171#false} is VALID [2022-02-20 16:47:30,977 INFO L272 TraceCheckUtils]: 36: Hoare triple {11171#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {11171#false} is VALID [2022-02-20 16:47:30,977 INFO L290 TraceCheckUtils]: 37: Hoare triple {11171#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {11171#false} is VALID [2022-02-20 16:47:30,977 INFO L290 TraceCheckUtils]: 38: Hoare triple {11171#false} assume true; {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {11171#false} {11171#false} #141#return; {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L290 TraceCheckUtils]: 40: Hoare triple {11171#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L290 TraceCheckUtils]: 41: Hoare triple {11171#false} assume main_#t~short20#1; {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L272 TraceCheckUtils]: 42: Hoare triple {11171#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L290 TraceCheckUtils]: 43: Hoare triple {11171#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L290 TraceCheckUtils]: 44: Hoare triple {11171#false} assume true; {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {11171#false} {11171#false} #143#return; {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L290 TraceCheckUtils]: 46: Hoare triple {11171#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {11171#false} is VALID [2022-02-20 16:47:30,978 INFO L290 TraceCheckUtils]: 47: Hoare triple {11171#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {11171#false} is VALID [2022-02-20 16:47:30,979 INFO L290 TraceCheckUtils]: 48: Hoare triple {11171#false} assume !false; {11171#false} is VALID [2022-02-20 16:47:30,979 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 14 proven. 0 refuted. 0 times theorem prover too weak. 10 trivial. 0 not checked. [2022-02-20 16:47:30,979 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:30,979 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:30,979 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [924107965] [2022-02-20 16:47:30,979 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [924107965] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:30,979 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:30,979 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:30,980 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [579157946] [2022-02-20 16:47:30,980 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:30,980 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 7.5) internal successors, (30), 3 states have internal predecessors, (30), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) Word has length 49 [2022-02-20 16:47:30,980 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:30,980 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 7.5) internal successors, (30), 3 states have internal predecessors, (30), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:31,006 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:31,006 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:31,006 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:31,007 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:31,007 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:31,007 INFO L87 Difference]: Start difference. First operand 69 states and 91 transitions. Second operand has 4 states, 4 states have (on average 7.5) internal successors, (30), 3 states have internal predecessors, (30), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:31,139 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:31,139 INFO L93 Difference]: Finished difference Result 96 states and 121 transitions. [2022-02-20 16:47:31,140 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:31,140 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 7.5) internal successors, (30), 3 states have internal predecessors, (30), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) Word has length 49 [2022-02-20 16:47:31,140 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:31,140 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 7.5) internal successors, (30), 3 states have internal predecessors, (30), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:31,141 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 96 transitions. [2022-02-20 16:47:31,141 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 7.5) internal successors, (30), 3 states have internal predecessors, (30), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:31,142 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 96 transitions. [2022-02-20 16:47:31,142 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 96 transitions. [2022-02-20 16:47:31,205 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 96 edges. 96 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:31,206 INFO L225 Difference]: With dead ends: 96 [2022-02-20 16:47:31,206 INFO L226 Difference]: Without dead ends: 70 [2022-02-20 16:47:31,206 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 48 GetRequests, 46 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:31,207 INFO L933 BasicCegarLoop]: 70 mSDtfsCounter, 0 mSDsluCounter, 131 mSDsCounter, 0 mSdLazyCounter, 10 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 201 SdHoareTripleChecker+Invalid, 10 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 10 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:31,207 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 201 Invalid, 10 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 10 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:31,207 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2022-02-20 16:47:31,209 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 67. [2022-02-20 16:47:31,209 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:31,209 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand has 67 states, 49 states have (on average 1.163265306122449) internal successors, (57), 49 states have internal predecessors, (57), 13 states have call successors, (13), 2 states have call predecessors, (13), 3 states have return successors, (16), 15 states have call predecessors, (16), 13 states have call successors, (16) [2022-02-20 16:47:31,209 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand has 67 states, 49 states have (on average 1.163265306122449) internal successors, (57), 49 states have internal predecessors, (57), 13 states have call successors, (13), 2 states have call predecessors, (13), 3 states have return successors, (16), 15 states have call predecessors, (16), 13 states have call successors, (16) [2022-02-20 16:47:31,209 INFO L87 Difference]: Start difference. First operand 70 states. Second operand has 67 states, 49 states have (on average 1.163265306122449) internal successors, (57), 49 states have internal predecessors, (57), 13 states have call successors, (13), 2 states have call predecessors, (13), 3 states have return successors, (16), 15 states have call predecessors, (16), 13 states have call successors, (16) [2022-02-20 16:47:31,211 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:31,211 INFO L93 Difference]: Finished difference Result 70 states and 91 transitions. [2022-02-20 16:47:31,211 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 91 transitions. [2022-02-20 16:47:31,211 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:31,211 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:31,211 INFO L74 IsIncluded]: Start isIncluded. First operand has 67 states, 49 states have (on average 1.163265306122449) internal successors, (57), 49 states have internal predecessors, (57), 13 states have call successors, (13), 2 states have call predecessors, (13), 3 states have return successors, (16), 15 states have call predecessors, (16), 13 states have call successors, (16) Second operand 70 states. [2022-02-20 16:47:31,213 INFO L87 Difference]: Start difference. First operand has 67 states, 49 states have (on average 1.163265306122449) internal successors, (57), 49 states have internal predecessors, (57), 13 states have call successors, (13), 2 states have call predecessors, (13), 3 states have return successors, (16), 15 states have call predecessors, (16), 13 states have call successors, (16) Second operand 70 states. [2022-02-20 16:47:31,215 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:31,215 INFO L93 Difference]: Finished difference Result 70 states and 91 transitions. [2022-02-20 16:47:31,216 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 91 transitions. [2022-02-20 16:47:31,216 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:31,216 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:31,216 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:31,216 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:31,216 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 67 states, 49 states have (on average 1.163265306122449) internal successors, (57), 49 states have internal predecessors, (57), 13 states have call successors, (13), 2 states have call predecessors, (13), 3 states have return successors, (16), 15 states have call predecessors, (16), 13 states have call successors, (16) [2022-02-20 16:47:31,219 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 67 states to 67 states and 86 transitions. [2022-02-20 16:47:31,219 INFO L78 Accepts]: Start accepts. Automaton has 67 states and 86 transitions. Word has length 49 [2022-02-20 16:47:31,219 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:31,219 INFO L470 AbstractCegarLoop]: Abstraction has 67 states and 86 transitions. [2022-02-20 16:47:31,219 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 7.5) internal successors, (30), 3 states have internal predecessors, (30), 2 states have call successors, (6), 2 states have call predecessors, (6), 3 states have return successors, (6), 3 states have call predecessors, (6), 2 states have call successors, (6) [2022-02-20 16:47:31,220 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 86 transitions. [2022-02-20 16:47:31,220 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 50 [2022-02-20 16:47:31,220 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:31,220 INFO L514 BasicCegarLoop]: trace histogram [4, 4, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:31,237 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (22)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:31,428 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 22 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:31,428 INFO L402 AbstractCegarLoop]: === Iteration 21 === Targeting ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:31,429 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:31,429 INFO L85 PathProgramCache]: Analyzing trace with hash -1549749125, now seen corresponding path program 1 times [2022-02-20 16:47:31,429 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:31,429 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [730612490] [2022-02-20 16:47:31,429 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:31,429 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:31,429 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:31,430 INFO L229 MonitoredProcess]: Starting monitored process 23 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:31,432 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (23)] Waiting until timeout for monitored process [2022-02-20 16:47:31,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:31,487 INFO L263 TraceCheckSpWp]: Trace formula consists of 121 conjuncts, 24 conjunts are in the unsatisfiable core [2022-02-20 16:47:31,499 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:31,500 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:32,328 INFO L290 TraceCheckUtils]: 0: Hoare triple {11667#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {11667#true} is VALID [2022-02-20 16:47:32,328 INFO L290 TraceCheckUtils]: 1: Hoare triple {11667#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {11667#true} is VALID [2022-02-20 16:47:32,328 INFO L272 TraceCheckUtils]: 2: Hoare triple {11667#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {11667#true} is VALID [2022-02-20 16:47:32,328 INFO L290 TraceCheckUtils]: 3: Hoare triple {11667#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {11667#true} is VALID [2022-02-20 16:47:32,328 INFO L290 TraceCheckUtils]: 4: Hoare triple {11667#true} assume true; {11667#true} is VALID [2022-02-20 16:47:32,328 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {11667#true} {11667#true} #129#return; {11667#true} is VALID [2022-02-20 16:47:32,328 INFO L290 TraceCheckUtils]: 6: Hoare triple {11667#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {11667#true} is VALID [2022-02-20 16:47:32,328 INFO L290 TraceCheckUtils]: 7: Hoare triple {11667#true} assume main_#t~short12#1; {11667#true} is VALID [2022-02-20 16:47:32,328 INFO L272 TraceCheckUtils]: 8: Hoare triple {11667#true} call main_#t~ret11#1 := isnan_float(main_~y~0#1); {11667#true} is VALID [2022-02-20 16:47:32,334 INFO L290 TraceCheckUtils]: 9: Hoare triple {11667#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {11699#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:32,334 INFO L290 TraceCheckUtils]: 10: Hoare triple {11699#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {11699#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:32,335 INFO L284 TraceCheckUtils]: 11: Hoare quadruple {11699#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {11667#true} #131#return; {11706#(or (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} is VALID [2022-02-20 16:47:32,336 INFO L290 TraceCheckUtils]: 12: Hoare triple {11706#(or (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and (= |ULTIMATE.start_main_#t~ret11#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} main_#t~short12#1 := 0bv32 == main_#t~ret11#1; {11710#(or (and (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} is VALID [2022-02-20 16:47:32,336 INFO L290 TraceCheckUtils]: 13: Hoare triple {11710#(or (and (not |ULTIMATE.start_main_#t~short12#1|) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))) (and |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))} main_#t~short16#1 := main_#t~short12#1; {11714#(or (and |ULTIMATE.start_main_#t~short16#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (not |ULTIMATE.start_main_#t~short16#1|)))} is VALID [2022-02-20 16:47:32,337 INFO L290 TraceCheckUtils]: 14: Hoare triple {11714#(or (and |ULTIMATE.start_main_#t~short16#1| (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (not |ULTIMATE.start_main_#t~short16#1|)))} assume main_#t~short16#1; {11718#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} is VALID [2022-02-20 16:47:32,337 INFO L290 TraceCheckUtils]: 15: Hoare triple {11718#(fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {11722#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|)} is VALID [2022-02-20 16:47:32,337 INFO L272 TraceCheckUtils]: 16: Hoare triple {11722#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {11667#true} is VALID [2022-02-20 16:47:32,338 INFO L290 TraceCheckUtils]: 17: Hoare triple {11667#true} ~x := #in~x;havoc ~w~0; {11667#true} is VALID [2022-02-20 16:47:32,338 INFO L290 TraceCheckUtils]: 18: Hoare triple {11667#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {11667#true} is VALID [2022-02-20 16:47:32,338 INFO L290 TraceCheckUtils]: 19: Hoare triple {11667#true} goto; {11667#true} is VALID [2022-02-20 16:47:32,338 INFO L290 TraceCheckUtils]: 20: Hoare triple {11667#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {11667#true} is VALID [2022-02-20 16:47:32,338 INFO L290 TraceCheckUtils]: 21: Hoare triple {11667#true} assume true; {11667#true} is VALID [2022-02-20 16:47:32,339 INFO L284 TraceCheckUtils]: 22: Hoare quadruple {11667#true} {11722#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|)} #137#return; {11722#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|)} is VALID [2022-02-20 16:47:32,339 INFO L290 TraceCheckUtils]: 23: Hoare triple {11722#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|)} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {11722#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|)} is VALID [2022-02-20 16:47:32,339 INFO L272 TraceCheckUtils]: 24: Hoare triple {11722#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|)} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {11667#true} is VALID [2022-02-20 16:47:32,339 INFO L290 TraceCheckUtils]: 25: Hoare triple {11667#true} ~x := #in~x;havoc ~w~0; {11753#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} is VALID [2022-02-20 16:47:32,346 INFO L290 TraceCheckUtils]: 26: Hoare triple {11753#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {11757#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:32,347 INFO L290 TraceCheckUtils]: 27: Hoare triple {11757#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} goto; {11757#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:32,347 INFO L290 TraceCheckUtils]: 28: Hoare triple {11757#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {11764#(and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))))} is VALID [2022-02-20 16:47:32,348 INFO L290 TraceCheckUtils]: 29: Hoare triple {11764#(and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))))} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {11768#(and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (or (not (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)))))} is VALID [2022-02-20 16:47:32,349 INFO L290 TraceCheckUtils]: 30: Hoare triple {11768#(and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (or (not (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)))))} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {11772#(and (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)))))} is VALID [2022-02-20 16:47:32,351 INFO L290 TraceCheckUtils]: 31: Hoare triple {11772#(and (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)))))} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {11776#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (not (= (_ bv4286578688 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (= __fpclassify_float_~w~0 (_ bv2139095040 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32))))))} is VALID [2022-02-20 16:47:32,352 INFO L290 TraceCheckUtils]: 32: Hoare triple {11776#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (not (= (_ bv4286578688 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (= __fpclassify_float_~w~0 (_ bv2139095040 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32))))))} assume true; {11776#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (not (= (_ bv4286578688 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (= __fpclassify_float_~w~0 (_ bv2139095040 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32))))))} is VALID [2022-02-20 16:47:32,353 INFO L284 TraceCheckUtils]: 33: Hoare quadruple {11776#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (not (= (_ bv4286578688 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (= __fpclassify_float_~w~0 (_ bv2139095040 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32))))))} {11722#(fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|)} #139#return; {11668#false} is VALID [2022-02-20 16:47:32,353 INFO L290 TraceCheckUtils]: 34: Hoare triple {11668#false} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {11668#false} is VALID [2022-02-20 16:47:32,353 INFO L290 TraceCheckUtils]: 35: Hoare triple {11668#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {11668#false} is VALID [2022-02-20 16:47:32,354 INFO L272 TraceCheckUtils]: 36: Hoare triple {11668#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {11668#false} is VALID [2022-02-20 16:47:32,354 INFO L290 TraceCheckUtils]: 37: Hoare triple {11668#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {11668#false} is VALID [2022-02-20 16:47:32,354 INFO L290 TraceCheckUtils]: 38: Hoare triple {11668#false} assume true; {11668#false} is VALID [2022-02-20 16:47:32,354 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {11668#false} {11668#false} #141#return; {11668#false} is VALID [2022-02-20 16:47:32,354 INFO L290 TraceCheckUtils]: 40: Hoare triple {11668#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {11668#false} is VALID [2022-02-20 16:47:32,354 INFO L290 TraceCheckUtils]: 41: Hoare triple {11668#false} assume main_#t~short20#1; {11668#false} is VALID [2022-02-20 16:47:32,354 INFO L272 TraceCheckUtils]: 42: Hoare triple {11668#false} call main_#t~ret19#1 := isnan_float(main_~y~0#1); {11668#false} is VALID [2022-02-20 16:47:32,354 INFO L290 TraceCheckUtils]: 43: Hoare triple {11668#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {11668#false} is VALID [2022-02-20 16:47:32,355 INFO L290 TraceCheckUtils]: 44: Hoare triple {11668#false} assume true; {11668#false} is VALID [2022-02-20 16:47:32,355 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {11668#false} {11668#false} #143#return; {11668#false} is VALID [2022-02-20 16:47:32,355 INFO L290 TraceCheckUtils]: 46: Hoare triple {11668#false} main_#t~short20#1 := 0bv32 == main_#t~ret19#1; {11668#false} is VALID [2022-02-20 16:47:32,355 INFO L290 TraceCheckUtils]: 47: Hoare triple {11668#false} assume main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1);havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {11668#false} is VALID [2022-02-20 16:47:32,355 INFO L290 TraceCheckUtils]: 48: Hoare triple {11668#false} assume !false; {11668#false} is VALID [2022-02-20 16:47:32,355 INFO L134 CoverageAnalysis]: Checked inductivity of 24 backedges. 19 proven. 0 refuted. 0 times theorem prover too weak. 5 trivial. 0 not checked. [2022-02-20 16:47:32,355 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:32,356 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:32,356 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [730612490] [2022-02-20 16:47:32,356 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [730612490] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:32,356 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:32,356 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [14] imperfect sequences [] total 14 [2022-02-20 16:47:32,356 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1357366338] [2022-02-20 16:47:32,356 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:32,357 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 2.5) internal successors, (35), 13 states have internal predecessors, (35), 3 states have call successors, (6), 2 states have call predecessors, (6), 4 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) Word has length 49 [2022-02-20 16:47:32,357 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:32,357 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 14 states, 14 states have (on average 2.5) internal successors, (35), 13 states have internal predecessors, (35), 3 states have call successors, (6), 2 states have call predecessors, (6), 4 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:32,397 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:32,397 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 14 states [2022-02-20 16:47:32,397 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:32,397 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 14 interpolants. [2022-02-20 16:47:32,398 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=31, Invalid=151, Unknown=0, NotChecked=0, Total=182 [2022-02-20 16:47:32,398 INFO L87 Difference]: Start difference. First operand 67 states and 86 transitions. Second operand has 14 states, 14 states have (on average 2.5) internal successors, (35), 13 states have internal predecessors, (35), 3 states have call successors, (6), 2 states have call predecessors, (6), 4 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:34,041 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:34,042 INFO L93 Difference]: Finished difference Result 90 states and 116 transitions. [2022-02-20 16:47:34,042 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 15 states. [2022-02-20 16:47:34,042 INFO L78 Accepts]: Start accepts. Automaton has has 14 states, 14 states have (on average 2.5) internal successors, (35), 13 states have internal predecessors, (35), 3 states have call successors, (6), 2 states have call predecessors, (6), 4 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) Word has length 49 [2022-02-20 16:47:34,042 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:34,042 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 2.5) internal successors, (35), 13 states have internal predecessors, (35), 3 states have call successors, (6), 2 states have call predecessors, (6), 4 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:34,044 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 114 transitions. [2022-02-20 16:47:34,044 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 14 states, 14 states have (on average 2.5) internal successors, (35), 13 states have internal predecessors, (35), 3 states have call successors, (6), 2 states have call predecessors, (6), 4 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:34,046 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 15 states to 15 states and 114 transitions. [2022-02-20 16:47:34,046 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 15 states and 114 transitions. [2022-02-20 16:47:34,142 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 114 edges. 114 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:34,143 INFO L225 Difference]: With dead ends: 90 [2022-02-20 16:47:34,143 INFO L226 Difference]: Without dead ends: 69 [2022-02-20 16:47:34,144 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 61 GetRequests, 40 SyntacticMatches, 0 SemanticMatches, 21 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=93, Invalid=413, Unknown=0, NotChecked=0, Total=506 [2022-02-20 16:47:34,144 INFO L933 BasicCegarLoop]: 57 mSDtfsCounter, 48 mSDsluCounter, 456 mSDsCounter, 0 mSdLazyCounter, 322 mSolverCounterSat, 3 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 51 SdHoareTripleChecker+Valid, 513 SdHoareTripleChecker+Invalid, 383 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 3 IncrementalHoareTripleChecker+Valid, 322 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 58 IncrementalHoareTripleChecker+Unchecked, 0.6s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:34,144 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [51 Valid, 513 Invalid, 383 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [3 Valid, 322 Invalid, 0 Unknown, 58 Unchecked, 0.6s Time] [2022-02-20 16:47:34,145 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 69 states. [2022-02-20 16:47:34,146 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 69 to 49. [2022-02-20 16:47:34,146 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:34,146 INFO L82 GeneralOperation]: Start isEquivalent. First operand 69 states. Second operand has 49 states, 37 states have (on average 1.1891891891891893) internal successors, (44), 36 states have internal predecessors, (44), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (10), 10 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:34,146 INFO L74 IsIncluded]: Start isIncluded. First operand 69 states. Second operand has 49 states, 37 states have (on average 1.1891891891891893) internal successors, (44), 36 states have internal predecessors, (44), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (10), 10 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:34,147 INFO L87 Difference]: Start difference. First operand 69 states. Second operand has 49 states, 37 states have (on average 1.1891891891891893) internal successors, (44), 36 states have internal predecessors, (44), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (10), 10 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:34,148 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:34,148 INFO L93 Difference]: Finished difference Result 69 states and 87 transitions. [2022-02-20 16:47:34,148 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 87 transitions. [2022-02-20 16:47:34,148 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:34,148 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:34,149 INFO L74 IsIncluded]: Start isIncluded. First operand has 49 states, 37 states have (on average 1.1891891891891893) internal successors, (44), 36 states have internal predecessors, (44), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (10), 10 states have call predecessors, (10), 8 states have call successors, (10) Second operand 69 states. [2022-02-20 16:47:34,149 INFO L87 Difference]: Start difference. First operand has 49 states, 37 states have (on average 1.1891891891891893) internal successors, (44), 36 states have internal predecessors, (44), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (10), 10 states have call predecessors, (10), 8 states have call successors, (10) Second operand 69 states. [2022-02-20 16:47:34,150 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:34,150 INFO L93 Difference]: Finished difference Result 69 states and 87 transitions. [2022-02-20 16:47:34,151 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 87 transitions. [2022-02-20 16:47:34,151 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:34,151 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:34,151 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:34,151 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:34,151 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 49 states, 37 states have (on average 1.1891891891891893) internal successors, (44), 36 states have internal predecessors, (44), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (10), 10 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:34,152 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 49 states to 49 states and 62 transitions. [2022-02-20 16:47:34,152 INFO L78 Accepts]: Start accepts. Automaton has 49 states and 62 transitions. Word has length 49 [2022-02-20 16:47:34,153 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:34,153 INFO L470 AbstractCegarLoop]: Abstraction has 49 states and 62 transitions. [2022-02-20 16:47:34,153 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 14 states, 14 states have (on average 2.5) internal successors, (35), 13 states have internal predecessors, (35), 3 states have call successors, (6), 2 states have call predecessors, (6), 4 states have return successors, (6), 4 states have call predecessors, (6), 3 states have call successors, (6) [2022-02-20 16:47:34,153 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 62 transitions. [2022-02-20 16:47:34,153 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 56 [2022-02-20 16:47:34,153 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:34,153 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:34,163 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (23)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:34,361 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 23 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:34,361 INFO L402 AbstractCegarLoop]: === Iteration 22 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:34,361 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:34,361 INFO L85 PathProgramCache]: Analyzing trace with hash -1451512262, now seen corresponding path program 1 times [2022-02-20 16:47:34,361 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:34,362 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [2109431006] [2022-02-20 16:47:34,362 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:34,362 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:34,362 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:34,363 INFO L229 MonitoredProcess]: Starting monitored process 24 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:34,364 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (24)] Waiting until timeout for monitored process [2022-02-20 16:47:34,410 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:34,412 INFO L263 TraceCheckSpWp]: Trace formula consists of 115 conjuncts, 23 conjunts are in the unsatisfiable core [2022-02-20 16:47:34,425 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:34,426 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:35,208 INFO L290 TraceCheckUtils]: 0: Hoare triple {12161#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {12161#true} is VALID [2022-02-20 16:47:35,208 INFO L290 TraceCheckUtils]: 1: Hoare triple {12161#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {12161#true} is VALID [2022-02-20 16:47:35,208 INFO L272 TraceCheckUtils]: 2: Hoare triple {12161#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {12161#true} is VALID [2022-02-20 16:47:35,209 INFO L290 TraceCheckUtils]: 3: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12175#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:35,209 INFO L290 TraceCheckUtils]: 4: Hoare triple {12175#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {12175#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:35,210 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {12175#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {12161#true} #129#return; {12182#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:35,210 INFO L290 TraceCheckUtils]: 6: Hoare triple {12182#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {12186#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:35,211 INFO L290 TraceCheckUtils]: 7: Hoare triple {12186#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume !main_#t~short12#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,211 INFO L290 TraceCheckUtils]: 8: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short12#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,211 INFO L290 TraceCheckUtils]: 9: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short16#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,211 INFO L272 TraceCheckUtils]: 10: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {12161#true} is VALID [2022-02-20 16:47:35,211 INFO L290 TraceCheckUtils]: 11: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12161#true} is VALID [2022-02-20 16:47:35,211 INFO L290 TraceCheckUtils]: 12: Hoare triple {12161#true} assume true; {12161#true} is VALID [2022-02-20 16:47:35,212 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {12161#true} {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #133#return; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,212 INFO L290 TraceCheckUtils]: 14: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,212 INFO L290 TraceCheckUtils]: 15: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short15#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,212 INFO L272 TraceCheckUtils]: 16: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {12161#true} is VALID [2022-02-20 16:47:35,212 INFO L290 TraceCheckUtils]: 17: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12161#true} is VALID [2022-02-20 16:47:35,212 INFO L290 TraceCheckUtils]: 18: Hoare triple {12161#true} assume true; {12161#true} is VALID [2022-02-20 16:47:35,213 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {12161#true} {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #135#return; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,213 INFO L290 TraceCheckUtils]: 20: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,213 INFO L290 TraceCheckUtils]: 21: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short15#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:35,214 INFO L290 TraceCheckUtils]: 22: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {12236#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)} is VALID [2022-02-20 16:47:35,214 INFO L272 TraceCheckUtils]: 23: Hoare triple {12236#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {12161#true} is VALID [2022-02-20 16:47:35,214 INFO L290 TraceCheckUtils]: 24: Hoare triple {12161#true} ~x := #in~x;havoc ~w~0; {12243#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} is VALID [2022-02-20 16:47:35,220 INFO L290 TraceCheckUtils]: 25: Hoare triple {12243#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {12247#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:35,220 INFO L290 TraceCheckUtils]: 26: Hoare triple {12247#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} goto; {12247#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:35,221 INFO L290 TraceCheckUtils]: 27: Hoare triple {12247#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {12254#(and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))))} is VALID [2022-02-20 16:47:35,221 INFO L290 TraceCheckUtils]: 28: Hoare triple {12254#(and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))))} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {12258#(and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (or (not (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)))))} is VALID [2022-02-20 16:47:35,223 INFO L290 TraceCheckUtils]: 29: Hoare triple {12258#(and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (or (not (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)))))} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {12262#(and (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)))))} is VALID [2022-02-20 16:47:35,224 INFO L290 TraceCheckUtils]: 30: Hoare triple {12262#(and (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)))))} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {12266#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (not (= (_ bv4286578688 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (= __fpclassify_float_~w~0 (_ bv2139095040 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32))))))} is VALID [2022-02-20 16:47:35,225 INFO L290 TraceCheckUtils]: 31: Hoare triple {12266#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (not (= (_ bv4286578688 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (= __fpclassify_float_~w~0 (_ bv2139095040 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32))))))} assume true; {12266#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (not (= (_ bv4286578688 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (= __fpclassify_float_~w~0 (_ bv2139095040 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32))))))} is VALID [2022-02-20 16:47:35,226 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {12266#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (not (= (_ bv4286578688 32) __fpclassify_float_~w~0)) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (not (bvule __fpclassify_float_~w~0 (_ bv4286578687 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32)))) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32))) (not (= __fpclassify_float_~w~0 (_ bv2139095040 32))) (not (bvule __fpclassify_float_~w~0 (_ bv2139095039 32))) (or (not (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32))))))} {12236#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)} #137#return; {12162#false} is VALID [2022-02-20 16:47:35,226 INFO L290 TraceCheckUtils]: 33: Hoare triple {12162#false} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {12162#false} is VALID [2022-02-20 16:47:35,226 INFO L290 TraceCheckUtils]: 34: Hoare triple {12162#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {12162#false} is VALID [2022-02-20 16:47:35,226 INFO L272 TraceCheckUtils]: 35: Hoare triple {12162#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {12162#false} is VALID [2022-02-20 16:47:35,226 INFO L290 TraceCheckUtils]: 36: Hoare triple {12162#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12162#false} is VALID [2022-02-20 16:47:35,226 INFO L290 TraceCheckUtils]: 37: Hoare triple {12162#false} assume true; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {12162#false} {12162#false} #141#return; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 39: Hoare triple {12162#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 40: Hoare triple {12162#false} assume !main_#t~short20#1; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 41: Hoare triple {12162#false} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L272 TraceCheckUtils]: 42: Hoare triple {12162#false} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 43: Hoare triple {12162#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 44: Hoare triple {12162#false} assume true; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {12162#false} {12162#false} #145#return; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 46: Hoare triple {12162#false} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 47: Hoare triple {12162#false} assume main_#t~short23#1; {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L272 TraceCheckUtils]: 48: Hoare triple {12162#false} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 49: Hoare triple {12162#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12162#false} is VALID [2022-02-20 16:47:35,227 INFO L290 TraceCheckUtils]: 50: Hoare triple {12162#false} assume true; {12162#false} is VALID [2022-02-20 16:47:35,228 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {12162#false} {12162#false} #147#return; {12162#false} is VALID [2022-02-20 16:47:35,228 INFO L290 TraceCheckUtils]: 52: Hoare triple {12162#false} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {12162#false} is VALID [2022-02-20 16:47:35,228 INFO L290 TraceCheckUtils]: 53: Hoare triple {12162#false} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {12162#false} is VALID [2022-02-20 16:47:35,228 INFO L290 TraceCheckUtils]: 54: Hoare triple {12162#false} assume !false; {12162#false} is VALID [2022-02-20 16:47:35,228 INFO L134 CoverageAnalysis]: Checked inductivity of 45 backedges. 27 proven. 4 refuted. 0 times theorem prover too weak. 14 trivial. 0 not checked. [2022-02-20 16:47:35,228 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 54: Hoare triple {12162#false} assume !false; {12162#false} is VALID [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 53: Hoare triple {12162#false} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {12162#false} is VALID [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 52: Hoare triple {12162#false} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {12162#false} is VALID [2022-02-20 16:47:36,834 INFO L284 TraceCheckUtils]: 51: Hoare quadruple {12161#true} {12162#false} #147#return; {12162#false} is VALID [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 50: Hoare triple {12161#true} assume true; {12161#true} is VALID [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 49: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12161#true} is VALID [2022-02-20 16:47:36,834 INFO L272 TraceCheckUtils]: 48: Hoare triple {12162#false} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {12161#true} is VALID [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 47: Hoare triple {12162#false} assume main_#t~short23#1; {12162#false} is VALID [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 46: Hoare triple {12162#false} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {12162#false} is VALID [2022-02-20 16:47:36,834 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {12161#true} {12162#false} #145#return; {12162#false} is VALID [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 44: Hoare triple {12161#true} assume true; {12161#true} is VALID [2022-02-20 16:47:36,834 INFO L290 TraceCheckUtils]: 43: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12161#true} is VALID [2022-02-20 16:47:36,834 INFO L272 TraceCheckUtils]: 42: Hoare triple {12162#false} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {12161#true} is VALID [2022-02-20 16:47:36,835 INFO L290 TraceCheckUtils]: 41: Hoare triple {12162#false} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {12162#false} is VALID [2022-02-20 16:47:36,835 INFO L290 TraceCheckUtils]: 40: Hoare triple {12162#false} assume !main_#t~short20#1; {12162#false} is VALID [2022-02-20 16:47:36,835 INFO L290 TraceCheckUtils]: 39: Hoare triple {12162#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {12162#false} is VALID [2022-02-20 16:47:36,835 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {12161#true} {12162#false} #141#return; {12162#false} is VALID [2022-02-20 16:47:36,835 INFO L290 TraceCheckUtils]: 37: Hoare triple {12161#true} assume true; {12161#true} is VALID [2022-02-20 16:47:36,835 INFO L290 TraceCheckUtils]: 36: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12161#true} is VALID [2022-02-20 16:47:36,835 INFO L272 TraceCheckUtils]: 35: Hoare triple {12162#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {12161#true} is VALID [2022-02-20 16:47:36,835 INFO L290 TraceCheckUtils]: 34: Hoare triple {12162#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {12162#false} is VALID [2022-02-20 16:47:36,835 INFO L290 TraceCheckUtils]: 33: Hoare triple {12162#false} assume 0bv32 == fmax_float_#t~ret5#1;havoc fmax_float_#t~ret5#1;fmax_float_#res#1 := fmax_float_~y#1; {12162#false} is VALID [2022-02-20 16:47:36,836 INFO L284 TraceCheckUtils]: 32: Hoare quadruple {12408#(not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|))} {12236#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)} #137#return; {12162#false} is VALID [2022-02-20 16:47:36,836 INFO L290 TraceCheckUtils]: 31: Hoare triple {12408#(not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|))} assume true; {12408#(not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|))} is VALID [2022-02-20 16:47:36,837 INFO L290 TraceCheckUtils]: 30: Hoare triple {12415#(or (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (= (_ bv4286578688 32) __fpclassify_float_~w~0) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {12408#(not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|))} is VALID [2022-02-20 16:47:36,837 INFO L290 TraceCheckUtils]: 29: Hoare triple {12419#(or (and (bvule __fpclassify_float_~w~0 (_ bv8388607 32)) (bvuge __fpclassify_float_~w~0 (_ bv1 32))) (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (= (_ bv4286578688 32) __fpclassify_float_~w~0) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {12415#(or (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (= (_ bv4286578688 32) __fpclassify_float_~w~0) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} is VALID [2022-02-20 16:47:36,838 INFO L290 TraceCheckUtils]: 28: Hoare triple {12423#(or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (and (bvule __fpclassify_float_~w~0 (_ bv8388607 32)) (bvuge __fpclassify_float_~w~0 (_ bv1 32))) (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (and (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))) (= (_ bv4286578688 32) __fpclassify_float_~w~0) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {12419#(or (and (bvule __fpclassify_float_~w~0 (_ bv8388607 32)) (bvuge __fpclassify_float_~w~0 (_ bv1 32))) (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (= (_ bv4286578688 32) __fpclassify_float_~w~0) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} is VALID [2022-02-20 16:47:36,839 INFO L290 TraceCheckUtils]: 27: Hoare triple {12427#(or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (= __fpclassify_float_~w~0 (_ bv2147483648 32)) (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (= (bvadd (_ bv8388608 32) __fpclassify_float_~w~0) (_ bv0 32)) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {12423#(or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (and (bvule __fpclassify_float_~w~0 (_ bv8388607 32)) (bvuge __fpclassify_float_~w~0 (_ bv1 32))) (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (and (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))) (= (_ bv4286578688 32) __fpclassify_float_~w~0) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} is VALID [2022-02-20 16:47:36,840 INFO L290 TraceCheckUtils]: 26: Hoare triple {12427#(or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (= __fpclassify_float_~w~0 (_ bv2147483648 32)) (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (= (bvadd (_ bv8388608 32) __fpclassify_float_~w~0) (_ bv0 32)) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} goto; {12427#(or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (= __fpclassify_float_~w~0 (_ bv2147483648 32)) (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (= (bvadd (_ bv8388608 32) __fpclassify_float_~w~0) (_ bv0 32)) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} is VALID [2022-02-20 16:47:36,843 INFO L290 TraceCheckUtils]: 25: Hoare triple {12434#(or (forall ((|v_skolemized_q#valueAsBitvector_36| (_ BitVec 32))) (or (= |v_skolemized_q#valueAsBitvector_36| (_ bv2139095040 32)) (and (bvule |v_skolemized_q#valueAsBitvector_36| (_ bv4286578687 32)) (bvuge |v_skolemized_q#valueAsBitvector_36| (_ bv2155872256 32))) (= |v_skolemized_q#valueAsBitvector_36| (_ bv2147483648 32)) (not (= (fp ((_ extract 31 31) |v_skolemized_q#valueAsBitvector_36|) ((_ extract 30 23) |v_skolemized_q#valueAsBitvector_36|) ((_ extract 22 0) |v_skolemized_q#valueAsBitvector_36|)) __fpclassify_float_~x)) (bvule |v_skolemized_q#valueAsBitvector_36| (_ bv2139095039 32)) (= (bvadd (_ bv8388608 32) |v_skolemized_q#valueAsBitvector_36|) (_ bv0 32)) (and (bvule |v_skolemized_q#valueAsBitvector_36| (_ bv2155872255 32)) (bvuge |v_skolemized_q#valueAsBitvector_36| (_ bv2147483649 32))))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {12427#(or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (= __fpclassify_float_~w~0 (_ bv2147483648 32)) (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (= __fpclassify_float_~w~0 (_ bv2139095040 32)) (= (bvadd (_ bv8388608 32) __fpclassify_float_~w~0) (_ bv0 32)) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} is VALID [2022-02-20 16:47:36,846 INFO L290 TraceCheckUtils]: 24: Hoare triple {12161#true} ~x := #in~x;havoc ~w~0; {12434#(or (forall ((|v_skolemized_q#valueAsBitvector_36| (_ BitVec 32))) (or (= |v_skolemized_q#valueAsBitvector_36| (_ bv2139095040 32)) (and (bvule |v_skolemized_q#valueAsBitvector_36| (_ bv4286578687 32)) (bvuge |v_skolemized_q#valueAsBitvector_36| (_ bv2155872256 32))) (= |v_skolemized_q#valueAsBitvector_36| (_ bv2147483648 32)) (not (= (fp ((_ extract 31 31) |v_skolemized_q#valueAsBitvector_36|) ((_ extract 30 23) |v_skolemized_q#valueAsBitvector_36|) ((_ extract 22 0) |v_skolemized_q#valueAsBitvector_36|)) __fpclassify_float_~x)) (bvule |v_skolemized_q#valueAsBitvector_36| (_ bv2139095039 32)) (= (bvadd (_ bv8388608 32) |v_skolemized_q#valueAsBitvector_36|) (_ bv0 32)) (and (bvule |v_skolemized_q#valueAsBitvector_36| (_ bv2155872255 32)) (bvuge |v_skolemized_q#valueAsBitvector_36| (_ bv2147483649 32))))) (not (fp.eq |__fpclassify_float_#in~x| |__fpclassify_float_#in~x|)))} is VALID [2022-02-20 16:47:36,846 INFO L272 TraceCheckUtils]: 23: Hoare triple {12236#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {12161#true} is VALID [2022-02-20 16:47:36,847 INFO L290 TraceCheckUtils]: 22: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {12236#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)} is VALID [2022-02-20 16:47:36,847 INFO L290 TraceCheckUtils]: 21: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short15#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,847 INFO L290 TraceCheckUtils]: 20: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,848 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {12161#true} {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #135#return; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,848 INFO L290 TraceCheckUtils]: 18: Hoare triple {12161#true} assume true; {12161#true} is VALID [2022-02-20 16:47:36,848 INFO L290 TraceCheckUtils]: 17: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12161#true} is VALID [2022-02-20 16:47:36,848 INFO L272 TraceCheckUtils]: 16: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {12161#true} is VALID [2022-02-20 16:47:36,848 INFO L290 TraceCheckUtils]: 15: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short15#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,848 INFO L290 TraceCheckUtils]: 14: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,849 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {12161#true} {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #133#return; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,849 INFO L290 TraceCheckUtils]: 12: Hoare triple {12161#true} assume true; {12161#true} is VALID [2022-02-20 16:47:36,849 INFO L290 TraceCheckUtils]: 11: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12161#true} is VALID [2022-02-20 16:47:36,849 INFO L272 TraceCheckUtils]: 10: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {12161#true} is VALID [2022-02-20 16:47:36,849 INFO L290 TraceCheckUtils]: 9: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short16#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,849 INFO L290 TraceCheckUtils]: 8: Hoare triple {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short12#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,850 INFO L290 TraceCheckUtils]: 7: Hoare triple {12486#(or |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !main_#t~short12#1; {12190#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:36,850 INFO L290 TraceCheckUtils]: 6: Hoare triple {12490#(or (not (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {12486#(or |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:36,851 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {12497#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} {12161#true} #129#return; {12490#(or (not (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:36,851 INFO L290 TraceCheckUtils]: 4: Hoare triple {12497#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} assume true; {12497#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:36,851 INFO L290 TraceCheckUtils]: 3: Hoare triple {12161#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12497#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:36,851 INFO L272 TraceCheckUtils]: 2: Hoare triple {12161#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {12161#true} is VALID [2022-02-20 16:47:36,851 INFO L290 TraceCheckUtils]: 1: Hoare triple {12161#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {12161#true} is VALID [2022-02-20 16:47:36,851 INFO L290 TraceCheckUtils]: 0: Hoare triple {12161#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {12161#true} is VALID [2022-02-20 16:47:36,852 INFO L134 CoverageAnalysis]: Checked inductivity of 45 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 35 trivial. 0 not checked. [2022-02-20 16:47:36,852 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:36,852 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [2109431006] [2022-02-20 16:47:36,852 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [2109431006] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:36,852 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:36,852 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [13, 13] total 22 [2022-02-20 16:47:36,852 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1800761748] [2022-02-20 16:47:36,852 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:36,853 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 21 states have (on average 2.238095238095238) internal successors, (47), 20 states have internal predecessors, (47), 4 states have call successors, (10), 2 states have call predecessors, (10), 6 states have return successors, (12), 4 states have call predecessors, (12), 4 states have call successors, (12) Word has length 55 [2022-02-20 16:47:36,855 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:36,856 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 22 states, 21 states have (on average 2.238095238095238) internal successors, (47), 20 states have internal predecessors, (47), 4 states have call successors, (10), 2 states have call predecessors, (10), 6 states have return successors, (12), 4 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 16:47:36,948 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:36,949 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 22 states [2022-02-20 16:47:36,949 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:36,949 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 22 interpolants. [2022-02-20 16:47:36,949 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=81, Invalid=381, Unknown=0, NotChecked=0, Total=462 [2022-02-20 16:47:36,949 INFO L87 Difference]: Start difference. First operand 49 states and 62 transitions. Second operand has 22 states, 21 states have (on average 2.238095238095238) internal successors, (47), 20 states have internal predecessors, (47), 4 states have call successors, (10), 2 states have call predecessors, (10), 6 states have return successors, (12), 4 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 16:47:38,287 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:38,287 INFO L93 Difference]: Finished difference Result 88 states and 111 transitions. [2022-02-20 16:47:38,287 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 14 states. [2022-02-20 16:47:38,287 INFO L78 Accepts]: Start accepts. Automaton has has 22 states, 21 states have (on average 2.238095238095238) internal successors, (47), 20 states have internal predecessors, (47), 4 states have call successors, (10), 2 states have call predecessors, (10), 6 states have return successors, (12), 4 states have call predecessors, (12), 4 states have call successors, (12) Word has length 55 [2022-02-20 16:47:38,288 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:38,288 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 21 states have (on average 2.238095238095238) internal successors, (47), 20 states have internal predecessors, (47), 4 states have call successors, (10), 2 states have call predecessors, (10), 6 states have return successors, (12), 4 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 16:47:38,289 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 107 transitions. [2022-02-20 16:47:38,289 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 22 states, 21 states have (on average 2.238095238095238) internal successors, (47), 20 states have internal predecessors, (47), 4 states have call successors, (10), 2 states have call predecessors, (10), 6 states have return successors, (12), 4 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 16:47:38,290 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 14 states to 14 states and 107 transitions. [2022-02-20 16:47:38,290 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 14 states and 107 transitions. [2022-02-20 16:47:38,382 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 107 edges. 107 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:38,383 INFO L225 Difference]: With dead ends: 88 [2022-02-20 16:47:38,383 INFO L226 Difference]: Without dead ends: 55 [2022-02-20 16:47:38,384 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 116 GetRequests, 88 SyntacticMatches, 1 SemanticMatches, 27 ConstructedPredicates, 0 IntricatePredicates, 1 DeprecatedPredicates, 109 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=141, Invalid=671, Unknown=0, NotChecked=0, Total=812 [2022-02-20 16:47:38,384 INFO L933 BasicCegarLoop]: 35 mSDtfsCounter, 98 mSDsluCounter, 262 mSDsCounter, 0 mSdLazyCounter, 264 mSolverCounterSat, 24 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 98 SdHoareTripleChecker+Valid, 297 SdHoareTripleChecker+Invalid, 315 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 24 IncrementalHoareTripleChecker+Valid, 264 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 27 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:38,384 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [98 Valid, 297 Invalid, 315 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [24 Valid, 264 Invalid, 0 Unknown, 27 Unchecked, 0.5s Time] [2022-02-20 16:47:38,385 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2022-02-20 16:47:38,386 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 48. [2022-02-20 16:47:38,386 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:38,386 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand has 48 states, 36 states have (on average 1.1666666666666667) internal successors, (42), 36 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) [2022-02-20 16:47:38,386 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand has 48 states, 36 states have (on average 1.1666666666666667) internal successors, (42), 36 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) [2022-02-20 16:47:38,386 INFO L87 Difference]: Start difference. First operand 55 states. Second operand has 48 states, 36 states have (on average 1.1666666666666667) internal successors, (42), 36 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) [2022-02-20 16:47:38,388 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:38,392 INFO L93 Difference]: Finished difference Result 55 states and 69 transitions. [2022-02-20 16:47:38,392 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 69 transitions. [2022-02-20 16:47:38,393 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:38,393 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:38,393 INFO L74 IsIncluded]: Start isIncluded. First operand has 48 states, 36 states have (on average 1.1666666666666667) internal successors, (42), 36 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) Second operand 55 states. [2022-02-20 16:47:38,393 INFO L87 Difference]: Start difference. First operand has 48 states, 36 states have (on average 1.1666666666666667) internal successors, (42), 36 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) Second operand 55 states. [2022-02-20 16:47:38,394 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:38,395 INFO L93 Difference]: Finished difference Result 55 states and 69 transitions. [2022-02-20 16:47:38,395 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 69 transitions. [2022-02-20 16:47:38,395 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:38,395 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:38,395 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:38,395 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:38,395 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 48 states, 36 states have (on average 1.1666666666666667) internal successors, (42), 36 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) [2022-02-20 16:47:38,396 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 59 transitions. [2022-02-20 16:47:38,396 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 59 transitions. Word has length 55 [2022-02-20 16:47:38,396 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:38,397 INFO L470 AbstractCegarLoop]: Abstraction has 48 states and 59 transitions. [2022-02-20 16:47:38,397 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 22 states, 21 states have (on average 2.238095238095238) internal successors, (47), 20 states have internal predecessors, (47), 4 states have call successors, (10), 2 states have call predecessors, (10), 6 states have return successors, (12), 4 states have call predecessors, (12), 4 states have call successors, (12) [2022-02-20 16:47:38,397 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 59 transitions. [2022-02-20 16:47:38,398 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2022-02-20 16:47:38,398 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:38,398 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:38,417 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (24)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:38,605 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 24 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:38,606 INFO L402 AbstractCegarLoop]: === Iteration 23 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:38,606 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:38,606 INFO L85 PathProgramCache]: Analyzing trace with hash 2059347801, now seen corresponding path program 1 times [2022-02-20 16:47:38,606 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:38,606 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [184380480] [2022-02-20 16:47:38,606 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:38,607 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:38,607 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:38,608 INFO L229 MonitoredProcess]: Starting monitored process 25 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:38,609 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (25)] Waiting until timeout for monitored process [2022-02-20 16:47:38,664 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:38,666 INFO L263 TraceCheckSpWp]: Trace formula consists of 136 conjuncts, 10 conjunts are in the unsatisfiable core [2022-02-20 16:47:38,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:38,679 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:38,886 INFO L290 TraceCheckUtils]: 0: Hoare triple {12803#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {12803#true} is VALID [2022-02-20 16:47:38,886 INFO L290 TraceCheckUtils]: 1: Hoare triple {12803#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {12803#true} is VALID [2022-02-20 16:47:38,886 INFO L272 TraceCheckUtils]: 2: Hoare triple {12803#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {12803#true} is VALID [2022-02-20 16:47:38,886 INFO L290 TraceCheckUtils]: 3: Hoare triple {12803#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12803#true} is VALID [2022-02-20 16:47:38,886 INFO L290 TraceCheckUtils]: 4: Hoare triple {12803#true} assume true; {12803#true} is VALID [2022-02-20 16:47:38,886 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {12803#true} {12803#true} #129#return; {12803#true} is VALID [2022-02-20 16:47:38,886 INFO L290 TraceCheckUtils]: 6: Hoare triple {12803#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {12803#true} is VALID [2022-02-20 16:47:38,886 INFO L290 TraceCheckUtils]: 7: Hoare triple {12803#true} assume !main_#t~short12#1; {12803#true} is VALID [2022-02-20 16:47:38,886 INFO L290 TraceCheckUtils]: 8: Hoare triple {12803#true} main_#t~short16#1 := main_#t~short12#1; {12803#true} is VALID [2022-02-20 16:47:38,887 INFO L290 TraceCheckUtils]: 9: Hoare triple {12803#true} assume !main_#t~short16#1; {12803#true} is VALID [2022-02-20 16:47:38,887 INFO L272 TraceCheckUtils]: 10: Hoare triple {12803#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {12803#true} is VALID [2022-02-20 16:47:38,887 INFO L290 TraceCheckUtils]: 11: Hoare triple {12803#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12803#true} is VALID [2022-02-20 16:47:38,887 INFO L290 TraceCheckUtils]: 12: Hoare triple {12803#true} assume true; {12803#true} is VALID [2022-02-20 16:47:38,887 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {12803#true} {12803#true} #133#return; {12803#true} is VALID [2022-02-20 16:47:38,887 INFO L290 TraceCheckUtils]: 14: Hoare triple {12803#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {12803#true} is VALID [2022-02-20 16:47:38,887 INFO L290 TraceCheckUtils]: 15: Hoare triple {12803#true} assume main_#t~short15#1; {12803#true} is VALID [2022-02-20 16:47:38,887 INFO L272 TraceCheckUtils]: 16: Hoare triple {12803#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {12803#true} is VALID [2022-02-20 16:47:38,888 INFO L290 TraceCheckUtils]: 17: Hoare triple {12803#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12859#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:38,888 INFO L290 TraceCheckUtils]: 18: Hoare triple {12859#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {12859#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:38,889 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {12859#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {12803#true} #135#return; {12866#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} is VALID [2022-02-20 16:47:38,890 INFO L290 TraceCheckUtils]: 20: Hoare triple {12866#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {12870#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:38,890 INFO L290 TraceCheckUtils]: 21: Hoare triple {12870#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} main_#t~short16#1 := main_#t~short15#1; {12874#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:38,891 INFO L290 TraceCheckUtils]: 22: Hoare triple {12874#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:38,891 INFO L272 TraceCheckUtils]: 23: Hoare triple {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {12803#true} is VALID [2022-02-20 16:47:38,891 INFO L290 TraceCheckUtils]: 24: Hoare triple {12803#true} ~x := #in~x;havoc ~w~0; {12803#true} is VALID [2022-02-20 16:47:38,891 INFO L290 TraceCheckUtils]: 25: Hoare triple {12803#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {12803#true} is VALID [2022-02-20 16:47:38,891 INFO L290 TraceCheckUtils]: 26: Hoare triple {12803#true} goto; {12803#true} is VALID [2022-02-20 16:47:38,891 INFO L290 TraceCheckUtils]: 27: Hoare triple {12803#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {12803#true} is VALID [2022-02-20 16:47:38,891 INFO L290 TraceCheckUtils]: 28: Hoare triple {12803#true} assume true; {12803#true} is VALID [2022-02-20 16:47:38,892 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {12803#true} {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #137#return; {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:38,892 INFO L290 TraceCheckUtils]: 30: Hoare triple {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:38,892 INFO L272 TraceCheckUtils]: 31: Hoare triple {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {12803#true} is VALID [2022-02-20 16:47:38,892 INFO L290 TraceCheckUtils]: 32: Hoare triple {12803#true} ~x := #in~x;havoc ~w~0; {12803#true} is VALID [2022-02-20 16:47:38,892 INFO L290 TraceCheckUtils]: 33: Hoare triple {12803#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {12803#true} is VALID [2022-02-20 16:47:38,893 INFO L290 TraceCheckUtils]: 34: Hoare triple {12803#true} goto; {12803#true} is VALID [2022-02-20 16:47:38,893 INFO L290 TraceCheckUtils]: 35: Hoare triple {12803#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {12803#true} is VALID [2022-02-20 16:47:38,893 INFO L290 TraceCheckUtils]: 36: Hoare triple {12803#true} assume true; {12803#true} is VALID [2022-02-20 16:47:38,893 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {12803#true} {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #139#return; {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:38,894 INFO L290 TraceCheckUtils]: 38: Hoare triple {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:38,894 INFO L290 TraceCheckUtils]: 39: Hoare triple {12878#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} assume ~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~x#1; {12804#false} is VALID [2022-02-20 16:47:38,894 INFO L290 TraceCheckUtils]: 40: Hoare triple {12804#false} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {12804#false} is VALID [2022-02-20 16:47:38,895 INFO L290 TraceCheckUtils]: 41: Hoare triple {12804#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {12804#false} is VALID [2022-02-20 16:47:38,895 INFO L272 TraceCheckUtils]: 42: Hoare triple {12804#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {12804#false} is VALID [2022-02-20 16:47:38,895 INFO L290 TraceCheckUtils]: 43: Hoare triple {12804#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12804#false} is VALID [2022-02-20 16:47:38,895 INFO L290 TraceCheckUtils]: 44: Hoare triple {12804#false} assume true; {12804#false} is VALID [2022-02-20 16:47:38,895 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {12804#false} {12804#false} #141#return; {12804#false} is VALID [2022-02-20 16:47:38,895 INFO L290 TraceCheckUtils]: 46: Hoare triple {12804#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {12804#false} is VALID [2022-02-20 16:47:38,895 INFO L290 TraceCheckUtils]: 47: Hoare triple {12804#false} assume !main_#t~short20#1; {12804#false} is VALID [2022-02-20 16:47:38,895 INFO L290 TraceCheckUtils]: 48: Hoare triple {12804#false} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L272 TraceCheckUtils]: 49: Hoare triple {12804#false} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L290 TraceCheckUtils]: 50: Hoare triple {12804#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L290 TraceCheckUtils]: 51: Hoare triple {12804#false} assume true; {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {12804#false} {12804#false} #145#return; {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L290 TraceCheckUtils]: 53: Hoare triple {12804#false} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L290 TraceCheckUtils]: 54: Hoare triple {12804#false} assume main_#t~short23#1; {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L272 TraceCheckUtils]: 55: Hoare triple {12804#false} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L290 TraceCheckUtils]: 56: Hoare triple {12804#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {12804#false} is VALID [2022-02-20 16:47:38,896 INFO L290 TraceCheckUtils]: 57: Hoare triple {12804#false} assume true; {12804#false} is VALID [2022-02-20 16:47:38,897 INFO L284 TraceCheckUtils]: 58: Hoare quadruple {12804#false} {12804#false} #147#return; {12804#false} is VALID [2022-02-20 16:47:38,897 INFO L290 TraceCheckUtils]: 59: Hoare triple {12804#false} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {12804#false} is VALID [2022-02-20 16:47:38,897 INFO L290 TraceCheckUtils]: 60: Hoare triple {12804#false} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {12804#false} is VALID [2022-02-20 16:47:38,897 INFO L290 TraceCheckUtils]: 61: Hoare triple {12804#false} assume !false; {12804#false} is VALID [2022-02-20 16:47:38,897 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 31 proven. 0 refuted. 0 times theorem prover too weak. 20 trivial. 0 not checked. [2022-02-20 16:47:38,897 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:38,897 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:38,898 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [184380480] [2022-02-20 16:47:38,898 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [184380480] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:38,898 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:38,898 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [7] imperfect sequences [] total 7 [2022-02-20 16:47:38,898 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2147217352] [2022-02-20 16:47:38,898 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:38,898 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 5.0) internal successors, (35), 6 states have internal predecessors, (35), 3 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 62 [2022-02-20 16:47:38,899 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:38,899 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 7 states, 7 states have (on average 5.0) internal successors, (35), 6 states have internal predecessors, (35), 3 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:38,937 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:38,937 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 7 states [2022-02-20 16:47:38,937 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:38,937 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2022-02-20 16:47:38,938 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=11, Invalid=31, Unknown=0, NotChecked=0, Total=42 [2022-02-20 16:47:38,938 INFO L87 Difference]: Start difference. First operand 48 states and 59 transitions. Second operand has 7 states, 7 states have (on average 5.0) internal successors, (35), 6 states have internal predecessors, (35), 3 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:39,336 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:39,336 INFO L93 Difference]: Finished difference Result 65 states and 77 transitions. [2022-02-20 16:47:39,336 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2022-02-20 16:47:39,336 INFO L78 Accepts]: Start accepts. Automaton has has 7 states, 7 states have (on average 5.0) internal successors, (35), 6 states have internal predecessors, (35), 3 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 62 [2022-02-20 16:47:39,336 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:39,337 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 5.0) internal successors, (35), 6 states have internal predecessors, (35), 3 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:39,337 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 74 transitions. [2022-02-20 16:47:39,338 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 7 states, 7 states have (on average 5.0) internal successors, (35), 6 states have internal predecessors, (35), 3 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:39,338 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 74 transitions. [2022-02-20 16:47:39,339 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 74 transitions. [2022-02-20 16:47:39,401 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:39,402 INFO L225 Difference]: With dead ends: 65 [2022-02-20 16:47:39,402 INFO L226 Difference]: Without dead ends: 48 [2022-02-20 16:47:39,403 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 63 GetRequests, 56 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=21, Invalid=51, Unknown=0, NotChecked=0, Total=72 [2022-02-20 16:47:39,403 INFO L933 BasicCegarLoop]: 45 mSDtfsCounter, 15 mSDsluCounter, 192 mSDsCounter, 0 mSdLazyCounter, 65 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.1s Time, 0 mProtectedPredicate, 0 mProtectedAction, 18 SdHoareTripleChecker+Valid, 237 SdHoareTripleChecker+Invalid, 65 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 65 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.1s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:39,404 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [18 Valid, 237 Invalid, 65 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 65 Invalid, 0 Unknown, 0 Unchecked, 0.1s Time] [2022-02-20 16:47:39,404 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2022-02-20 16:47:39,405 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 48. [2022-02-20 16:47:39,405 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:39,406 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand has 48 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) [2022-02-20 16:47:39,406 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand has 48 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) [2022-02-20 16:47:39,406 INFO L87 Difference]: Start difference. First operand 48 states. Second operand has 48 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) [2022-02-20 16:47:39,407 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:39,407 INFO L93 Difference]: Finished difference Result 48 states and 58 transitions. [2022-02-20 16:47:39,407 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 58 transitions. [2022-02-20 16:47:39,407 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:39,408 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:39,408 INFO L74 IsIncluded]: Start isIncluded. First operand has 48 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) Second operand 48 states. [2022-02-20 16:47:39,408 INFO L87 Difference]: Start difference. First operand has 48 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) Second operand 48 states. [2022-02-20 16:47:39,409 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:39,409 INFO L93 Difference]: Finished difference Result 48 states and 58 transitions. [2022-02-20 16:47:39,409 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 58 transitions. [2022-02-20 16:47:39,409 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:39,409 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:39,409 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:39,410 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:39,410 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 48 states, 36 states have (on average 1.1388888888888888) internal successors, (41), 36 states have internal predecessors, (41), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (9), 9 states have call predecessors, (9), 8 states have call successors, (9) [2022-02-20 16:47:39,410 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 58 transitions. [2022-02-20 16:47:39,411 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 58 transitions. Word has length 62 [2022-02-20 16:47:39,411 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:39,411 INFO L470 AbstractCegarLoop]: Abstraction has 48 states and 58 transitions. [2022-02-20 16:47:39,411 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 7 states, 7 states have (on average 5.0) internal successors, (35), 6 states have internal predecessors, (35), 3 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:39,411 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 58 transitions. [2022-02-20 16:47:39,412 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 63 [2022-02-20 16:47:39,413 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:39,413 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:39,423 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (25)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:39,621 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 25 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:39,621 INFO L402 AbstractCegarLoop]: === Iteration 24 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:39,622 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:39,622 INFO L85 PathProgramCache]: Analyzing trace with hash 253909467, now seen corresponding path program 1 times [2022-02-20 16:47:39,622 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:39,622 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1483751183] [2022-02-20 16:47:39,622 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:39,623 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:39,623 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:39,624 INFO L229 MonitoredProcess]: Starting monitored process 26 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:39,625 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (26)] Waiting until timeout for monitored process [2022-02-20 16:47:39,681 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:39,683 INFO L263 TraceCheckSpWp]: Trace formula consists of 136 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:47:39,696 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:39,697 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:39,960 INFO L290 TraceCheckUtils]: 0: Hoare triple {13237#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 1: Hoare triple {13237#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L272 TraceCheckUtils]: 2: Hoare triple {13237#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 3: Hoare triple {13237#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 4: Hoare triple {13237#true} assume true; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {13237#true} {13237#true} #129#return; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 6: Hoare triple {13237#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 7: Hoare triple {13237#true} assume !main_#t~short12#1; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 8: Hoare triple {13237#true} main_#t~short16#1 := main_#t~short12#1; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 9: Hoare triple {13237#true} assume !main_#t~short16#1; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L272 TraceCheckUtils]: 10: Hoare triple {13237#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 11: Hoare triple {13237#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 12: Hoare triple {13237#true} assume true; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {13237#true} {13237#true} #133#return; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 14: Hoare triple {13237#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {13237#true} is VALID [2022-02-20 16:47:39,961 INFO L290 TraceCheckUtils]: 15: Hoare triple {13237#true} assume main_#t~short15#1; {13237#true} is VALID [2022-02-20 16:47:39,962 INFO L272 TraceCheckUtils]: 16: Hoare triple {13237#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {13237#true} is VALID [2022-02-20 16:47:39,962 INFO L290 TraceCheckUtils]: 17: Hoare triple {13237#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13293#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:39,963 INFO L290 TraceCheckUtils]: 18: Hoare triple {13293#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {13293#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:39,963 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {13293#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {13237#true} #135#return; {13300#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} is VALID [2022-02-20 16:47:39,964 INFO L290 TraceCheckUtils]: 20: Hoare triple {13300#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {13304#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:39,964 INFO L290 TraceCheckUtils]: 21: Hoare triple {13304#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} main_#t~short16#1 := main_#t~short15#1; {13308#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:39,964 INFO L290 TraceCheckUtils]: 22: Hoare triple {13308#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {13312#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:39,965 INFO L272 TraceCheckUtils]: 23: Hoare triple {13312#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {13237#true} is VALID [2022-02-20 16:47:39,965 INFO L290 TraceCheckUtils]: 24: Hoare triple {13237#true} ~x := #in~x;havoc ~w~0; {13237#true} is VALID [2022-02-20 16:47:39,965 INFO L290 TraceCheckUtils]: 25: Hoare triple {13237#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {13237#true} is VALID [2022-02-20 16:47:39,965 INFO L290 TraceCheckUtils]: 26: Hoare triple {13237#true} goto; {13237#true} is VALID [2022-02-20 16:47:39,965 INFO L290 TraceCheckUtils]: 27: Hoare triple {13237#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {13237#true} is VALID [2022-02-20 16:47:39,965 INFO L290 TraceCheckUtils]: 28: Hoare triple {13237#true} assume true; {13237#true} is VALID [2022-02-20 16:47:39,965 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {13237#true} {13312#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #137#return; {13312#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:39,966 INFO L290 TraceCheckUtils]: 30: Hoare triple {13312#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {13312#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:39,966 INFO L272 TraceCheckUtils]: 31: Hoare triple {13312#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {13237#true} is VALID [2022-02-20 16:47:39,966 INFO L290 TraceCheckUtils]: 32: Hoare triple {13237#true} ~x := #in~x;havoc ~w~0; {13343#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} is VALID [2022-02-20 16:47:39,972 INFO L290 TraceCheckUtils]: 33: Hoare triple {13343#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {13347#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:39,972 INFO L290 TraceCheckUtils]: 34: Hoare triple {13347#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} goto; {13347#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:39,973 INFO L290 TraceCheckUtils]: 35: Hoare triple {13347#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {13354#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:39,973 INFO L290 TraceCheckUtils]: 36: Hoare triple {13354#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} assume true; {13354#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:39,974 INFO L284 TraceCheckUtils]: 37: Hoare quadruple {13354#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} {13312#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #139#return; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 38: Hoare triple {13238#false} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 39: Hoare triple {13238#false} assume !~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~y#1; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 40: Hoare triple {13238#false} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 41: Hoare triple {13238#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L272 TraceCheckUtils]: 42: Hoare triple {13238#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 43: Hoare triple {13238#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 44: Hoare triple {13238#false} assume true; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L284 TraceCheckUtils]: 45: Hoare quadruple {13238#false} {13238#false} #141#return; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 46: Hoare triple {13238#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 47: Hoare triple {13238#false} assume !main_#t~short20#1; {13238#false} is VALID [2022-02-20 16:47:39,974 INFO L290 TraceCheckUtils]: 48: Hoare triple {13238#false} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L272 TraceCheckUtils]: 49: Hoare triple {13238#false} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 50: Hoare triple {13238#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 51: Hoare triple {13238#false} assume true; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L284 TraceCheckUtils]: 52: Hoare quadruple {13238#false} {13238#false} #145#return; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 53: Hoare triple {13238#false} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 54: Hoare triple {13238#false} assume main_#t~short23#1; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L272 TraceCheckUtils]: 55: Hoare triple {13238#false} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 56: Hoare triple {13238#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 57: Hoare triple {13238#false} assume true; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L284 TraceCheckUtils]: 58: Hoare quadruple {13238#false} {13238#false} #147#return; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 59: Hoare triple {13238#false} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 60: Hoare triple {13238#false} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L290 TraceCheckUtils]: 61: Hoare triple {13238#false} assume !false; {13238#false} is VALID [2022-02-20 16:47:39,975 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 36 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-02-20 16:47:39,976 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:39,976 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:39,976 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1483751183] [2022-02-20 16:47:39,976 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1483751183] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:39,976 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:39,976 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-02-20 16:47:39,976 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1949576248] [2022-02-20 16:47:39,976 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:39,976 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.0) internal successors, (40), 9 states have internal predecessors, (40), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 62 [2022-02-20 16:47:39,977 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:39,977 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 10 states, 10 states have (on average 4.0) internal successors, (40), 9 states have internal predecessors, (40), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:40,018 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:40,018 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-02-20 16:47:40,018 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:40,018 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-02-20 16:47:40,019 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=73, Unknown=0, NotChecked=0, Total=90 [2022-02-20 16:47:40,019 INFO L87 Difference]: Start difference. First operand 48 states and 58 transitions. Second operand has 10 states, 10 states have (on average 4.0) internal successors, (40), 9 states have internal predecessors, (40), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:41,039 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:41,039 INFO L93 Difference]: Finished difference Result 69 states and 81 transitions. [2022-02-20 16:47:41,039 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 16:47:41,040 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.0) internal successors, (40), 9 states have internal predecessors, (40), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 62 [2022-02-20 16:47:41,040 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:41,040 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.0) internal successors, (40), 9 states have internal predecessors, (40), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:41,041 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 78 transitions. [2022-02-20 16:47:41,041 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.0) internal successors, (40), 9 states have internal predecessors, (40), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:41,042 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 78 transitions. [2022-02-20 16:47:41,042 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 78 transitions. [2022-02-20 16:47:41,128 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:41,129 INFO L225 Difference]: With dead ends: 69 [2022-02-20 16:47:41,129 INFO L226 Difference]: Without dead ends: 50 [2022-02-20 16:47:41,129 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 66 GetRequests, 54 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=37, Invalid=145, Unknown=0, NotChecked=0, Total=182 [2022-02-20 16:47:41,130 INFO L933 BasicCegarLoop]: 34 mSDtfsCounter, 38 mSDsluCounter, 228 mSDsCounter, 0 mSdLazyCounter, 181 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 42 SdHoareTripleChecker+Valid, 262 SdHoareTripleChecker+Invalid, 181 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 181 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.6s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:41,130 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [42 Valid, 262 Invalid, 181 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 181 Invalid, 0 Unknown, 0 Unchecked, 0.6s Time] [2022-02-20 16:47:41,130 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2022-02-20 16:47:41,131 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 50. [2022-02-20 16:47:41,131 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:41,132 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:41,132 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:41,132 INFO L87 Difference]: Start difference. First operand 50 states. Second operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:41,132 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:41,133 INFO L93 Difference]: Finished difference Result 50 states and 60 transitions. [2022-02-20 16:47:41,133 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 60 transitions. [2022-02-20 16:47:41,133 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:41,133 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:41,133 INFO L74 IsIncluded]: Start isIncluded. First operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) Second operand 50 states. [2022-02-20 16:47:41,134 INFO L87 Difference]: Start difference. First operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) Second operand 50 states. [2022-02-20 16:47:41,135 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:41,135 INFO L93 Difference]: Finished difference Result 50 states and 60 transitions. [2022-02-20 16:47:41,135 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 60 transitions. [2022-02-20 16:47:41,135 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:41,135 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:41,135 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:41,135 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:41,136 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:41,136 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 60 transitions. [2022-02-20 16:47:41,136 INFO L78 Accepts]: Start accepts. Automaton has 50 states and 60 transitions. Word has length 62 [2022-02-20 16:47:41,136 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:41,137 INFO L470 AbstractCegarLoop]: Abstraction has 50 states and 60 transitions. [2022-02-20 16:47:41,137 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 10 states have (on average 4.0) internal successors, (40), 9 states have internal predecessors, (40), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:41,137 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 60 transitions. [2022-02-20 16:47:41,137 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 64 [2022-02-20 16:47:41,137 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:41,138 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:41,152 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (26)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:41,346 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 26 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:41,346 INFO L402 AbstractCegarLoop]: === Iteration 25 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:41,346 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:41,347 INFO L85 PathProgramCache]: Analyzing trace with hash 647887735, now seen corresponding path program 1 times [2022-02-20 16:47:41,347 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:41,347 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [592658303] [2022-02-20 16:47:41,347 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:41,347 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:41,347 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:41,348 INFO L229 MonitoredProcess]: Starting monitored process 27 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:41,348 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (27)] Waiting until timeout for monitored process [2022-02-20 16:47:41,420 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:41,423 INFO L263 TraceCheckSpWp]: Trace formula consists of 138 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:47:41,433 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:41,435 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:41,728 INFO L290 TraceCheckUtils]: 0: Hoare triple {13689#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {13689#true} is VALID [2022-02-20 16:47:41,728 INFO L290 TraceCheckUtils]: 1: Hoare triple {13689#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {13689#true} is VALID [2022-02-20 16:47:41,728 INFO L272 TraceCheckUtils]: 2: Hoare triple {13689#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {13689#true} is VALID [2022-02-20 16:47:41,728 INFO L290 TraceCheckUtils]: 3: Hoare triple {13689#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13689#true} is VALID [2022-02-20 16:47:41,728 INFO L290 TraceCheckUtils]: 4: Hoare triple {13689#true} assume true; {13689#true} is VALID [2022-02-20 16:47:41,728 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {13689#true} {13689#true} #129#return; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L290 TraceCheckUtils]: 6: Hoare triple {13689#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L290 TraceCheckUtils]: 7: Hoare triple {13689#true} assume !main_#t~short12#1; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L290 TraceCheckUtils]: 8: Hoare triple {13689#true} main_#t~short16#1 := main_#t~short12#1; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L290 TraceCheckUtils]: 9: Hoare triple {13689#true} assume !main_#t~short16#1; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L272 TraceCheckUtils]: 10: Hoare triple {13689#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L290 TraceCheckUtils]: 11: Hoare triple {13689#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L290 TraceCheckUtils]: 12: Hoare triple {13689#true} assume true; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {13689#true} {13689#true} #133#return; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L290 TraceCheckUtils]: 14: Hoare triple {13689#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L290 TraceCheckUtils]: 15: Hoare triple {13689#true} assume main_#t~short15#1; {13689#true} is VALID [2022-02-20 16:47:41,729 INFO L272 TraceCheckUtils]: 16: Hoare triple {13689#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {13689#true} is VALID [2022-02-20 16:47:41,730 INFO L290 TraceCheckUtils]: 17: Hoare triple {13689#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13745#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:41,730 INFO L290 TraceCheckUtils]: 18: Hoare triple {13745#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {13745#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:41,731 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {13745#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {13689#true} #135#return; {13752#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} is VALID [2022-02-20 16:47:41,731 INFO L290 TraceCheckUtils]: 20: Hoare triple {13752#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {13756#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:41,732 INFO L290 TraceCheckUtils]: 21: Hoare triple {13756#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} main_#t~short16#1 := main_#t~short15#1; {13760#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:41,732 INFO L290 TraceCheckUtils]: 22: Hoare triple {13760#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {13764#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:41,732 INFO L272 TraceCheckUtils]: 23: Hoare triple {13764#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {13689#true} is VALID [2022-02-20 16:47:41,732 INFO L290 TraceCheckUtils]: 24: Hoare triple {13689#true} ~x := #in~x;havoc ~w~0; {13689#true} is VALID [2022-02-20 16:47:41,732 INFO L290 TraceCheckUtils]: 25: Hoare triple {13689#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {13689#true} is VALID [2022-02-20 16:47:41,732 INFO L290 TraceCheckUtils]: 26: Hoare triple {13689#true} goto; {13689#true} is VALID [2022-02-20 16:47:41,732 INFO L290 TraceCheckUtils]: 27: Hoare triple {13689#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {13689#true} is VALID [2022-02-20 16:47:41,732 INFO L290 TraceCheckUtils]: 28: Hoare triple {13689#true} assume true; {13689#true} is VALID [2022-02-20 16:47:41,733 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {13689#true} {13764#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #137#return; {13764#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:41,733 INFO L290 TraceCheckUtils]: 30: Hoare triple {13764#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {13764#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:41,733 INFO L272 TraceCheckUtils]: 31: Hoare triple {13764#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {13689#true} is VALID [2022-02-20 16:47:41,733 INFO L290 TraceCheckUtils]: 32: Hoare triple {13689#true} ~x := #in~x;havoc ~w~0; {13795#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} is VALID [2022-02-20 16:47:41,739 INFO L290 TraceCheckUtils]: 33: Hoare triple {13795#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {13799#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:41,739 INFO L290 TraceCheckUtils]: 34: Hoare triple {13799#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} goto; {13799#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:41,739 INFO L290 TraceCheckUtils]: 35: Hoare triple {13799#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {13799#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:41,740 INFO L290 TraceCheckUtils]: 36: Hoare triple {13799#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume (~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32));#res := 4bv32; {13809#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (and (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))))))} is VALID [2022-02-20 16:47:41,741 INFO L290 TraceCheckUtils]: 37: Hoare triple {13809#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (and (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))))))} assume true; {13809#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (and (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))))))} is VALID [2022-02-20 16:47:41,742 INFO L284 TraceCheckUtils]: 38: Hoare quadruple {13809#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0))) (or (and (bvule __fpclassify_float_~w~0 (_ bv4286578687 32)) (bvuge __fpclassify_float_~w~0 (_ bv2155872256 32))) (and (bvule __fpclassify_float_~w~0 (_ bv2139095039 32)) (bvuge __fpclassify_float_~w~0 (_ bv8388608 32))))))} {13764#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #139#return; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 39: Hoare triple {13690#false} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 40: Hoare triple {13690#false} assume !~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~y#1; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 41: Hoare triple {13690#false} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 42: Hoare triple {13690#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L272 TraceCheckUtils]: 43: Hoare triple {13690#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 44: Hoare triple {13690#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 45: Hoare triple {13690#false} assume true; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {13690#false} {13690#false} #141#return; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 47: Hoare triple {13690#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 48: Hoare triple {13690#false} assume !main_#t~short20#1; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 49: Hoare triple {13690#false} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L272 TraceCheckUtils]: 50: Hoare triple {13690#false} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 51: Hoare triple {13690#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L290 TraceCheckUtils]: 52: Hoare triple {13690#false} assume true; {13690#false} is VALID [2022-02-20 16:47:41,742 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {13690#false} {13690#false} #145#return; {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L290 TraceCheckUtils]: 54: Hoare triple {13690#false} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L290 TraceCheckUtils]: 55: Hoare triple {13690#false} assume main_#t~short23#1; {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L272 TraceCheckUtils]: 56: Hoare triple {13690#false} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L290 TraceCheckUtils]: 57: Hoare triple {13690#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L290 TraceCheckUtils]: 58: Hoare triple {13690#false} assume true; {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {13690#false} {13690#false} #147#return; {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L290 TraceCheckUtils]: 60: Hoare triple {13690#false} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L290 TraceCheckUtils]: 61: Hoare triple {13690#false} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L290 TraceCheckUtils]: 62: Hoare triple {13690#false} assume !false; {13690#false} is VALID [2022-02-20 16:47:41,743 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 36 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-02-20 16:47:41,743 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:41,743 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:41,743 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [592658303] [2022-02-20 16:47:41,744 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [592658303] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:41,744 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:41,744 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-02-20 16:47:41,744 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [355264668] [2022-02-20 16:47:41,744 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:41,744 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.1) internal successors, (41), 9 states have internal predecessors, (41), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 63 [2022-02-20 16:47:41,744 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:41,744 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 10 states, 10 states have (on average 4.1) internal successors, (41), 9 states have internal predecessors, (41), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:41,789 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:41,789 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-02-20 16:47:41,789 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:41,789 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-02-20 16:47:41,789 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=73, Unknown=0, NotChecked=0, Total=90 [2022-02-20 16:47:41,790 INFO L87 Difference]: Start difference. First operand 50 states and 60 transitions. Second operand has 10 states, 10 states have (on average 4.1) internal successors, (41), 9 states have internal predecessors, (41), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:42,687 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:42,688 INFO L93 Difference]: Finished difference Result 71 states and 83 transitions. [2022-02-20 16:47:42,688 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 16:47:42,688 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.1) internal successors, (41), 9 states have internal predecessors, (41), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 63 [2022-02-20 16:47:42,688 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:42,688 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.1) internal successors, (41), 9 states have internal predecessors, (41), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:42,689 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 78 transitions. [2022-02-20 16:47:42,689 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.1) internal successors, (41), 9 states have internal predecessors, (41), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:42,690 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 78 transitions. [2022-02-20 16:47:42,690 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 78 transitions. [2022-02-20 16:47:42,760 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:42,760 INFO L225 Difference]: With dead ends: 71 [2022-02-20 16:47:42,761 INFO L226 Difference]: Without dead ends: 52 [2022-02-20 16:47:42,761 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 68 GetRequests, 56 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=37, Invalid=145, Unknown=0, NotChecked=0, Total=182 [2022-02-20 16:47:42,761 INFO L933 BasicCegarLoop]: 35 mSDtfsCounter, 35 mSDsluCounter, 233 mSDsCounter, 0 mSdLazyCounter, 158 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 39 SdHoareTripleChecker+Valid, 268 SdHoareTripleChecker+Invalid, 182 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 158 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 24 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:42,761 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [39 Valid, 268 Invalid, 182 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 158 Invalid, 0 Unknown, 24 Unchecked, 0.4s Time] [2022-02-20 16:47:42,762 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2022-02-20 16:47:42,763 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 50. [2022-02-20 16:47:42,763 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:42,763 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:42,763 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:42,763 INFO L87 Difference]: Start difference. First operand 52 states. Second operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:42,764 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:42,764 INFO L93 Difference]: Finished difference Result 52 states and 62 transitions. [2022-02-20 16:47:42,764 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 62 transitions. [2022-02-20 16:47:42,765 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:42,765 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:42,765 INFO L74 IsIncluded]: Start isIncluded. First operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) Second operand 52 states. [2022-02-20 16:47:42,765 INFO L87 Difference]: Start difference. First operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) Second operand 52 states. [2022-02-20 16:47:42,766 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:42,766 INFO L93 Difference]: Finished difference Result 52 states and 62 transitions. [2022-02-20 16:47:42,766 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 62 transitions. [2022-02-20 16:47:42,766 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:42,766 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:42,766 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:42,766 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:42,767 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 50 states, 37 states have (on average 1.135135135135135) internal successors, (42), 38 states have internal predecessors, (42), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 9 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:42,767 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 50 states to 50 states and 60 transitions. [2022-02-20 16:47:42,767 INFO L78 Accepts]: Start accepts. Automaton has 50 states and 60 transitions. Word has length 63 [2022-02-20 16:47:42,767 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:42,768 INFO L470 AbstractCegarLoop]: Abstraction has 50 states and 60 transitions. [2022-02-20 16:47:42,768 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 10 states have (on average 4.1) internal successors, (41), 9 states have internal predecessors, (41), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:42,768 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 60 transitions. [2022-02-20 16:47:42,768 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 64 [2022-02-20 16:47:42,768 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:42,768 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:42,776 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (27)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:42,976 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 27 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:42,976 INFO L402 AbstractCegarLoop]: === Iteration 26 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:42,977 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:42,977 INFO L85 PathProgramCache]: Analyzing trace with hash -589254976, now seen corresponding path program 1 times [2022-02-20 16:47:42,977 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:42,977 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [2028702139] [2022-02-20 16:47:42,977 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:42,977 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:42,977 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:42,979 INFO L229 MonitoredProcess]: Starting monitored process 28 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:42,980 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (28)] Waiting until timeout for monitored process [2022-02-20 16:47:43,038 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:43,040 INFO L263 TraceCheckSpWp]: Trace formula consists of 141 conjuncts, 13 conjunts are in the unsatisfiable core [2022-02-20 16:47:43,056 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:43,057 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 0: Hoare triple {14151#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 1: Hoare triple {14151#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L272 TraceCheckUtils]: 2: Hoare triple {14151#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 3: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 4: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {14151#true} {14151#true} #129#return; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 6: Hoare triple {14151#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 7: Hoare triple {14151#true} assume !main_#t~short12#1; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 8: Hoare triple {14151#true} main_#t~short16#1 := main_#t~short12#1; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 9: Hoare triple {14151#true} assume !main_#t~short16#1; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L272 TraceCheckUtils]: 10: Hoare triple {14151#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 11: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 12: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {14151#true} {14151#true} #133#return; {14151#true} is VALID [2022-02-20 16:47:43,473 INFO L290 TraceCheckUtils]: 14: Hoare triple {14151#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {14151#true} is VALID [2022-02-20 16:47:43,474 INFO L290 TraceCheckUtils]: 15: Hoare triple {14151#true} assume main_#t~short15#1; {14151#true} is VALID [2022-02-20 16:47:43,474 INFO L272 TraceCheckUtils]: 16: Hoare triple {14151#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {14151#true} is VALID [2022-02-20 16:47:43,474 INFO L290 TraceCheckUtils]: 17: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,474 INFO L290 TraceCheckUtils]: 18: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,474 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {14151#true} {14151#true} #135#return; {14151#true} is VALID [2022-02-20 16:47:43,474 INFO L290 TraceCheckUtils]: 20: Hoare triple {14151#true} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {14151#true} is VALID [2022-02-20 16:47:43,474 INFO L290 TraceCheckUtils]: 21: Hoare triple {14151#true} main_#t~short16#1 := main_#t~short15#1; {14151#true} is VALID [2022-02-20 16:47:43,474 INFO L290 TraceCheckUtils]: 22: Hoare triple {14151#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {14222#(= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,474 INFO L272 TraceCheckUtils]: 23: Hoare triple {14222#(= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {14151#true} is VALID [2022-02-20 16:47:43,475 INFO L290 TraceCheckUtils]: 24: Hoare triple {14151#true} ~x := #in~x;havoc ~w~0; {14229#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} is VALID [2022-02-20 16:47:43,480 INFO L290 TraceCheckUtils]: 25: Hoare triple {14229#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {14233#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:43,480 INFO L290 TraceCheckUtils]: 26: Hoare triple {14233#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} goto; {14233#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:43,481 INFO L290 TraceCheckUtils]: 27: Hoare triple {14233#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {14240#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:43,481 INFO L290 TraceCheckUtils]: 28: Hoare triple {14240#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} assume true; {14240#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:43,482 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {14240#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} {14222#(= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} #137#return; {14247#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|) (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 30: Hoare triple {14247#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|) (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {14247#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|) (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,483 INFO L272 TraceCheckUtils]: 31: Hoare triple {14247#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|) (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {14151#true} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 32: Hoare triple {14151#true} ~x := #in~x;havoc ~w~0; {14151#true} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 33: Hoare triple {14151#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {14151#true} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 34: Hoare triple {14151#true} goto; {14151#true} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 35: Hoare triple {14151#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {14151#true} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 36: Hoare triple {14151#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {14151#true} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 37: Hoare triple {14151#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {14151#true} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 38: Hoare triple {14151#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {14151#true} is VALID [2022-02-20 16:47:43,483 INFO L290 TraceCheckUtils]: 39: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,484 INFO L284 TraceCheckUtils]: 40: Hoare quadruple {14151#true} {14247#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|) (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} #139#return; {14247#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|) (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,484 INFO L290 TraceCheckUtils]: 41: Hoare triple {14247#(and (or (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|) (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {14284#(and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|) (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:43,485 INFO L290 TraceCheckUtils]: 42: Hoare triple {14284#(and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|) (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,485 INFO L272 TraceCheckUtils]: 43: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {14151#true} is VALID [2022-02-20 16:47:43,485 INFO L290 TraceCheckUtils]: 44: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,485 INFO L290 TraceCheckUtils]: 45: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,485 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {14151#true} {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} #141#return; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,486 INFO L290 TraceCheckUtils]: 47: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,486 INFO L290 TraceCheckUtils]: 48: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !main_#t~short20#1; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,487 INFO L290 TraceCheckUtils]: 49: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,487 INFO L272 TraceCheckUtils]: 50: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {14151#true} is VALID [2022-02-20 16:47:43,487 INFO L290 TraceCheckUtils]: 51: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,487 INFO L290 TraceCheckUtils]: 52: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,488 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {14151#true} {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} #145#return; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,488 INFO L290 TraceCheckUtils]: 54: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,489 INFO L290 TraceCheckUtils]: 55: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short23#1; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,489 INFO L272 TraceCheckUtils]: 56: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {14151#true} is VALID [2022-02-20 16:47:43,489 INFO L290 TraceCheckUtils]: 57: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,489 INFO L290 TraceCheckUtils]: 58: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,489 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {14151#true} {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} #147#return; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,490 INFO L290 TraceCheckUtils]: 60: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:43,490 INFO L290 TraceCheckUtils]: 61: Hoare triple {14288#(and (or (= |ULTIMATE.start_main_~x~0#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {14152#false} is VALID [2022-02-20 16:47:43,490 INFO L290 TraceCheckUtils]: 62: Hoare triple {14152#false} assume !false; {14152#false} is VALID [2022-02-20 16:47:43,491 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 46 trivial. 0 not checked. [2022-02-20 16:47:43,491 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:43,916 INFO L290 TraceCheckUtils]: 62: Hoare triple {14152#false} assume !false; {14152#false} is VALID [2022-02-20 16:47:43,917 INFO L290 TraceCheckUtils]: 61: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {14152#false} is VALID [2022-02-20 16:47:43,917 INFO L290 TraceCheckUtils]: 60: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,917 INFO L284 TraceCheckUtils]: 59: Hoare quadruple {14151#true} {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} #147#return; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,917 INFO L290 TraceCheckUtils]: 58: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,917 INFO L290 TraceCheckUtils]: 57: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,918 INFO L272 TraceCheckUtils]: 56: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {14151#true} is VALID [2022-02-20 16:47:43,918 INFO L290 TraceCheckUtils]: 55: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short23#1; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,918 INFO L290 TraceCheckUtils]: 54: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,918 INFO L284 TraceCheckUtils]: 53: Hoare quadruple {14151#true} {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} #145#return; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,919 INFO L290 TraceCheckUtils]: 52: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,919 INFO L290 TraceCheckUtils]: 51: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,919 INFO L272 TraceCheckUtils]: 50: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {14151#true} is VALID [2022-02-20 16:47:43,919 INFO L290 TraceCheckUtils]: 49: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,919 INFO L290 TraceCheckUtils]: 48: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short20#1; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,919 INFO L290 TraceCheckUtils]: 47: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,920 INFO L284 TraceCheckUtils]: 46: Hoare quadruple {14151#true} {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} #141#return; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,920 INFO L290 TraceCheckUtils]: 45: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,920 INFO L290 TraceCheckUtils]: 44: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,920 INFO L272 TraceCheckUtils]: 43: Hoare triple {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {14151#true} is VALID [2022-02-20 16:47:43,920 INFO L290 TraceCheckUtils]: 42: Hoare triple {14410#(fp.eq |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {14352#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,921 INFO L290 TraceCheckUtils]: 41: Hoare triple {14414#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {14410#(fp.eq |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,921 INFO L284 TraceCheckUtils]: 40: Hoare quadruple {14151#true} {14414#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} #139#return; {14414#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,921 INFO L290 TraceCheckUtils]: 39: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,921 INFO L290 TraceCheckUtils]: 38: Hoare triple {14151#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {14151#true} is VALID [2022-02-20 16:47:43,921 INFO L290 TraceCheckUtils]: 37: Hoare triple {14151#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {14151#true} is VALID [2022-02-20 16:47:43,921 INFO L290 TraceCheckUtils]: 36: Hoare triple {14151#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {14151#true} is VALID [2022-02-20 16:47:43,921 INFO L290 TraceCheckUtils]: 35: Hoare triple {14151#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {14151#true} is VALID [2022-02-20 16:47:43,921 INFO L290 TraceCheckUtils]: 34: Hoare triple {14151#true} goto; {14151#true} is VALID [2022-02-20 16:47:43,921 INFO L290 TraceCheckUtils]: 33: Hoare triple {14151#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {14151#true} is VALID [2022-02-20 16:47:43,922 INFO L290 TraceCheckUtils]: 32: Hoare triple {14151#true} ~x := #in~x;havoc ~w~0; {14151#true} is VALID [2022-02-20 16:47:43,922 INFO L272 TraceCheckUtils]: 31: Hoare triple {14414#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {14151#true} is VALID [2022-02-20 16:47:43,922 INFO L290 TraceCheckUtils]: 30: Hoare triple {14414#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {14414#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,923 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {14240#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} {14451#(or (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (and (not (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (not (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|))))} #137#return; {14414#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:43,923 INFO L290 TraceCheckUtils]: 28: Hoare triple {14240#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} assume true; {14240#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:43,924 INFO L290 TraceCheckUtils]: 27: Hoare triple {14461#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32)))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {14240#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:43,924 INFO L290 TraceCheckUtils]: 26: Hoare triple {14461#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32)))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} goto; {14461#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32)))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:43,926 INFO L290 TraceCheckUtils]: 25: Hoare triple {14468#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (and (not (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) __fpclassify_float_~x)) (not (= __fpclassify_float_~x (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {14461#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (and (not (= (_ bv0 32) __fpclassify_float_~w~0)) (not (= __fpclassify_float_~w~0 (_ bv2147483648 32)))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:43,926 INFO L290 TraceCheckUtils]: 24: Hoare triple {14151#true} ~x := #in~x;havoc ~w~0; {14468#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))) (and (not (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) __fpclassify_float_~x)) (not (= __fpclassify_float_~x (fp (_ bv0 1) (_ bv0 8) (_ bv0 23))))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv0 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:43,927 INFO L272 TraceCheckUtils]: 23: Hoare triple {14451#(or (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (and (not (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (not (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|))))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {14151#true} is VALID [2022-02-20 16:47:43,927 INFO L290 TraceCheckUtils]: 22: Hoare triple {14151#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {14451#(or (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (and (not (= |ULTIMATE.start_fmax_float_~x#1| (fp (_ bv0 1) (_ bv0 8) (_ bv0 23)))) (not (= (fp (_ bv1 1) (_ bv0 8) (_ bv0 23)) |ULTIMATE.start_fmax_float_~x#1|))))} is VALID [2022-02-20 16:47:43,927 INFO L290 TraceCheckUtils]: 21: Hoare triple {14151#true} main_#t~short16#1 := main_#t~short15#1; {14151#true} is VALID [2022-02-20 16:47:43,927 INFO L290 TraceCheckUtils]: 20: Hoare triple {14151#true} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {14151#true} {14151#true} #135#return; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 18: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 17: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L272 TraceCheckUtils]: 16: Hoare triple {14151#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 15: Hoare triple {14151#true} assume main_#t~short15#1; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 14: Hoare triple {14151#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {14151#true} {14151#true} #133#return; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 12: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 11: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L272 TraceCheckUtils]: 10: Hoare triple {14151#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 9: Hoare triple {14151#true} assume !main_#t~short16#1; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 8: Hoare triple {14151#true} main_#t~short16#1 := main_#t~short12#1; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 7: Hoare triple {14151#true} assume !main_#t~short12#1; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 6: Hoare triple {14151#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {14151#true} {14151#true} #129#return; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 4: Hoare triple {14151#true} assume true; {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 3: Hoare triple {14151#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L272 TraceCheckUtils]: 2: Hoare triple {14151#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {14151#true} is VALID [2022-02-20 16:47:43,928 INFO L290 TraceCheckUtils]: 1: Hoare triple {14151#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {14151#true} is VALID [2022-02-20 16:47:43,929 INFO L290 TraceCheckUtils]: 0: Hoare triple {14151#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {14151#true} is VALID [2022-02-20 16:47:43,929 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 46 trivial. 0 not checked. [2022-02-20 16:47:43,929 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:43,929 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [2028702139] [2022-02-20 16:47:43,929 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [2028702139] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:43,929 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:43,929 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 15 [2022-02-20 16:47:43,929 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1581952321] [2022-02-20 16:47:43,929 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:43,930 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 13 states have (on average 4.0) internal successors, (52), 15 states have internal predecessors, (52), 7 states have call successors, (13), 1 states have call predecessors, (13), 2 states have return successors, (13), 5 states have call predecessors, (13), 7 states have call successors, (13) Word has length 63 [2022-02-20 16:47:43,930 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:43,930 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 15 states, 13 states have (on average 4.0) internal successors, (52), 15 states have internal predecessors, (52), 7 states have call successors, (13), 1 states have call predecessors, (13), 2 states have return successors, (13), 5 states have call predecessors, (13), 7 states have call successors, (13) [2022-02-20 16:47:44,007 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:44,008 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-02-20 16:47:44,008 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:44,008 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-02-20 16:47:44,008 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=40, Invalid=170, Unknown=0, NotChecked=0, Total=210 [2022-02-20 16:47:44,008 INFO L87 Difference]: Start difference. First operand 50 states and 60 transitions. Second operand has 15 states, 13 states have (on average 4.0) internal successors, (52), 15 states have internal predecessors, (52), 7 states have call successors, (13), 1 states have call predecessors, (13), 2 states have return successors, (13), 5 states have call predecessors, (13), 7 states have call successors, (13) [2022-02-20 16:47:45,449 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:45,450 INFO L93 Difference]: Finished difference Result 84 states and 101 transitions. [2022-02-20 16:47:45,450 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2022-02-20 16:47:45,450 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 13 states have (on average 4.0) internal successors, (52), 15 states have internal predecessors, (52), 7 states have call successors, (13), 1 states have call predecessors, (13), 2 states have return successors, (13), 5 states have call predecessors, (13), 7 states have call successors, (13) Word has length 63 [2022-02-20 16:47:45,450 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:45,450 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 13 states have (on average 4.0) internal successors, (52), 15 states have internal predecessors, (52), 7 states have call successors, (13), 1 states have call predecessors, (13), 2 states have return successors, (13), 5 states have call predecessors, (13), 7 states have call successors, (13) [2022-02-20 16:47:45,451 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 94 transitions. [2022-02-20 16:47:45,451 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 13 states have (on average 4.0) internal successors, (52), 15 states have internal predecessors, (52), 7 states have call successors, (13), 1 states have call predecessors, (13), 2 states have return successors, (13), 5 states have call predecessors, (13), 7 states have call successors, (13) [2022-02-20 16:47:45,452 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 94 transitions. [2022-02-20 16:47:45,452 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 94 transitions. [2022-02-20 16:47:45,540 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:45,541 INFO L225 Difference]: With dead ends: 84 [2022-02-20 16:47:45,541 INFO L226 Difference]: Without dead ends: 71 [2022-02-20 16:47:45,541 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 130 GetRequests, 112 SyntacticMatches, 1 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 29 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=73, Invalid=269, Unknown=0, NotChecked=0, Total=342 [2022-02-20 16:47:45,542 INFO L933 BasicCegarLoop]: 55 mSDtfsCounter, 77 mSDsluCounter, 441 mSDsCounter, 0 mSdLazyCounter, 191 mSolverCounterSat, 16 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.6s Time, 0 mProtectedPredicate, 0 mProtectedAction, 86 SdHoareTripleChecker+Valid, 496 SdHoareTripleChecker+Invalid, 207 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 16 IncrementalHoareTripleChecker+Valid, 191 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.6s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:45,542 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [86 Valid, 496 Invalid, 207 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [16 Valid, 191 Invalid, 0 Unknown, 0 Unchecked, 0.6s Time] [2022-02-20 16:47:45,542 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 71 states. [2022-02-20 16:47:45,544 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 71 to 54. [2022-02-20 16:47:45,544 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:45,544 INFO L82 GeneralOperation]: Start isEquivalent. First operand 71 states. Second operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) [2022-02-20 16:47:45,544 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) [2022-02-20 16:47:45,545 INFO L87 Difference]: Start difference. First operand 71 states. Second operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) [2022-02-20 16:47:45,545 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:45,546 INFO L93 Difference]: Finished difference Result 71 states and 85 transitions. [2022-02-20 16:47:45,546 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 85 transitions. [2022-02-20 16:47:45,546 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:45,546 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:45,546 INFO L74 IsIncluded]: Start isIncluded. First operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) Second operand 71 states. [2022-02-20 16:47:45,546 INFO L87 Difference]: Start difference. First operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) Second operand 71 states. [2022-02-20 16:47:45,547 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:45,547 INFO L93 Difference]: Finished difference Result 71 states and 85 transitions. [2022-02-20 16:47:45,547 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 85 transitions. [2022-02-20 16:47:45,547 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:45,547 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:45,547 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:45,547 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:45,547 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) [2022-02-20 16:47:45,548 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 66 transitions. [2022-02-20 16:47:45,549 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 66 transitions. Word has length 63 [2022-02-20 16:47:45,549 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:45,549 INFO L470 AbstractCegarLoop]: Abstraction has 54 states and 66 transitions. [2022-02-20 16:47:45,549 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 13 states have (on average 4.0) internal successors, (52), 15 states have internal predecessors, (52), 7 states have call successors, (13), 1 states have call predecessors, (13), 2 states have return successors, (13), 5 states have call predecessors, (13), 7 states have call successors, (13) [2022-02-20 16:47:45,549 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 66 transitions. [2022-02-20 16:47:45,549 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-02-20 16:47:45,549 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:45,550 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:45,559 INFO L552 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (28)] Ended with exit code 0 [2022-02-20 16:47:45,757 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 28 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:45,757 INFO L402 AbstractCegarLoop]: === Iteration 27 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:45,757 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:45,758 INFO L85 PathProgramCache]: Analyzing trace with hash -472199073, now seen corresponding path program 1 times [2022-02-20 16:47:45,758 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:45,758 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [2028696331] [2022-02-20 16:47:45,758 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:45,758 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:45,758 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:45,760 INFO L229 MonitoredProcess]: Starting monitored process 29 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:45,763 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (29)] Waiting until timeout for monitored process [2022-02-20 16:47:45,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:45,821 INFO L263 TraceCheckSpWp]: Trace formula consists of 140 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:47:45,835 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:45,836 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:46,116 INFO L290 TraceCheckUtils]: 0: Hoare triple {14864#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {14864#true} is VALID [2022-02-20 16:47:46,116 INFO L290 TraceCheckUtils]: 1: Hoare triple {14864#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L272 TraceCheckUtils]: 2: Hoare triple {14864#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 3: Hoare triple {14864#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 4: Hoare triple {14864#true} assume true; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {14864#true} {14864#true} #129#return; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 6: Hoare triple {14864#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 7: Hoare triple {14864#true} assume !main_#t~short12#1; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 8: Hoare triple {14864#true} main_#t~short16#1 := main_#t~short12#1; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 9: Hoare triple {14864#true} assume !main_#t~short16#1; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L272 TraceCheckUtils]: 10: Hoare triple {14864#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 11: Hoare triple {14864#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 12: Hoare triple {14864#true} assume true; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {14864#true} {14864#true} #133#return; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 14: Hoare triple {14864#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L290 TraceCheckUtils]: 15: Hoare triple {14864#true} assume main_#t~short15#1; {14864#true} is VALID [2022-02-20 16:47:46,117 INFO L272 TraceCheckUtils]: 16: Hoare triple {14864#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {14864#true} is VALID [2022-02-20 16:47:46,118 INFO L290 TraceCheckUtils]: 17: Hoare triple {14864#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14920#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:46,118 INFO L290 TraceCheckUtils]: 18: Hoare triple {14920#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {14920#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:46,119 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {14920#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {14864#true} #135#return; {14927#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} is VALID [2022-02-20 16:47:46,119 INFO L290 TraceCheckUtils]: 20: Hoare triple {14927#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {14931#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:46,120 INFO L290 TraceCheckUtils]: 21: Hoare triple {14931#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} main_#t~short16#1 := main_#t~short15#1; {14935#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:46,120 INFO L290 TraceCheckUtils]: 22: Hoare triple {14935#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {14939#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:46,120 INFO L272 TraceCheckUtils]: 23: Hoare triple {14939#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {14864#true} is VALID [2022-02-20 16:47:46,120 INFO L290 TraceCheckUtils]: 24: Hoare triple {14864#true} ~x := #in~x;havoc ~w~0; {14864#true} is VALID [2022-02-20 16:47:46,121 INFO L290 TraceCheckUtils]: 25: Hoare triple {14864#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {14864#true} is VALID [2022-02-20 16:47:46,121 INFO L290 TraceCheckUtils]: 26: Hoare triple {14864#true} goto; {14864#true} is VALID [2022-02-20 16:47:46,121 INFO L290 TraceCheckUtils]: 27: Hoare triple {14864#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {14864#true} is VALID [2022-02-20 16:47:46,121 INFO L290 TraceCheckUtils]: 28: Hoare triple {14864#true} assume true; {14864#true} is VALID [2022-02-20 16:47:46,121 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {14864#true} {14939#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #137#return; {14939#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:46,121 INFO L290 TraceCheckUtils]: 30: Hoare triple {14939#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {14939#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:46,121 INFO L272 TraceCheckUtils]: 31: Hoare triple {14939#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {14864#true} is VALID [2022-02-20 16:47:46,122 INFO L290 TraceCheckUtils]: 32: Hoare triple {14864#true} ~x := #in~x;havoc ~w~0; {14970#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} is VALID [2022-02-20 16:47:46,129 INFO L290 TraceCheckUtils]: 33: Hoare triple {14970#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {14974#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:46,129 INFO L290 TraceCheckUtils]: 34: Hoare triple {14974#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} goto; {14974#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:46,129 INFO L290 TraceCheckUtils]: 35: Hoare triple {14974#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {14974#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:46,130 INFO L290 TraceCheckUtils]: 36: Hoare triple {14974#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {14974#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:46,131 INFO L290 TraceCheckUtils]: 37: Hoare triple {14974#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume (~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32));#res := 3bv32; {14987#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (or (and (bvule __fpclassify_float_~w~0 (_ bv8388607 32)) (bvuge __fpclassify_float_~w~0 (_ bv1 32))) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32)))) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))))} is VALID [2022-02-20 16:47:46,132 INFO L290 TraceCheckUtils]: 38: Hoare triple {14987#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (or (and (bvule __fpclassify_float_~w~0 (_ bv8388607 32)) (bvuge __fpclassify_float_~w~0 (_ bv1 32))) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32)))) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))))} assume true; {14987#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (or (and (bvule __fpclassify_float_~w~0 (_ bv8388607 32)) (bvuge __fpclassify_float_~w~0 (_ bv1 32))) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32)))) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))))} is VALID [2022-02-20 16:47:46,133 INFO L284 TraceCheckUtils]: 39: Hoare quadruple {14987#(exists ((__fpclassify_float_~w~0 (_ BitVec 32))) (and (or (and (bvule __fpclassify_float_~w~0 (_ bv8388607 32)) (bvuge __fpclassify_float_~w~0 (_ bv1 32))) (and (bvuge __fpclassify_float_~w~0 (_ bv2147483649 32)) (bvule __fpclassify_float_~w~0 (_ bv2155872255 32)))) (= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))))} {14939#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #139#return; {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L290 TraceCheckUtils]: 40: Hoare triple {14865#false} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L290 TraceCheckUtils]: 41: Hoare triple {14865#false} assume !~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~y#1; {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L290 TraceCheckUtils]: 42: Hoare triple {14865#false} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L290 TraceCheckUtils]: 43: Hoare triple {14865#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L272 TraceCheckUtils]: 44: Hoare triple {14865#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L290 TraceCheckUtils]: 45: Hoare triple {14865#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L290 TraceCheckUtils]: 46: Hoare triple {14865#false} assume true; {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L284 TraceCheckUtils]: 47: Hoare quadruple {14865#false} {14865#false} #141#return; {14865#false} is VALID [2022-02-20 16:47:46,133 INFO L290 TraceCheckUtils]: 48: Hoare triple {14865#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 49: Hoare triple {14865#false} assume !main_#t~short20#1; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 50: Hoare triple {14865#false} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L272 TraceCheckUtils]: 51: Hoare triple {14865#false} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 52: Hoare triple {14865#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 53: Hoare triple {14865#false} assume true; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {14865#false} {14865#false} #145#return; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 55: Hoare triple {14865#false} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 56: Hoare triple {14865#false} assume main_#t~short23#1; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L272 TraceCheckUtils]: 57: Hoare triple {14865#false} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 58: Hoare triple {14865#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 59: Hoare triple {14865#false} assume true; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {14865#false} {14865#false} #147#return; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 61: Hoare triple {14865#false} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 62: Hoare triple {14865#false} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {14865#false} is VALID [2022-02-20 16:47:46,134 INFO L290 TraceCheckUtils]: 63: Hoare triple {14865#false} assume !false; {14865#false} is VALID [2022-02-20 16:47:46,135 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 36 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-02-20 16:47:46,135 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:46,135 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:46,135 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [2028696331] [2022-02-20 16:47:46,135 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [2028696331] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:46,135 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:46,135 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-02-20 16:47:46,135 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1614802740] [2022-02-20 16:47:46,135 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:46,135 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 64 [2022-02-20 16:47:46,136 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:46,136 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:46,187 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:46,187 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-02-20 16:47:46,187 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:46,188 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-02-20 16:47:46,188 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=73, Unknown=0, NotChecked=0, Total=90 [2022-02-20 16:47:46,188 INFO L87 Difference]: Start difference. First operand 54 states and 66 transitions. Second operand has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:47,108 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:47,109 INFO L93 Difference]: Finished difference Result 75 states and 90 transitions. [2022-02-20 16:47:47,109 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 16:47:47,109 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 64 [2022-02-20 16:47:47,109 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:47,109 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:47,110 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 78 transitions. [2022-02-20 16:47:47,110 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:47,110 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 78 transitions. [2022-02-20 16:47:47,110 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 78 transitions. [2022-02-20 16:47:47,172 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:47,173 INFO L225 Difference]: With dead ends: 75 [2022-02-20 16:47:47,173 INFO L226 Difference]: Without dead ends: 56 [2022-02-20 16:47:47,173 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 69 GetRequests, 57 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=37, Invalid=145, Unknown=0, NotChecked=0, Total=182 [2022-02-20 16:47:47,173 INFO L933 BasicCegarLoop]: 35 mSDtfsCounter, 34 mSDsluCounter, 233 mSDsCounter, 0 mSdLazyCounter, 158 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.4s Time, 0 mProtectedPredicate, 0 mProtectedAction, 38 SdHoareTripleChecker+Valid, 268 SdHoareTripleChecker+Invalid, 182 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 158 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 24 IncrementalHoareTripleChecker+Unchecked, 0.4s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:47,174 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [38 Valid, 268 Invalid, 182 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 158 Invalid, 0 Unknown, 24 Unchecked, 0.4s Time] [2022-02-20 16:47:47,174 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2022-02-20 16:47:47,175 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 54. [2022-02-20 16:47:47,176 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:47,176 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) [2022-02-20 16:47:47,176 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) [2022-02-20 16:47:47,176 INFO L87 Difference]: Start difference. First operand 56 states. Second operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) [2022-02-20 16:47:47,177 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:47,177 INFO L93 Difference]: Finished difference Result 56 states and 68 transitions. [2022-02-20 16:47:47,177 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 68 transitions. [2022-02-20 16:47:47,177 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:47,177 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:47,178 INFO L74 IsIncluded]: Start isIncluded. First operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) Second operand 56 states. [2022-02-20 16:47:47,178 INFO L87 Difference]: Start difference. First operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) Second operand 56 states. [2022-02-20 16:47:47,178 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:47,179 INFO L93 Difference]: Finished difference Result 56 states and 68 transitions. [2022-02-20 16:47:47,179 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 68 transitions. [2022-02-20 16:47:47,179 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:47,179 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:47,179 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:47,179 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:47,179 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 54 states, 39 states have (on average 1.1282051282051282) internal successors, (44), 41 states have internal predecessors, (44), 9 states have call successors, (9), 2 states have call predecessors, (9), 5 states have return successors, (13), 10 states have call predecessors, (13), 9 states have call successors, (13) [2022-02-20 16:47:47,180 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 66 transitions. [2022-02-20 16:47:47,180 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 66 transitions. Word has length 64 [2022-02-20 16:47:47,180 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:47,180 INFO L470 AbstractCegarLoop]: Abstraction has 54 states and 66 transitions. [2022-02-20 16:47:47,181 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 10 states have (on average 4.2) internal successors, (42), 9 states have internal predecessors, (42), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:47,181 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 66 transitions. [2022-02-20 16:47:47,181 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 65 [2022-02-20 16:47:47,181 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:47,181 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:47,189 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (29)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:47,389 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 29 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:47,389 INFO L402 AbstractCegarLoop]: === Iteration 28 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:47,390 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:47,390 INFO L85 PathProgramCache]: Analyzing trace with hash 1512938488, now seen corresponding path program 1 times [2022-02-20 16:47:47,390 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:47,390 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1869029059] [2022-02-20 16:47:47,390 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:47,391 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:47,391 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:47,392 INFO L229 MonitoredProcess]: Starting monitored process 30 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:47,393 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (30)] Waiting until timeout for monitored process [2022-02-20 16:47:47,458 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:47,461 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 11 conjunts are in the unsatisfiable core [2022-02-20 16:47:47,473 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:47,474 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:47,947 INFO L290 TraceCheckUtils]: 0: Hoare triple {15347#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {15347#true} is VALID [2022-02-20 16:47:47,947 INFO L290 TraceCheckUtils]: 1: Hoare triple {15347#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {15347#true} is VALID [2022-02-20 16:47:47,947 INFO L272 TraceCheckUtils]: 2: Hoare triple {15347#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {15347#true} is VALID [2022-02-20 16:47:47,948 INFO L290 TraceCheckUtils]: 3: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15361#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:47,948 INFO L290 TraceCheckUtils]: 4: Hoare triple {15361#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {15361#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:47,949 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {15361#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {15347#true} #129#return; {15368#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:47,949 INFO L290 TraceCheckUtils]: 6: Hoare triple {15368#(or (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {15372#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} is VALID [2022-02-20 16:47:47,950 INFO L290 TraceCheckUtils]: 7: Hoare triple {15372#(or (and |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (not |ULTIMATE.start_main_#t~short12#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)))} assume !main_#t~short12#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,950 INFO L290 TraceCheckUtils]: 8: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short12#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,950 INFO L290 TraceCheckUtils]: 9: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short16#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,950 INFO L272 TraceCheckUtils]: 10: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {15347#true} is VALID [2022-02-20 16:47:47,950 INFO L290 TraceCheckUtils]: 11: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:47,951 INFO L290 TraceCheckUtils]: 12: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:47,951 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {15347#true} {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #133#return; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,951 INFO L290 TraceCheckUtils]: 14: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,952 INFO L290 TraceCheckUtils]: 15: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short15#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,952 INFO L272 TraceCheckUtils]: 16: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {15347#true} is VALID [2022-02-20 16:47:47,952 INFO L290 TraceCheckUtils]: 17: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:47,952 INFO L290 TraceCheckUtils]: 18: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:47,952 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {15347#true} {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #135#return; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,953 INFO L290 TraceCheckUtils]: 20: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,953 INFO L290 TraceCheckUtils]: 21: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short15#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:47,953 INFO L290 TraceCheckUtils]: 22: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,953 INFO L272 TraceCheckUtils]: 23: Hoare triple {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {15347#true} is VALID [2022-02-20 16:47:47,953 INFO L290 TraceCheckUtils]: 24: Hoare triple {15347#true} ~x := #in~x;havoc ~w~0; {15347#true} is VALID [2022-02-20 16:47:47,953 INFO L290 TraceCheckUtils]: 25: Hoare triple {15347#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {15347#true} is VALID [2022-02-20 16:47:47,953 INFO L290 TraceCheckUtils]: 26: Hoare triple {15347#true} goto; {15347#true} is VALID [2022-02-20 16:47:47,954 INFO L290 TraceCheckUtils]: 27: Hoare triple {15347#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {15347#true} is VALID [2022-02-20 16:47:47,954 INFO L290 TraceCheckUtils]: 28: Hoare triple {15347#true} assume (~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32));#res := 4bv32; {15347#true} is VALID [2022-02-20 16:47:47,954 INFO L290 TraceCheckUtils]: 29: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:47,954 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {15347#true} {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} #137#return; {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,954 INFO L290 TraceCheckUtils]: 31: Hoare triple {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,955 INFO L272 TraceCheckUtils]: 32: Hoare triple {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {15347#true} is VALID [2022-02-20 16:47:47,955 INFO L290 TraceCheckUtils]: 33: Hoare triple {15347#true} ~x := #in~x;havoc ~w~0; {15347#true} is VALID [2022-02-20 16:47:47,955 INFO L290 TraceCheckUtils]: 34: Hoare triple {15347#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {15347#true} is VALID [2022-02-20 16:47:47,955 INFO L290 TraceCheckUtils]: 35: Hoare triple {15347#true} goto; {15347#true} is VALID [2022-02-20 16:47:47,955 INFO L290 TraceCheckUtils]: 36: Hoare triple {15347#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {15347#true} is VALID [2022-02-20 16:47:47,955 INFO L290 TraceCheckUtils]: 37: Hoare triple {15347#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {15347#true} is VALID [2022-02-20 16:47:47,955 INFO L290 TraceCheckUtils]: 38: Hoare triple {15347#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {15347#true} is VALID [2022-02-20 16:47:47,955 INFO L290 TraceCheckUtils]: 39: Hoare triple {15347#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {15347#true} is VALID [2022-02-20 16:47:47,955 INFO L290 TraceCheckUtils]: 40: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:47,956 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {15347#true} {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} #139#return; {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,956 INFO L290 TraceCheckUtils]: 42: Hoare triple {15422#(and (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|))} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {15483#(and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,959 INFO L290 TraceCheckUtils]: 43: Hoare triple {15483#(and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,959 INFO L272 TraceCheckUtils]: 44: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {15347#true} is VALID [2022-02-20 16:47:47,959 INFO L290 TraceCheckUtils]: 45: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:47,959 INFO L290 TraceCheckUtils]: 46: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:47,960 INFO L284 TraceCheckUtils]: 47: Hoare quadruple {15347#true} {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #141#return; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,960 INFO L290 TraceCheckUtils]: 48: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,961 INFO L290 TraceCheckUtils]: 49: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !main_#t~short20#1; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,961 INFO L290 TraceCheckUtils]: 50: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,961 INFO L272 TraceCheckUtils]: 51: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {15347#true} is VALID [2022-02-20 16:47:47,962 INFO L290 TraceCheckUtils]: 52: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:47,962 INFO L290 TraceCheckUtils]: 53: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:47,963 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {15347#true} {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #145#return; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,964 INFO L290 TraceCheckUtils]: 55: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,964 INFO L290 TraceCheckUtils]: 56: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short23#1; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,964 INFO L272 TraceCheckUtils]: 57: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {15347#true} is VALID [2022-02-20 16:47:47,964 INFO L290 TraceCheckUtils]: 58: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:47,964 INFO L290 TraceCheckUtils]: 59: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:47,965 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {15347#true} {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} #147#return; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,965 INFO L290 TraceCheckUtils]: 61: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:47,966 INFO L290 TraceCheckUtils]: 62: Hoare triple {15487#(and (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {15348#false} is VALID [2022-02-20 16:47:47,966 INFO L290 TraceCheckUtils]: 63: Hoare triple {15348#false} assume !false; {15348#false} is VALID [2022-02-20 16:47:47,966 INFO L134 CoverageAnalysis]: Checked inductivity of 52 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 42 trivial. 0 not checked. [2022-02-20 16:47:47,966 INFO L328 TraceCheckSpWp]: Computing backward predicates... [2022-02-20 16:47:48,243 INFO L290 TraceCheckUtils]: 63: Hoare triple {15348#false} assume !false; {15348#false} is VALID [2022-02-20 16:47:48,244 INFO L290 TraceCheckUtils]: 62: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {15348#false} is VALID [2022-02-20 16:47:48,244 INFO L290 TraceCheckUtils]: 61: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,245 INFO L284 TraceCheckUtils]: 60: Hoare quadruple {15347#true} {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} #147#return; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,245 INFO L290 TraceCheckUtils]: 59: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:48,245 INFO L290 TraceCheckUtils]: 58: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:48,245 INFO L272 TraceCheckUtils]: 57: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {15347#true} is VALID [2022-02-20 16:47:48,245 INFO L290 TraceCheckUtils]: 56: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short23#1; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,245 INFO L290 TraceCheckUtils]: 55: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,246 INFO L284 TraceCheckUtils]: 54: Hoare quadruple {15347#true} {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} #145#return; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,246 INFO L290 TraceCheckUtils]: 53: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:48,246 INFO L290 TraceCheckUtils]: 52: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:48,246 INFO L272 TraceCheckUtils]: 51: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {15347#true} is VALID [2022-02-20 16:47:48,246 INFO L290 TraceCheckUtils]: 50: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,246 INFO L290 TraceCheckUtils]: 49: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short20#1; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,247 INFO L290 TraceCheckUtils]: 48: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,247 INFO L284 TraceCheckUtils]: 47: Hoare quadruple {15347#true} {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} #141#return; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,247 INFO L290 TraceCheckUtils]: 46: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:48,247 INFO L290 TraceCheckUtils]: 45: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:48,247 INFO L272 TraceCheckUtils]: 44: Hoare triple {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {15347#true} is VALID [2022-02-20 16:47:48,248 INFO L290 TraceCheckUtils]: 43: Hoare triple {15609#(fp.eq |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {15551#(fp.eq |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,248 INFO L290 TraceCheckUtils]: 42: Hoare triple {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} assume 0bv32 == fmax_float_#t~ret6#1;havoc fmax_float_#t~ret6#1;fmax_float_#res#1 := fmax_float_~x#1; {15609#(fp.eq |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,248 INFO L284 TraceCheckUtils]: 41: Hoare quadruple {15347#true} {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} #139#return; {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 40: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 39: Hoare triple {15347#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 38: Hoare triple {15347#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 37: Hoare triple {15347#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 36: Hoare triple {15347#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 35: Hoare triple {15347#true} goto; {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 34: Hoare triple {15347#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 33: Hoare triple {15347#true} ~x := #in~x;havoc ~w~0; {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L272 TraceCheckUtils]: 32: Hoare triple {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {15347#true} is VALID [2022-02-20 16:47:48,249 INFO L290 TraceCheckUtils]: 31: Hoare triple {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,250 INFO L284 TraceCheckUtils]: 30: Hoare quadruple {15347#true} {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} #137#return; {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,250 INFO L290 TraceCheckUtils]: 29: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:48,250 INFO L290 TraceCheckUtils]: 28: Hoare triple {15347#true} assume (~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32));#res := 4bv32; {15347#true} is VALID [2022-02-20 16:47:48,250 INFO L290 TraceCheckUtils]: 27: Hoare triple {15347#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {15347#true} is VALID [2022-02-20 16:47:48,250 INFO L290 TraceCheckUtils]: 26: Hoare triple {15347#true} goto; {15347#true} is VALID [2022-02-20 16:47:48,250 INFO L290 TraceCheckUtils]: 25: Hoare triple {15347#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {15347#true} is VALID [2022-02-20 16:47:48,250 INFO L290 TraceCheckUtils]: 24: Hoare triple {15347#true} ~x := #in~x;havoc ~w~0; {15347#true} is VALID [2022-02-20 16:47:48,250 INFO L272 TraceCheckUtils]: 23: Hoare triple {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {15347#true} is VALID [2022-02-20 16:47:48,250 INFO L290 TraceCheckUtils]: 22: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {15613#(fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,251 INFO L290 TraceCheckUtils]: 21: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short15#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,251 INFO L290 TraceCheckUtils]: 20: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,251 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {15347#true} {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #135#return; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,251 INFO L290 TraceCheckUtils]: 18: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:48,252 INFO L290 TraceCheckUtils]: 17: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:48,252 INFO L272 TraceCheckUtils]: 16: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {15347#true} is VALID [2022-02-20 16:47:48,252 INFO L290 TraceCheckUtils]: 15: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume main_#t~short15#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,252 INFO L290 TraceCheckUtils]: 14: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,252 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {15347#true} {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} #133#return; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,253 INFO L290 TraceCheckUtils]: 12: Hoare triple {15347#true} assume true; {15347#true} is VALID [2022-02-20 16:47:48,253 INFO L290 TraceCheckUtils]: 11: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15347#true} is VALID [2022-02-20 16:47:48,253 INFO L272 TraceCheckUtils]: 10: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {15347#true} is VALID [2022-02-20 16:47:48,253 INFO L290 TraceCheckUtils]: 9: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} assume !main_#t~short16#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,253 INFO L290 TraceCheckUtils]: 8: Hoare triple {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} main_#t~short16#1 := main_#t~short12#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,253 INFO L290 TraceCheckUtils]: 7: Hoare triple {15719#(or |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} assume !main_#t~short12#1; {15376#(fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)} is VALID [2022-02-20 16:47:48,254 INFO L290 TraceCheckUtils]: 6: Hoare triple {15723#(or (not (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {15719#(or |ULTIMATE.start_main_#t~short12#1| (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:48,254 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {15730#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} {15347#true} #129#return; {15723#(or (not (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32))) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))} is VALID [2022-02-20 16:47:48,254 INFO L290 TraceCheckUtils]: 4: Hoare triple {15730#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} assume true; {15730#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:48,255 INFO L290 TraceCheckUtils]: 3: Hoare triple {15347#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {15730#(or (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|) (not (= |isnan_float_#res| (_ bv0 32))))} is VALID [2022-02-20 16:47:48,255 INFO L272 TraceCheckUtils]: 2: Hoare triple {15347#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {15347#true} is VALID [2022-02-20 16:47:48,255 INFO L290 TraceCheckUtils]: 1: Hoare triple {15347#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {15347#true} is VALID [2022-02-20 16:47:48,255 INFO L290 TraceCheckUtils]: 0: Hoare triple {15347#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {15347#true} is VALID [2022-02-20 16:47:48,255 INFO L134 CoverageAnalysis]: Checked inductivity of 52 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 42 trivial. 0 not checked. [2022-02-20 16:47:48,255 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:48,255 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1869029059] [2022-02-20 16:47:48,256 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1869029059] provided 0 perfect and 2 imperfect interpolant sequences [2022-02-20 16:47:48,256 INFO L191 FreeRefinementEngine]: Found 0 perfect and 2 imperfect interpolant sequences. [2022-02-20 16:47:48,256 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [] imperfect sequences [9, 9] total 15 [2022-02-20 16:47:48,256 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [1575846829] [2022-02-20 16:47:48,256 INFO L85 oduleStraightlineAll]: Using 2 imperfect interpolants to construct interpolant automaton [2022-02-20 16:47:48,256 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 15 states have (on average 3.3333333333333335) internal successors, (50), 13 states have internal predecessors, (50), 6 states have call successors, (13), 1 states have call predecessors, (13), 3 states have return successors, (14), 7 states have call predecessors, (14), 6 states have call successors, (14) Word has length 64 [2022-02-20 16:47:48,257 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:48,257 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 15 states, 15 states have (on average 3.3333333333333335) internal successors, (50), 13 states have internal predecessors, (50), 6 states have call successors, (13), 1 states have call predecessors, (13), 3 states have return successors, (14), 7 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 16:47:48,314 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:48,314 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 15 states [2022-02-20 16:47:48,315 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:48,315 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 15 interpolants. [2022-02-20 16:47:48,315 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=157, Unknown=0, NotChecked=0, Total=210 [2022-02-20 16:47:48,315 INFO L87 Difference]: Start difference. First operand 54 states and 66 transitions. Second operand has 15 states, 15 states have (on average 3.3333333333333335) internal successors, (50), 13 states have internal predecessors, (50), 6 states have call successors, (13), 1 states have call predecessors, (13), 3 states have return successors, (14), 7 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 16:47:49,004 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:49,004 INFO L93 Difference]: Finished difference Result 68 states and 82 transitions. [2022-02-20 16:47:49,004 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 16:47:49,004 INFO L78 Accepts]: Start accepts. Automaton has has 15 states, 15 states have (on average 3.3333333333333335) internal successors, (50), 13 states have internal predecessors, (50), 6 states have call successors, (13), 1 states have call predecessors, (13), 3 states have return successors, (14), 7 states have call predecessors, (14), 6 states have call successors, (14) Word has length 64 [2022-02-20 16:47:49,004 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:49,004 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 15 states have (on average 3.3333333333333335) internal successors, (50), 13 states have internal predecessors, (50), 6 states have call successors, (13), 1 states have call predecessors, (13), 3 states have return successors, (14), 7 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 16:47:49,005 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 71 transitions. [2022-02-20 16:47:49,005 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 15 states, 15 states have (on average 3.3333333333333335) internal successors, (50), 13 states have internal predecessors, (50), 6 states have call successors, (13), 1 states have call predecessors, (13), 3 states have return successors, (14), 7 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 16:47:49,006 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 71 transitions. [2022-02-20 16:47:49,006 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 71 transitions. [2022-02-20 16:47:49,069 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 71 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:49,069 INFO L225 Difference]: With dead ends: 68 [2022-02-20 16:47:49,069 INFO L226 Difference]: Without dead ends: 55 [2022-02-20 16:47:49,070 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 130 GetRequests, 113 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 49 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=88, Invalid=254, Unknown=0, NotChecked=0, Total=342 [2022-02-20 16:47:49,070 INFO L933 BasicCegarLoop]: 45 mSDtfsCounter, 48 mSDsluCounter, 272 mSDsCounter, 0 mSdLazyCounter, 133 mSolverCounterSat, 23 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.2s Time, 0 mProtectedPredicate, 0 mProtectedAction, 51 SdHoareTripleChecker+Valid, 317 SdHoareTripleChecker+Invalid, 156 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 23 IncrementalHoareTripleChecker+Valid, 133 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.2s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:49,070 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [51 Valid, 317 Invalid, 156 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [23 Valid, 133 Invalid, 0 Unknown, 0 Unchecked, 0.2s Time] [2022-02-20 16:47:49,070 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2022-02-20 16:47:49,072 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 49. [2022-02-20 16:47:49,072 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:49,072 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand has 49 states, 36 states have (on average 1.1111111111111112) internal successors, (40), 38 states have internal predecessors, (40), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:49,072 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand has 49 states, 36 states have (on average 1.1111111111111112) internal successors, (40), 38 states have internal predecessors, (40), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:49,073 INFO L87 Difference]: Start difference. First operand 55 states. Second operand has 49 states, 36 states have (on average 1.1111111111111112) internal successors, (40), 38 states have internal predecessors, (40), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:49,073 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:49,073 INFO L93 Difference]: Finished difference Result 55 states and 66 transitions. [2022-02-20 16:47:49,073 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 66 transitions. [2022-02-20 16:47:49,074 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:49,074 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:49,074 INFO L74 IsIncluded]: Start isIncluded. First operand has 49 states, 36 states have (on average 1.1111111111111112) internal successors, (40), 38 states have internal predecessors, (40), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) Second operand 55 states. [2022-02-20 16:47:49,074 INFO L87 Difference]: Start difference. First operand has 49 states, 36 states have (on average 1.1111111111111112) internal successors, (40), 38 states have internal predecessors, (40), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) Second operand 55 states. [2022-02-20 16:47:49,075 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:49,075 INFO L93 Difference]: Finished difference Result 55 states and 66 transitions. [2022-02-20 16:47:49,075 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 66 transitions. [2022-02-20 16:47:49,075 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:49,075 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:49,076 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:49,076 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:49,076 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 49 states, 36 states have (on average 1.1111111111111112) internal successors, (40), 38 states have internal predecessors, (40), 8 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (10), 8 states have call predecessors, (10), 8 states have call successors, (10) [2022-02-20 16:47:49,076 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 49 states to 49 states and 58 transitions. [2022-02-20 16:47:49,076 INFO L78 Accepts]: Start accepts. Automaton has 49 states and 58 transitions. Word has length 64 [2022-02-20 16:47:49,077 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:49,077 INFO L470 AbstractCegarLoop]: Abstraction has 49 states and 58 transitions. [2022-02-20 16:47:49,077 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 15 states, 15 states have (on average 3.3333333333333335) internal successors, (50), 13 states have internal predecessors, (50), 6 states have call successors, (13), 1 states have call predecessors, (13), 3 states have return successors, (14), 7 states have call predecessors, (14), 6 states have call successors, (14) [2022-02-20 16:47:49,077 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 58 transitions. [2022-02-20 16:47:49,077 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 66 [2022-02-20 16:47:49,077 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:49,078 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:49,087 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (30)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:49,285 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 30 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:49,285 INFO L402 AbstractCegarLoop]: === Iteration 29 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:49,285 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:49,286 INFO L85 PathProgramCache]: Analyzing trace with hash -1283662981, now seen corresponding path program 1 times [2022-02-20 16:47:49,286 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:49,286 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [1215359399] [2022-02-20 16:47:49,286 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:49,286 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:49,286 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:49,287 INFO L229 MonitoredProcess]: Starting monitored process 31 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:49,287 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (31)] Waiting until timeout for monitored process [2022-02-20 16:47:49,349 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:49,351 INFO L263 TraceCheckSpWp]: Trace formula consists of 142 conjuncts, 17 conjunts are in the unsatisfiable core [2022-02-20 16:47:49,365 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:49,366 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 0: Hoare triple {16007#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 1: Hoare triple {16007#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L272 TraceCheckUtils]: 2: Hoare triple {16007#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 3: Hoare triple {16007#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 4: Hoare triple {16007#true} assume true; {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {16007#true} {16007#true} #129#return; {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 6: Hoare triple {16007#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 7: Hoare triple {16007#true} assume !main_#t~short12#1; {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 8: Hoare triple {16007#true} main_#t~short16#1 := main_#t~short12#1; {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 9: Hoare triple {16007#true} assume !main_#t~short16#1; {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L272 TraceCheckUtils]: 10: Hoare triple {16007#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 11: Hoare triple {16007#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L290 TraceCheckUtils]: 12: Hoare triple {16007#true} assume true; {16007#true} is VALID [2022-02-20 16:47:49,611 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {16007#true} {16007#true} #133#return; {16007#true} is VALID [2022-02-20 16:47:49,612 INFO L290 TraceCheckUtils]: 14: Hoare triple {16007#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {16007#true} is VALID [2022-02-20 16:47:49,612 INFO L290 TraceCheckUtils]: 15: Hoare triple {16007#true} assume main_#t~short15#1; {16007#true} is VALID [2022-02-20 16:47:49,612 INFO L272 TraceCheckUtils]: 16: Hoare triple {16007#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {16007#true} is VALID [2022-02-20 16:47:49,612 INFO L290 TraceCheckUtils]: 17: Hoare triple {16007#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16063#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:49,613 INFO L290 TraceCheckUtils]: 18: Hoare triple {16063#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} assume true; {16063#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} is VALID [2022-02-20 16:47:49,613 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {16063#(or (and (= |isnan_float_#res| (_ bv0 32)) (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (and (not (fp.eq |isnan_float_#in~x| |isnan_float_#in~x|)) (= |isnan_float_#res| (_ bv1 32))))} {16007#true} #135#return; {16070#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} is VALID [2022-02-20 16:47:49,614 INFO L290 TraceCheckUtils]: 20: Hoare triple {16070#(or (and (= |ULTIMATE.start_main_#t~ret14#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (= |ULTIMATE.start_main_#t~ret14#1| (_ bv1 32))))} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {16074#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:49,614 INFO L290 TraceCheckUtils]: 21: Hoare triple {16074#(or (and (not |ULTIMATE.start_main_#t~short15#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short15#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} main_#t~short16#1 := main_#t~short15#1; {16078#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} is VALID [2022-02-20 16:47:49,615 INFO L290 TraceCheckUtils]: 22: Hoare triple {16078#(or (and (not |ULTIMATE.start_main_#t~short16#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and |ULTIMATE.start_main_#t~short16#1| (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|))))} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {16082#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:49,615 INFO L272 TraceCheckUtils]: 23: Hoare triple {16082#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {16007#true} is VALID [2022-02-20 16:47:49,615 INFO L290 TraceCheckUtils]: 24: Hoare triple {16007#true} ~x := #in~x;havoc ~w~0; {16007#true} is VALID [2022-02-20 16:47:49,615 INFO L290 TraceCheckUtils]: 25: Hoare triple {16007#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {16007#true} is VALID [2022-02-20 16:47:49,615 INFO L290 TraceCheckUtils]: 26: Hoare triple {16007#true} goto; {16007#true} is VALID [2022-02-20 16:47:49,615 INFO L290 TraceCheckUtils]: 27: Hoare triple {16007#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {16007#true} is VALID [2022-02-20 16:47:49,615 INFO L290 TraceCheckUtils]: 28: Hoare triple {16007#true} assume true; {16007#true} is VALID [2022-02-20 16:47:49,615 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {16007#true} {16082#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #137#return; {16082#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:49,616 INFO L290 TraceCheckUtils]: 30: Hoare triple {16082#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {16082#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} is VALID [2022-02-20 16:47:49,616 INFO L272 TraceCheckUtils]: 31: Hoare triple {16082#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {16007#true} is VALID [2022-02-20 16:47:49,616 INFO L290 TraceCheckUtils]: 32: Hoare triple {16007#true} ~x := #in~x;havoc ~w~0; {16113#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} is VALID [2022-02-20 16:47:49,622 INFO L290 TraceCheckUtils]: 33: Hoare triple {16113#(= |__fpclassify_float_#in~x| __fpclassify_float_~x)} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:49,622 INFO L290 TraceCheckUtils]: 34: Hoare triple {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} goto; {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:49,622 INFO L290 TraceCheckUtils]: 35: Hoare triple {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:49,622 INFO L290 TraceCheckUtils]: 36: Hoare triple {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:49,623 INFO L290 TraceCheckUtils]: 37: Hoare triple {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} is VALID [2022-02-20 16:47:49,623 INFO L290 TraceCheckUtils]: 38: Hoare triple {16117#(= |__fpclassify_float_#in~x| (fp ((_ extract 31 31) __fpclassify_float_~w~0) ((_ extract 30 23) __fpclassify_float_~w~0) ((_ extract 22 0) __fpclassify_float_~w~0)))} assume 2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0;#res := 1bv32; {16133#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv255 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv255 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:49,624 INFO L290 TraceCheckUtils]: 39: Hoare triple {16133#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv255 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv255 8) (_ bv0 23))))} assume true; {16133#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv255 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv255 8) (_ bv0 23))))} is VALID [2022-02-20 16:47:49,624 INFO L284 TraceCheckUtils]: 40: Hoare quadruple {16133#(or (= |__fpclassify_float_#in~x| (fp (_ bv0 1) (_ bv255 8) (_ bv0 23))) (= |__fpclassify_float_#in~x| (fp (_ bv1 1) (_ bv255 8) (_ bv0 23))))} {16082#(not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))} #139#return; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 41: Hoare triple {16008#false} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 42: Hoare triple {16008#false} assume !~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~y#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 43: Hoare triple {16008#false} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 44: Hoare triple {16008#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L272 TraceCheckUtils]: 45: Hoare triple {16008#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 46: Hoare triple {16008#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 47: Hoare triple {16008#false} assume true; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {16008#false} {16008#false} #141#return; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 49: Hoare triple {16008#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 50: Hoare triple {16008#false} assume !main_#t~short20#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 51: Hoare triple {16008#false} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L272 TraceCheckUtils]: 52: Hoare triple {16008#false} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 53: Hoare triple {16008#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 54: Hoare triple {16008#false} assume true; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {16008#false} {16008#false} #145#return; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 56: Hoare triple {16008#false} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L290 TraceCheckUtils]: 57: Hoare triple {16008#false} assume main_#t~short23#1; {16008#false} is VALID [2022-02-20 16:47:49,625 INFO L272 TraceCheckUtils]: 58: Hoare triple {16008#false} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {16008#false} is VALID [2022-02-20 16:47:49,626 INFO L290 TraceCheckUtils]: 59: Hoare triple {16008#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16008#false} is VALID [2022-02-20 16:47:49,626 INFO L290 TraceCheckUtils]: 60: Hoare triple {16008#false} assume true; {16008#false} is VALID [2022-02-20 16:47:49,626 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {16008#false} {16008#false} #147#return; {16008#false} is VALID [2022-02-20 16:47:49,626 INFO L290 TraceCheckUtils]: 62: Hoare triple {16008#false} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {16008#false} is VALID [2022-02-20 16:47:49,626 INFO L290 TraceCheckUtils]: 63: Hoare triple {16008#false} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {16008#false} is VALID [2022-02-20 16:47:49,626 INFO L290 TraceCheckUtils]: 64: Hoare triple {16008#false} assume !false; {16008#false} is VALID [2022-02-20 16:47:49,626 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 36 proven. 0 refuted. 0 times theorem prover too weak. 15 trivial. 0 not checked. [2022-02-20 16:47:49,626 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:49,626 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:49,626 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [1215359399] [2022-02-20 16:47:49,626 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [1215359399] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:49,626 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:49,626 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [10] imperfect sequences [] total 10 [2022-02-20 16:47:49,626 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [390722576] [2022-02-20 16:47:49,627 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:49,627 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.3) internal successors, (43), 9 states have internal predecessors, (43), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 65 [2022-02-20 16:47:49,627 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:49,627 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 10 states, 10 states have (on average 4.3) internal successors, (43), 9 states have internal predecessors, (43), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:49,670 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:49,670 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 10 states [2022-02-20 16:47:49,670 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:49,670 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2022-02-20 16:47:49,671 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=17, Invalid=73, Unknown=0, NotChecked=0, Total=90 [2022-02-20 16:47:49,671 INFO L87 Difference]: Start difference. First operand 49 states and 58 transitions. Second operand has 10 states, 10 states have (on average 4.3) internal successors, (43), 9 states have internal predecessors, (43), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:50,663 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:50,664 INFO L93 Difference]: Finished difference Result 68 states and 78 transitions. [2022-02-20 16:47:50,664 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2022-02-20 16:47:50,664 INFO L78 Accepts]: Start accepts. Automaton has has 10 states, 10 states have (on average 4.3) internal successors, (43), 9 states have internal predecessors, (43), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) Word has length 65 [2022-02-20 16:47:50,664 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:50,664 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.3) internal successors, (43), 9 states have internal predecessors, (43), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:50,665 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 77 transitions. [2022-02-20 16:47:50,665 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 10 states, 10 states have (on average 4.3) internal successors, (43), 9 states have internal predecessors, (43), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:50,666 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 77 transitions. [2022-02-20 16:47:50,666 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 77 transitions. [2022-02-20 16:47:50,745 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:50,745 INFO L225 Difference]: With dead ends: 68 [2022-02-20 16:47:50,746 INFO L226 Difference]: Without dead ends: 49 [2022-02-20 16:47:50,746 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 70 GetRequests, 58 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 4 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=37, Invalid=145, Unknown=0, NotChecked=0, Total=182 [2022-02-20 16:47:50,746 INFO L933 BasicCegarLoop]: 34 mSDtfsCounter, 32 mSDsluCounter, 226 mSDsCounter, 0 mSdLazyCounter, 189 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.5s Time, 0 mProtectedPredicate, 0 mProtectedAction, 36 SdHoareTripleChecker+Valid, 260 SdHoareTripleChecker+Invalid, 189 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 189 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.5s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:50,746 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [36 Valid, 260 Invalid, 189 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 189 Invalid, 0 Unknown, 0 Unchecked, 0.5s Time] [2022-02-20 16:47:50,747 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 49 states. [2022-02-20 16:47:50,748 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 49 to 47. [2022-02-20 16:47:50,748 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:50,748 INFO L82 GeneralOperation]: Start isEquivalent. First operand 49 states. Second operand has 47 states, 35 states have (on average 1.1142857142857143) internal successors, (39), 36 states have internal predecessors, (39), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 16:47:50,749 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand has 47 states, 35 states have (on average 1.1142857142857143) internal successors, (39), 36 states have internal predecessors, (39), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 16:47:50,749 INFO L87 Difference]: Start difference. First operand 49 states. Second operand has 47 states, 35 states have (on average 1.1142857142857143) internal successors, (39), 36 states have internal predecessors, (39), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 16:47:50,750 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:50,750 INFO L93 Difference]: Finished difference Result 49 states and 57 transitions. [2022-02-20 16:47:50,750 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 57 transitions. [2022-02-20 16:47:50,750 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:50,750 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:50,751 INFO L74 IsIncluded]: Start isIncluded. First operand has 47 states, 35 states have (on average 1.1142857142857143) internal successors, (39), 36 states have internal predecessors, (39), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 49 states. [2022-02-20 16:47:50,751 INFO L87 Difference]: Start difference. First operand has 47 states, 35 states have (on average 1.1142857142857143) internal successors, (39), 36 states have internal predecessors, (39), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) Second operand 49 states. [2022-02-20 16:47:50,751 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:50,751 INFO L93 Difference]: Finished difference Result 49 states and 57 transitions. [2022-02-20 16:47:50,751 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 57 transitions. [2022-02-20 16:47:50,752 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:50,752 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:50,752 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:50,752 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:50,752 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 47 states, 35 states have (on average 1.1142857142857143) internal successors, (39), 36 states have internal predecessors, (39), 8 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 8 states have call predecessors, (8), 8 states have call successors, (8) [2022-02-20 16:47:50,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 55 transitions. [2022-02-20 16:47:50,753 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 55 transitions. Word has length 65 [2022-02-20 16:47:50,753 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:50,753 INFO L470 AbstractCegarLoop]: Abstraction has 47 states and 55 transitions. [2022-02-20 16:47:50,753 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 10 states, 10 states have (on average 4.3) internal successors, (43), 9 states have internal predecessors, (43), 3 states have call successors, (8), 2 states have call predecessors, (8), 4 states have return successors, (8), 4 states have call predecessors, (8), 3 states have call successors, (8) [2022-02-20 16:47:50,753 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 55 transitions. [2022-02-20 16:47:50,754 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 66 [2022-02-20 16:47:50,754 INFO L506 BasicCegarLoop]: Found error trace [2022-02-20 16:47:50,754 INFO L514 BasicCegarLoop]: trace histogram [6, 6, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:50,773 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (31)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:50,961 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 31 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:50,961 INFO L402 AbstractCegarLoop]: === Iteration 30 === Targeting ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION === [ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION, ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION] === [2022-02-20 16:47:50,962 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2022-02-20 16:47:50,962 INFO L85 PathProgramCache]: Analyzing trace with hash -322048964, now seen corresponding path program 1 times [2022-02-20 16:47:50,962 INFO L126 FreeRefinementEngine]: Executing refinement strategy WOLF [2022-02-20 16:47:50,962 INFO L338 FreeRefinementEngine]: Using trace check IpTcStrategyModuleMathsat [583750451] [2022-02-20 16:47:50,962 INFO L95 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2022-02-20 16:47:50,962 INFO L173 SolverBuilder]: Constructing external solver with command: mathsat -unsat_core_generation=3 [2022-02-20 16:47:50,962 INFO L189 MonitoredProcess]: No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat [2022-02-20 16:47:50,963 INFO L229 MonitoredProcess]: Starting monitored process 32 with /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (exit command is (exit), workingDir is null) [2022-02-20 16:47:50,964 INFO L327 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (32)] Waiting until timeout for monitored process [2022-02-20 16:47:51,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:51,028 INFO L263 TraceCheckSpWp]: Trace formula consists of 143 conjuncts, 3 conjunts are in the unsatisfiable core [2022-02-20 16:47:51,039 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2022-02-20 16:47:51,040 INFO L286 TraceCheckSpWp]: Computing forward predicates... [2022-02-20 16:47:51,154 INFO L290 TraceCheckUtils]: 0: Hoare triple {16463#true} assume { :begin_inline_ULTIMATE.init } true;#NULL.base, #NULL.offset := 0bv32, 0bv32;assume 0bv1 == #valid[0bv32];assume ~bvult32(0bv32, #StackHeapBarrier);currentRoundingMode := ~roundNearestTiesToEven;call #Ultimate.allocInit(2bv32, 1bv32);call write~init~intINTTYPE1(48bv8, 1bv32, 0bv32, 1bv32);call write~init~intINTTYPE1(0bv8, 1bv32, 1bv32, 1bv32);call #Ultimate.allocInit(20bv32, 2bv32);call #Ultimate.allocInit(12bv32, 3bv32); {16463#true} is VALID [2022-02-20 16:47:51,154 INFO L290 TraceCheckUtils]: 1: Hoare triple {16463#true} assume { :end_inline_ULTIMATE.init } true;assume { :begin_inline_main } true;havoc main_#res#1;havoc main_#t~nondet8#1, main_#t~nondet9#1, main_#t~ret10#1, main_#t~ret11#1, main_#t~short12#1, main_#t~ret13#1, main_#t~ret14#1, main_#t~short15#1, main_#t~short16#1, main_#t~ret17#1, main_#t~ret18#1, main_#t~ret19#1, main_#t~short20#1, main_#t~ret21#1, main_#t~ret22#1, main_#t~short23#1, main_~res~0#1, main_~x~0#1, main_~y~0#1;main_~x~0#1 := main_#t~nondet8#1;havoc main_#t~nondet8#1;main_~y~0#1 := main_#t~nondet9#1;havoc main_#t~nondet9#1; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L272 TraceCheckUtils]: 2: Hoare triple {16463#true} call main_#t~ret10#1 := isnan_float(main_~x~0#1); {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 3: Hoare triple {16463#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 4: Hoare triple {16463#true} assume true; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L284 TraceCheckUtils]: 5: Hoare quadruple {16463#true} {16463#true} #129#return; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 6: Hoare triple {16463#true} main_#t~short12#1 := 0bv32 != main_#t~ret10#1; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 7: Hoare triple {16463#true} assume !main_#t~short12#1; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 8: Hoare triple {16463#true} main_#t~short16#1 := main_#t~short12#1; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 9: Hoare triple {16463#true} assume !main_#t~short16#1; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L272 TraceCheckUtils]: 10: Hoare triple {16463#true} call main_#t~ret13#1 := isnan_float(main_~x~0#1); {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 11: Hoare triple {16463#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 12: Hoare triple {16463#true} assume true; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L284 TraceCheckUtils]: 13: Hoare quadruple {16463#true} {16463#true} #133#return; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 14: Hoare triple {16463#true} main_#t~short15#1 := 0bv32 == main_#t~ret13#1; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 15: Hoare triple {16463#true} assume main_#t~short15#1; {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L272 TraceCheckUtils]: 16: Hoare triple {16463#true} call main_#t~ret14#1 := isnan_float(main_~y~0#1); {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 17: Hoare triple {16463#true} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16463#true} is VALID [2022-02-20 16:47:51,155 INFO L290 TraceCheckUtils]: 18: Hoare triple {16463#true} assume true; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L284 TraceCheckUtils]: 19: Hoare quadruple {16463#true} {16463#true} #135#return; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 20: Hoare triple {16463#true} main_#t~short15#1 := 0bv32 != main_#t~ret14#1; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 21: Hoare triple {16463#true} main_#t~short16#1 := main_#t~short15#1; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 22: Hoare triple {16463#true} assume main_#t~short16#1;havoc main_#t~ret10#1;havoc main_#t~ret11#1;havoc main_#t~short12#1;havoc main_#t~ret13#1;havoc main_#t~ret14#1;havoc main_#t~short15#1;havoc main_#t~short16#1;assume { :begin_inline_fmax_float } true;fmax_float_#in~x#1, fmax_float_#in~y#1 := main_~x~0#1, main_~y~0#1;havoc fmax_float_#res#1;havoc fmax_float_#t~ret5#1, fmax_float_#t~ret6#1, fmax_float_#t~ite7#1, fmax_float_~x#1, fmax_float_~y#1;fmax_float_~x#1 := fmax_float_#in~x#1;fmax_float_~y#1 := fmax_float_#in~y#1; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L272 TraceCheckUtils]: 23: Hoare triple {16463#true} call fmax_float_#t~ret5#1 := __fpclassify_float(fmax_float_~x#1); {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 24: Hoare triple {16463#true} ~x := #in~x;havoc ~w~0; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 25: Hoare triple {16463#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 26: Hoare triple {16463#true} goto; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 27: Hoare triple {16463#true} assume 0bv32 == ~w~0 || 2147483648bv32 == ~w~0;#res := 2bv32; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 28: Hoare triple {16463#true} assume true; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L284 TraceCheckUtils]: 29: Hoare quadruple {16463#true} {16463#true} #137#return; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 30: Hoare triple {16463#true} assume !(0bv32 == fmax_float_#t~ret5#1);havoc fmax_float_#t~ret5#1; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L272 TraceCheckUtils]: 31: Hoare triple {16463#true} call fmax_float_#t~ret6#1 := __fpclassify_float(fmax_float_~y#1); {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 32: Hoare triple {16463#true} ~x := #in~x;havoc ~w~0; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 33: Hoare triple {16463#true} call ~#gf_u~0.base, ~#gf_u~0.offset := #Ultimate.allocOnStack(4bv32);call write~intFLOATTYPE4(~x, ~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);call #t~mem4 := read~intINTTYPE4(~#gf_u~0.base, ~#gf_u~0.offset, 4bv32);~w~0 := #t~mem4;havoc #t~mem4;call ULTIMATE.dealloc(~#gf_u~0.base, ~#gf_u~0.offset);havoc ~#gf_u~0.base, ~#gf_u~0.offset; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 34: Hoare triple {16463#true} goto; {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 35: Hoare triple {16463#true} assume !(0bv32 == ~w~0 || 2147483648bv32 == ~w~0); {16463#true} is VALID [2022-02-20 16:47:51,156 INFO L290 TraceCheckUtils]: 36: Hoare triple {16463#true} assume !((~bvuge32(~w~0, 8388608bv32) && ~bvule32(~w~0, 2139095039bv32)) || (~bvuge32(~w~0, 2155872256bv32) && ~bvule32(~w~0, 4286578687bv32))); {16463#true} is VALID [2022-02-20 16:47:51,157 INFO L290 TraceCheckUtils]: 37: Hoare triple {16463#true} assume !((~bvuge32(~w~0, 1bv32) && ~bvule32(~w~0, 8388607bv32)) || (~bvuge32(~w~0, 2147483649bv32) && ~bvule32(~w~0, 2155872255bv32))); {16463#true} is VALID [2022-02-20 16:47:51,157 INFO L290 TraceCheckUtils]: 38: Hoare triple {16463#true} assume !(2139095040bv32 == ~w~0 || 4286578688bv32 == ~w~0);#res := 0bv32; {16582#(= (_ bv0 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:51,157 INFO L290 TraceCheckUtils]: 39: Hoare triple {16582#(= (_ bv0 32) |__fpclassify_float_#res|)} assume true; {16582#(= (_ bv0 32) |__fpclassify_float_#res|)} is VALID [2022-02-20 16:47:51,158 INFO L284 TraceCheckUtils]: 40: Hoare quadruple {16582#(= (_ bv0 32) |__fpclassify_float_#res|)} {16463#true} #139#return; {16589#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv0 32))} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 41: Hoare triple {16589#(= |ULTIMATE.start_fmax_float_#t~ret6#1| (_ bv0 32))} assume !(0bv32 == fmax_float_#t~ret6#1);havoc fmax_float_#t~ret6#1; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 42: Hoare triple {16464#false} assume !~fp.gt~FLOAT(fmax_float_~x#1, fmax_float_~y#1);fmax_float_#t~ite7#1 := fmax_float_~y#1; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 43: Hoare triple {16464#false} fmax_float_#res#1 := fmax_float_#t~ite7#1;havoc fmax_float_#t~ite7#1; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 44: Hoare triple {16464#false} main_#t~ret17#1 := fmax_float_#res#1;assume { :end_inline_fmax_float } true;main_~res~0#1 := main_#t~ret17#1;havoc main_#t~ret17#1; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L272 TraceCheckUtils]: 45: Hoare triple {16464#false} call main_#t~ret18#1 := isnan_float(main_~x~0#1); {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 46: Hoare triple {16464#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 47: Hoare triple {16464#false} assume true; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L284 TraceCheckUtils]: 48: Hoare quadruple {16464#false} {16464#false} #141#return; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 49: Hoare triple {16464#false} main_#t~short20#1 := 0bv32 != main_#t~ret18#1; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 50: Hoare triple {16464#false} assume !main_#t~short20#1; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L290 TraceCheckUtils]: 51: Hoare triple {16464#false} assume !(main_#t~short20#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~y~0#1));havoc main_#t~ret18#1;havoc main_#t~ret19#1;havoc main_#t~short20#1; {16464#false} is VALID [2022-02-20 16:47:51,158 INFO L272 TraceCheckUtils]: 52: Hoare triple {16464#false} call main_#t~ret21#1 := isnan_float(main_~x~0#1); {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 53: Hoare triple {16464#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 54: Hoare triple {16464#false} assume true; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L284 TraceCheckUtils]: 55: Hoare quadruple {16464#false} {16464#false} #145#return; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 56: Hoare triple {16464#false} main_#t~short23#1 := 0bv32 == main_#t~ret21#1; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 57: Hoare triple {16464#false} assume main_#t~short23#1; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L272 TraceCheckUtils]: 58: Hoare triple {16464#false} call main_#t~ret22#1 := isnan_float(main_~y~0#1); {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 59: Hoare triple {16464#false} ~x := #in~x;#res := (if !~fp.eq~FLOAT(~x, ~x) then 1bv32 else 0bv32); {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 60: Hoare triple {16464#false} assume true; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L284 TraceCheckUtils]: 61: Hoare quadruple {16464#false} {16464#false} #147#return; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 62: Hoare triple {16464#false} main_#t~short23#1 := 0bv32 != main_#t~ret22#1; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 63: Hoare triple {16464#false} assume main_#t~short23#1 && !~fp.eq~FLOAT(main_~res~0#1, main_~x~0#1);havoc main_#t~ret21#1;havoc main_#t~ret22#1;havoc main_#t~short23#1; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L290 TraceCheckUtils]: 64: Hoare triple {16464#false} assume !false; {16464#false} is VALID [2022-02-20 16:47:51,159 INFO L134 CoverageAnalysis]: Checked inductivity of 51 backedges. 29 proven. 0 refuted. 0 times theorem prover too weak. 22 trivial. 0 not checked. [2022-02-20 16:47:51,159 INFO L324 TraceCheckSpWp]: Omiting computation of backward sequence because forward sequence was already perfect [2022-02-20 16:47:51,160 INFO L144 FreeRefinementEngine]: Strategy WOLF found an infeasible trace [2022-02-20 16:47:51,160 INFO L338 FreeRefinementEngine]: Using interpolant generator IpTcStrategyModuleMathsat [583750451] [2022-02-20 16:47:51,160 INFO L165 FreeRefinementEngine]: IpTcStrategyModuleMathsat [583750451] provided 1 perfect and 0 imperfect interpolant sequences [2022-02-20 16:47:51,160 INFO L191 FreeRefinementEngine]: Found 1 perfect and 0 imperfect interpolant sequences. [2022-02-20 16:47:51,160 INFO L204 FreeRefinementEngine]: Number of different interpolants: perfect sequences [4] imperfect sequences [] total 4 [2022-02-20 16:47:51,160 INFO L118 tionRefinementEngine]: Using interpolant automaton builder IpAbStrategyModuleStraightlineAll [2110214267] [2022-02-20 16:47:51,160 INFO L85 oduleStraightlineAll]: Using 1 perfect interpolants to construct interpolant automaton [2022-02-20 16:47:51,160 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 9.5) internal successors, (38), 3 states have internal predecessors, (38), 2 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 65 [2022-02-20 16:47:51,160 INFO L84 Accepts]: Finished accepts. word is accepted. [2022-02-20 16:47:51,160 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with has 4 states, 4 states have (on average 9.5) internal successors, (38), 3 states have internal predecessors, (38), 2 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:51,198 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:51,198 INFO L546 AbstractCegarLoop]: INTERPOLANT automaton has 4 states [2022-02-20 16:47:51,198 INFO L108 FreeRefinementEngine]: Using predicate unifier PredicateUnifier provided by strategy WOLF [2022-02-20 16:47:51,199 INFO L143 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2022-02-20 16:47:51,199 INFO L145 InterpolantAutomaton]: CoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:51,199 INFO L87 Difference]: Start difference. First operand 47 states and 55 transitions. Second operand has 4 states, 4 states have (on average 9.5) internal successors, (38), 3 states have internal predecessors, (38), 2 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:51,277 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:51,277 INFO L93 Difference]: Finished difference Result 50 states and 57 transitions. [2022-02-20 16:47:51,277 INFO L141 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2022-02-20 16:47:51,277 INFO L78 Accepts]: Start accepts. Automaton has has 4 states, 4 states have (on average 9.5) internal successors, (38), 3 states have internal predecessors, (38), 2 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) Word has length 65 [2022-02-20 16:47:51,277 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2022-02-20 16:47:51,277 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 9.5) internal successors, (38), 3 states have internal predecessors, (38), 2 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:51,278 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 57 transitions. [2022-02-20 16:47:51,278 INFO L82 GeneralOperation]: Start removeUnreachable. Operand has 4 states, 4 states have (on average 9.5) internal successors, (38), 3 states have internal predecessors, (38), 2 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:51,278 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 57 transitions. [2022-02-20 16:47:51,278 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 57 transitions. [2022-02-20 16:47:51,315 INFO L122 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2022-02-20 16:47:51,315 INFO L225 Difference]: With dead ends: 50 [2022-02-20 16:47:51,315 INFO L226 Difference]: Without dead ends: 0 [2022-02-20 16:47:51,315 INFO L932 BasicCegarLoop]: 0 DeclaredPredicates, 64 GetRequests, 62 SyntacticMatches, 0 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=5, Invalid=7, Unknown=0, NotChecked=0, Total=12 [2022-02-20 16:47:51,316 INFO L933 BasicCegarLoop]: 37 mSDtfsCounter, 0 mSDsluCounter, 66 mSDsCounter, 0 mSdLazyCounter, 5 mSolverCounterSat, 0 mSolverCounterUnsat, 0 mSolverCounterUnknown, 0 mSolverCounterNotChecked, 0.0s Time, 0 mProtectedPredicate, 0 mProtectedAction, 0 SdHoareTripleChecker+Valid, 103 SdHoareTripleChecker+Invalid, 5 SdHoareTripleChecker+Unknown, 0 SdHoareTripleChecker+Unchecked, 0.0s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Valid, 5 IncrementalHoareTripleChecker+Invalid, 0 IncrementalHoareTripleChecker+Unknown, 0 IncrementalHoareTripleChecker+Unchecked, 0.0s IncrementalHoareTripleChecker+Time [2022-02-20 16:47:51,316 INFO L934 BasicCegarLoop]: SdHoareTripleChecker [0 Valid, 103 Invalid, 5 Unknown, 0 Unchecked, 0.0s Time], IncrementalHoareTripleChecker [0 Valid, 5 Invalid, 0 Unknown, 0 Unchecked, 0.0s Time] [2022-02-20 16:47:51,316 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2022-02-20 16:47:51,316 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2022-02-20 16:47:51,316 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2022-02-20 16:47:51,316 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-02-20 16:47:51,316 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-02-20 16:47:51,316 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-02-20 16:47:51,316 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:51,316 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-02-20 16:47:51,317 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-02-20 16:47:51,317 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:51,317 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:51,317 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-02-20 16:47:51,317 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-02-20 16:47:51,317 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2022-02-20 16:47:51,317 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2022-02-20 16:47:51,317 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-02-20 16:47:51,317 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:51,317 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2022-02-20 16:47:51,317 INFO L88 GeneralOperation]: Finished isEquivalent. [2022-02-20 16:47:51,317 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2022-02-20 16:47:51,317 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-02-20 16:47:51,317 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2022-02-20 16:47:51,317 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 65 [2022-02-20 16:47:51,318 INFO L84 Accepts]: Finished accepts. word is rejected. [2022-02-20 16:47:51,318 INFO L470 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2022-02-20 16:47:51,318 INFO L471 AbstractCegarLoop]: INTERPOLANT automaton has has 4 states, 4 states have (on average 9.5) internal successors, (38), 3 states have internal predecessors, (38), 2 states have call successors, (8), 2 states have call predecessors, (8), 3 states have return successors, (8), 3 states have call predecessors, (8), 2 states have call successors, (8) [2022-02-20 16:47:51,318 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2022-02-20 16:47:51,318 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2022-02-20 16:47:51,320 INFO L764 garLoopResultBuilder]: Registering result SAFE for location ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION (1 of 2 remaining) [2022-02-20 16:47:51,320 INFO L764 garLoopResultBuilder]: Registering result SAFE for location ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION (0 of 2 remaining) [2022-02-20 16:47:51,333 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 (32)] Forceful destruction successful, exit code 0 [2022-02-20 16:47:51,520 WARN L452 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 32 /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/mathsat -unsat_core_generation=3 [2022-02-20 16:47:51,522 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2022-02-20 16:47:52,334 INFO L858 garLoopResultBuilder]: For program point isnan_floatFINAL(line 57) no Hoare annotation was computed. [2022-02-20 16:47:52,334 INFO L861 garLoopResultBuilder]: At program point isnan_floatENTRY(line 57) the Hoare annotation is: true [2022-02-20 16:47:52,334 INFO L858 garLoopResultBuilder]: For program point isnan_floatEXIT(line 57) no Hoare annotation was computed. [2022-02-20 16:47:52,334 INFO L858 garLoopResultBuilder]: For program point ULTIMATE.startErr1ASSERT_VIOLATIONERROR_FUNCTION(line 82) no Hoare annotation was computed. [2022-02-20 16:47:52,334 INFO L854 garLoopResultBuilder]: At program point L81(line 81) the Hoare annotation is: (let ((.cse0 (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|))) (or (and .cse0 (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) .cse0 (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))))) [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L81-1(line 81) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L81-2(line 81) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L854 garLoopResultBuilder]: At program point L81-3(line 81) the Hoare annotation is: (and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))) [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L81-4(line 81) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L81-6(lines 81 84) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L861 garLoopResultBuilder]: At program point L69(line 69) the Hoare annotation is: true [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L69-1(line 69) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L69-2(line 69) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L854 garLoopResultBuilder]: At program point L69-3(line 69) the Hoare annotation is: (and (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) |ULTIMATE.start_main_#t~short12#1| (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L69-4(line 69) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L-1(line -1) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L69-6(line 69) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L69-7(lines 69 70) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point ULTIMATE.startENTRY(line -1) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point ULTIMATE.startFINAL(line -1) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L69-9(lines 69 85) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point L69-11(lines 69 85) no Hoare annotation was computed. [2022-02-20 16:47:52,335 INFO L858 garLoopResultBuilder]: For program point ULTIMATE.startErr0ASSERT_VIOLATIONERROR_FUNCTION(line 76) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L858 garLoopResultBuilder]: For program point L53(line 53) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L858 garLoopResultBuilder]: For program point L53-2(line 53) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L854 garLoopResultBuilder]: At program point L53-3(lines 45 54) the Hoare annotation is: (let ((.cse0 (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)) (.cse1 (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (or (and .cse0 (not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)) (not .cse1) (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|) .cse0 .cse1 (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))))) [2022-02-20 16:47:52,336 INFO L858 garLoopResultBuilder]: For program point L82(line 82) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L854 garLoopResultBuilder]: At program point L70(line 70) the Hoare annotation is: (let ((.cse0 (not |ULTIMATE.start_main_#t~short12#1|)) (.cse1 (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)) (.cse2 (not |ULTIMATE.start_main_#t~short16#1|))) (or (and .cse0 (= |ULTIMATE.start_main_#t~ret10#1| (_ bv1 32)) (= |ULTIMATE.start_main_#t~ret11#1| (_ bv1 32)) (not (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) (not .cse1) .cse2) (and .cse0 (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) .cse1 .cse2))) [2022-02-20 16:47:52,336 INFO L858 garLoopResultBuilder]: For program point L70-1(line 70) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L858 garLoopResultBuilder]: For program point L70-2(line 70) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L854 garLoopResultBuilder]: At program point L70-3(line 70) the Hoare annotation is: (and (not |ULTIMATE.start_main_#t~short12#1|) |ULTIMATE.start_main_#t~short15#1| (= |ULTIMATE.start_main_#t~ret13#1| (_ bv0 32)) (= |ULTIMATE.start_main_#t~ret10#1| (_ bv0 32)) (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|) (not |ULTIMATE.start_main_#t~short16#1|)) [2022-02-20 16:47:52,336 INFO L858 garLoopResultBuilder]: For program point L70-4(line 70) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L858 garLoopResultBuilder]: For program point ULTIMATE.startEXIT(line -1) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L858 garLoopResultBuilder]: For program point L70-6(line 70) no Hoare annotation was computed. [2022-02-20 16:47:52,336 INFO L861 garLoopResultBuilder]: At program point L87(lines 59 88) the Hoare annotation is: true [2022-02-20 16:47:52,336 INFO L854 garLoopResultBuilder]: At program point L50(line 50) the Hoare annotation is: (let ((.cse0 (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)) (.cse1 (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)) (.cse2 (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))) (or (and .cse0 (not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)) (not .cse1) .cse2) (and .cse0 .cse1 (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (not .cse2)))) [2022-02-20 16:47:52,337 INFO L858 garLoopResultBuilder]: For program point L50-1(lines 50 52) no Hoare annotation was computed. [2022-02-20 16:47:52,337 INFO L854 garLoopResultBuilder]: At program point L46(line 46) the Hoare annotation is: (let ((.cse0 (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)) (.cse1 (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)) (.cse2 (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))) (or (and .cse0 (not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)) (not .cse1) .cse2) (and .cse0 .cse1 (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (not .cse2)))) [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point L46-1(lines 46 48) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L854 garLoopResultBuilder]: At program point L75(line 75) the Hoare annotation is: (let ((.cse0 (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|)) (.cse1 (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|))) (or (and (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~x~0#1|) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~x~0#1|) .cse0 .cse1 (= |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_main_~x~0#1|) (not (fp.eq |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_fmax_float_~y#1|))) (and .cse0 (not (fp.eq |ULTIMATE.start_fmax_float_~x#1| |ULTIMATE.start_fmax_float_~x#1|)) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (not .cse1) (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)))) [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point L75-1(line 75) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point L75-2(line 75) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L854 garLoopResultBuilder]: At program point L75-3(line 75) the Hoare annotation is: (and |ULTIMATE.start_main_#t~short20#1| (= |ULTIMATE.start_fmax_float_~y#1| |ULTIMATE.start_main_~y~0#1|) (= |ULTIMATE.start_main_~res~0#1| |ULTIMATE.start_main_~y~0#1|) (not (fp.eq |ULTIMATE.start_main_~x~0#1| |ULTIMATE.start_main_~x~0#1|)) (= |ULTIMATE.start_fmax_float_#res#1| |ULTIMATE.start_main_~y~0#1|) (fp.eq |ULTIMATE.start_main_~y~0#1| |ULTIMATE.start_main_~y~0#1|)) [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point L75-4(line 75) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point L75-6(lines 75 78) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point L76(line 76) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point L33(lines 33 42) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point __fpclassify_floatFINAL(lines 22 43) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L858 garLoopResultBuilder]: For program point L25-1(lines 25 29) no Hoare annotation was computed. [2022-02-20 16:47:52,338 INFO L854 garLoopResultBuilder]: At program point L25-2(lines 25 29) the Hoare annotation is: (= |__fpclassify_float_#in~x| __fpclassify_float_~x) [2022-02-20 16:47:52,339 INFO L858 garLoopResultBuilder]: For program point L25-3(lines 22 43) no Hoare annotation was computed. [2022-02-20 16:47:52,339 INFO L858 garLoopResultBuilder]: For program point L36(lines 36 42) no Hoare annotation was computed. [2022-02-20 16:47:52,339 INFO L861 garLoopResultBuilder]: At program point __fpclassify_floatENTRY(lines 22 43) the Hoare annotation is: true [2022-02-20 16:47:52,339 INFO L858 garLoopResultBuilder]: For program point __fpclassify_floatEXIT(lines 22 43) no Hoare annotation was computed. [2022-02-20 16:47:52,340 INFO L858 garLoopResultBuilder]: For program point L39(lines 39 42) no Hoare annotation was computed. [2022-02-20 16:47:52,342 INFO L732 BasicCegarLoop]: Path program histogram: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [2022-02-20 16:47:52,343 INFO L180 ceAbstractionStarter]: Computing trace abstraction results [2022-02-20 16:47:52,346 WARN L170 areAnnotationChecker]: isnan_floatFINAL has no Hoare annotation [2022-02-20 16:47:52,346 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2022-02-20 16:47:52,346 WARN L170 areAnnotationChecker]: isnan_floatFINAL has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: L-1 has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: L25-3 has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: isnan_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: isnan_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: isnan_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: isnan_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: isnan_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: isnan_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: isnan_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,347 WARN L170 areAnnotationChecker]: isnan_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L69-1 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L25-1 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L25-3 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L25-3 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L69-1 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L69-4 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L70-1 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L70-4 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L75-1 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L75-4 has no Hoare annotation [2022-02-20 16:47:52,348 WARN L170 areAnnotationChecker]: L81-1 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L81-4 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: __fpclassify_floatFINAL has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L33 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L33 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L69-2 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L69-2 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L69-6 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L70-2 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L70-2 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L70-6 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L75-2 has no Hoare annotation [2022-02-20 16:47:52,349 WARN L170 areAnnotationChecker]: L75-2 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L75-6 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L75-6 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L81-2 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L81-2 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L81-6 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L81-6 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: __fpclassify_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: __fpclassify_floatEXIT has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L36 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L36 has no Hoare annotation [2022-02-20 16:47:52,350 WARN L170 areAnnotationChecker]: L69-4 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L69-7 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L69-7 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L70-4 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L69-9 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L69-9 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L75-4 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L76 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L76 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L81-1 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L81-4 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L82 has no Hoare annotation [2022-02-20 16:47:52,351 WARN L170 areAnnotationChecker]: L82 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L69-11 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L46-1 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L46-1 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L39 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L39 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L70-1 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: L46-1 has no Hoare annotation [2022-02-20 16:47:52,352 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-02-20 16:47:52,354 WARN L170 areAnnotationChecker]: L50-1 has no Hoare annotation [2022-02-20 16:47:52,354 WARN L170 areAnnotationChecker]: L53 has no Hoare annotation [2022-02-20 16:47:52,354 WARN L170 areAnnotationChecker]: L53 has no Hoare annotation [2022-02-20 16:47:52,354 WARN L170 areAnnotationChecker]: ULTIMATE.startFINAL has no Hoare annotation [2022-02-20 16:47:52,354 WARN L170 areAnnotationChecker]: L75-1 has no Hoare annotation [2022-02-20 16:47:52,354 WARN L170 areAnnotationChecker]: L53-2 has no Hoare annotation [2022-02-20 16:47:52,354 INFO L163 areAnnotationChecker]: CFG has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2022-02-20 16:47:52,364 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 20.02 04:47:52 BoogieIcfgContainer [2022-02-20 16:47:52,364 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2022-02-20 16:47:52,364 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2022-02-20 16:47:52,364 INFO L271 PluginConnector]: Initializing Witness Printer... [2022-02-20 16:47:52,365 INFO L275 PluginConnector]: Witness Printer initialized [2022-02-20 16:47:52,365 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 20.02 04:47:00" (3/4) ... [2022-02-20 16:47:52,368 INFO L137 WitnessPrinter]: Generating witness for correct program [2022-02-20 16:47:52,372 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure isnan_float [2022-02-20 16:47:52,372 INFO L354 RCFGBacktranslator]: Ignoring RootEdge to procedure __fpclassify_float [2022-02-20 16:47:52,377 INFO L910 BoogieBacktranslator]: Reduced CFG by removing 18 nodes and edges [2022-02-20 16:47:52,378 INFO L910 BoogieBacktranslator]: Reduced CFG by removing 7 nodes and edges [2022-02-20 16:47:52,378 INFO L910 BoogieBacktranslator]: Reduced CFG by removing 2 nodes and edges [2022-02-20 16:47:52,378 INFO L910 BoogieBacktranslator]: Reduced CFG by removing 1 nodes and edges [2022-02-20 16:47:52,397 WARN L220 nessWitnessGenerator]: Not writing invariant because ACSL is forbidden: \old(x) == x [2022-02-20 16:47:52,397 WARN L220 nessWitnessGenerator]: Not writing invariant because ACSL is forbidden: ((((y == y && !~fp.eq~FLOAT(x, x)) && !~fp.eq~FLOAT(x, x)) && \result == y) && ~fp.eq~FLOAT(y, y)) || ((((\result == x && y == y) && ~fp.eq~FLOAT(x, x)) && x == x) && !~fp.eq~FLOAT(y, y)) [2022-02-20 16:47:52,414 INFO L141 WitnessManager]: Wrote witness to /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/witness.graphml [2022-02-20 16:47:52,415 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2022-02-20 16:47:52,415 INFO L158 Benchmark]: Toolchain (without parser) took 52793.15ms. Allocated memory was 56.6MB in the beginning and 107.0MB in the end (delta: 50.3MB). Free memory was 37.5MB in the beginning and 54.0MB in the end (delta: -16.5MB). Peak memory consumption was 32.5MB. Max. memory is 16.1GB. [2022-02-20 16:47:52,416 INFO L158 Benchmark]: CDTParser took 0.15ms. Allocated memory is still 56.6MB. Free memory was 38.6MB in the beginning and 38.5MB in the end (delta: 44.8kB). There was no memory consumed. Max. memory is 16.1GB. [2022-02-20 16:47:52,418 INFO L158 Benchmark]: CACSL2BoogieTranslator took 235.43ms. Allocated memory is still 56.6MB. Free memory was 37.3MB in the beginning and 38.3MB in the end (delta: -1.0MB). Peak memory consumption was 10.5MB. Max. memory is 16.1GB. [2022-02-20 16:47:52,419 INFO L158 Benchmark]: Boogie Procedure Inliner took 45.40ms. Allocated memory is still 56.6MB. Free memory was 38.3MB in the beginning and 36.4MB in the end (delta: 1.9MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:47:52,419 INFO L158 Benchmark]: Boogie Preprocessor took 44.18ms. Allocated memory is still 56.6MB. Free memory was 36.4MB in the beginning and 34.8MB in the end (delta: 1.6MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:47:52,420 INFO L158 Benchmark]: RCFGBuilder took 421.59ms. Allocated memory was 56.6MB in the beginning and 73.4MB in the end (delta: 16.8MB). Free memory was 34.7MB in the beginning and 50.8MB in the end (delta: -16.1MB). Peak memory consumption was 9.9MB. Max. memory is 16.1GB. [2022-02-20 16:47:52,423 INFO L158 Benchmark]: TraceAbstraction took 51991.52ms. Allocated memory was 73.4MB in the beginning and 107.0MB in the end (delta: 33.6MB). Free memory was 50.5MB in the beginning and 57.2MB in the end (delta: -6.7MB). Peak memory consumption was 62.0MB. Max. memory is 16.1GB. [2022-02-20 16:47:52,423 INFO L158 Benchmark]: Witness Printer took 50.26ms. Allocated memory is still 107.0MB. Free memory was 57.2MB in the beginning and 54.0MB in the end (delta: 3.1MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. [2022-02-20 16:47:52,425 INFO L339 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - AssertionsEnabledResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.15ms. Allocated memory is still 56.6MB. Free memory was 38.6MB in the beginning and 38.5MB in the end (delta: 44.8kB). There was no memory consumed. Max. memory is 16.1GB. * CACSL2BoogieTranslator took 235.43ms. Allocated memory is still 56.6MB. Free memory was 37.3MB in the beginning and 38.3MB in the end (delta: -1.0MB). Peak memory consumption was 10.5MB. Max. memory is 16.1GB. * Boogie Procedure Inliner took 45.40ms. Allocated memory is still 56.6MB. Free memory was 38.3MB in the beginning and 36.4MB in the end (delta: 1.9MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Boogie Preprocessor took 44.18ms. Allocated memory is still 56.6MB. Free memory was 36.4MB in the beginning and 34.8MB in the end (delta: 1.6MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * RCFGBuilder took 421.59ms. Allocated memory was 56.6MB in the beginning and 73.4MB in the end (delta: 16.8MB). Free memory was 34.7MB in the beginning and 50.8MB in the end (delta: -16.1MB). Peak memory consumption was 9.9MB. Max. memory is 16.1GB. * TraceAbstraction took 51991.52ms. Allocated memory was 73.4MB in the beginning and 107.0MB in the end (delta: 33.6MB). Free memory was 50.5MB in the beginning and 57.2MB in the end (delta: -6.7MB). Peak memory consumption was 62.0MB. Max. memory is 16.1GB. * Witness Printer took 50.26ms. Allocated memory is still 107.0MB. Free memory was 57.2MB in the beginning and 54.0MB in the end (delta: 3.1MB). Peak memory consumption was 2.1MB. Max. memory is 16.1GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - StatisticsResult: ErrorAutomatonStatistics NumberErrorTraces: 0, NumberStatementsAllTraces: 0, NumberRelevantStatements: 0, 0.0s ErrorAutomatonConstructionTimeTotal, 0.0s FaulLocalizationTime, NumberStatementsFirstTrace: -1, TraceLengthAvg: 0, 0.0s ErrorAutomatonConstructionTimeAvg, 0.0s ErrorAutomatonDifferenceTimeAvg, 0.0s ErrorAutomatonDifferenceTimeTotal, NumberOfNoEnhancement: 0, NumberOfFiniteEnhancement: 0, NumberOfInfiniteEnhancement: 0 - PositiveResult [Line: 76]: call to reach_error is unreachable For all program executions holds that call to reach_error is unreachable at this location - PositiveResult [Line: 82]: call to reach_error is unreachable For all program executions holds that call to reach_error is unreachable at this location - StatisticsResult: Ultimate Automizer benchmark data CFG has 3 procedures, 55 locations, 2 error locations. Started 1 CEGAR loops. OverallTime: 51.9s, OverallIterations: 30, TraceHistogramMax: 6, PathProgramHistogramMax: 1, EmptinessCheckTime: 0.0s, AutomataDifference: 28.5s, DeadEndRemovalTime: 0.0s, HoareAnnotationTime: 0.8s, InitialAbstractionConstructionTime: 0.0s, PartialOrderReductionTime: 0.0s, HoareTripleCheckerStatistics: 0 mSolverCounterUnknown, 1301 SdHoareTripleChecker+Valid, 12.8s IncrementalHoareTripleChecker+Time, 0 mSdLazyCounter, 1226 mSDsluCounter, 9572 SdHoareTripleChecker+Invalid, 12.8s Time, 0 mProtectedAction, 0 SdHoareTripleChecker+Unchecked, 133 IncrementalHoareTripleChecker+Unchecked, 7766 mSDsCounter, 340 IncrementalHoareTripleChecker+Valid, 0 mProtectedPredicate, 3565 IncrementalHoareTripleChecker+Invalid, 4038 SdHoareTripleChecker+Unknown, 0 mSolverCounterNotChecked, 340 mSolverCounterUnsat, 1806 mSDtfsCounter, 3565 mSolverCounterSat, 0.1s SdHoareTripleChecker+Time, 0 IncrementalHoareTripleChecker+Unknown, PredicateUnifierStatistics: 0 DeclaredPredicates, 2044 GetRequests, 1739 SyntacticMatches, 2 SemanticMatches, 303 ConstructedPredicates, 0 IntricatePredicates, 1 DeprecatedPredicates, 532 ImplicationChecksByTransitivity, 4.0s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=100occurred in iteration=14, InterpolantAutomatonStates: 243, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s DumpTime, AutomataMinimizationStatistics: 0.4s AutomataMinimizationTime, 30 MinimizatonAttempts, 209 StatesRemovedByMinimization, 24 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 15 LocationsWithAnnotation, 137 PreInvPairs, 163 NumberOfFragments, 264 HoareAnnotationTreeSize, 137 FomulaSimplifications, 1064 FormulaSimplificationTreeSizeReduction, 0.0s HoareSimplificationTime, 15 FomulaSimplificationsInter, 1513 FormulaSimplificationTreeSizeReductionInter, 0.8s HoareSimplificationTimeInter, RefinementEngineStatistics: TRACE_CHECK: 0.2s SsaConstructionTime, 0.9s SatisfiabilityAnalysisTime, 12.6s InterpolantComputationTime, 1490 NumberOfCodeBlocks, 1490 NumberOfCodeBlocksAsserted, 31 NumberOfCheckSat, 1902 ConstructedInterpolants, 9 QuantifiedInterpolants, 5667 SizeOfPredicates, 152 NumberOfNonLiveVariables, 3436 ConjunctsInSsa, 301 ConjunctsInUnsatCore, 40 InterpolantComputations, 20 PerfectInterpolantSequences, 1033/1145 InterpolantCoveringCapability, INVARIANT_SYNTHESIS: No data available, INTERPOLANT_CONSOLIDATION: No data available, ABSTRACT_INTERPRETATION: No data available, PDR: No data available, ACCELERATED_INTERPOLATION: No data available, SIFA: No data available, ReuseStatistics: No data available - AllSpecificationsHoldResult: All specifications hold 2 specifications checked. All of them hold - InvariantResult [Line: 45]: Loop Invariant Derived loop invariant: ((((y == y && !~fp.eq~FLOAT(x, x)) && !~fp.eq~FLOAT(x, x)) && \result == y) && ~fp.eq~FLOAT(y, y)) || ((((\result == x && y == y) && ~fp.eq~FLOAT(x, x)) && x == x) && !~fp.eq~FLOAT(y, y)) - InvariantResult [Line: 59]: Loop Invariant Derived loop invariant: 1 - InvariantResult [Line: 25]: Loop Invariant Derived loop invariant: \old(x) == x RESULT: Ultimate proved your program to be correct! [2022-02-20 16:47:52,467 INFO L540 MonitoredProcess]: [MP /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (1)] Forceful destruction successful, exit code 0 Received shutdown request... --- End real Ultimate output --- Execution finished normally Writing output log to file Ultimate.log Result: TRUE