./Ultimate.py --spec ../../sv-benchmarks/c/properties/unreach-call.prp --file ../../sv-benchmarks/c/float-newlib/double_req_bl_0834_true-unreach-call.c --full-output --architecture 32bit -------------------------------------------------------------------------------- Checking for ERROR reachability Using default analysis Version aa418289 Calling Ultimate with: java -Dosgi.configuration.area=/tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/config/KojakReach.xml -i ../../sv-benchmarks/c/float-newlib/double_req_bl_0834_true-unreach-call.c -s /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Kojak --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 34004772e6a1e54917776a817538fd6c8fd28f94 .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. Execution finished normally Using bit-precise analysis Retrying with bit-precise analysis Calling Ultimate with: java -Dosgi.configuration.area=/tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/config/KojakReach.xml -i ../../sv-benchmarks/c/float-newlib/double_req_bl_0834_true-unreach-call.c -s /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak --witnessprinter.witness.filename witness.graphml --witnessprinter.write.witness.besides.input.file false --witnessprinter.graph.data.specification CHECK( init(main()), LTL(G ! call(__VERIFIER_error())) ) --witnessprinter.graph.data.producer Kojak --witnessprinter.graph.data.architecture 32bit --witnessprinter.graph.data.programhash 34004772e6a1e54917776a817538fd6c8fd28f94 ................................................................................................................................................................................................................................................................................... Execution finished normally Writing output log to file Ultimate.log Result: ERROR: ExceptionOrErrorResult: UnsupportedOperationException: nested self-update not yet implemented: (store v_arrayElimCell_3 (_ bv4 32) ((_ extract 63 32) v_prenex_33)) --- Real Ultimate output --- This is Ultimate 0.1.23-aa41828 [2018-11-22 23:29:49,849 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-22 23:29:49,850 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-22 23:29:49,857 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-22 23:29:49,857 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-22 23:29:49,858 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-22 23:29:49,858 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-22 23:29:49,859 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-22 23:29:49,860 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-22 23:29:49,861 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-22 23:29:49,862 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-22 23:29:49,862 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-22 23:29:49,862 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-22 23:29:49,863 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-22 23:29:49,864 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-22 23:29:49,864 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-22 23:29:49,865 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-22 23:29:49,866 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-22 23:29:49,867 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-22 23:29:49,868 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-22 23:29:49,869 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-22 23:29:49,870 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-22 23:29:49,871 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-22 23:29:49,871 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-22 23:29:49,872 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-22 23:29:49,872 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-22 23:29:49,873 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-22 23:29:49,873 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-22 23:29:49,874 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-22 23:29:49,874 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-22 23:29:49,875 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-22 23:29:49,875 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-22 23:29:49,875 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-22 23:29:49,875 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-22 23:29:49,876 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-22 23:29:49,877 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-22 23:29:49,877 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Default.epf [2018-11-22 23:29:49,886 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-22 23:29:49,887 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-22 23:29:49,887 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-22 23:29:49,887 INFO L133 SettingsManager]: * ... to procedures called more than once=ALWAYS [2018-11-22 23:29:49,888 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-22 23:29:49,888 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-22 23:29:49,888 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-22 23:29:49,888 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-22 23:29:49,888 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-22 23:29:49,889 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-22 23:29:49,889 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-22 23:29:49,889 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-22 23:29:49,889 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-22 23:29:49,889 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-22 23:29:49,889 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-22 23:29:49,889 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-22 23:29:49,889 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-22 23:29:49,890 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-22 23:29:49,890 INFO L131 SettingsManager]: Preferences of CodeCheck differ from their defaults: [2018-11-22 23:29:49,890 INFO L133 SettingsManager]: * Timeout in seconds=1000000 [2018-11-22 23:29:49,890 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-22 23:29:49,890 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-22 23:29:49,890 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-22 23:29:49,890 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-22 23:29:49,891 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-22 23:29:49,891 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-22 23:29:49,891 INFO L133 SettingsManager]: * Trace refinement strategy=PENGUIN [2018-11-22 23:29:49,891 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-22 23:29:49,891 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-22 23:29:49,891 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true 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 -> /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak 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(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Kojak 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 -> 34004772e6a1e54917776a817538fd6c8fd28f94 [2018-11-22 23:29:49,912 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-22 23:29:49,920 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-22 23:29:49,922 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-22 23:29:49,923 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-22 23:29:49,923 INFO L276 PluginConnector]: CDTParser initialized [2018-11-22 23:29:49,923 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/../../sv-benchmarks/c/float-newlib/double_req_bl_0834_true-unreach-call.c [2018-11-22 23:29:49,959 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data/cb9257f60/209a2d92a3cc4137af74f004e0a33e4a/FLAG4b18b8bda [2018-11-22 23:29:50,367 INFO L307 CDTParser]: Found 1 translation units. [2018-11-22 23:29:50,367 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/sv-benchmarks/c/float-newlib/double_req_bl_0834_true-unreach-call.c [2018-11-22 23:29:50,371 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data/cb9257f60/209a2d92a3cc4137af74f004e0a33e4a/FLAG4b18b8bda [2018-11-22 23:29:50,379 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data/cb9257f60/209a2d92a3cc4137af74f004e0a33e4a [2018-11-22 23:29:50,381 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-22 23:29:50,382 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-22 23:29:50,382 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-22 23:29:50,383 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-22 23:29:50,385 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-22 23:29:50,385 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,387 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@4c5111b5 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50, skipping insertion in model container [2018-11-22 23:29:50,387 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,392 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-22 23:29:50,410 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-22 23:29:50,537 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-22 23:29:50,541 INFO L191 MainTranslator]: Completed pre-run [2018-11-22 23:29:50,565 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-22 23:29:50,615 INFO L195 MainTranslator]: Completed translation [2018-11-22 23:29:50,616 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50 WrapperNode [2018-11-22 23:29:50,616 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-22 23:29:50,616 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-22 23:29:50,616 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-22 23:29:50,617 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-22 23:29:50,621 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,630 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,653 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-22 23:29:50,653 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-22 23:29:50,653 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-22 23:29:50,653 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-22 23:29:50,659 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,659 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,662 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,663 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,672 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,677 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,679 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... [2018-11-22 23:29:50,682 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-22 23:29:50,682 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-22 23:29:50,682 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-22 23:29:50,682 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-22 23:29:50,683 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:50" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-22 23:29:50,720 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-22 23:29:50,720 INFO L130 BoogieDeclarations]: Found specification of procedure read~real [2018-11-22 23:29:50,720 INFO L130 BoogieDeclarations]: Found specification of procedure write~real [2018-11-22 23:29:50,720 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-22 23:29:50,720 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-22 23:29:50,720 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-22 23:29:50,720 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-22 23:29:50,721 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~real [2018-11-22 23:29:50,721 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-22 23:29:51,129 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-22 23:29:51,129 INFO L280 CfgBuilder]: Removed 22 assue(true) statements. [2018-11-22 23:29:51,130 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 22.11 11:29:51 BoogieIcfgContainer [2018-11-22 23:29:51,130 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-22 23:29:51,130 INFO L113 PluginConnector]: ------------------------CodeCheck---------------------------- [2018-11-22 23:29:51,130 INFO L271 PluginConnector]: Initializing CodeCheck... [2018-11-22 23:29:51,137 INFO L276 PluginConnector]: CodeCheck initialized [2018-11-22 23:29:51,137 INFO L185 PluginConnector]: Executing the observer CodeCheckObserver from plugin CodeCheck for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 22.11 11:29:51" (1/1) ... [2018-11-22 23:29:51,145 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-22 23:29:51,162 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-22 23:29:51,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 36 states and 59 transitions. [2018-11-22 23:29:51,167 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 59 transitions. [2018-11-22 23:29:51,169 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 12 [2018-11-22 23:29:51,170 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-22 23:29:51,220 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-22 23:29:51,247 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-22 23:29:51,253 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-22 23:29:51,254 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 36 states and 54 transitions. [2018-11-22 23:29:51,254 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 54 transitions. [2018-11-22 23:29:51,254 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 14 [2018-11-22 23:29:51,254 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-22 23:29:51,305 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-22 23:29:51,340 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-22 23:29:51,384 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-22 23:29:51,406 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-22 23:29:51,433 WARN L493 CodeCheckObserver]: This program is UNSAFE, Check terminated with 2 iterations. ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder.RCFGBacktranslator [?] #NULL.base, #NULL.offset := 0, 0;#valid := #valid[0 := 0];~one_exp~0 := 1.0;call ~#halF_exp~0.base, ~#halF_exp~0.offset := #Ultimate.alloc(16);call write~init~real(0.5, ~#halF_exp~0.base, ~#halF_exp~0.offset, 8);call write~init~real(~someUnaryDOUBLEoperation(0.5), ~#halF_exp~0.base, 8 + ~#halF_exp~0.offset, 8);~huge_exp~0 := 1.0E300;~twom1000_exp~0 := 9.332636185032189E-302;~o_threshold_exp~0 := 709.782712893384;~u_threshold_exp~0 := ~someUnaryDOUBLEoperation(745.1332191019411);call ~#ln2HI_exp~0.base, ~#ln2HI_exp~0.offset := #Ultimate.alloc(16);call write~init~real(0.6931471803691238, ~#ln2HI_exp~0.base, ~#ln2HI_exp~0.offset, 8);call write~init~real(~someUnaryDOUBLEoperation(0.6931471803691238), ~#ln2HI_exp~0.base, 8 + ~#ln2HI_exp~0.offset, 8);call ~#ln2LO_exp~0.base, ~#ln2LO_exp~0.offset := #Ultimate.alloc(16);call write~init~real(1.9082149292705877E-10, ~#ln2LO_exp~0.base, ~#ln2LO_exp~0.offset, 8);call write~init~real(~someUnaryDOUBLEoperation(1.9082149292705877E-10), ~#ln2LO_exp~0.base, 8 + ~#ln2LO_exp~0.offset, 8);~invln2_exp~0 := 1.4426950408889634;~P1_exp~0 := 0.16666666666666602;~P2_exp~0 := ~someUnaryDOUBLEoperation(0.0027777777777015593);~P3_exp~0 := 6.613756321437934E-5;~P4_exp~0 := ~someUnaryDOUBLEoperation(1.6533902205465252E-6);~P5_exp~0 := 4.1381367970572385E-8;havoc main_#res;havoc main_#t~ret22, main_#t~ret23, main_~x~0, main_~res~0;main_~x~0 := ~someBinaryArithmeticDOUBLEoperation(1.0, 0.0);__ieee754_exp_#in~x := main_~x~0;havoc __ieee754_exp_#res;havoc __ieee754_exp_#t~mem0, __ieee754_exp_#t~union1, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, __ieee754_exp_#t~mem2, __ieee754_exp_#t~union3, __ieee754_exp_~#gl_u~0.base, __ieee754_exp_~#gl_u~0.offset, __ieee754_exp_#t~ite4, __ieee754_exp_~lx~0, __ieee754_exp_#t~mem5, __ieee754_exp_#t~mem6, __ieee754_exp_#t~mem7, __ieee754_exp_#t~mem8, __ieee754_exp_#t~mem9, __ieee754_exp_#t~mem10, __ieee754_exp_#t~union11, __ieee754_exp_~#gh_u~1.base, __ieee754_exp_~#gh_u~1.offset, __ieee754_exp_#t~mem12, __ieee754_exp_#t~union13.lsw, __ieee754_exp_#t~union13.msw, __ieee754_exp_~#sh_u~0.base, __ieee754_exp_~#sh_u~0.offset, __ieee754_exp_~hy~0, __ieee754_exp_#t~mem14, __ieee754_exp_#t~union15, __ieee754_exp_~#gh_u~2.base, __ieee754_exp_~#gh_u~2.offset, __ieee754_exp_#t~mem16, __ieee754_exp_#t~union17.lsw, __ieee754_exp_#t~union17.msw, __ieee754_exp_~#sh_u~1.base, __ieee754_exp_~#sh_u~1.offset, __ieee754_exp_~hy~1, __ieee754_exp_~x, __ieee754_exp_~y~0, __ieee754_exp_~hi~0, __ieee754_exp_~lo~0, __ieee754_exp_~c~0, __ieee754_exp_~t~0, __ieee754_exp_~k~0, __ieee754_exp_~xsb~0, __ieee754_exp_~hx~0;__ieee754_exp_~x := __ieee754_exp_#in~x;havoc __ieee754_exp_~y~0;havoc __ieee754_exp_~hi~0;havoc __ieee754_exp_~lo~0;havoc __ieee754_exp_~c~0;havoc __ieee754_exp_~t~0;__ieee754_exp_~k~0 := 0;havoc __ieee754_exp_~xsb~0;havoc __ieee754_exp_~hx~0; VAL [ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] call __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset := #Ultimate.alloc(8);call write~real(__ieee754_exp_~x, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, 8);call __ieee754_exp_#t~mem0 := read~int(__ieee754_exp_~#gh_u~0.base, 4 + __ieee754_exp_~#gh_u~0.offset, 4);__ieee754_exp_~hx~0 := __ieee754_exp_#t~mem0;call write~real(__ieee754_exp_#t~union1, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, 8);havoc __ieee754_exp_#t~union1;havoc __ieee754_exp_#t~mem0;call ULTIMATE.dealloc(__ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset);havoc __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset; VAL [ULTIMATE.start___ieee754_exp_~hx~0=9, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] goto; VAL [ULTIMATE.start___ieee754_exp_~hx~0=9, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] __ieee754_exp_~xsb~0 := (if ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 else ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 - 4294967296);__ieee754_exp_~hx~0 := ~bitwiseAnd(__ieee754_exp_~hx~0, 2147483647); VAL [ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] assume __ieee754_exp_~hx~0 % 4294967296 >= 1082535490; VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] assume !(__ieee754_exp_~hx~0 % 4294967296 >= 2146435072); VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] assume ~someBinaryDOUBLEComparisonOperation(__ieee754_exp_~x, ~o_threshold_exp~0);__ieee754_exp_#res := ~someBinaryArithmeticDOUBLEoperation(~huge_exp~0, ~huge_exp~0); VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] main_#t~ret22 := __ieee754_exp_#res;main_~res~0 := main_#t~ret22;havoc main_#t~ret22;isinf_double_#in~x := main_~x~0;havoc isinf_double_#res;havoc isinf_double_#t~mem18, isinf_double_#t~union19, isinf_double_#t~mem20, isinf_double_#t~union21, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, isinf_double_~x, isinf_double_~hx~1, isinf_double_~lx~1;isinf_double_~x := isinf_double_#in~x;havoc isinf_double_~hx~1;havoc isinf_double_~lx~1; VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_isinf_double_~x=9.0, ULTIMATE.start_main_~res~0=10.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |ULTIMATE.start___ieee754_exp_#res|=10.0, |ULTIMATE.start_isinf_double_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] call isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset := #Ultimate.alloc(8);call write~real(isinf_double_~x, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8);call isinf_double_#t~mem18 := read~int(isinf_double_~#ew_u~0.base, 4 + isinf_double_~#ew_u~0.offset, 4);isinf_double_~hx~1 := (if isinf_double_#t~mem18 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem18 % 4294967296 % 4294967296 else isinf_double_#t~mem18 % 4294967296 % 4294967296 - 4294967296);call write~real(isinf_double_#t~union19, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8);havoc isinf_double_#t~union19;havoc isinf_double_#t~mem18;call isinf_double_#t~mem20 := read~int(isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 4);isinf_double_~lx~1 := (if isinf_double_#t~mem20 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem20 % 4294967296 % 4294967296 else isinf_double_#t~mem20 % 4294967296 % 4294967296 - 4294967296);call write~real(isinf_double_#t~union21, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8);havoc isinf_double_#t~mem20;havoc isinf_double_#t~union21;call ULTIMATE.dealloc(isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset);havoc isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset; VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_isinf_double_~hx~1=9725, ULTIMATE.start_isinf_double_~lx~1=2275, ULTIMATE.start_isinf_double_~x=9.0, ULTIMATE.start_main_~res~0=10.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |ULTIMATE.start___ieee754_exp_#res|=10.0, |ULTIMATE.start_isinf_double_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] goto; VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_isinf_double_~hx~1=9725, ULTIMATE.start_isinf_double_~lx~1=2275, ULTIMATE.start_isinf_double_~x=9.0, ULTIMATE.start_main_~res~0=10.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |ULTIMATE.start___ieee754_exp_#res|=10.0, |ULTIMATE.start_isinf_double_#in~x|=9.0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] isinf_double_~hx~1 := ~bitwiseAnd(isinf_double_~hx~1, 2147483647);isinf_double_~hx~1 := (if ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 - 4294967296);isinf_double_~hx~1 := 2146435072 - isinf_double_~hx~1;isinf_double_#res := 1 - (if ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 - 4294967296);main_#t~ret23 := isinf_double_#res;assume -2147483648 <= main_#t~ret23 && main_#t~ret23 <= 2147483647; VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_isinf_double_~hx~1=2146435072, ULTIMATE.start_isinf_double_~lx~1=2275, ULTIMATE.start_isinf_double_~x=9.0, ULTIMATE.start_main_~res~0=10.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |ULTIMATE.start___ieee754_exp_#res|=10.0, |ULTIMATE.start_isinf_double_#in~x|=9.0, |ULTIMATE.start_isinf_double_#res|=0, |ULTIMATE.start_main_#t~ret23|=0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] assume 0 == main_#t~ret23;havoc main_#t~ret23; VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_isinf_double_~hx~1=2146435072, ULTIMATE.start_isinf_double_~lx~1=2275, ULTIMATE.start_isinf_double_~x=9.0, ULTIMATE.start_main_~res~0=10.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |ULTIMATE.start___ieee754_exp_#res|=10.0, |ULTIMATE.start_isinf_double_#in~x|=9.0, |ULTIMATE.start_isinf_double_#res|=0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] assume !false; VAL [ULTIMATE.start___ieee754_exp_~hx~0=1082535490, ULTIMATE.start___ieee754_exp_~k~0=0, ULTIMATE.start___ieee754_exp_~x=9.0, ULTIMATE.start___ieee754_exp_~xsb~0=2240, ULTIMATE.start_isinf_double_~hx~1=2146435072, ULTIMATE.start_isinf_double_~lx~1=2275, ULTIMATE.start_isinf_double_~x=9.0, ULTIMATE.start_main_~res~0=10.0, ULTIMATE.start_main_~x~0=9.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start___ieee754_exp_#in~x|=9.0, |ULTIMATE.start___ieee754_exp_#res|=10.0, |ULTIMATE.start_isinf_double_#in~x|=9.0, |ULTIMATE.start_isinf_double_#res|=0, |~#halF_exp~0.base|=2, |~#halF_exp~0.offset|=0, |~#ln2HI_exp~0.base|=3, |~#ln2HI_exp~0.offset|=0, |~#ln2LO_exp~0.base|=5, |~#ln2LO_exp~0.offset|=0, ~huge_exp~0=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0, ~invln2_exp~0=(/ 1442695040888963387.0 1000000000000000000.0), ~o_threshold_exp~0=(/ 88722839111672996637.0 125000000000000000.0), ~one_exp~0=1.0, ~P1_exp~0=(/ 166666666666666019037.0 1000000000000000000000.0), ~P3_exp~0=(/ 661375632143793436117.0 10000000000000000000000000.0), ~P5_exp~0=(/ 413813679705723846039.0 10000000000000000000000000000.0), ~twom1000_exp~0=(/ 93326361850321887899.0 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0)] [?] #NULL.base, #NULL.offset := 0, 0; [?] #valid := #valid[0 := 0]; [L17-L42] ~one_exp~0 := 1.0; [L17-L42] call ~#halF_exp~0.base, ~#halF_exp~0.offset := #Ultimate.alloc(16); [L17-L42] call write~init~real(0.5, ~#halF_exp~0.base, ~#halF_exp~0.offset, 8); [L17-L42] call write~init~real(~someUnaryDOUBLEoperation(0.5), ~#halF_exp~0.base, 8 + ~#halF_exp~0.offset, 8); [L17-L42] ~huge_exp~0 := 1.0E300; [L17-L42] ~twom1000_exp~0 := 9.332636185032189E-302; [L17-L42] ~o_threshold_exp~0 := 709.782712893384; [L17-L42] ~u_threshold_exp~0 := ~someUnaryDOUBLEoperation(745.1332191019411); [L17-L42] call ~#ln2HI_exp~0.base, ~#ln2HI_exp~0.offset := #Ultimate.alloc(16); [L17-L42] call write~init~real(0.6931471803691238, ~#ln2HI_exp~0.base, ~#ln2HI_exp~0.offset, 8); [L17-L42] call write~init~real(~someUnaryDOUBLEoperation(0.6931471803691238), ~#ln2HI_exp~0.base, 8 + ~#ln2HI_exp~0.offset, 8); [L17-L42] call ~#ln2LO_exp~0.base, ~#ln2LO_exp~0.offset := #Ultimate.alloc(16); [L17-L42] call write~init~real(1.9082149292705877E-10, ~#ln2LO_exp~0.base, ~#ln2LO_exp~0.offset, 8); [L17-L42] call write~init~real(~someUnaryDOUBLEoperation(1.9082149292705877E-10), ~#ln2LO_exp~0.base, 8 + ~#ln2LO_exp~0.offset, 8); [L17-L42] ~invln2_exp~0 := 1.4426950408889634; [L17-L42] ~P1_exp~0 := 0.16666666666666602; [L17-L42] ~P2_exp~0 := ~someUnaryDOUBLEoperation(0.0027777777777015593); [L17-L42] ~P3_exp~0 := 6.613756321437934E-5; [L17-L42] ~P4_exp~0 := ~someUnaryDOUBLEoperation(1.6533902205465252E-6); [L17-L42] ~P5_exp~0 := 4.1381367970572385E-8; [?] havoc main_#res; [?] havoc main_#t~ret22, main_#t~ret23, main_~x~0, main_~res~0; [L153] main_~x~0 := ~someBinaryArithmeticDOUBLEoperation(1.0, 0.0); [L154] __ieee754_exp_#in~x := main_~x~0; [L154] havoc __ieee754_exp_#res; [L154] havoc __ieee754_exp_#t~mem0, __ieee754_exp_#t~union1, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, __ieee754_exp_#t~mem2, __ieee754_exp_#t~union3, __ieee754_exp_~#gl_u~0.base, __ieee754_exp_~#gl_u~0.offset, __ieee754_exp_#t~ite4, __ieee754_exp_~lx~0, __ieee754_exp_#t~mem5, __ieee754_exp_#t~mem6, __ieee754_exp_#t~mem7, __ieee754_exp_#t~mem8, __ieee754_exp_#t~mem9, __ieee754_exp_#t~mem10, __ieee754_exp_#t~union11, __ieee754_exp_~#gh_u~1.base, __ieee754_exp_~#gh_u~1.offset, __ieee754_exp_#t~mem12, __ieee754_exp_#t~union13.lsw, __ieee754_exp_#t~union13.msw, __ieee754_exp_~#sh_u~0.base, __ieee754_exp_~#sh_u~0.offset, __ieee754_exp_~hy~0, __ieee754_exp_#t~mem14, __ieee754_exp_#t~union15, __ieee754_exp_~#gh_u~2.base, __ieee754_exp_~#gh_u~2.offset, __ieee754_exp_#t~mem16, __ieee754_exp_#t~union17.lsw, __ieee754_exp_#t~union17.msw, __ieee754_exp_~#sh_u~1.base, __ieee754_exp_~#sh_u~1.offset, __ieee754_exp_~hy~1, __ieee754_exp_~x, __ieee754_exp_~y~0, __ieee754_exp_~hi~0, __ieee754_exp_~lo~0, __ieee754_exp_~c~0, __ieee754_exp_~t~0, __ieee754_exp_~k~0, __ieee754_exp_~xsb~0, __ieee754_exp_~hx~0; [L44-L129] __ieee754_exp_~x := __ieee754_exp_#in~x; [L45] havoc __ieee754_exp_~y~0; [L45] havoc __ieee754_exp_~hi~0; [L45] havoc __ieee754_exp_~lo~0; [L45] havoc __ieee754_exp_~c~0; [L45] havoc __ieee754_exp_~t~0; [L46] __ieee754_exp_~k~0 := 0; [L46] havoc __ieee754_exp_~xsb~0; [L47] havoc __ieee754_exp_~hx~0; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L50] call __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset := #Ultimate.alloc(8); [L51] call write~real(__ieee754_exp_~x, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, 8); [L52] call __ieee754_exp_#t~mem0 := read~int(__ieee754_exp_~#gh_u~0.base, 4 + __ieee754_exp_~#gh_u~0.offset, 4); [L52] __ieee754_exp_~hx~0 := __ieee754_exp_#t~mem0; [L52] call write~real(__ieee754_exp_#t~union1, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, 8); [L52] havoc __ieee754_exp_#t~union1; [L52] havoc __ieee754_exp_#t~mem0; [L50] call ULTIMATE.dealloc(__ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset); [L50] havoc __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=9, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L54] __ieee754_exp_~xsb~0 := (if ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 else ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 - 4294967296); [L55] __ieee754_exp_~hx~0 := ~bitwiseAnd(__ieee754_exp_~hx~0, 2147483647); VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L57-L74] assume __ieee754_exp_~hx~0 % 4294967296 >= 1082535490; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L58-L69] assume !(__ieee754_exp_~hx~0 % 4294967296 >= 2146435072); VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L70-L71] assume ~someBinaryDOUBLEComparisonOperation(__ieee754_exp_~x, ~o_threshold_exp~0); [L71] __ieee754_exp_#res := ~someBinaryArithmeticDOUBLEoperation(~huge_exp~0, ~huge_exp~0); VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L154] main_#t~ret22 := __ieee754_exp_#res; [L154] main_~res~0 := main_#t~ret22; [L154] havoc main_#t~ret22; [L157] isinf_double_#in~x := main_~x~0; [L157] havoc isinf_double_#res; [L157] havoc isinf_double_#t~mem18, isinf_double_#t~union19, isinf_double_#t~mem20, isinf_double_#t~union21, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, isinf_double_~x, isinf_double_~hx~1, isinf_double_~lx~1; [L132-L144] isinf_double_~x := isinf_double_#in~x; [L133] havoc isinf_double_~hx~1; [L133] havoc isinf_double_~lx~1; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L135] call isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset := #Ultimate.alloc(8); [L136] call write~real(isinf_double_~x, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8); [L137] call isinf_double_#t~mem18 := read~int(isinf_double_~#ew_u~0.base, 4 + isinf_double_~#ew_u~0.offset, 4); [L137] isinf_double_~hx~1 := (if isinf_double_#t~mem18 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem18 % 4294967296 % 4294967296 else isinf_double_#t~mem18 % 4294967296 % 4294967296 - 4294967296); [L137] call write~real(isinf_double_#t~union19, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8); [L137] havoc isinf_double_#t~union19; [L137] havoc isinf_double_#t~mem18; [L138] call isinf_double_#t~mem20 := read~int(isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 4); [L138] isinf_double_~lx~1 := (if isinf_double_#t~mem20 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem20 % 4294967296 % 4294967296 else isinf_double_#t~mem20 % 4294967296 % 4294967296 - 4294967296); [L138] call write~real(isinf_double_#t~union21, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8); [L138] havoc isinf_double_#t~mem20; [L138] havoc isinf_double_#t~union21; [L135] call ULTIMATE.dealloc(isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset); [L135] havoc isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_~hx~1=9725, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L140] isinf_double_~hx~1 := ~bitwiseAnd(isinf_double_~hx~1, 2147483647); [L141] isinf_double_~hx~1 := (if ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 - 4294967296); [L142] isinf_double_~hx~1 := 2146435072 - isinf_double_~hx~1; [L143] isinf_double_#res := 1 - (if ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 - 4294967296); [L157] main_#t~ret23 := isinf_double_#res; [L157] assume -2147483648 <= main_#t~ret23 && main_#t~ret23 <= 2147483647; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_#t~ret23=0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L157-L160] assume 0 == main_#t~ret23; [L157] havoc main_#t~ret23; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L158] assert false; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] #NULL.base, #NULL.offset := 0, 0; [?] #valid := #valid[0 := 0]; [L17-L42] ~one_exp~0 := 1.0; [L17-L42] call ~#halF_exp~0.base, ~#halF_exp~0.offset := #Ultimate.alloc(16); [L17-L42] call write~init~real(0.5, ~#halF_exp~0.base, ~#halF_exp~0.offset, 8); [L17-L42] call write~init~real(~someUnaryDOUBLEoperation(0.5), ~#halF_exp~0.base, 8 + ~#halF_exp~0.offset, 8); [L17-L42] ~huge_exp~0 := 1.0E300; [L17-L42] ~twom1000_exp~0 := 9.332636185032189E-302; [L17-L42] ~o_threshold_exp~0 := 709.782712893384; [L17-L42] ~u_threshold_exp~0 := ~someUnaryDOUBLEoperation(745.1332191019411); [L17-L42] call ~#ln2HI_exp~0.base, ~#ln2HI_exp~0.offset := #Ultimate.alloc(16); [L17-L42] call write~init~real(0.6931471803691238, ~#ln2HI_exp~0.base, ~#ln2HI_exp~0.offset, 8); [L17-L42] call write~init~real(~someUnaryDOUBLEoperation(0.6931471803691238), ~#ln2HI_exp~0.base, 8 + ~#ln2HI_exp~0.offset, 8); [L17-L42] call ~#ln2LO_exp~0.base, ~#ln2LO_exp~0.offset := #Ultimate.alloc(16); [L17-L42] call write~init~real(1.9082149292705877E-10, ~#ln2LO_exp~0.base, ~#ln2LO_exp~0.offset, 8); [L17-L42] call write~init~real(~someUnaryDOUBLEoperation(1.9082149292705877E-10), ~#ln2LO_exp~0.base, 8 + ~#ln2LO_exp~0.offset, 8); [L17-L42] ~invln2_exp~0 := 1.4426950408889634; [L17-L42] ~P1_exp~0 := 0.16666666666666602; [L17-L42] ~P2_exp~0 := ~someUnaryDOUBLEoperation(0.0027777777777015593); [L17-L42] ~P3_exp~0 := 6.613756321437934E-5; [L17-L42] ~P4_exp~0 := ~someUnaryDOUBLEoperation(1.6533902205465252E-6); [L17-L42] ~P5_exp~0 := 4.1381367970572385E-8; [?] havoc main_#res; [?] havoc main_#t~ret22, main_#t~ret23, main_~x~0, main_~res~0; [L153] main_~x~0 := ~someBinaryArithmeticDOUBLEoperation(1.0, 0.0); [L154] __ieee754_exp_#in~x := main_~x~0; [L154] havoc __ieee754_exp_#res; [L154] havoc __ieee754_exp_#t~mem0, __ieee754_exp_#t~union1, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, __ieee754_exp_#t~mem2, __ieee754_exp_#t~union3, __ieee754_exp_~#gl_u~0.base, __ieee754_exp_~#gl_u~0.offset, __ieee754_exp_#t~ite4, __ieee754_exp_~lx~0, __ieee754_exp_#t~mem5, __ieee754_exp_#t~mem6, __ieee754_exp_#t~mem7, __ieee754_exp_#t~mem8, __ieee754_exp_#t~mem9, __ieee754_exp_#t~mem10, __ieee754_exp_#t~union11, __ieee754_exp_~#gh_u~1.base, __ieee754_exp_~#gh_u~1.offset, __ieee754_exp_#t~mem12, __ieee754_exp_#t~union13.lsw, __ieee754_exp_#t~union13.msw, __ieee754_exp_~#sh_u~0.base, __ieee754_exp_~#sh_u~0.offset, __ieee754_exp_~hy~0, __ieee754_exp_#t~mem14, __ieee754_exp_#t~union15, __ieee754_exp_~#gh_u~2.base, __ieee754_exp_~#gh_u~2.offset, __ieee754_exp_#t~mem16, __ieee754_exp_#t~union17.lsw, __ieee754_exp_#t~union17.msw, __ieee754_exp_~#sh_u~1.base, __ieee754_exp_~#sh_u~1.offset, __ieee754_exp_~hy~1, __ieee754_exp_~x, __ieee754_exp_~y~0, __ieee754_exp_~hi~0, __ieee754_exp_~lo~0, __ieee754_exp_~c~0, __ieee754_exp_~t~0, __ieee754_exp_~k~0, __ieee754_exp_~xsb~0, __ieee754_exp_~hx~0; [L44-L129] __ieee754_exp_~x := __ieee754_exp_#in~x; [L45] havoc __ieee754_exp_~y~0; [L45] havoc __ieee754_exp_~hi~0; [L45] havoc __ieee754_exp_~lo~0; [L45] havoc __ieee754_exp_~c~0; [L45] havoc __ieee754_exp_~t~0; [L46] __ieee754_exp_~k~0 := 0; [L46] havoc __ieee754_exp_~xsb~0; [L47] havoc __ieee754_exp_~hx~0; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L50] call __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset := #Ultimate.alloc(8); [L51] call write~real(__ieee754_exp_~x, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, 8); [L52] call __ieee754_exp_#t~mem0 := read~int(__ieee754_exp_~#gh_u~0.base, 4 + __ieee754_exp_~#gh_u~0.offset, 4); [L52] __ieee754_exp_~hx~0 := __ieee754_exp_#t~mem0; [L52] call write~real(__ieee754_exp_#t~union1, __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset, 8); [L52] havoc __ieee754_exp_#t~union1; [L52] havoc __ieee754_exp_#t~mem0; [L50] call ULTIMATE.dealloc(__ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset); [L50] havoc __ieee754_exp_~#gh_u~0.base, __ieee754_exp_~#gh_u~0.offset; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=9, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L54] __ieee754_exp_~xsb~0 := (if ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 else ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 - 4294967296); [L55] __ieee754_exp_~hx~0 := ~bitwiseAnd(__ieee754_exp_~hx~0, 2147483647); VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L57-L74] assume __ieee754_exp_~hx~0 % 4294967296 >= 1082535490; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L58-L69] assume !(__ieee754_exp_~hx~0 % 4294967296 >= 2146435072); VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L70-L71] assume ~someBinaryDOUBLEComparisonOperation(__ieee754_exp_~x, ~o_threshold_exp~0); [L71] __ieee754_exp_#res := ~someBinaryArithmeticDOUBLEoperation(~huge_exp~0, ~huge_exp~0); VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L154] main_#t~ret22 := __ieee754_exp_#res; [L154] main_~res~0 := main_#t~ret22; [L154] havoc main_#t~ret22; [L157] isinf_double_#in~x := main_~x~0; [L157] havoc isinf_double_#res; [L157] havoc isinf_double_#t~mem18, isinf_double_#t~union19, isinf_double_#t~mem20, isinf_double_#t~union21, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, isinf_double_~x, isinf_double_~hx~1, isinf_double_~lx~1; [L132-L144] isinf_double_~x := isinf_double_#in~x; [L133] havoc isinf_double_~hx~1; [L133] havoc isinf_double_~lx~1; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L135] call isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset := #Ultimate.alloc(8); [L136] call write~real(isinf_double_~x, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8); [L137] call isinf_double_#t~mem18 := read~int(isinf_double_~#ew_u~0.base, 4 + isinf_double_~#ew_u~0.offset, 4); [L137] isinf_double_~hx~1 := (if isinf_double_#t~mem18 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem18 % 4294967296 % 4294967296 else isinf_double_#t~mem18 % 4294967296 % 4294967296 - 4294967296); [L137] call write~real(isinf_double_#t~union19, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8); [L137] havoc isinf_double_#t~union19; [L137] havoc isinf_double_#t~mem18; [L138] call isinf_double_#t~mem20 := read~int(isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 4); [L138] isinf_double_~lx~1 := (if isinf_double_#t~mem20 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem20 % 4294967296 % 4294967296 else isinf_double_#t~mem20 % 4294967296 % 4294967296 - 4294967296); [L138] call write~real(isinf_double_#t~union21, isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset, 8); [L138] havoc isinf_double_#t~mem20; [L138] havoc isinf_double_#t~union21; [L135] call ULTIMATE.dealloc(isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset); [L135] havoc isinf_double_~#ew_u~0.base, isinf_double_~#ew_u~0.offset; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_~hx~1=9725, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L140] isinf_double_~hx~1 := ~bitwiseAnd(isinf_double_~hx~1, 2147483647); [L141] isinf_double_~hx~1 := (if ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 - 4294967296); [L142] isinf_double_~hx~1 := 2146435072 - isinf_double_~hx~1; [L143] isinf_double_#res := 1 - (if ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 - 4294967296); [L157] main_#t~ret23 := isinf_double_#res; [L157] assume -2147483648 <= main_#t~ret23 && main_#t~ret23 <= 2147483647; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_#t~ret23=0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L157-L160] assume 0 == main_#t~ret23; [L157] havoc main_#t~ret23; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L158] assert false; VAL [#NULL.base=0, #NULL.offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0.base=2, ~#halF_exp~0.offset=0, ~#ln2HI_exp~0.base=3, ~#ln2HI_exp~0.offset=0, ~#ln2LO_exp~0.base=5, ~#ln2LO_exp~0.offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; [L17-L42] ~one_exp~0 := 1.0; [L17-L42] FCALL call ~#halF_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(0.5, { base: ~#halF_exp~0!base, offset: ~#halF_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.5), { base: ~#halF_exp~0!base, offset: 8 + ~#halF_exp~0!offset }, 8); [L17-L42] ~huge_exp~0 := 1.0E300; [L17-L42] ~twom1000_exp~0 := 9.332636185032189E-302; [L17-L42] ~o_threshold_exp~0 := 709.782712893384; [L17-L42] ~u_threshold_exp~0 := ~someUnaryDOUBLEoperation(745.1332191019411); [L17-L42] FCALL call ~#ln2HI_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(0.6931471803691238, { base: ~#ln2HI_exp~0!base, offset: ~#ln2HI_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.6931471803691238), { base: ~#ln2HI_exp~0!base, offset: 8 + ~#ln2HI_exp~0!offset }, 8); [L17-L42] FCALL call ~#ln2LO_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(1.9082149292705877E-10, { base: ~#ln2LO_exp~0!base, offset: ~#ln2LO_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(1.9082149292705877E-10), { base: ~#ln2LO_exp~0!base, offset: 8 + ~#ln2LO_exp~0!offset }, 8); [L17-L42] ~invln2_exp~0 := 1.4426950408889634; [L17-L42] ~P1_exp~0 := 0.16666666666666602; [L17-L42] ~P2_exp~0 := ~someUnaryDOUBLEoperation(0.0027777777777015593); [L17-L42] ~P3_exp~0 := 6.613756321437934E-5; [L17-L42] ~P4_exp~0 := ~someUnaryDOUBLEoperation(1.6533902205465252E-6); [L17-L42] ~P5_exp~0 := 4.1381367970572385E-8; [?] havoc main_#res; [?] havoc main_#t~ret22, main_#t~ret23, main_~x~0, main_~res~0; [L153] main_~x~0 := ~someBinaryArithmeticDOUBLEoperation(1.0, 0.0); [L154] __ieee754_exp_#in~x := main_~x~0; [L154] havoc __ieee754_exp_#res; [L154] havoc __ieee754_exp_#t~mem0, __ieee754_exp_#t~union1, __ieee754_exp_~#gh_u~0, __ieee754_exp_#t~mem2, __ieee754_exp_#t~union3, __ieee754_exp_~#gl_u~0, __ieee754_exp_#t~ite4, __ieee754_exp_~lx~0, __ieee754_exp_#t~mem5, __ieee754_exp_#t~mem6, __ieee754_exp_#t~mem7, __ieee754_exp_#t~mem8, __ieee754_exp_#t~mem9, __ieee754_exp_#t~mem10, __ieee754_exp_#t~union11, __ieee754_exp_~#gh_u~1, __ieee754_exp_#t~mem12, __ieee754_exp_#t~union13, __ieee754_exp_~#sh_u~0, __ieee754_exp_~hy~0, __ieee754_exp_#t~mem14, __ieee754_exp_#t~union15, __ieee754_exp_~#gh_u~2, __ieee754_exp_#t~mem16, __ieee754_exp_#t~union17, __ieee754_exp_~#sh_u~1, __ieee754_exp_~hy~1, __ieee754_exp_~x, __ieee754_exp_~y~0, __ieee754_exp_~hi~0, __ieee754_exp_~lo~0, __ieee754_exp_~c~0, __ieee754_exp_~t~0, __ieee754_exp_~k~0, __ieee754_exp_~xsb~0, __ieee754_exp_~hx~0; [L44-L129] __ieee754_exp_~x := __ieee754_exp_#in~x; [L45] havoc __ieee754_exp_~y~0; [L45] havoc __ieee754_exp_~hi~0; [L45] havoc __ieee754_exp_~lo~0; [L45] havoc __ieee754_exp_~c~0; [L45] havoc __ieee754_exp_~t~0; [L46] __ieee754_exp_~k~0 := 0; [L46] havoc __ieee754_exp_~xsb~0; [L47] havoc __ieee754_exp_~hx~0; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L50] FCALL call __ieee754_exp_~#gh_u~0 := #Ultimate.alloc(8); [L51] FCALL call write~real(__ieee754_exp_~x, { base: __ieee754_exp_~#gh_u~0!base, offset: __ieee754_exp_~#gh_u~0!offset }, 8); [L52] FCALL call __ieee754_exp_#t~mem0 := read~int({ base: __ieee754_exp_~#gh_u~0!base, offset: 4 + __ieee754_exp_~#gh_u~0!offset }, 4); [L52] __ieee754_exp_~hx~0 := __ieee754_exp_#t~mem0; [L52] FCALL call write~real(__ieee754_exp_#t~union1, { base: __ieee754_exp_~#gh_u~0!base, offset: __ieee754_exp_~#gh_u~0!offset }, 8); [L52] havoc __ieee754_exp_#t~union1; [L52] havoc __ieee754_exp_#t~mem0; [L50] FCALL call ULTIMATE.dealloc(__ieee754_exp_~#gh_u~0); [L50] havoc __ieee754_exp_~#gh_u~0; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=9, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L54] __ieee754_exp_~xsb~0 := (if ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 else ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 - 4294967296); [L55] __ieee754_exp_~hx~0 := ~bitwiseAnd(__ieee754_exp_~hx~0, 2147483647); VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L57] COND TRUE __ieee754_exp_~hx~0 % 4294967296 >= 1082535490 VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L58] COND FALSE !(__ieee754_exp_~hx~0 % 4294967296 >= 2146435072) VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L70] COND TRUE ~someBinaryDOUBLEComparisonOperation(__ieee754_exp_~x, ~o_threshold_exp~0) [L71] __ieee754_exp_#res := ~someBinaryArithmeticDOUBLEoperation(~huge_exp~0, ~huge_exp~0); VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L154] main_#t~ret22 := __ieee754_exp_#res; [L154] main_~res~0 := main_#t~ret22; [L154] havoc main_#t~ret22; [L157] isinf_double_#in~x := main_~x~0; [L157] havoc isinf_double_#res; [L157] havoc isinf_double_#t~mem18, isinf_double_#t~union19, isinf_double_#t~mem20, isinf_double_#t~union21, isinf_double_~#ew_u~0, isinf_double_~x, isinf_double_~hx~1, isinf_double_~lx~1; [L132-L144] isinf_double_~x := isinf_double_#in~x; [L133] havoc isinf_double_~hx~1; [L133] havoc isinf_double_~lx~1; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L135] FCALL call isinf_double_~#ew_u~0 := #Ultimate.alloc(8); [L136] FCALL call write~real(isinf_double_~x, { base: isinf_double_~#ew_u~0!base, offset: isinf_double_~#ew_u~0!offset }, 8); [L137] FCALL call isinf_double_#t~mem18 := read~int({ base: isinf_double_~#ew_u~0!base, offset: 4 + isinf_double_~#ew_u~0!offset }, 4); [L137] isinf_double_~hx~1 := (if isinf_double_#t~mem18 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem18 % 4294967296 % 4294967296 else isinf_double_#t~mem18 % 4294967296 % 4294967296 - 4294967296); [L137] FCALL call write~real(isinf_double_#t~union19, { base: isinf_double_~#ew_u~0!base, offset: isinf_double_~#ew_u~0!offset }, 8); [L137] havoc isinf_double_#t~union19; [L137] havoc isinf_double_#t~mem18; [L138] FCALL call isinf_double_#t~mem20 := read~int({ base: isinf_double_~#ew_u~0!base, offset: isinf_double_~#ew_u~0!offset }, 4); [L138] isinf_double_~lx~1 := (if isinf_double_#t~mem20 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem20 % 4294967296 % 4294967296 else isinf_double_#t~mem20 % 4294967296 % 4294967296 - 4294967296); [L138] FCALL call write~real(isinf_double_#t~union21, { base: isinf_double_~#ew_u~0!base, offset: isinf_double_~#ew_u~0!offset }, 8); [L138] havoc isinf_double_#t~mem20; [L138] havoc isinf_double_#t~union21; [L135] FCALL call ULTIMATE.dealloc(isinf_double_~#ew_u~0); [L135] havoc isinf_double_~#ew_u~0; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_~hx~1=9725, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L140] isinf_double_~hx~1 := ~bitwiseAnd(isinf_double_~hx~1, 2147483647); [L141] isinf_double_~hx~1 := (if ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 - 4294967296); [L142] isinf_double_~hx~1 := 2146435072 - isinf_double_~hx~1; [L143] isinf_double_#res := 1 - (if ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 - 4294967296); [L157] main_#t~ret23 := isinf_double_#res; [L157] assume -2147483648 <= main_#t~ret23 && main_#t~ret23 <= 2147483647; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_#t~ret23=0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L157] COND TRUE 0 == main_#t~ret23 [L157] havoc main_#t~ret23; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L158] assert false; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; [L17-L42] ~one_exp~0 := 1.0; [L17-L42] FCALL call ~#halF_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(0.5, { base: ~#halF_exp~0!base, offset: ~#halF_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.5), { base: ~#halF_exp~0!base, offset: 8 + ~#halF_exp~0!offset }, 8); [L17-L42] ~huge_exp~0 := 1.0E300; [L17-L42] ~twom1000_exp~0 := 9.332636185032189E-302; [L17-L42] ~o_threshold_exp~0 := 709.782712893384; [L17-L42] ~u_threshold_exp~0 := ~someUnaryDOUBLEoperation(745.1332191019411); [L17-L42] FCALL call ~#ln2HI_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(0.6931471803691238, { base: ~#ln2HI_exp~0!base, offset: ~#ln2HI_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.6931471803691238), { base: ~#ln2HI_exp~0!base, offset: 8 + ~#ln2HI_exp~0!offset }, 8); [L17-L42] FCALL call ~#ln2LO_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(1.9082149292705877E-10, { base: ~#ln2LO_exp~0!base, offset: ~#ln2LO_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(1.9082149292705877E-10), { base: ~#ln2LO_exp~0!base, offset: 8 + ~#ln2LO_exp~0!offset }, 8); [L17-L42] ~invln2_exp~0 := 1.4426950408889634; [L17-L42] ~P1_exp~0 := 0.16666666666666602; [L17-L42] ~P2_exp~0 := ~someUnaryDOUBLEoperation(0.0027777777777015593); [L17-L42] ~P3_exp~0 := 6.613756321437934E-5; [L17-L42] ~P4_exp~0 := ~someUnaryDOUBLEoperation(1.6533902205465252E-6); [L17-L42] ~P5_exp~0 := 4.1381367970572385E-8; [?] havoc main_#res; [?] havoc main_#t~ret22, main_#t~ret23, main_~x~0, main_~res~0; [L153] main_~x~0 := ~someBinaryArithmeticDOUBLEoperation(1.0, 0.0); [L154] __ieee754_exp_#in~x := main_~x~0; [L154] havoc __ieee754_exp_#res; [L154] havoc __ieee754_exp_#t~mem0, __ieee754_exp_#t~union1, __ieee754_exp_~#gh_u~0, __ieee754_exp_#t~mem2, __ieee754_exp_#t~union3, __ieee754_exp_~#gl_u~0, __ieee754_exp_#t~ite4, __ieee754_exp_~lx~0, __ieee754_exp_#t~mem5, __ieee754_exp_#t~mem6, __ieee754_exp_#t~mem7, __ieee754_exp_#t~mem8, __ieee754_exp_#t~mem9, __ieee754_exp_#t~mem10, __ieee754_exp_#t~union11, __ieee754_exp_~#gh_u~1, __ieee754_exp_#t~mem12, __ieee754_exp_#t~union13, __ieee754_exp_~#sh_u~0, __ieee754_exp_~hy~0, __ieee754_exp_#t~mem14, __ieee754_exp_#t~union15, __ieee754_exp_~#gh_u~2, __ieee754_exp_#t~mem16, __ieee754_exp_#t~union17, __ieee754_exp_~#sh_u~1, __ieee754_exp_~hy~1, __ieee754_exp_~x, __ieee754_exp_~y~0, __ieee754_exp_~hi~0, __ieee754_exp_~lo~0, __ieee754_exp_~c~0, __ieee754_exp_~t~0, __ieee754_exp_~k~0, __ieee754_exp_~xsb~0, __ieee754_exp_~hx~0; [L44-L129] __ieee754_exp_~x := __ieee754_exp_#in~x; [L45] havoc __ieee754_exp_~y~0; [L45] havoc __ieee754_exp_~hi~0; [L45] havoc __ieee754_exp_~lo~0; [L45] havoc __ieee754_exp_~c~0; [L45] havoc __ieee754_exp_~t~0; [L46] __ieee754_exp_~k~0 := 0; [L46] havoc __ieee754_exp_~xsb~0; [L47] havoc __ieee754_exp_~hx~0; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L50] FCALL call __ieee754_exp_~#gh_u~0 := #Ultimate.alloc(8); [L51] FCALL call write~real(__ieee754_exp_~x, { base: __ieee754_exp_~#gh_u~0!base, offset: __ieee754_exp_~#gh_u~0!offset }, 8); [L52] FCALL call __ieee754_exp_#t~mem0 := read~int({ base: __ieee754_exp_~#gh_u~0!base, offset: 4 + __ieee754_exp_~#gh_u~0!offset }, 4); [L52] __ieee754_exp_~hx~0 := __ieee754_exp_#t~mem0; [L52] FCALL call write~real(__ieee754_exp_#t~union1, { base: __ieee754_exp_~#gh_u~0!base, offset: __ieee754_exp_~#gh_u~0!offset }, 8); [L52] havoc __ieee754_exp_#t~union1; [L52] havoc __ieee754_exp_#t~mem0; [L50] FCALL call ULTIMATE.dealloc(__ieee754_exp_~#gh_u~0); [L50] havoc __ieee754_exp_~#gh_u~0; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=9, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L54] __ieee754_exp_~xsb~0 := (if ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 else ~bitwiseAnd(__ieee754_exp_~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 - 4294967296); [L55] __ieee754_exp_~hx~0 := ~bitwiseAnd(__ieee754_exp_~hx~0, 2147483647); VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L57] COND TRUE __ieee754_exp_~hx~0 % 4294967296 >= 1082535490 VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L58] COND FALSE !(__ieee754_exp_~hx~0 % 4294967296 >= 2146435072) VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L70] COND TRUE ~someBinaryDOUBLEComparisonOperation(__ieee754_exp_~x, ~o_threshold_exp~0) [L71] __ieee754_exp_#res := ~someBinaryArithmeticDOUBLEoperation(~huge_exp~0, ~huge_exp~0); VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L154] main_#t~ret22 := __ieee754_exp_#res; [L154] main_~res~0 := main_#t~ret22; [L154] havoc main_#t~ret22; [L157] isinf_double_#in~x := main_~x~0; [L157] havoc isinf_double_#res; [L157] havoc isinf_double_#t~mem18, isinf_double_#t~union19, isinf_double_#t~mem20, isinf_double_#t~union21, isinf_double_~#ew_u~0, isinf_double_~x, isinf_double_~hx~1, isinf_double_~lx~1; [L132-L144] isinf_double_~x := isinf_double_#in~x; [L133] havoc isinf_double_~hx~1; [L133] havoc isinf_double_~lx~1; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L135] FCALL call isinf_double_~#ew_u~0 := #Ultimate.alloc(8); [L136] FCALL call write~real(isinf_double_~x, { base: isinf_double_~#ew_u~0!base, offset: isinf_double_~#ew_u~0!offset }, 8); [L137] FCALL call isinf_double_#t~mem18 := read~int({ base: isinf_double_~#ew_u~0!base, offset: 4 + isinf_double_~#ew_u~0!offset }, 4); [L137] isinf_double_~hx~1 := (if isinf_double_#t~mem18 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem18 % 4294967296 % 4294967296 else isinf_double_#t~mem18 % 4294967296 % 4294967296 - 4294967296); [L137] FCALL call write~real(isinf_double_#t~union19, { base: isinf_double_~#ew_u~0!base, offset: isinf_double_~#ew_u~0!offset }, 8); [L137] havoc isinf_double_#t~union19; [L137] havoc isinf_double_#t~mem18; [L138] FCALL call isinf_double_#t~mem20 := read~int({ base: isinf_double_~#ew_u~0!base, offset: isinf_double_~#ew_u~0!offset }, 4); [L138] isinf_double_~lx~1 := (if isinf_double_#t~mem20 % 4294967296 % 4294967296 <= 2147483647 then isinf_double_#t~mem20 % 4294967296 % 4294967296 else isinf_double_#t~mem20 % 4294967296 % 4294967296 - 4294967296); [L138] FCALL call write~real(isinf_double_#t~union21, { base: isinf_double_~#ew_u~0!base, offset: isinf_double_~#ew_u~0!offset }, 8); [L138] havoc isinf_double_#t~mem20; [L138] havoc isinf_double_#t~union21; [L135] FCALL call ULTIMATE.dealloc(isinf_double_~#ew_u~0); [L135] havoc isinf_double_~#ew_u~0; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_~hx~1=9725, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L140] isinf_double_~hx~1 := ~bitwiseAnd(isinf_double_~hx~1, 2147483647); [L141] isinf_double_~hx~1 := (if ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, ~bitwiseOr(isinf_double_~lx~1, -isinf_double_~lx~1) / 2147483648) % 4294967296 % 4294967296 - 4294967296); [L142] isinf_double_~hx~1 := 2146435072 - isinf_double_~hx~1; [L143] isinf_double_#res := 1 - (if ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 else ~bitwiseOr(isinf_double_~hx~1, -isinf_double_~hx~1) / 2147483648 % 4294967296 % 4294967296 - 4294967296); [L157] main_#t~ret23 := isinf_double_#res; [L157] assume -2147483648 <= main_#t~ret23 && main_#t~ret23 <= 2147483647; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_#t~ret23=0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L157] COND TRUE 0 == main_#t~ret23 [L157] havoc main_#t~ret23; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L158] assert false; VAL [#NULL!base=0, #NULL!offset=0, __ieee754_exp_#in~x=9.0, __ieee754_exp_#res=10.0, __ieee754_exp_~hx~0=1082535490, __ieee754_exp_~k~0=0, __ieee754_exp_~x=9.0, __ieee754_exp_~xsb~0=2240, isinf_double_#in~x=9.0, isinf_double_#res=0, isinf_double_~hx~1=2146435072, isinf_double_~lx~1=2275, isinf_double_~x=9.0, main_~res~0=10.0, main_~x~0=9.0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; [L17-L42] ~one_exp~0 := 1.0; [L17-L42] FCALL call ~#halF_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(0.5, { base: ~#halF_exp~0!base, offset: ~#halF_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.5), { base: ~#halF_exp~0!base, offset: 8 + ~#halF_exp~0!offset }, 8); [L17-L42] ~huge_exp~0 := 1.0E300; [L17-L42] ~twom1000_exp~0 := 9.332636185032189E-302; [L17-L42] ~o_threshold_exp~0 := 709.782712893384; [L17-L42] ~u_threshold_exp~0 := ~someUnaryDOUBLEoperation(745.1332191019411); [L17-L42] FCALL call ~#ln2HI_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(0.6931471803691238, { base: ~#ln2HI_exp~0!base, offset: ~#ln2HI_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.6931471803691238), { base: ~#ln2HI_exp~0!base, offset: 8 + ~#ln2HI_exp~0!offset }, 8); [L17-L42] FCALL call ~#ln2LO_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(1.9082149292705877E-10, { base: ~#ln2LO_exp~0!base, offset: ~#ln2LO_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(1.9082149292705877E-10), { base: ~#ln2LO_exp~0!base, offset: 8 + ~#ln2LO_exp~0!offset }, 8); [L17-L42] ~invln2_exp~0 := 1.4426950408889634; [L17-L42] ~P1_exp~0 := 0.16666666666666602; [L17-L42] ~P2_exp~0 := ~someUnaryDOUBLEoperation(0.0027777777777015593); [L17-L42] ~P3_exp~0 := 6.613756321437934E-5; [L17-L42] ~P4_exp~0 := ~someUnaryDOUBLEoperation(1.6533902205465252E-6); [L17-L42] ~P5_exp~0 := 4.1381367970572385E-8; [L153] ~x~0 := ~someBinaryArithmeticDOUBLEoperation(1.0, 0.0); [L44-L129] ~x := #in~x; [L45] havoc ~y~0; [L45] havoc ~hi~0; [L45] havoc ~lo~0; [L45] havoc ~c~0; [L45] havoc ~t~0; [L46] ~k~0 := 0; [L46] havoc ~xsb~0; [L47] havoc ~hx~0; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L50] FCALL call ~#gh_u~0 := #Ultimate.alloc(8); [L51] FCALL call write~real(~x, { base: ~#gh_u~0!base, offset: ~#gh_u~0!offset }, 8); [L52] FCALL call #t~mem0 := read~int({ base: ~#gh_u~0!base, offset: 4 + ~#gh_u~0!offset }, 4); [L52] ~hx~0 := #t~mem0; [L52] FCALL call write~real(#t~union1, { base: ~#gh_u~0!base, offset: ~#gh_u~0!offset }, 8); [L52] havoc #t~union1; [L52] havoc #t~mem0; [L50] FCALL call ULTIMATE.dealloc(~#gh_u~0); [L50] havoc ~#gh_u~0; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L54] ~xsb~0 := (if ~bitwiseAnd(~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 else ~bitwiseAnd(~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 - 4294967296); [L55] ~hx~0 := ~bitwiseAnd(~hx~0, 2147483647); VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L57] COND TRUE ~hx~0 % 4294967296 >= 1082535490 VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L58] COND FALSE !(~hx~0 % 4294967296 >= 2146435072) VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L70] COND TRUE ~someBinaryDOUBLEComparisonOperation(~x, ~o_threshold_exp~0) [L71] #res := ~someBinaryArithmeticDOUBLEoperation(~huge_exp~0, ~huge_exp~0); VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L154] ~res~0 := #t~ret22; [L154] havoc #t~ret22; [L132-L144] ~x := #in~x; [L133] havoc ~hx~1; [L133] havoc ~lx~1; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L135] FCALL call ~#ew_u~0 := #Ultimate.alloc(8); [L136] FCALL call write~real(~x, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L137] FCALL call #t~mem18 := read~int({ base: ~#ew_u~0!base, offset: 4 + ~#ew_u~0!offset }, 4); [L137] ~hx~1 := (if #t~mem18 % 4294967296 % 4294967296 <= 2147483647 then #t~mem18 % 4294967296 % 4294967296 else #t~mem18 % 4294967296 % 4294967296 - 4294967296); [L137] FCALL call write~real(#t~union19, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L137] havoc #t~union19; [L137] havoc #t~mem18; [L138] FCALL call #t~mem20 := read~int({ base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 4); [L138] ~lx~1 := (if #t~mem20 % 4294967296 % 4294967296 <= 2147483647 then #t~mem20 % 4294967296 % 4294967296 else #t~mem20 % 4294967296 % 4294967296 - 4294967296); [L138] FCALL call write~real(#t~union21, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L138] havoc #t~mem20; [L138] havoc #t~union21; [L135] FCALL call ULTIMATE.dealloc(~#ew_u~0); [L135] havoc ~#ew_u~0; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L140] ~hx~1 := ~bitwiseAnd(~hx~1, 2147483647); [L141] ~hx~1 := (if ~bitwiseOr(~hx~1, ~bitwiseOr(~lx~1, -~lx~1) / 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(~hx~1, ~bitwiseOr(~lx~1, -~lx~1) / 2147483648) % 4294967296 % 4294967296 else ~bitwiseOr(~hx~1, ~bitwiseOr(~lx~1, -~lx~1) / 2147483648) % 4294967296 % 4294967296 - 4294967296); [L142] ~hx~1 := 2146435072 - ~hx~1; [L143] #res := 1 - (if ~bitwiseOr(~hx~1, -~hx~1) / 2147483648 % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(~hx~1, -~hx~1) / 2147483648 % 4294967296 % 4294967296 else ~bitwiseOr(~hx~1, -~hx~1) / 2147483648 % 4294967296 % 4294967296 - 4294967296); [L157] assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L157] COND TRUE 0 == #t~ret23 [L157] havoc #t~ret23; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L158] assert false; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; [L17-L42] ~one_exp~0 := 1.0; [L17-L42] FCALL call ~#halF_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(0.5, { base: ~#halF_exp~0!base, offset: ~#halF_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.5), { base: ~#halF_exp~0!base, offset: 8 + ~#halF_exp~0!offset }, 8); [L17-L42] ~huge_exp~0 := 1.0E300; [L17-L42] ~twom1000_exp~0 := 9.332636185032189E-302; [L17-L42] ~o_threshold_exp~0 := 709.782712893384; [L17-L42] ~u_threshold_exp~0 := ~someUnaryDOUBLEoperation(745.1332191019411); [L17-L42] FCALL call ~#ln2HI_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(0.6931471803691238, { base: ~#ln2HI_exp~0!base, offset: ~#ln2HI_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.6931471803691238), { base: ~#ln2HI_exp~0!base, offset: 8 + ~#ln2HI_exp~0!offset }, 8); [L17-L42] FCALL call ~#ln2LO_exp~0 := #Ultimate.alloc(16); [L17-L42] FCALL call write~init~real(1.9082149292705877E-10, { base: ~#ln2LO_exp~0!base, offset: ~#ln2LO_exp~0!offset }, 8); [L17-L42] FCALL call write~init~real(~someUnaryDOUBLEoperation(1.9082149292705877E-10), { base: ~#ln2LO_exp~0!base, offset: 8 + ~#ln2LO_exp~0!offset }, 8); [L17-L42] ~invln2_exp~0 := 1.4426950408889634; [L17-L42] ~P1_exp~0 := 0.16666666666666602; [L17-L42] ~P2_exp~0 := ~someUnaryDOUBLEoperation(0.0027777777777015593); [L17-L42] ~P3_exp~0 := 6.613756321437934E-5; [L17-L42] ~P4_exp~0 := ~someUnaryDOUBLEoperation(1.6533902205465252E-6); [L17-L42] ~P5_exp~0 := 4.1381367970572385E-8; [L153] ~x~0 := ~someBinaryArithmeticDOUBLEoperation(1.0, 0.0); [L44-L129] ~x := #in~x; [L45] havoc ~y~0; [L45] havoc ~hi~0; [L45] havoc ~lo~0; [L45] havoc ~c~0; [L45] havoc ~t~0; [L46] ~k~0 := 0; [L46] havoc ~xsb~0; [L47] havoc ~hx~0; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L50] FCALL call ~#gh_u~0 := #Ultimate.alloc(8); [L51] FCALL call write~real(~x, { base: ~#gh_u~0!base, offset: ~#gh_u~0!offset }, 8); [L52] FCALL call #t~mem0 := read~int({ base: ~#gh_u~0!base, offset: 4 + ~#gh_u~0!offset }, 4); [L52] ~hx~0 := #t~mem0; [L52] FCALL call write~real(#t~union1, { base: ~#gh_u~0!base, offset: ~#gh_u~0!offset }, 8); [L52] havoc #t~union1; [L52] havoc #t~mem0; [L50] FCALL call ULTIMATE.dealloc(~#gh_u~0); [L50] havoc ~#gh_u~0; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L54] ~xsb~0 := (if ~bitwiseAnd(~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 else ~bitwiseAnd(~hx~0 / 2147483648, 1) % 4294967296 % 4294967296 - 4294967296); [L55] ~hx~0 := ~bitwiseAnd(~hx~0, 2147483647); VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L57] COND TRUE ~hx~0 % 4294967296 >= 1082535490 VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L58] COND FALSE !(~hx~0 % 4294967296 >= 2146435072) VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L70] COND TRUE ~someBinaryDOUBLEComparisonOperation(~x, ~o_threshold_exp~0) [L71] #res := ~someBinaryArithmeticDOUBLEoperation(~huge_exp~0, ~huge_exp~0); VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L154] ~res~0 := #t~ret22; [L154] havoc #t~ret22; [L132-L144] ~x := #in~x; [L133] havoc ~hx~1; [L133] havoc ~lx~1; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L135] FCALL call ~#ew_u~0 := #Ultimate.alloc(8); [L136] FCALL call write~real(~x, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L137] FCALL call #t~mem18 := read~int({ base: ~#ew_u~0!base, offset: 4 + ~#ew_u~0!offset }, 4); [L137] ~hx~1 := (if #t~mem18 % 4294967296 % 4294967296 <= 2147483647 then #t~mem18 % 4294967296 % 4294967296 else #t~mem18 % 4294967296 % 4294967296 - 4294967296); [L137] FCALL call write~real(#t~union19, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L137] havoc #t~union19; [L137] havoc #t~mem18; [L138] FCALL call #t~mem20 := read~int({ base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 4); [L138] ~lx~1 := (if #t~mem20 % 4294967296 % 4294967296 <= 2147483647 then #t~mem20 % 4294967296 % 4294967296 else #t~mem20 % 4294967296 % 4294967296 - 4294967296); [L138] FCALL call write~real(#t~union21, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L138] havoc #t~mem20; [L138] havoc #t~union21; [L135] FCALL call ULTIMATE.dealloc(~#ew_u~0); [L135] havoc ~#ew_u~0; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L140] ~hx~1 := ~bitwiseAnd(~hx~1, 2147483647); [L141] ~hx~1 := (if ~bitwiseOr(~hx~1, ~bitwiseOr(~lx~1, -~lx~1) / 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(~hx~1, ~bitwiseOr(~lx~1, -~lx~1) / 2147483648) % 4294967296 % 4294967296 else ~bitwiseOr(~hx~1, ~bitwiseOr(~lx~1, -~lx~1) / 2147483648) % 4294967296 % 4294967296 - 4294967296); [L142] ~hx~1 := 2146435072 - ~hx~1; [L143] #res := 1 - (if ~bitwiseOr(~hx~1, -~hx~1) / 2147483648 % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseOr(~hx~1, -~hx~1) / 2147483648 % 4294967296 % 4294967296 else ~bitwiseOr(~hx~1, -~hx~1) / 2147483648 % 4294967296 % 4294967296 - 4294967296); [L157] assume -2147483648 <= #t~ret23 && #t~ret23 <= 2147483647; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L157] COND TRUE 0 == #t~ret23 [L157] havoc #t~ret23; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L158] assert false; VAL [#NULL!base=0, #NULL!offset=0, ~#halF_exp~0!base=2, ~#halF_exp~0!offset=0, ~#ln2HI_exp~0!base=3, ~#ln2HI_exp~0!offset=0, ~#ln2LO_exp~0!base=5, ~#ln2LO_exp~0!offset=0, ~huge_exp~0=1.0E300, ~invln2_exp~0=1442695040888963387/1000000000000000000, ~o_threshold_exp~0=88722839111672996637/125000000000000000, ~one_exp~0=1.0, ~P1_exp~0=166666666666666019037/1000000000000000000000, ~P3_exp~0=661375632143793436117/10000000000000000000000000, ~P5_exp~0=413813679705723846039/10000000000000000000000000000, ~twom1000_exp~0=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L17-L42] static const double one_exp = 1.0, halF_exp[2] = { 0.5, -0.5, }, huge_exp = 1.0e+300, twom1000_exp = 9.33263618503218878990e-302, o_threshold_exp = 7.09782712893383973096e+02, u_threshold_exp = -7.45133219101941108420e+02, ln2HI_exp[2] = { 6.93147180369123816490e-01, -6.93147180369123816490e-01, }, ln2LO_exp[2] = { 1.90821492927058770002e-10, -1.90821492927058770002e-10, }, invln2_exp = 1.44269504088896338700e+00, P1_exp = 1.66666666666666019037e-01, P2_exp = -2.77777777770155933842e-03, P3_exp = 6.61375632143793436117e-05, P4_exp = -1.65339022054652515390e-06, P5_exp = 4.13813679705723846039e-08; [L153] double x = 1.0 / 0.0; [L45] double y, hi, lo, c, t; [L46] __int32_t k = 0, xsb; [L47] __uint32_t hx; VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L50] ieee_double_shape_type gh_u; [L51] gh_u.value = (x) [L52] EXPR gh_u.parts.msw [L52] (hx) = gh_u.parts.msw [L54] xsb = (hx >> 31) & 1 [L55] hx &= 0x7fffffff VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L57] COND TRUE hx >= 0x40862E42 VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L58] COND FALSE !(hx >= 0x7ff00000) VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L70] COND TRUE x > o_threshold_exp [L71] return huge_exp * huge_exp; VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L154] double res = __ieee754_exp(x); [L133] __int32_t hx, lx; VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L135] ieee_double_shape_type ew_u; [L136] ew_u.value = (x) [L137] EXPR ew_u.parts.msw [L137] (hx) = ew_u.parts.msw [L138] EXPR ew_u.parts.lsw [L138] (lx) = ew_u.parts.lsw [L140] hx &= 0x7fffffff [L141] hx |= (__uint32_t)(lx | (-lx)) >> 31 [L142] hx = 0x7ff00000 - hx [L143] return 1 - (int)((__uint32_t)(hx | (-hx)) >> 31); [L157] COND TRUE !isinf_double(x) [L158] __VERIFIER_error() VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] ----- [2018-11-22 23:29:51,538 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck CFG 22.11 11:29:51 ImpRootNode [2018-11-22 23:29:51,538 INFO L132 PluginConnector]: ------------------------ END CodeCheck---------------------------- [2018-11-22 23:29:51,539 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-22 23:29:51,539 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-22 23:29:51,539 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-22 23:29:51,539 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 22.11 11:29:51" (3/4) ... [2018-11-22 23:29:51,543 INFO L147 WitnessPrinter]: No result that supports witness generation found [2018-11-22 23:29:51,543 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-22 23:29:51,543 INFO L168 Benchmark]: Toolchain (without parser) took 1161.96 ms. Allocated memory was 1.0 GB in the beginning and 1.1 GB in the end (delta: 113.8 MB). Free memory was 960.3 MB in the beginning and 1.0 GB in the end (delta: -55.5 MB). Peak memory consumption was 58.3 MB. Max. memory is 11.5 GB. [2018-11-22 23:29:51,544 INFO L168 Benchmark]: CDTParser took 0.10 ms. Allocated memory is still 1.0 GB. Free memory is still 985.5 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-22 23:29:51,545 INFO L168 Benchmark]: CACSL2BoogieTranslator took 233.59 ms. Allocated memory was 1.0 GB in the beginning and 1.1 GB in the end (delta: 113.8 MB). Free memory was 960.3 MB in the beginning and 1.1 GB in the end (delta: -150.6 MB). Peak memory consumption was 31.1 MB. Max. memory is 11.5 GB. [2018-11-22 23:29:51,545 INFO L168 Benchmark]: Boogie Procedure Inliner took 36.48 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 2.7 MB). Peak memory consumption was 2.7 MB. Max. memory is 11.5 GB. [2018-11-22 23:29:51,546 INFO L168 Benchmark]: Boogie Preprocessor took 28.84 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 5.4 MB). Peak memory consumption was 5.4 MB. Max. memory is 11.5 GB. [2018-11-22 23:29:51,546 INFO L168 Benchmark]: RCFGBuilder took 447.64 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 41.2 MB). Peak memory consumption was 41.2 MB. Max. memory is 11.5 GB. [2018-11-22 23:29:51,547 INFO L168 Benchmark]: CodeCheck took 408.53 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 43.2 MB). Peak memory consumption was 43.2 MB. Max. memory is 11.5 GB. [2018-11-22 23:29:51,547 INFO L168 Benchmark]: Witness Printer took 4.00 ms. Allocated memory is still 1.1 GB. Free memory was 1.0 GB in the beginning and 1.0 GB in the end (delta: 2.7 MB). Peak memory consumption was 2.7 MB. Max. memory is 11.5 GB. [2018-11-22 23:29:51,550 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck: - StatisticsResult: Ultimate CodeCheck benchmark data CFG has 1 procedures, 43 locations, 1 error locations. UNSAFE Result, 0.2s OverallTime, 2 OverallIterations, 0 TraceHistogramMax, 0.0s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 23 SDtfs, 0 SDslu, 0 SDs, 0 SdLazy, 0 SolverSat, 0 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 0.0s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 82 GetRequests, 82 SyntacticMatches, 0 SemanticMatches, 0 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=-1occurred in iteration=-1, traceCheckStatistics: 0.0s SsaConstructionTime, 0.0s SatisfiabilityAnalysisTime, 0.0s InterpolantComputationTime, 24 NumberOfCodeBlocks, 24 NumberOfCodeBlocksAsserted, 2 NumberOfCheckSat, 10 ConstructedInterpolants, 0 QuantifiedInterpolants, 100 SizeOfPredicates, 0 NumberOfNonLiveVariables, 0 ConjunctsInSsa, 0 ConjunctsInUnsatCore, 1 InterpolantComputations, 1 PerfectInterpolantSequences, 0/0 InterpolantCoveringCapability, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.0s AbstIntTime, 0 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: No data available, HoareAnnotationStatistics: No data available, RefinementEngineStatistics: No data available, ReuseStatistics: No data available - UnprovableResult [Line: 158]: Unable to prove that call of __VERIFIER_error() unreachable Unable to prove that call of __VERIFIER_error() unreachable Reason: overapproximation of bitwiseOr at line 141, overapproximation of someUnaryDOUBLEoperation at line 21, overapproximation of someBinaryArithmeticDOUBLEoperation at line 71, overapproximation of bitwiseAnd at line 140, overapproximation of someBinaryDOUBLEComparisonOperation at line 70. Possible FailurePath: [L17-L42] static const double one_exp = 1.0, halF_exp[2] = { 0.5, -0.5, }, huge_exp = 1.0e+300, twom1000_exp = 9.33263618503218878990e-302, o_threshold_exp = 7.09782712893383973096e+02, u_threshold_exp = -7.45133219101941108420e+02, ln2HI_exp[2] = { 6.93147180369123816490e-01, -6.93147180369123816490e-01, }, ln2LO_exp[2] = { 1.90821492927058770002e-10, -1.90821492927058770002e-10, }, invln2_exp = 1.44269504088896338700e+00, P1_exp = 1.66666666666666019037e-01, P2_exp = -2.77777777770155933842e-03, P3_exp = 6.61375632143793436117e-05, P4_exp = -1.65339022054652515390e-06, P5_exp = 4.13813679705723846039e-08; [L153] double x = 1.0 / 0.0; [L45] double y, hi, lo, c, t; [L46] __int32_t k = 0, xsb; [L47] __uint32_t hx; VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L50] ieee_double_shape_type gh_u; [L51] gh_u.value = (x) [L52] EXPR gh_u.parts.msw [L52] (hx) = gh_u.parts.msw [L54] xsb = (hx >> 31) & 1 [L55] hx &= 0x7fffffff VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L57] COND TRUE hx >= 0x40862E42 VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L58] COND FALSE !(hx >= 0x7ff00000) VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L70] COND TRUE x > o_threshold_exp [L71] return huge_exp * huge_exp; VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L154] double res = __ieee754_exp(x); [L133] __int32_t hx, lx; VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] [L135] ieee_double_shape_type ew_u; [L136] ew_u.value = (x) [L137] EXPR ew_u.parts.msw [L137] (hx) = ew_u.parts.msw [L138] EXPR ew_u.parts.lsw [L138] (lx) = ew_u.parts.lsw [L140] hx &= 0x7fffffff [L141] hx |= (__uint32_t)(lx | (-lx)) >> 31 [L142] hx = 0x7ff00000 - hx [L143] return 1 - (int)((__uint32_t)(hx | (-hx)) >> 31); [L157] COND TRUE !isinf_double(x) [L158] __VERIFIER_error() VAL [halF_exp={2:0}, huge_exp=1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, invln2_exp=1442695040888963387/1000000000000000000, ln2HI_exp={3:0}, ln2LO_exp={5:0}, o_threshold_exp=88722839111672996637/125000000000000000, one_exp=1, P1_exp=166666666666666019037/1000000000000000000000, P3_exp=661375632143793436117/10000000000000000000000000, P5_exp=413813679705723846039/10000000000000000000000000000, twom1000_exp=93326361850321887899/1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.10 ms. Allocated memory is still 1.0 GB. Free memory is still 985.5 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 233.59 ms. Allocated memory was 1.0 GB in the beginning and 1.1 GB in the end (delta: 113.8 MB). Free memory was 960.3 MB in the beginning and 1.1 GB in the end (delta: -150.6 MB). Peak memory consumption was 31.1 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 36.48 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 2.7 MB). Peak memory consumption was 2.7 MB. Max. memory is 11.5 GB. * Boogie Preprocessor took 28.84 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 5.4 MB). Peak memory consumption was 5.4 MB. Max. memory is 11.5 GB. * RCFGBuilder took 447.64 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 41.2 MB). Peak memory consumption was 41.2 MB. Max. memory is 11.5 GB. * CodeCheck took 408.53 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 43.2 MB). Peak memory consumption was 43.2 MB. Max. memory is 11.5 GB. * Witness Printer took 4.00 ms. Allocated memory is still 1.1 GB. Free memory was 1.0 GB in the beginning and 1.0 GB in the end (delta: 2.7 MB). Peak memory consumption was 2.7 MB. Max. memory is 11.5 GB. RESULT: Ultimate could not prove your program: unable to determine feasibility of some traces Received shutdown request... ### Bit-precise run ### This is Ultimate 0.1.23-aa41828 [2018-11-22 23:29:52,980 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-22 23:29:52,981 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-22 23:29:52,990 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-22 23:29:52,990 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-22 23:29:52,991 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-22 23:29:52,992 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-22 23:29:52,993 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-22 23:29:52,994 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-22 23:29:52,994 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-22 23:29:52,995 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-22 23:29:52,995 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-22 23:29:52,996 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-22 23:29:52,996 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-22 23:29:52,997 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-22 23:29:52,998 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-22 23:29:52,998 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-22 23:29:52,999 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-22 23:29:53,000 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-22 23:29:53,002 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-22 23:29:53,002 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-22 23:29:53,003 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-22 23:29:53,005 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-22 23:29:53,005 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-22 23:29:53,005 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-22 23:29:53,006 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-22 23:29:53,007 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-22 23:29:53,007 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-22 23:29:53,007 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-22 23:29:53,008 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-22 23:29:53,008 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-22 23:29:53,009 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-22 23:29:53,009 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-22 23:29:53,009 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-22 23:29:53,010 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-22 23:29:53,010 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-22 23:29:53,011 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Bitvector.epf [2018-11-22 23:29:53,021 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-22 23:29:53,021 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-22 23:29:53,021 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-22 23:29:53,022 INFO L133 SettingsManager]: * ... to procedures called more than once=ALWAYS [2018-11-22 23:29:53,022 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-22 23:29:53,022 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-22 23:29:53,022 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-22 23:29:53,023 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-22 23:29:53,023 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-22 23:29:53,023 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-22 23:29:53,023 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-22 23:29:53,023 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-22 23:29:53,023 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-22 23:29:53,023 INFO L133 SettingsManager]: * Use bitvectors instead of ints=true [2018-11-22 23:29:53,023 INFO L133 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2018-11-22 23:29:53,024 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-22 23:29:53,024 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-22 23:29:53,024 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-22 23:29:53,024 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-22 23:29:53,024 INFO L131 SettingsManager]: Preferences of CodeCheck differ from their defaults: [2018-11-22 23:29:53,024 INFO L133 SettingsManager]: * Timeout in seconds=1000000 [2018-11-22 23:29:53,024 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-22 23:29:53,024 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-22 23:29:53,025 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-22 23:29:53,025 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-22 23:29:53,025 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-22 23:29:53,025 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-22 23:29:53,025 INFO L133 SettingsManager]: * Use separate solver for trace checks=false [2018-11-22 23:29:53,025 INFO L133 SettingsManager]: * Trace refinement strategy=WALRUS [2018-11-22 23:29:53,025 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-22 23:29:53,026 INFO L133 SettingsManager]: * Command for external solver=cvc4nyu --tear-down-incremental --rewrite-divk --print-success --lang smt [2018-11-22 23:29:53,026 INFO L133 SettingsManager]: * Logic for external solver=AUFBV [2018-11-22 23:29:53,026 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true 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 -> /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak 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(__VERIFIER_error())) ) Applying setting for plugin de.uni_freiburg.informatik.ultimate.witnessprinter: Graph data producer -> Kojak 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 -> 34004772e6a1e54917776a817538fd6c8fd28f94 [2018-11-22 23:29:53,055 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-22 23:29:53,064 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-22 23:29:53,066 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-22 23:29:53,067 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-22 23:29:53,068 INFO L276 PluginConnector]: CDTParser initialized [2018-11-22 23:29:53,068 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/../../sv-benchmarks/c/float-newlib/double_req_bl_0834_true-unreach-call.c [2018-11-22 23:29:53,110 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data/57227504a/e50c942e05414853b1fc94b369c69fc6/FLAG574247cdf [2018-11-22 23:29:53,513 INFO L307 CDTParser]: Found 1 translation units. [2018-11-22 23:29:53,513 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/sv-benchmarks/c/float-newlib/double_req_bl_0834_true-unreach-call.c [2018-11-22 23:29:53,518 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data/57227504a/e50c942e05414853b1fc94b369c69fc6/FLAG574247cdf [2018-11-22 23:29:53,527 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/data/57227504a/e50c942e05414853b1fc94b369c69fc6 [2018-11-22 23:29:53,529 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-22 23:29:53,530 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-22 23:29:53,531 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-22 23:29:53,531 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-22 23:29:53,533 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-22 23:29:53,534 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,535 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@30e66d02 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53, skipping insertion in model container [2018-11-22 23:29:53,535 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,541 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-22 23:29:53,558 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-22 23:29:53,701 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-22 23:29:53,707 INFO L191 MainTranslator]: Completed pre-run [2018-11-22 23:29:53,742 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-22 23:29:53,762 INFO L195 MainTranslator]: Completed translation [2018-11-22 23:29:53,762 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53 WrapperNode [2018-11-22 23:29:53,762 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-22 23:29:53,763 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-22 23:29:53,763 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-22 23:29:53,763 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-22 23:29:53,768 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,829 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,854 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-22 23:29:53,854 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-22 23:29:53,854 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-22 23:29:53,854 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-22 23:29:53,863 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,863 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,866 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,867 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,876 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,880 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,883 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... [2018-11-22 23:29:53,886 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-22 23:29:53,886 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-22 23:29:53,886 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-22 23:29:53,886 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-22 23:29:53,887 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 22.11 11:29:53" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_c7ae2e41-3372-417e-8465-9354bda6b9d0/bin-2019/ukojak/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-22 23:29:53,922 INFO L130 BoogieDeclarations]: Found specification of procedure read~intFLOATTYPE8 [2018-11-22 23:29:53,922 INFO L130 BoogieDeclarations]: Found specification of procedure write~intFLOATTYPE8 [2018-11-22 23:29:53,922 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~intFLOATTYPE8 [2018-11-22 23:29:53,922 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-22 23:29:53,922 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2018-11-22 23:29:53,923 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-22 23:29:53,923 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-22 23:29:53,923 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2018-11-22 23:29:53,923 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-22 23:29:54,078 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-22 23:29:54,109 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-22 23:29:54,123 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-22 23:29:54,413 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-22 23:29:54,430 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-22 23:30:32,430 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-22 23:30:32,442 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-22 23:30:32,458 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-22 23:31:33,526 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-22 23:31:33,526 INFO L280 CfgBuilder]: Removed 22 assue(true) statements. [2018-11-22 23:31:33,526 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 22.11 11:31:33 BoogieIcfgContainer [2018-11-22 23:31:33,526 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-22 23:31:33,526 INFO L113 PluginConnector]: ------------------------CodeCheck---------------------------- [2018-11-22 23:31:33,527 INFO L271 PluginConnector]: Initializing CodeCheck... [2018-11-22 23:31:33,533 INFO L276 PluginConnector]: CodeCheck initialized [2018-11-22 23:31:33,533 INFO L185 PluginConnector]: Executing the observer CodeCheckObserver from plugin CodeCheck for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 22.11 11:31:33" (1/1) ... [2018-11-22 23:31:33,540 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-22 23:31:33,557 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-22 23:31:33,562 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 36 states and 59 transitions. [2018-11-22 23:31:33,562 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 59 transitions. [2018-11-22 23:31:33,564 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 12 [2018-11-22 23:31:33,564 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-22 23:31:33,597 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort FloatingPoint undefined [2018-11-22 23:31:33,632 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-22 23:31:33,640 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-22 23:31:33,653 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-22 23:31:33,667 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-22 23:31:33,667 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 36 states and 54 transitions. [2018-11-22 23:31:33,667 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 54 transitions. [2018-11-22 23:31:33,668 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 14 [2018-11-22 23:31:33,668 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-22 23:31:33,669 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort FloatingPoint undefined [2018-11-22 23:31:33,782 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-22 23:31:33,787 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-22 23:31:33,817 INFO L683 Elim1Store]: detected equality via solver [2018-11-22 23:31:33,818 INFO L683 Elim1Store]: detected equality via solver [2018-11-22 23:31:33,822 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 2 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 43 [2018-11-22 23:31:33,878 INFO L701 Elim1Store]: detected not equals via solver [2018-11-22 23:31:33,879 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 30 [2018-11-22 23:31:33,880 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-22 23:31:33,897 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 0 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 17 treesize of output 13 [2018-11-22 23:31:33,901 INFO L701 Elim1Store]: detected not equals via solver [2018-11-22 23:31:33,902 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 6 [2018-11-22 23:31:33,902 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-22 23:31:33,905 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-22 23:31:33,907 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-22 23:31:33,914 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-2 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2018-11-22 23:31:33,914 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:47, output treesize:19 [2018-11-22 23:31:33,954 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-22 23:31:34,096 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-22 23:31:34,097 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 19 states to 18 states and 19 transitions. [2018-11-22 23:31:34,097 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 19 transitions. [2018-11-22 23:31:34,097 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 15 [2018-11-22 23:31:34,097 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-22 23:31:34,098 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort FloatingPoint undefined [2018-11-22 23:31:34,131 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-22 23:31:34,134 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-22 23:31:34,135 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2018-11-22 23:31:34,139 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-22 23:31:34,139 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 18 states and 17 transitions. [2018-11-22 23:31:34,139 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 17 transitions. [2018-11-22 23:31:34,139 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 16 [2018-11-22 23:31:34,140 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-22 23:31:34,141 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort FloatingPoint undefined [2018-11-22 23:31:34,198 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-22 23:31:34,202 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-22 23:31:34,247 INFO L683 Elim1Store]: detected equality via solver [2018-11-22 23:31:34,247 INFO L683 Elim1Store]: detected equality via solver [2018-11-22 23:31:34,248 INFO L683 Elim1Store]: detected equality via solver [2018-11-22 23:31:34,249 INFO L683 Elim1Store]: detected equality via solver [2018-11-22 23:31:34,250 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 2, 4 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 5 new quantified variables, introduced 0 case distinctions, treesize of input 47 treesize of output 76 [2018-11-22 23:31:34,253 FATAL L292 ToolchainWalker]: The Plugin de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck has thrown an exception: java.lang.UnsupportedOperationException: nested self-update not yet implemented: (store v_arrayElimCell_3 (_ bv4 32) ((_ extract 63 32) v_prenex_33)) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.DerPreprocessor.constructReplacementForStoreCase(DerPreprocessor.java:248) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.DerPreprocessor.constructReplacement(DerPreprocessor.java:219) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.DerPreprocessor.constructReplacement(DerPreprocessor.java:208) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.DerPreprocessor.convert(DerPreprocessor.java:142) at de.uni_freiburg.informatik.ultimate.logic.TermTransformer.cacheConvert(TermTransformer.java:131) at de.uni_freiburg.informatik.ultimate.logic.TermTransformer.access$0(TermTransformer.java:127) at de.uni_freiburg.informatik.ultimate.logic.TermTransformer$Convert.walk(TermTransformer.java:79) at de.uni_freiburg.informatik.ultimate.logic.NonRecursive.run(NonRecursive.java:122) at de.uni_freiburg.informatik.ultimate.logic.NonRecursive.run(NonRecursive.java:113) at de.uni_freiburg.informatik.ultimate.logic.TermTransformer.transform(TermTransformer.java:253) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.Elim1Store.elim1(Elim1Store.java:211) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.doElimOneRec(ElimStorePlain.java:221) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.doElimAllRec(ElimStorePlain.java:247) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.doElimOneRec(ElimStorePlain.java:225) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.doElimAllRec(ElimStorePlain.java:247) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.ElimStorePlain.elimAllRec(ElimStorePlain.java:199) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.elim(PartialQuantifierElimination.java:293) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.tryToEliminate(PartialQuantifierElimination.java:101) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:245) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:439) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.computeStrongestPostconditionSequence(IterativePredicateTransformer.java:200) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:286) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:175) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:162) at de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck.CodeCheckObserver.createTraceCheck(CodeCheckObserver.java:624) at de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck.CodeCheckObserver.process(CodeCheckObserver.java:454) at de.uni_freiburg.informatik.ultimate.core.coreplugin.modelwalker.CFGWalker.runObserver(CFGWalker.java:57) at de.uni_freiburg.informatik.ultimate.core.coreplugin.modelwalker.BaseWalker.runObserver(BaseWalker.java:93) at de.uni_freiburg.informatik.ultimate.core.coreplugin.modelwalker.BaseWalker.run(BaseWalker.java:86) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:167) 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:316) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) [2018-11-22 23:31:34,255 INFO L168 Benchmark]: Toolchain (without parser) took 100726.03 ms. Allocated memory was 1.0 GB in the beginning and 1.1 GB in the end (delta: 120.6 MB). Free memory was 953.2 MB in the beginning and 979.5 MB in the end (delta: -26.3 MB). Peak memory consumption was 94.3 MB. Max. memory is 11.5 GB. [2018-11-22 23:31:34,257 INFO L168 Benchmark]: CDTParser took 0.15 ms. Allocated memory is still 1.0 GB. Free memory is still 978.7 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-22 23:31:34,257 INFO L168 Benchmark]: CACSL2BoogieTranslator took 231.77 ms. Allocated memory is still 1.0 GB. Free memory was 953.2 MB in the beginning and 935.8 MB in the end (delta: 17.5 MB). Peak memory consumption was 17.5 MB. Max. memory is 11.5 GB. [2018-11-22 23:31:34,257 INFO L168 Benchmark]: Boogie Procedure Inliner took 91.34 ms. Allocated memory was 1.0 GB in the beginning and 1.1 GB in the end (delta: 120.6 MB). Free memory was 935.8 MB in the beginning and 1.1 GB in the end (delta: -171.8 MB). Peak memory consumption was 20.7 MB. Max. memory is 11.5 GB. [2018-11-22 23:31:34,259 INFO L168 Benchmark]: Boogie Preprocessor took 31.75 ms. Allocated memory is still 1.1 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-22 23:31:34,259 INFO L168 Benchmark]: RCFGBuilder took 99640.13 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 58.1 MB). Peak memory consumption was 58.1 MB. Max. memory is 11.5 GB. [2018-11-22 23:31:34,260 INFO L168 Benchmark]: CodeCheck took 728.45 ms. Allocated memory is still 1.1 GB. Free memory was 1.0 GB in the beginning and 979.5 MB in the end (delta: 70.0 MB). Peak memory consumption was 70.0 MB. Max. memory is 11.5 GB. [2018-11-22 23:31:34,262 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck: - ExceptionOrErrorResult: UnsupportedOperationException: nested self-update not yet implemented: (store v_arrayElimCell_3 (_ bv4 32) ((_ extract 63 32) v_prenex_33)) de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck: UnsupportedOperationException: nested self-update not yet implemented: (store v_arrayElimCell_3 (_ bv4 32) ((_ extract 63 32) v_prenex_33)): de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.DerPreprocessor.constructReplacementForStoreCase(DerPreprocessor.java:248) * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.15 ms. Allocated memory is still 1.0 GB. Free memory is still 978.7 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 231.77 ms. Allocated memory is still 1.0 GB. Free memory was 953.2 MB in the beginning and 935.8 MB in the end (delta: 17.5 MB). Peak memory consumption was 17.5 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 91.34 ms. Allocated memory was 1.0 GB in the beginning and 1.1 GB in the end (delta: 120.6 MB). Free memory was 935.8 MB in the beginning and 1.1 GB in the end (delta: -171.8 MB). Peak memory consumption was 20.7 MB. Max. memory is 11.5 GB. * Boogie Preprocessor took 31.75 ms. Allocated memory is still 1.1 GB. Free memory is still 1.1 GB. There was no memory consumed. Max. memory is 11.5 GB. * RCFGBuilder took 99640.13 ms. Allocated memory is still 1.1 GB. Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 58.1 MB). Peak memory consumption was 58.1 MB. Max. memory is 11.5 GB. * CodeCheck took 728.45 ms. Allocated memory is still 1.1 GB. Free memory was 1.0 GB in the beginning and 979.5 MB in the end (delta: 70.0 MB). Peak memory consumption was 70.0 MB. Max. memory is 11.5 GB. RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request...