./Ultimate.py --spec ../../sv-benchmarks/c/properties/unreach-call.prp --file ../../sv-benchmarks/c/float-newlib/double_req_bl_1130a_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_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/config/KojakReach.xml -i ../../sv-benchmarks/c/float-newlib/double_req_bl_1130a_true-unreach-call.c -s /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Default.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/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 aa2086ab05aa915f1fa31296bc02fdb3a78fa087 ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 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_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data/config -Xmx12G -Xms1G -jar /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data -tc /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/config/KojakReach.xml -i ../../sv-benchmarks/c/float-newlib/double_req_bl_1130a_true-unreach-call.c -s /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Bitvector.epf --cacsl2boogietranslator.entry.function main --witnessprinter.witness.directory /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/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 aa2086ab05aa915f1fa31296bc02fdb3a78fa087 ................................................................................................................................................................................................................................................................................................. Execution finished normally Writing output log to file Ultimate.log Result: ERROR: ExceptionOrErrorResult: UnsupportedOperationException: nested self-update not yet implemented: (store v_arrayElimCell_5 (_ bv4 32) ((_ extract 63 32) v_prenex_28)) --- Real Ultimate output --- This is Ultimate 0.1.23-aa41828 [2018-11-23 05:58:56,773 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 05:58:56,774 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 05:58:56,783 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 05:58:56,783 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 05:58:56,784 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 05:58:56,785 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 05:58:56,787 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 05:58:56,788 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 05:58:56,789 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 05:58:56,790 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 05:58:56,790 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 05:58:56,791 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 05:58:56,792 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 05:58:56,793 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 05:58:56,794 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 05:58:56,795 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 05:58:56,797 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 05:58:56,799 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 05:58:56,800 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 05:58:56,801 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 05:58:56,802 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 05:58:56,804 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 05:58:56,804 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 05:58:56,805 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 05:58:56,806 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 05:58:56,807 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 05:58:56,807 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 05:58:56,808 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 05:58:56,810 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 05:58:56,810 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 05:58:56,810 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 05:58:56,811 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 05:58:56,811 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 05:58:56,812 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 05:58:56,812 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 05:58:56,812 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Default.epf [2018-11-23 05:58:56,825 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 05:58:56,826 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 05:58:56,826 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 05:58:56,827 INFO L133 SettingsManager]: * ... to procedures called more than once=ALWAYS [2018-11-23 05:58:56,827 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 05:58:56,827 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 05:58:56,827 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 05:58:56,828 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 05:58:56,828 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-11-23 05:58:56,828 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 05:58:56,828 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 05:58:56,828 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 05:58:56,828 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 05:58:56,829 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 05:58:56,830 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 05:58:56,830 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 05:58:56,830 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 05:58:56,830 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 05:58:56,830 INFO L131 SettingsManager]: Preferences of CodeCheck differ from their defaults: [2018-11-23 05:58:56,831 INFO L133 SettingsManager]: * Timeout in seconds=1000000 [2018-11-23 05:58:56,831 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 05:58:56,831 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 05:58:56,831 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-23 05:58:56,831 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 05:58:56,832 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 05:58:56,832 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 05:58:56,832 INFO L133 SettingsManager]: * Trace refinement strategy=PENGUIN [2018-11-23 05:58:56,832 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 05:58:56,832 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-11-23 05:58:56,832 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_c9241800-c9d5-4a7c-8cd5-ab750226577c/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 -> aa2086ab05aa915f1fa31296bc02fdb3a78fa087 [2018-11-23 05:58:56,864 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 05:58:56,874 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 05:58:56,877 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 05:58:56,878 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 05:58:56,879 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 05:58:56,879 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/../../sv-benchmarks/c/float-newlib/double_req_bl_1130a_true-unreach-call.c [2018-11-23 05:58:56,926 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data/2f6879ff3/9434aa8feb5d4752a460483917a0f111/FLAG63b319b48 [2018-11-23 05:58:57,302 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 05:58:57,302 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/sv-benchmarks/c/float-newlib/double_req_bl_1130a_true-unreach-call.c [2018-11-23 05:58:57,308 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data/2f6879ff3/9434aa8feb5d4752a460483917a0f111/FLAG63b319b48 [2018-11-23 05:58:57,717 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data/2f6879ff3/9434aa8feb5d4752a460483917a0f111 [2018-11-23 05:58:57,720 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 05:58:57,721 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 05:58:57,722 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 05:58:57,722 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 05:58:57,725 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 05:58:57,726 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 05:58:57" (1/1) ... [2018-11-23 05:58:57,728 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@4e42f8a0 and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:57, skipping insertion in model container [2018-11-23 05:58:57,728 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 05:58:57" (1/1) ... [2018-11-23 05:58:57,736 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 05:58:57,762 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 05:58:57,935 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 05:58:57,939 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 05:58:57,972 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 05:58:58,038 INFO L195 MainTranslator]: Completed translation [2018-11-23 05:58:58,038 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58 WrapperNode [2018-11-23 05:58:58,038 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 05:58:58,039 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 05:58:58,039 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 05:58:58,039 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 05:58:58,045 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,056 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,083 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 05:58:58,084 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 05:58:58,084 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 05:58:58,084 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 05:58:58,091 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,091 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,095 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,096 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,105 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,111 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,113 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,117 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 05:58:58,117 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 05:58:58,117 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 05:58:58,117 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 05:58:58,118 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:58:58" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/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-23 05:58:58,157 INFO L130 BoogieDeclarations]: Found specification of procedure write~int [2018-11-23 05:58:58,157 INFO L130 BoogieDeclarations]: Found specification of procedure read~real [2018-11-23 05:58:58,157 INFO L130 BoogieDeclarations]: Found specification of procedure write~real [2018-11-23 05:58:58,157 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 05:58:58,157 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 05:58:58,157 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 05:58:58,157 INFO L130 BoogieDeclarations]: Found specification of procedure read~int [2018-11-23 05:58:58,158 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~real [2018-11-23 05:58:58,158 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 05:58:58,738 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 05:58:58,738 INFO L280 CfgBuilder]: Removed 24 assue(true) statements. [2018-11-23 05:58:58,739 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 05:58:58 BoogieIcfgContainer [2018-11-23 05:58:58,739 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 05:58:58,740 INFO L113 PluginConnector]: ------------------------CodeCheck---------------------------- [2018-11-23 05:58:58,740 INFO L271 PluginConnector]: Initializing CodeCheck... [2018-11-23 05:58:58,751 INFO L276 PluginConnector]: CodeCheck initialized [2018-11-23 05:58:58,751 INFO L185 PluginConnector]: Executing the observer CodeCheckObserver from plugin CodeCheck for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 05:58:58" (1/1) ... [2018-11-23 05:58:58,762 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 05:58:58,791 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 05:58:58,798 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 45 states and 76 transitions. [2018-11-23 05:58:58,799 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 76 transitions. [2018-11-23 05:58:58,802 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2018-11-23 05:58:58,802 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 05:58:58,875 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 05:58:58,899 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-23 05:58:58,907 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 05:58:58,908 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 45 states and 71 transitions. [2018-11-23 05:58:58,908 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 71 transitions. [2018-11-23 05:58:58,908 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 13 [2018-11-23 05:58:58,908 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 05:58:58,959 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 05:58:58,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 05:58:59,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 05:58:59,045 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is sat [2018-11-23 05:58:59,064 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_fmod~0 := 1.0;call ~#Zero_fmod~0.base, ~#Zero_fmod~0.offset := #Ultimate.alloc(16);call write~init~real(0.0, ~#Zero_fmod~0.base, ~#Zero_fmod~0.offset, 8);call write~init~real(~someUnaryDOUBLEoperation(0.0), ~#Zero_fmod~0.base, 8 + ~#Zero_fmod~0.offset, 8);havoc main_#res;havoc main_#t~nondet18, main_#t~ret19, main_#t~ret20, main_#t~short21, main_~res~0, main_~x~0, main_~y~0;main_~x~0 := 0.0;main_~y~0 := main_#t~nondet18;havoc main_#t~nondet18; VAL [ULTIMATE.start_main_~x~0=0.0, |#NULL.base|=0, |#NULL.offset|=0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] assume ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0) || ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0);fmod_double_#in~x, fmod_double_#in~y := main_~x~0, main_~y~0;havoc fmod_double_#res;havoc fmod_double_#t~mem0, fmod_double_#t~union1, fmod_double_#t~mem2, fmod_double_#t~union3, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, fmod_double_#t~mem4, fmod_double_#t~union5, fmod_double_#t~mem6, fmod_double_#t~union7, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, fmod_double_#t~mem8, fmod_double_#t~mem10, fmod_double_#t~post9, fmod_double_#t~mem11, fmod_double_#t~mem12, fmod_double_#t~union13.lsw, fmod_double_#t~union13.msw, fmod_double_~#iw_u~0.base, fmod_double_~#iw_u~0.offset, fmod_double_#t~mem14, fmod_double_#t~union15.lsw, fmod_double_#t~union15.msw, fmod_double_~#iw_u~1.base, fmod_double_~#iw_u~1.offset, fmod_double_~x, fmod_double_~y, fmod_double_~n~0, fmod_double_~hx~0, fmod_double_~hy~0, fmod_double_~hz~0, fmod_double_~ix~0, fmod_double_~iy~0, fmod_double_~sx~0, fmod_double_~i~0, fmod_double_~lx~0, fmod_double_~ly~0, fmod_double_~lz~0;fmod_double_~x := fmod_double_#in~x;fmod_double_~y := fmod_double_#in~y;havoc fmod_double_~n~0;havoc fmod_double_~hx~0;havoc fmod_double_~hy~0;havoc fmod_double_~hz~0;havoc fmod_double_~ix~0;havoc fmod_double_~iy~0;havoc fmod_double_~sx~0;havoc fmod_double_~i~0;havoc fmod_double_~lx~0;havoc fmod_double_~ly~0;havoc fmod_double_~lz~0; VAL [ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] call fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset := #Ultimate.alloc(8);call write~real(fmod_double_~x, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8);call fmod_double_#t~mem0 := read~int(fmod_double_~#ew_u~0.base, 4 + fmod_double_~#ew_u~0.offset, 4);fmod_double_~hx~0 := (if fmod_double_#t~mem0 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem0 % 4294967296 % 4294967296 else fmod_double_#t~mem0 % 4294967296 % 4294967296 - 4294967296);call write~real(fmod_double_#t~union1, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8);havoc fmod_double_#t~mem0;havoc fmod_double_#t~union1;call fmod_double_#t~mem2 := read~int(fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 4);fmod_double_~lx~0 := fmod_double_#t~mem2;call write~real(fmod_double_#t~union3, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8);havoc fmod_double_#t~mem2;havoc fmod_double_#t~union3;call ULTIMATE.dealloc(fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset);havoc fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset; VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] goto; VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] call fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset := #Ultimate.alloc(8);call write~real(fmod_double_~y, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8);call fmod_double_#t~mem4 := read~int(fmod_double_~#ew_u~1.base, 4 + fmod_double_~#ew_u~1.offset, 4);fmod_double_~hy~0 := (if fmod_double_#t~mem4 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem4 % 4294967296 % 4294967296 else fmod_double_#t~mem4 % 4294967296 % 4294967296 - 4294967296);call write~real(fmod_double_#t~union5, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8);havoc fmod_double_#t~union5;havoc fmod_double_#t~mem4;call fmod_double_#t~mem6 := read~int(fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 4);fmod_double_~ly~0 := fmod_double_#t~mem6;call write~real(fmod_double_#t~union7, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8);havoc fmod_double_#t~union7;havoc fmod_double_#t~mem6;call ULTIMATE.dealloc(fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset);havoc fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset; VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~hy~0=7065, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~ly~0=10, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] goto; VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~hy~0=7065, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~ly~0=10, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] fmod_double_~sx~0 := (if ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 else ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 - 4294967296);fmod_double_~hx~0 := ~bitwiseXor(fmod_double_~hx~0, fmod_double_~sx~0);fmod_double_~hy~0 := ~bitwiseAnd(fmod_double_~hy~0, 2147483647); VAL [ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~ly~0=10, ULTIMATE.start_fmod_double_~sx~0=7629, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] assume (0 == ~bitwiseOr(fmod_double_~hy~0, fmod_double_~ly~0) % 4294967296 || fmod_double_~hx~0 >= 2146435072) || ~bitwiseOr(fmod_double_~hy~0, ~bitwiseOr(fmod_double_~ly~0, -fmod_double_~ly~0) / 2147483648) % 4294967296 > 2146435072;fmod_double_#res := ~someBinaryArithmeticDOUBLEoperation(~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y), ~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y)); VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~ly~0=10, ULTIMATE.start_fmod_double_~sx~0=7629, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] main_#t~ret19 := fmod_double_#res;main_~res~0 := main_#t~ret19;havoc main_#t~ret19;main_#t~short21 := ~someBinaryDOUBLEComparisonOperation(main_~res~0, 0.0); VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~ly~0=10, ULTIMATE.start_fmod_double_~sx~0=7629, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~res~0=11.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |ULTIMATE.start_fmod_double_#res|=11.0, |ULTIMATE.start_main_#t~short21|=false, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] assume !main_#t~short21; VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~ly~0=10, ULTIMATE.start_fmod_double_~sx~0=7629, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~res~0=11.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |ULTIMATE.start_fmod_double_#res|=11.0, |ULTIMATE.start_main_#t~short21|=false, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] assume !main_#t~short21;havoc main_#t~short21;havoc main_#t~ret20; VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~ly~0=10, ULTIMATE.start_fmod_double_~sx~0=7629, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~res~0=11.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |ULTIMATE.start_fmod_double_#res|=11.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] assume !false; VAL [ULTIMATE.start_fmod_double_~hx~0=0, ULTIMATE.start_fmod_double_~lx~0=7, ULTIMATE.start_fmod_double_~ly~0=10, ULTIMATE.start_fmod_double_~sx~0=7629, ULTIMATE.start_fmod_double_~x=0.0, ULTIMATE.start_fmod_double_~y=10.0, ULTIMATE.start_main_~res~0=11.0, ULTIMATE.start_main_~x~0=0.0, ULTIMATE.start_main_~y~0=10.0, |#NULL.base|=0, |#NULL.offset|=0, |ULTIMATE.start_fmod_double_#in~x|=0.0, |ULTIMATE.start_fmod_double_#in~y|=10.0, |ULTIMATE.start_fmod_double_#res|=11.0, |~#Zero_fmod~0.base|=2, |~#Zero_fmod~0.offset|=0, ~one_fmod~0=1.0] [?] #NULL.base, #NULL.offset := 0, 0; [?] #valid := #valid[0 := 0]; [L18-L21] ~one_fmod~0 := 1.0; [L18-L21] call ~#Zero_fmod~0.base, ~#Zero_fmod~0.offset := #Ultimate.alloc(16); [L18-L21] call write~init~real(0.0, ~#Zero_fmod~0.base, ~#Zero_fmod~0.offset, 8); [L18-L21] call write~init~real(~someUnaryDOUBLEoperation(0.0), ~#Zero_fmod~0.base, 8 + ~#Zero_fmod~0.offset, 8); [?] havoc main_#res; [?] havoc main_#t~nondet18, main_#t~ret19, main_#t~ret20, main_#t~short21, main_~res~0, main_~x~0, main_~y~0; [L182] main_~x~0 := 0.0; [L183] main_~y~0 := main_#t~nondet18; [L183] havoc main_#t~nondet18; VAL [#NULL.base=0, #NULL.offset=0, main_~x~0=0.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L185-L194] assume ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0) || ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0); [L187] fmod_double_#in~x, fmod_double_#in~y := main_~x~0, main_~y~0; [L187] havoc fmod_double_#res; [L187] havoc fmod_double_#t~mem0, fmod_double_#t~union1, fmod_double_#t~mem2, fmod_double_#t~union3, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, fmod_double_#t~mem4, fmod_double_#t~union5, fmod_double_#t~mem6, fmod_double_#t~union7, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, fmod_double_#t~mem8, fmod_double_#t~mem10, fmod_double_#t~post9, fmod_double_#t~mem11, fmod_double_#t~mem12, fmod_double_#t~union13.lsw, fmod_double_#t~union13.msw, fmod_double_~#iw_u~0.base, fmod_double_~#iw_u~0.offset, fmod_double_#t~mem14, fmod_double_#t~union15.lsw, fmod_double_#t~union15.msw, fmod_double_~#iw_u~1.base, fmod_double_~#iw_u~1.offset, fmod_double_~x, fmod_double_~y, fmod_double_~n~0, fmod_double_~hx~0, fmod_double_~hy~0, fmod_double_~hz~0, fmod_double_~ix~0, fmod_double_~iy~0, fmod_double_~sx~0, fmod_double_~i~0, fmod_double_~lx~0, fmod_double_~ly~0, fmod_double_~lz~0; [L23-L161] fmod_double_~x := fmod_double_#in~x; [L23-L161] fmod_double_~y := fmod_double_#in~y; [L24] havoc fmod_double_~n~0; [L24] havoc fmod_double_~hx~0; [L24] havoc fmod_double_~hy~0; [L24] havoc fmod_double_~hz~0; [L24] havoc fmod_double_~ix~0; [L24] havoc fmod_double_~iy~0; [L24] havoc fmod_double_~sx~0; [L24] havoc fmod_double_~i~0; [L25] havoc fmod_double_~lx~0; [L25] havoc fmod_double_~ly~0; [L25] havoc fmod_double_~lz~0; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L28] call fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset := #Ultimate.alloc(8); [L29] call write~real(fmod_double_~x, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8); [L30] call fmod_double_#t~mem0 := read~int(fmod_double_~#ew_u~0.base, 4 + fmod_double_~#ew_u~0.offset, 4); [L30] fmod_double_~hx~0 := (if fmod_double_#t~mem0 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem0 % 4294967296 % 4294967296 else fmod_double_#t~mem0 % 4294967296 % 4294967296 - 4294967296); [L30] call write~real(fmod_double_#t~union1, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8); [L30] havoc fmod_double_#t~mem0; [L30] havoc fmod_double_#t~union1; [L31] call fmod_double_#t~mem2 := read~int(fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 4); [L31] fmod_double_~lx~0 := fmod_double_#t~mem2; [L31] call write~real(fmod_double_#t~union3, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8); [L31] havoc fmod_double_#t~mem2; [L31] havoc fmod_double_#t~union3; [L28] call ULTIMATE.dealloc(fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset); [L28] havoc fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L34] call fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset := #Ultimate.alloc(8); [L35] call write~real(fmod_double_~y, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8); [L36] call fmod_double_#t~mem4 := read~int(fmod_double_~#ew_u~1.base, 4 + fmod_double_~#ew_u~1.offset, 4); [L36] fmod_double_~hy~0 := (if fmod_double_#t~mem4 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem4 % 4294967296 % 4294967296 else fmod_double_#t~mem4 % 4294967296 % 4294967296 - 4294967296); [L36] call write~real(fmod_double_#t~union5, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8); [L36] havoc fmod_double_#t~union5; [L36] havoc fmod_double_#t~mem4; [L37] call fmod_double_#t~mem6 := read~int(fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 4); [L37] fmod_double_~ly~0 := fmod_double_#t~mem6; [L37] call write~real(fmod_double_#t~union7, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8); [L37] havoc fmod_double_#t~union7; [L37] havoc fmod_double_#t~mem6; [L34] call ULTIMATE.dealloc(fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset); [L34] havoc fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~hy~0=7065, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L39] fmod_double_~sx~0 := (if ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 else ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 - 4294967296); [L40] fmod_double_~hx~0 := ~bitwiseXor(fmod_double_~hx~0, fmod_double_~sx~0); [L41] fmod_double_~hy~0 := ~bitwiseAnd(fmod_double_~hy~0, 2147483647); VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L43-L45] assume (0 == ~bitwiseOr(fmod_double_~hy~0, fmod_double_~ly~0) % 4294967296 || fmod_double_~hx~0 >= 2146435072) || ~bitwiseOr(fmod_double_~hy~0, ~bitwiseOr(fmod_double_~ly~0, -fmod_double_~ly~0) / 2147483648) % 4294967296 > 2146435072; [L45] fmod_double_#res := ~someBinaryArithmeticDOUBLEoperation(~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y), ~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y)); VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L187] main_#t~ret19 := fmod_double_#res; [L187] main_~res~0 := main_#t~ret19; [L187] havoc main_#t~ret19; [L190] main_#t~short21 := ~someBinaryDOUBLEComparisonOperation(main_~res~0, 0.0); VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_#t~short21=false, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L190] assume !main_#t~short21; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_#t~short21=false, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L190-L193] assume !main_#t~short21; [L190] havoc main_#t~short21; [L190] havoc main_#t~ret20; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L191] assert false; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.preprocessor.BoogiePreprocessorBacktranslator [?] #NULL.base, #NULL.offset := 0, 0; [?] #valid := #valid[0 := 0]; [L18-L21] ~one_fmod~0 := 1.0; [L18-L21] call ~#Zero_fmod~0.base, ~#Zero_fmod~0.offset := #Ultimate.alloc(16); [L18-L21] call write~init~real(0.0, ~#Zero_fmod~0.base, ~#Zero_fmod~0.offset, 8); [L18-L21] call write~init~real(~someUnaryDOUBLEoperation(0.0), ~#Zero_fmod~0.base, 8 + ~#Zero_fmod~0.offset, 8); [?] havoc main_#res; [?] havoc main_#t~nondet18, main_#t~ret19, main_#t~ret20, main_#t~short21, main_~res~0, main_~x~0, main_~y~0; [L182] main_~x~0 := 0.0; [L183] main_~y~0 := main_#t~nondet18; [L183] havoc main_#t~nondet18; VAL [#NULL.base=0, #NULL.offset=0, main_~x~0=0.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L185-L194] assume ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0) || ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0); [L187] fmod_double_#in~x, fmod_double_#in~y := main_~x~0, main_~y~0; [L187] havoc fmod_double_#res; [L187] havoc fmod_double_#t~mem0, fmod_double_#t~union1, fmod_double_#t~mem2, fmod_double_#t~union3, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, fmod_double_#t~mem4, fmod_double_#t~union5, fmod_double_#t~mem6, fmod_double_#t~union7, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, fmod_double_#t~mem8, fmod_double_#t~mem10, fmod_double_#t~post9, fmod_double_#t~mem11, fmod_double_#t~mem12, fmod_double_#t~union13.lsw, fmod_double_#t~union13.msw, fmod_double_~#iw_u~0.base, fmod_double_~#iw_u~0.offset, fmod_double_#t~mem14, fmod_double_#t~union15.lsw, fmod_double_#t~union15.msw, fmod_double_~#iw_u~1.base, fmod_double_~#iw_u~1.offset, fmod_double_~x, fmod_double_~y, fmod_double_~n~0, fmod_double_~hx~0, fmod_double_~hy~0, fmod_double_~hz~0, fmod_double_~ix~0, fmod_double_~iy~0, fmod_double_~sx~0, fmod_double_~i~0, fmod_double_~lx~0, fmod_double_~ly~0, fmod_double_~lz~0; [L23-L161] fmod_double_~x := fmod_double_#in~x; [L23-L161] fmod_double_~y := fmod_double_#in~y; [L24] havoc fmod_double_~n~0; [L24] havoc fmod_double_~hx~0; [L24] havoc fmod_double_~hy~0; [L24] havoc fmod_double_~hz~0; [L24] havoc fmod_double_~ix~0; [L24] havoc fmod_double_~iy~0; [L24] havoc fmod_double_~sx~0; [L24] havoc fmod_double_~i~0; [L25] havoc fmod_double_~lx~0; [L25] havoc fmod_double_~ly~0; [L25] havoc fmod_double_~lz~0; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L28] call fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset := #Ultimate.alloc(8); [L29] call write~real(fmod_double_~x, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8); [L30] call fmod_double_#t~mem0 := read~int(fmod_double_~#ew_u~0.base, 4 + fmod_double_~#ew_u~0.offset, 4); [L30] fmod_double_~hx~0 := (if fmod_double_#t~mem0 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem0 % 4294967296 % 4294967296 else fmod_double_#t~mem0 % 4294967296 % 4294967296 - 4294967296); [L30] call write~real(fmod_double_#t~union1, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8); [L30] havoc fmod_double_#t~mem0; [L30] havoc fmod_double_#t~union1; [L31] call fmod_double_#t~mem2 := read~int(fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 4); [L31] fmod_double_~lx~0 := fmod_double_#t~mem2; [L31] call write~real(fmod_double_#t~union3, fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset, 8); [L31] havoc fmod_double_#t~mem2; [L31] havoc fmod_double_#t~union3; [L28] call ULTIMATE.dealloc(fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset); [L28] havoc fmod_double_~#ew_u~0.base, fmod_double_~#ew_u~0.offset; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L34] call fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset := #Ultimate.alloc(8); [L35] call write~real(fmod_double_~y, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8); [L36] call fmod_double_#t~mem4 := read~int(fmod_double_~#ew_u~1.base, 4 + fmod_double_~#ew_u~1.offset, 4); [L36] fmod_double_~hy~0 := (if fmod_double_#t~mem4 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem4 % 4294967296 % 4294967296 else fmod_double_#t~mem4 % 4294967296 % 4294967296 - 4294967296); [L36] call write~real(fmod_double_#t~union5, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8); [L36] havoc fmod_double_#t~union5; [L36] havoc fmod_double_#t~mem4; [L37] call fmod_double_#t~mem6 := read~int(fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 4); [L37] fmod_double_~ly~0 := fmod_double_#t~mem6; [L37] call write~real(fmod_double_#t~union7, fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset, 8); [L37] havoc fmod_double_#t~union7; [L37] havoc fmod_double_#t~mem6; [L34] call ULTIMATE.dealloc(fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset); [L34] havoc fmod_double_~#ew_u~1.base, fmod_double_~#ew_u~1.offset; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~hy~0=7065, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L39] fmod_double_~sx~0 := (if ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 else ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 - 4294967296); [L40] fmod_double_~hx~0 := ~bitwiseXor(fmod_double_~hx~0, fmod_double_~sx~0); [L41] fmod_double_~hy~0 := ~bitwiseAnd(fmod_double_~hy~0, 2147483647); VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L43-L45] assume (0 == ~bitwiseOr(fmod_double_~hy~0, fmod_double_~ly~0) % 4294967296 || fmod_double_~hx~0 >= 2146435072) || ~bitwiseOr(fmod_double_~hy~0, ~bitwiseOr(fmod_double_~ly~0, -fmod_double_~ly~0) / 2147483648) % 4294967296 > 2146435072; [L45] fmod_double_#res := ~someBinaryArithmeticDOUBLEoperation(~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y), ~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y)); VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L187] main_#t~ret19 := fmod_double_#res; [L187] main_~res~0 := main_#t~ret19; [L187] havoc main_#t~ret19; [L190] main_#t~short21 := ~someBinaryDOUBLEComparisonOperation(main_~res~0, 0.0); VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_#t~short21=false, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L190] assume !main_#t~short21; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_#t~short21=false, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L190-L193] assume !main_#t~short21; [L190] havoc main_#t~short21; [L190] havoc main_#t~ret20; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [L191] assert false; VAL [#NULL.base=0, #NULL.offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0.base=2, ~#Zero_fmod~0.offset=0, ~one_fmod~0=1.0] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; [L18-L21] ~one_fmod~0 := 1.0; [L18-L21] FCALL call ~#Zero_fmod~0 := #Ultimate.alloc(16); [L18-L21] FCALL call write~init~real(0.0, { base: ~#Zero_fmod~0!base, offset: ~#Zero_fmod~0!offset }, 8); [L18-L21] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.0), { base: ~#Zero_fmod~0!base, offset: 8 + ~#Zero_fmod~0!offset }, 8); [?] havoc main_#res; [?] havoc main_#t~nondet18, main_#t~ret19, main_#t~ret20, main_#t~short21, main_~res~0, main_~x~0, main_~y~0; [L182] main_~x~0 := 0.0; [L183] main_~y~0 := main_#t~nondet18; [L183] havoc main_#t~nondet18; VAL [#NULL!base=0, #NULL!offset=0, main_~x~0=0.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L185] COND TRUE ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0) || ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0) [L187] fmod_double_#in~x, fmod_double_#in~y := main_~x~0, main_~y~0; [L187] havoc fmod_double_#res; [L187] havoc fmod_double_#t~mem0, fmod_double_#t~union1, fmod_double_#t~mem2, fmod_double_#t~union3, fmod_double_~#ew_u~0, fmod_double_#t~mem4, fmod_double_#t~union5, fmod_double_#t~mem6, fmod_double_#t~union7, fmod_double_~#ew_u~1, fmod_double_#t~mem8, fmod_double_#t~mem10, fmod_double_#t~post9, fmod_double_#t~mem11, fmod_double_#t~mem12, fmod_double_#t~union13, fmod_double_~#iw_u~0, fmod_double_#t~mem14, fmod_double_#t~union15, fmod_double_~#iw_u~1, fmod_double_~x, fmod_double_~y, fmod_double_~n~0, fmod_double_~hx~0, fmod_double_~hy~0, fmod_double_~hz~0, fmod_double_~ix~0, fmod_double_~iy~0, fmod_double_~sx~0, fmod_double_~i~0, fmod_double_~lx~0, fmod_double_~ly~0, fmod_double_~lz~0; [L23-L161] fmod_double_~x := fmod_double_#in~x; [L23-L161] fmod_double_~y := fmod_double_#in~y; [L24] havoc fmod_double_~n~0; [L24] havoc fmod_double_~hx~0; [L24] havoc fmod_double_~hy~0; [L24] havoc fmod_double_~hz~0; [L24] havoc fmod_double_~ix~0; [L24] havoc fmod_double_~iy~0; [L24] havoc fmod_double_~sx~0; [L24] havoc fmod_double_~i~0; [L25] havoc fmod_double_~lx~0; [L25] havoc fmod_double_~ly~0; [L25] havoc fmod_double_~lz~0; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L28] FCALL call fmod_double_~#ew_u~0 := #Ultimate.alloc(8); [L29] FCALL call write~real(fmod_double_~x, { base: fmod_double_~#ew_u~0!base, offset: fmod_double_~#ew_u~0!offset }, 8); [L30] FCALL call fmod_double_#t~mem0 := read~int({ base: fmod_double_~#ew_u~0!base, offset: 4 + fmod_double_~#ew_u~0!offset }, 4); [L30] fmod_double_~hx~0 := (if fmod_double_#t~mem0 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem0 % 4294967296 % 4294967296 else fmod_double_#t~mem0 % 4294967296 % 4294967296 - 4294967296); [L30] FCALL call write~real(fmod_double_#t~union1, { base: fmod_double_~#ew_u~0!base, offset: fmod_double_~#ew_u~0!offset }, 8); [L30] havoc fmod_double_#t~mem0; [L30] havoc fmod_double_#t~union1; [L31] FCALL call fmod_double_#t~mem2 := read~int({ base: fmod_double_~#ew_u~0!base, offset: fmod_double_~#ew_u~0!offset }, 4); [L31] fmod_double_~lx~0 := fmod_double_#t~mem2; [L31] FCALL call write~real(fmod_double_#t~union3, { base: fmod_double_~#ew_u~0!base, offset: fmod_double_~#ew_u~0!offset }, 8); [L31] havoc fmod_double_#t~mem2; [L31] havoc fmod_double_#t~union3; [L28] FCALL call ULTIMATE.dealloc(fmod_double_~#ew_u~0); [L28] havoc fmod_double_~#ew_u~0; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L34] FCALL call fmod_double_~#ew_u~1 := #Ultimate.alloc(8); [L35] FCALL call write~real(fmod_double_~y, { base: fmod_double_~#ew_u~1!base, offset: fmod_double_~#ew_u~1!offset }, 8); [L36] FCALL call fmod_double_#t~mem4 := read~int({ base: fmod_double_~#ew_u~1!base, offset: 4 + fmod_double_~#ew_u~1!offset }, 4); [L36] fmod_double_~hy~0 := (if fmod_double_#t~mem4 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem4 % 4294967296 % 4294967296 else fmod_double_#t~mem4 % 4294967296 % 4294967296 - 4294967296); [L36] FCALL call write~real(fmod_double_#t~union5, { base: fmod_double_~#ew_u~1!base, offset: fmod_double_~#ew_u~1!offset }, 8); [L36] havoc fmod_double_#t~union5; [L36] havoc fmod_double_#t~mem4; [L37] FCALL call fmod_double_#t~mem6 := read~int({ base: fmod_double_~#ew_u~1!base, offset: fmod_double_~#ew_u~1!offset }, 4); [L37] fmod_double_~ly~0 := fmod_double_#t~mem6; [L37] FCALL call write~real(fmod_double_#t~union7, { base: fmod_double_~#ew_u~1!base, offset: fmod_double_~#ew_u~1!offset }, 8); [L37] havoc fmod_double_#t~union7; [L37] havoc fmod_double_#t~mem6; [L34] FCALL call ULTIMATE.dealloc(fmod_double_~#ew_u~1); [L34] havoc fmod_double_~#ew_u~1; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~hy~0=7065, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L39] fmod_double_~sx~0 := (if ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 else ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 - 4294967296); [L40] fmod_double_~hx~0 := ~bitwiseXor(fmod_double_~hx~0, fmod_double_~sx~0); [L41] fmod_double_~hy~0 := ~bitwiseAnd(fmod_double_~hy~0, 2147483647); VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L43-L44] COND TRUE (0 == ~bitwiseOr(fmod_double_~hy~0, fmod_double_~ly~0) % 4294967296 || fmod_double_~hx~0 >= 2146435072) || ~bitwiseOr(fmod_double_~hy~0, ~bitwiseOr(fmod_double_~ly~0, -fmod_double_~ly~0) / 2147483648) % 4294967296 > 2146435072 [L45] fmod_double_#res := ~someBinaryArithmeticDOUBLEoperation(~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y), ~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y)); VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L187] main_#t~ret19 := fmod_double_#res; [L187] main_~res~0 := main_#t~ret19; [L187] havoc main_#t~ret19; [L190] main_#t~short21 := ~someBinaryDOUBLEComparisonOperation(main_~res~0, 0.0); VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_#t~short21=false, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L190] COND FALSE !(main_#t~short21) VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_#t~short21=false, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L190] COND TRUE !main_#t~short21 [L190] havoc main_#t~short21; [L190] havoc main_#t~ret20; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L191] assert false; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] ----- ----- class de.uni_freiburg.informatik.ultimate.boogie.procedureinliner.backtranslation.InlinerBacktranslator [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; [L18-L21] ~one_fmod~0 := 1.0; [L18-L21] FCALL call ~#Zero_fmod~0 := #Ultimate.alloc(16); [L18-L21] FCALL call write~init~real(0.0, { base: ~#Zero_fmod~0!base, offset: ~#Zero_fmod~0!offset }, 8); [L18-L21] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.0), { base: ~#Zero_fmod~0!base, offset: 8 + ~#Zero_fmod~0!offset }, 8); [?] havoc main_#res; [?] havoc main_#t~nondet18, main_#t~ret19, main_#t~ret20, main_#t~short21, main_~res~0, main_~x~0, main_~y~0; [L182] main_~x~0 := 0.0; [L183] main_~y~0 := main_#t~nondet18; [L183] havoc main_#t~nondet18; VAL [#NULL!base=0, #NULL!offset=0, main_~x~0=0.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L185] COND TRUE ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0) || ~someBinaryDOUBLEComparisonOperation(main_~y~0, 0.0) [L187] fmod_double_#in~x, fmod_double_#in~y := main_~x~0, main_~y~0; [L187] havoc fmod_double_#res; [L187] havoc fmod_double_#t~mem0, fmod_double_#t~union1, fmod_double_#t~mem2, fmod_double_#t~union3, fmod_double_~#ew_u~0, fmod_double_#t~mem4, fmod_double_#t~union5, fmod_double_#t~mem6, fmod_double_#t~union7, fmod_double_~#ew_u~1, fmod_double_#t~mem8, fmod_double_#t~mem10, fmod_double_#t~post9, fmod_double_#t~mem11, fmod_double_#t~mem12, fmod_double_#t~union13, fmod_double_~#iw_u~0, fmod_double_#t~mem14, fmod_double_#t~union15, fmod_double_~#iw_u~1, fmod_double_~x, fmod_double_~y, fmod_double_~n~0, fmod_double_~hx~0, fmod_double_~hy~0, fmod_double_~hz~0, fmod_double_~ix~0, fmod_double_~iy~0, fmod_double_~sx~0, fmod_double_~i~0, fmod_double_~lx~0, fmod_double_~ly~0, fmod_double_~lz~0; [L23-L161] fmod_double_~x := fmod_double_#in~x; [L23-L161] fmod_double_~y := fmod_double_#in~y; [L24] havoc fmod_double_~n~0; [L24] havoc fmod_double_~hx~0; [L24] havoc fmod_double_~hy~0; [L24] havoc fmod_double_~hz~0; [L24] havoc fmod_double_~ix~0; [L24] havoc fmod_double_~iy~0; [L24] havoc fmod_double_~sx~0; [L24] havoc fmod_double_~i~0; [L25] havoc fmod_double_~lx~0; [L25] havoc fmod_double_~ly~0; [L25] havoc fmod_double_~lz~0; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L28] FCALL call fmod_double_~#ew_u~0 := #Ultimate.alloc(8); [L29] FCALL call write~real(fmod_double_~x, { base: fmod_double_~#ew_u~0!base, offset: fmod_double_~#ew_u~0!offset }, 8); [L30] FCALL call fmod_double_#t~mem0 := read~int({ base: fmod_double_~#ew_u~0!base, offset: 4 + fmod_double_~#ew_u~0!offset }, 4); [L30] fmod_double_~hx~0 := (if fmod_double_#t~mem0 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem0 % 4294967296 % 4294967296 else fmod_double_#t~mem0 % 4294967296 % 4294967296 - 4294967296); [L30] FCALL call write~real(fmod_double_#t~union1, { base: fmod_double_~#ew_u~0!base, offset: fmod_double_~#ew_u~0!offset }, 8); [L30] havoc fmod_double_#t~mem0; [L30] havoc fmod_double_#t~union1; [L31] FCALL call fmod_double_#t~mem2 := read~int({ base: fmod_double_~#ew_u~0!base, offset: fmod_double_~#ew_u~0!offset }, 4); [L31] fmod_double_~lx~0 := fmod_double_#t~mem2; [L31] FCALL call write~real(fmod_double_#t~union3, { base: fmod_double_~#ew_u~0!base, offset: fmod_double_~#ew_u~0!offset }, 8); [L31] havoc fmod_double_#t~mem2; [L31] havoc fmod_double_#t~union3; [L28] FCALL call ULTIMATE.dealloc(fmod_double_~#ew_u~0); [L28] havoc fmod_double_~#ew_u~0; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L34] FCALL call fmod_double_~#ew_u~1 := #Ultimate.alloc(8); [L35] FCALL call write~real(fmod_double_~y, { base: fmod_double_~#ew_u~1!base, offset: fmod_double_~#ew_u~1!offset }, 8); [L36] FCALL call fmod_double_#t~mem4 := read~int({ base: fmod_double_~#ew_u~1!base, offset: 4 + fmod_double_~#ew_u~1!offset }, 4); [L36] fmod_double_~hy~0 := (if fmod_double_#t~mem4 % 4294967296 % 4294967296 <= 2147483647 then fmod_double_#t~mem4 % 4294967296 % 4294967296 else fmod_double_#t~mem4 % 4294967296 % 4294967296 - 4294967296); [L36] FCALL call write~real(fmod_double_#t~union5, { base: fmod_double_~#ew_u~1!base, offset: fmod_double_~#ew_u~1!offset }, 8); [L36] havoc fmod_double_#t~union5; [L36] havoc fmod_double_#t~mem4; [L37] FCALL call fmod_double_#t~mem6 := read~int({ base: fmod_double_~#ew_u~1!base, offset: fmod_double_~#ew_u~1!offset }, 4); [L37] fmod_double_~ly~0 := fmod_double_#t~mem6; [L37] FCALL call write~real(fmod_double_#t~union7, { base: fmod_double_~#ew_u~1!base, offset: fmod_double_~#ew_u~1!offset }, 8); [L37] havoc fmod_double_#t~union7; [L37] havoc fmod_double_#t~mem6; [L34] FCALL call ULTIMATE.dealloc(fmod_double_~#ew_u~1); [L34] havoc fmod_double_~#ew_u~1; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~hy~0=7065, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L39] fmod_double_~sx~0 := (if ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 else ~bitwiseAnd(fmod_double_~hx~0, 2147483648) % 4294967296 % 4294967296 - 4294967296); [L40] fmod_double_~hx~0 := ~bitwiseXor(fmod_double_~hx~0, fmod_double_~sx~0); [L41] fmod_double_~hy~0 := ~bitwiseAnd(fmod_double_~hy~0, 2147483647); VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L43-L44] COND TRUE (0 == ~bitwiseOr(fmod_double_~hy~0, fmod_double_~ly~0) % 4294967296 || fmod_double_~hx~0 >= 2146435072) || ~bitwiseOr(fmod_double_~hy~0, ~bitwiseOr(fmod_double_~ly~0, -fmod_double_~ly~0) / 2147483648) % 4294967296 > 2146435072 [L45] fmod_double_#res := ~someBinaryArithmeticDOUBLEoperation(~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y), ~someBinaryArithmeticDOUBLEoperation(fmod_double_~x, fmod_double_~y)); VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L187] main_#t~ret19 := fmod_double_#res; [L187] main_~res~0 := main_#t~ret19; [L187] havoc main_#t~ret19; [L190] main_#t~short21 := ~someBinaryDOUBLEComparisonOperation(main_~res~0, 0.0); VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_#t~short21=false, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L190] COND FALSE !(main_#t~short21) VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_#t~short21=false, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L190] COND TRUE !main_#t~short21 [L190] havoc main_#t~short21; [L190] havoc main_#t~ret20; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L191] assert false; VAL [#NULL!base=0, #NULL!offset=0, fmod_double_#in~x=0.0, fmod_double_#in~y=10.0, fmod_double_#res=11.0, fmod_double_~hx~0=0, fmod_double_~lx~0=7, fmod_double_~ly~0=10, fmod_double_~sx~0=7629, fmod_double_~x=0.0, fmod_double_~y=10.0, main_~res~0=11.0, main_~x~0=0.0, main_~y~0=10.0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; [L18-L21] ~one_fmod~0 := 1.0; [L18-L21] FCALL call ~#Zero_fmod~0 := #Ultimate.alloc(16); [L18-L21] FCALL call write~init~real(0.0, { base: ~#Zero_fmod~0!base, offset: ~#Zero_fmod~0!offset }, 8); [L18-L21] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.0), { base: ~#Zero_fmod~0!base, offset: 8 + ~#Zero_fmod~0!offset }, 8); [L182] ~x~0 := 0.0; [L183] ~y~0 := #t~nondet18; [L183] havoc #t~nondet18; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L185] COND TRUE ~someBinaryDOUBLEComparisonOperation(~y~0, 0.0) || ~someBinaryDOUBLEComparisonOperation(~y~0, 0.0) [L23-L161] ~x := #in~x; [L23-L161] ~y := #in~y; [L24] havoc ~n~0; [L24] havoc ~hx~0; [L24] havoc ~hy~0; [L24] havoc ~hz~0; [L24] havoc ~ix~0; [L24] havoc ~iy~0; [L24] havoc ~sx~0; [L24] havoc ~i~0; [L25] havoc ~lx~0; [L25] havoc ~ly~0; [L25] havoc ~lz~0; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L28] FCALL call ~#ew_u~0 := #Ultimate.alloc(8); [L29] FCALL call write~real(~x, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L30] FCALL call #t~mem0 := read~int({ base: ~#ew_u~0!base, offset: 4 + ~#ew_u~0!offset }, 4); [L30] ~hx~0 := (if #t~mem0 % 4294967296 % 4294967296 <= 2147483647 then #t~mem0 % 4294967296 % 4294967296 else #t~mem0 % 4294967296 % 4294967296 - 4294967296); [L30] FCALL call write~real(#t~union1, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L30] havoc #t~mem0; [L30] havoc #t~union1; [L31] FCALL call #t~mem2 := read~int({ base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 4); [L31] ~lx~0 := #t~mem2; [L31] FCALL call write~real(#t~union3, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L31] havoc #t~mem2; [L31] havoc #t~union3; [L28] FCALL call ULTIMATE.dealloc(~#ew_u~0); [L28] havoc ~#ew_u~0; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L34] FCALL call ~#ew_u~1 := #Ultimate.alloc(8); [L35] FCALL call write~real(~y, { base: ~#ew_u~1!base, offset: ~#ew_u~1!offset }, 8); [L36] FCALL call #t~mem4 := read~int({ base: ~#ew_u~1!base, offset: 4 + ~#ew_u~1!offset }, 4); [L36] ~hy~0 := (if #t~mem4 % 4294967296 % 4294967296 <= 2147483647 then #t~mem4 % 4294967296 % 4294967296 else #t~mem4 % 4294967296 % 4294967296 - 4294967296); [L36] FCALL call write~real(#t~union5, { base: ~#ew_u~1!base, offset: ~#ew_u~1!offset }, 8); [L36] havoc #t~union5; [L36] havoc #t~mem4; [L37] FCALL call #t~mem6 := read~int({ base: ~#ew_u~1!base, offset: ~#ew_u~1!offset }, 4); [L37] ~ly~0 := #t~mem6; [L37] FCALL call write~real(#t~union7, { base: ~#ew_u~1!base, offset: ~#ew_u~1!offset }, 8); [L37] havoc #t~union7; [L37] havoc #t~mem6; [L34] FCALL call ULTIMATE.dealloc(~#ew_u~1); [L34] havoc ~#ew_u~1; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L39] ~sx~0 := (if ~bitwiseAnd(~hx~0, 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(~hx~0, 2147483648) % 4294967296 % 4294967296 else ~bitwiseAnd(~hx~0, 2147483648) % 4294967296 % 4294967296 - 4294967296); [L40] ~hx~0 := ~bitwiseXor(~hx~0, ~sx~0); [L41] ~hy~0 := ~bitwiseAnd(~hy~0, 2147483647); VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L43-L44] COND TRUE (0 == ~bitwiseOr(~hy~0, ~ly~0) % 4294967296 || ~hx~0 >= 2146435072) || ~bitwiseOr(~hy~0, ~bitwiseOr(~ly~0, -~ly~0) / 2147483648) % 4294967296 > 2146435072 [L45] #res := ~someBinaryArithmeticDOUBLEoperation(~someBinaryArithmeticDOUBLEoperation(~x, ~y), ~someBinaryArithmeticDOUBLEoperation(~x, ~y)); VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L187] ~res~0 := #t~ret19; [L187] havoc #t~ret19; [L190] #t~short21 := ~someBinaryDOUBLEComparisonOperation(~res~0, 0.0); VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L190] COND FALSE !(#t~short21) VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L190] COND TRUE !#t~short21 [L190] havoc #t~short21; [L190] havoc #t~ret20; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L191] assert false; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] ----- ----- class de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.CACSL2BoogieBacktranslator [?] #NULL := { base: 0, offset: 0 }; [?] #valid[0] := 0; [L18-L21] ~one_fmod~0 := 1.0; [L18-L21] FCALL call ~#Zero_fmod~0 := #Ultimate.alloc(16); [L18-L21] FCALL call write~init~real(0.0, { base: ~#Zero_fmod~0!base, offset: ~#Zero_fmod~0!offset }, 8); [L18-L21] FCALL call write~init~real(~someUnaryDOUBLEoperation(0.0), { base: ~#Zero_fmod~0!base, offset: 8 + ~#Zero_fmod~0!offset }, 8); [L182] ~x~0 := 0.0; [L183] ~y~0 := #t~nondet18; [L183] havoc #t~nondet18; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L185] COND TRUE ~someBinaryDOUBLEComparisonOperation(~y~0, 0.0) || ~someBinaryDOUBLEComparisonOperation(~y~0, 0.0) [L23-L161] ~x := #in~x; [L23-L161] ~y := #in~y; [L24] havoc ~n~0; [L24] havoc ~hx~0; [L24] havoc ~hy~0; [L24] havoc ~hz~0; [L24] havoc ~ix~0; [L24] havoc ~iy~0; [L24] havoc ~sx~0; [L24] havoc ~i~0; [L25] havoc ~lx~0; [L25] havoc ~ly~0; [L25] havoc ~lz~0; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L28] FCALL call ~#ew_u~0 := #Ultimate.alloc(8); [L29] FCALL call write~real(~x, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L30] FCALL call #t~mem0 := read~int({ base: ~#ew_u~0!base, offset: 4 + ~#ew_u~0!offset }, 4); [L30] ~hx~0 := (if #t~mem0 % 4294967296 % 4294967296 <= 2147483647 then #t~mem0 % 4294967296 % 4294967296 else #t~mem0 % 4294967296 % 4294967296 - 4294967296); [L30] FCALL call write~real(#t~union1, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L30] havoc #t~mem0; [L30] havoc #t~union1; [L31] FCALL call #t~mem2 := read~int({ base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 4); [L31] ~lx~0 := #t~mem2; [L31] FCALL call write~real(#t~union3, { base: ~#ew_u~0!base, offset: ~#ew_u~0!offset }, 8); [L31] havoc #t~mem2; [L31] havoc #t~union3; [L28] FCALL call ULTIMATE.dealloc(~#ew_u~0); [L28] havoc ~#ew_u~0; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L34] FCALL call ~#ew_u~1 := #Ultimate.alloc(8); [L35] FCALL call write~real(~y, { base: ~#ew_u~1!base, offset: ~#ew_u~1!offset }, 8); [L36] FCALL call #t~mem4 := read~int({ base: ~#ew_u~1!base, offset: 4 + ~#ew_u~1!offset }, 4); [L36] ~hy~0 := (if #t~mem4 % 4294967296 % 4294967296 <= 2147483647 then #t~mem4 % 4294967296 % 4294967296 else #t~mem4 % 4294967296 % 4294967296 - 4294967296); [L36] FCALL call write~real(#t~union5, { base: ~#ew_u~1!base, offset: ~#ew_u~1!offset }, 8); [L36] havoc #t~union5; [L36] havoc #t~mem4; [L37] FCALL call #t~mem6 := read~int({ base: ~#ew_u~1!base, offset: ~#ew_u~1!offset }, 4); [L37] ~ly~0 := #t~mem6; [L37] FCALL call write~real(#t~union7, { base: ~#ew_u~1!base, offset: ~#ew_u~1!offset }, 8); [L37] havoc #t~union7; [L37] havoc #t~mem6; [L34] FCALL call ULTIMATE.dealloc(~#ew_u~1); [L34] havoc ~#ew_u~1; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L39] ~sx~0 := (if ~bitwiseAnd(~hx~0, 2147483648) % 4294967296 % 4294967296 <= 2147483647 then ~bitwiseAnd(~hx~0, 2147483648) % 4294967296 % 4294967296 else ~bitwiseAnd(~hx~0, 2147483648) % 4294967296 % 4294967296 - 4294967296); [L40] ~hx~0 := ~bitwiseXor(~hx~0, ~sx~0); [L41] ~hy~0 := ~bitwiseAnd(~hy~0, 2147483647); VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L43-L44] COND TRUE (0 == ~bitwiseOr(~hy~0, ~ly~0) % 4294967296 || ~hx~0 >= 2146435072) || ~bitwiseOr(~hy~0, ~bitwiseOr(~ly~0, -~ly~0) / 2147483648) % 4294967296 > 2146435072 [L45] #res := ~someBinaryArithmeticDOUBLEoperation(~someBinaryArithmeticDOUBLEoperation(~x, ~y), ~someBinaryArithmeticDOUBLEoperation(~x, ~y)); VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L187] ~res~0 := #t~ret19; [L187] havoc #t~ret19; [L190] #t~short21 := ~someBinaryDOUBLEComparisonOperation(~res~0, 0.0); VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L190] COND FALSE !(#t~short21) VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L190] COND TRUE !#t~short21 [L190] havoc #t~short21; [L190] havoc #t~ret20; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L191] assert false; VAL [#NULL!base=0, #NULL!offset=0, ~#Zero_fmod~0!base=2, ~#Zero_fmod~0!offset=0, ~one_fmod~0=1.0] [L18-L21] static const double one_fmod = 1.0, Zero_fmod[] = { 0.0, -0.0, }; [L182] double x = 0.0; [L183] double y = __VERIFIER_nondet_double(); [L185] COND TRUE y < 0.0 || y > 0.0 [L24] __int32_t n, hx, hy, hz, ix, iy, sx, i; [L25] __uint32_t lx, ly, lz; VAL [one_fmod=1, Zero_fmod={2:0}] [L28] ieee_double_shape_type ew_u; [L29] ew_u.value = (x) [L30] EXPR ew_u.parts.msw [L30] (hx) = ew_u.parts.msw [L31] EXPR ew_u.parts.lsw [L31] (lx) = ew_u.parts.lsw [L34] ieee_double_shape_type ew_u; [L35] ew_u.value = (y) [L36] EXPR ew_u.parts.msw [L36] (hy) = ew_u.parts.msw [L37] EXPR ew_u.parts.lsw [L37] (ly) = ew_u.parts.lsw [L39] sx = hx & 0x80000000 [L40] hx ^= sx [L41] hy &= 0x7fffffff VAL [one_fmod=1, Zero_fmod={2:0}] [L43-L44] COND TRUE (hy | ly) == 0 || (hx >= 0x7ff00000) || ((hy | ((ly | -ly) >> 31)) > 0x7ff00000) [L45] return (x * y) / (x * y); VAL [one_fmod=1, Zero_fmod={2:0}] [L187] double res = fmod_double(x, y); [L190] EXPR res == 0.0 && __signbit_double(res) == 0 VAL [one_fmod=1, Zero_fmod={2:0}] [L190] COND TRUE !(res == 0.0 && __signbit_double(res) == 0) [L191] __VERIFIER_error() VAL [one_fmod=1, Zero_fmod={2:0}] ----- [2018-11-23 05:58:59,117 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck CFG 23.11 05:58:59 ImpRootNode [2018-11-23 05:58:59,117 INFO L132 PluginConnector]: ------------------------ END CodeCheck---------------------------- [2018-11-23 05:58:59,118 INFO L113 PluginConnector]: ------------------------Witness Printer---------------------------- [2018-11-23 05:58:59,118 INFO L271 PluginConnector]: Initializing Witness Printer... [2018-11-23 05:58:59,118 INFO L276 PluginConnector]: Witness Printer initialized [2018-11-23 05:58:59,118 INFO L185 PluginConnector]: Executing the observer RCFGCatcher from plugin Witness Printer for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 05:58:58" (3/4) ... [2018-11-23 05:58:59,122 INFO L147 WitnessPrinter]: No result that supports witness generation found [2018-11-23 05:58:59,129 INFO L132 PluginConnector]: ------------------------ END Witness Printer---------------------------- [2018-11-23 05:58:59,134 INFO L168 Benchmark]: Toolchain (without parser) took 1413.85 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 121.6 MB). Free memory was 959.1 MB in the beginning and 1.0 GB in the end (delta: -70.1 MB). Peak memory consumption was 51.6 MB. Max. memory is 11.5 GB. [2018-11-23 05:58:59,136 INFO L168 Benchmark]: CDTParser took 0.15 ms. Allocated memory is still 1.0 GB. Free memory is still 985.4 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 05:58:59,136 INFO L168 Benchmark]: CACSL2BoogieTranslator took 316.71 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 121.6 MB). Free memory was 959.1 MB in the beginning and 1.1 GB in the end (delta: -162.3 MB). Peak memory consumption was 31.2 MB. Max. memory is 11.5 GB. [2018-11-23 05:58:59,137 INFO L168 Benchmark]: Boogie Procedure Inliner took 44.80 ms. Allocated memory is still 1.2 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-23 05:58:59,138 INFO L168 Benchmark]: Boogie Preprocessor took 33.31 ms. Allocated memory is still 1.2 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-23 05:58:59,138 INFO L168 Benchmark]: RCFGBuilder took 621.98 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 57.3 MB). Peak memory consumption was 57.3 MB. Max. memory is 11.5 GB. [2018-11-23 05:58:59,139 INFO L168 Benchmark]: CodeCheck took 377.83 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 26.9 MB). Peak memory consumption was 26.9 MB. Max. memory is 11.5 GB. [2018-11-23 05:58:59,140 INFO L168 Benchmark]: Witness Printer took 15.89 ms. Allocated memory is still 1.2 GB. Free memory is still 1.0 GB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 05:58:59,143 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, 61 locations, 1 error locations. UNSAFE Result, 0.2s OverallTime, 2 OverallIterations, 0 TraceHistogramMax, 0.0s AutomataDifference, 0.0s DeadEndRemovalTime, 0.0s HoareAnnotationTime, HoareTripleCheckerStatistics: 22 SDtfs, 0 SDslu, 0 SDs, 0 SdLazy, 0 SolverSat, 0 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 0.0s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 77 GetRequests, 77 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, 22 NumberOfCodeBlocks, 22 NumberOfCodeBlocksAsserted, 2 NumberOfCheckSat, 9 ConstructedInterpolants, 0 QuantifiedInterpolants, 81 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: 191]: Unable to prove that call of __VERIFIER_error() unreachable Unable to prove that call of __VERIFIER_error() unreachable Reason: overapproximation of bitwiseOr at line 44, overapproximation of someUnaryDOUBLEoperation at line 20, overapproximation of bitwiseAnd at line 39, overapproximation of someBinaryArithmeticDOUBLEoperation at line 45, overapproximation of someBinaryDOUBLEComparisonOperation at line 190, overapproximation of bitwiseXor at line 40. Possible FailurePath: [L18-L21] static const double one_fmod = 1.0, Zero_fmod[] = { 0.0, -0.0, }; [L182] double x = 0.0; [L183] double y = __VERIFIER_nondet_double(); [L185] COND TRUE y < 0.0 || y > 0.0 [L24] __int32_t n, hx, hy, hz, ix, iy, sx, i; [L25] __uint32_t lx, ly, lz; VAL [one_fmod=1, Zero_fmod={2:0}] [L28] ieee_double_shape_type ew_u; [L29] ew_u.value = (x) [L30] EXPR ew_u.parts.msw [L30] (hx) = ew_u.parts.msw [L31] EXPR ew_u.parts.lsw [L31] (lx) = ew_u.parts.lsw [L34] ieee_double_shape_type ew_u; [L35] ew_u.value = (y) [L36] EXPR ew_u.parts.msw [L36] (hy) = ew_u.parts.msw [L37] EXPR ew_u.parts.lsw [L37] (ly) = ew_u.parts.lsw [L39] sx = hx & 0x80000000 [L40] hx ^= sx [L41] hy &= 0x7fffffff VAL [one_fmod=1, Zero_fmod={2:0}] [L43-L44] COND TRUE (hy | ly) == 0 || (hx >= 0x7ff00000) || ((hy | ((ly | -ly) >> 31)) > 0x7ff00000) [L45] return (x * y) / (x * y); VAL [one_fmod=1, Zero_fmod={2:0}] [L187] double res = fmod_double(x, y); [L190] EXPR res == 0.0 && __signbit_double(res) == 0 VAL [one_fmod=1, Zero_fmod={2:0}] [L190] COND TRUE !(res == 0.0 && __signbit_double(res) == 0) [L191] __VERIFIER_error() VAL [one_fmod=1, Zero_fmod={2:0}] * 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 985.4 MB. There was no memory consumed. Max. memory is 11.5 GB. * CACSL2BoogieTranslator took 316.71 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 121.6 MB). Free memory was 959.1 MB in the beginning and 1.1 GB in the end (delta: -162.3 MB). Peak memory consumption was 31.2 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 44.80 ms. Allocated memory is still 1.2 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. * Boogie Preprocessor took 33.31 ms. Allocated memory is still 1.2 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. * RCFGBuilder took 621.98 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 57.3 MB). Peak memory consumption was 57.3 MB. Max. memory is 11.5 GB. * CodeCheck took 377.83 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.0 GB in the end (delta: 26.9 MB). Peak memory consumption was 26.9 MB. Max. memory is 11.5 GB. * Witness Printer took 15.89 ms. Allocated memory is still 1.2 GB. Free memory is still 1.0 GB. There was no memory consumed. 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-23 05:59:00,848 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-11-23 05:59:00,849 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-11-23 05:59:00,858 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-11-23 05:59:00,859 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-11-23 05:59:00,860 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-11-23 05:59:00,860 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-11-23 05:59:00,862 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-11-23 05:59:00,863 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-11-23 05:59:00,864 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-11-23 05:59:00,864 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-11-23 05:59:00,864 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-11-23 05:59:00,865 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2018-11-23 05:59:00,866 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-11-23 05:59:00,867 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2018-11-23 05:59:00,867 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-11-23 05:59:00,868 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-11-23 05:59:00,869 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-11-23 05:59:00,870 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-11-23 05:59:00,872 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-11-23 05:59:00,872 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-11-23 05:59:00,873 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-11-23 05:59:00,875 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-11-23 05:59:00,875 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-11-23 05:59:00,875 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2018-11-23 05:59:00,876 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-11-23 05:59:00,877 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-11-23 05:59:00,877 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2018-11-23 05:59:00,878 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-11-23 05:59:00,878 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-11-23 05:59:00,879 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-11-23 05:59:00,879 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-11-23 05:59:00,879 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2018-11-23 05:59:00,879 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2018-11-23 05:59:00,880 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-11-23 05:59:00,880 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-11-23 05:59:00,881 INFO L98 SettingsManager]: Beginning loading settings from /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/config/svcomp-Reach-32bit-Kojak_Bitvector.epf [2018-11-23 05:59:00,891 INFO L110 SettingsManager]: Loading preferences was successful [2018-11-23 05:59:00,891 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-11-23 05:59:00,892 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-11-23 05:59:00,892 INFO L133 SettingsManager]: * ... to procedures called more than once=ALWAYS [2018-11-23 05:59:00,892 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2018-11-23 05:59:00,893 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2018-11-23 05:59:00,893 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-11-23 05:59:00,893 INFO L133 SettingsManager]: * sizeof long=4 [2018-11-23 05:59:00,893 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-11-23 05:59:00,893 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-11-23 05:59:00,893 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2018-11-23 05:59:00,894 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-11-23 05:59:00,894 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2018-11-23 05:59:00,894 INFO L133 SettingsManager]: * Use bitvectors instead of ints=true [2018-11-23 05:59:00,894 INFO L133 SettingsManager]: * Memory model=HoenickeLindenmann_4ByteResolution [2018-11-23 05:59:00,894 INFO L133 SettingsManager]: * sizeof long double=12 [2018-11-23 05:59:00,894 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2018-11-23 05:59:00,894 INFO L133 SettingsManager]: * Use constant arrays=true [2018-11-23 05:59:00,894 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2018-11-23 05:59:00,895 INFO L131 SettingsManager]: Preferences of CodeCheck differ from their defaults: [2018-11-23 05:59:00,895 INFO L133 SettingsManager]: * Timeout in seconds=1000000 [2018-11-23 05:59:00,895 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-11-23 05:59:00,895 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-11-23 05:59:00,895 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 [2018-11-23 05:59:00,895 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-11-23 05:59:00,896 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-11-23 05:59:00,896 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-11-23 05:59:00,896 INFO L133 SettingsManager]: * Use separate solver for trace checks=false [2018-11-23 05:59:00,896 INFO L133 SettingsManager]: * Trace refinement strategy=WALRUS [2018-11-23 05:59:00,896 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-11-23 05:59:00,896 INFO L133 SettingsManager]: * Command for external solver=cvc4nyu --tear-down-incremental --rewrite-divk --print-success --lang smt [2018-11-23 05:59:00,896 INFO L133 SettingsManager]: * Logic for external solver=AUFBV [2018-11-23 05:59:00,896 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_c9241800-c9d5-4a7c-8cd5-ab750226577c/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 -> aa2086ab05aa915f1fa31296bc02fdb3a78fa087 [2018-11-23 05:59:00,926 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-11-23 05:59:00,935 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2018-11-23 05:59:00,938 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2018-11-23 05:59:00,939 INFO L271 PluginConnector]: Initializing CDTParser... [2018-11-23 05:59:00,939 INFO L276 PluginConnector]: CDTParser initialized [2018-11-23 05:59:00,940 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/../../sv-benchmarks/c/float-newlib/double_req_bl_1130a_true-unreach-call.c [2018-11-23 05:59:00,983 INFO L221 CDTParser]: Created temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data/e5b70769c/2eaad0397dd84e808df0c0da055a480f/FLAG0be73b5b3 [2018-11-23 05:59:01,315 INFO L307 CDTParser]: Found 1 translation units. [2018-11-23 05:59:01,315 INFO L161 CDTParser]: Scanning /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/sv-benchmarks/c/float-newlib/double_req_bl_1130a_true-unreach-call.c [2018-11-23 05:59:01,319 INFO L355 CDTParser]: About to delete temporary CDT project at /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data/e5b70769c/2eaad0397dd84e808df0c0da055a480f/FLAG0be73b5b3 [2018-11-23 05:59:01,739 INFO L363 CDTParser]: Successfully deleted /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/bin-2019/ukojak/data/e5b70769c/2eaad0397dd84e808df0c0da055a480f [2018-11-23 05:59:01,742 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-11-23 05:59:01,743 INFO L131 ToolchainWalker]: Walking toolchain with 6 elements. [2018-11-23 05:59:01,743 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-11-23 05:59:01,743 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-11-23 05:59:01,745 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-11-23 05:59:01,746 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 05:59:01" (1/1) ... [2018-11-23 05:59:01,748 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@9bad2dc and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:01, skipping insertion in model container [2018-11-23 05:59:01,748 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 23.11 05:59:01" (1/1) ... [2018-11-23 05:59:01,754 INFO L145 MainTranslator]: Starting translation in SV-COMP mode [2018-11-23 05:59:01,773 INFO L176 MainTranslator]: Built tables and reachable declarations [2018-11-23 05:59:01,944 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 05:59:01,950 INFO L191 MainTranslator]: Completed pre-run [2018-11-23 05:59:01,993 INFO L201 PostProcessor]: Analyzing one entry point: main [2018-11-23 05:59:02,019 INFO L195 MainTranslator]: Completed translation [2018-11-23 05:59:02,020 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02 WrapperNode [2018-11-23 05:59:02,020 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-11-23 05:59:02,021 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2018-11-23 05:59:02,021 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2018-11-23 05:59:02,021 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2018-11-23 05:59:02,029 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,043 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,069 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2018-11-23 05:59:02,070 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-11-23 05:59:02,070 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-11-23 05:59:02,070 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-11-23 05:59:02,136 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,136 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,140 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,141 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,153 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,160 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,163 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... [2018-11-23 05:59:02,167 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-11-23 05:59:02,168 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-11-23 05:59:02,168 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-11-23 05:59:02,168 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-11-23 05:59:02,169 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 23.11 05:59:02" (1/1) ... No working directory specified, using /tmp/vcloud-vcloud-master/worker/working_dir_c9241800-c9d5-4a7c-8cd5-ab750226577c/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-23 05:59:02,207 INFO L130 BoogieDeclarations]: Found specification of procedure read~intFLOATTYPE8 [2018-11-23 05:59:02,207 INFO L130 BoogieDeclarations]: Found specification of procedure write~intFLOATTYPE8 [2018-11-23 05:59:02,207 INFO L130 BoogieDeclarations]: Found specification of procedure write~init~intFLOATTYPE8 [2018-11-23 05:59:02,207 INFO L130 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-11-23 05:59:02,207 INFO L130 BoogieDeclarations]: Found specification of procedure read~intINTTYPE4 [2018-11-23 05:59:02,207 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-11-23 05:59:02,207 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-11-23 05:59:02,207 INFO L130 BoogieDeclarations]: Found specification of procedure write~intINTTYPE4 [2018-11-23 05:59:02,208 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-11-23 05:59:02,333 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-23 05:59:02,351 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-23 05:59:02,378 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-23 05:59:02,410 WARN L317 ript$VariableManager]: TermVariabe |q#valueAsBitvector| not constructed by VariableManager. Cannot ensure absence of name clashes. [2018-11-23 05:59:11,844 INFO L275 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-11-23 05:59:11,845 INFO L280 CfgBuilder]: Removed 24 assue(true) statements. [2018-11-23 05:59:11,845 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 05:59:11 BoogieIcfgContainer [2018-11-23 05:59:11,845 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-11-23 05:59:11,846 INFO L113 PluginConnector]: ------------------------CodeCheck---------------------------- [2018-11-23 05:59:11,846 INFO L271 PluginConnector]: Initializing CodeCheck... [2018-11-23 05:59:11,855 INFO L276 PluginConnector]: CodeCheck initialized [2018-11-23 05:59:11,855 INFO L185 PluginConnector]: Executing the observer CodeCheckObserver from plugin CodeCheck for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 23.11 05:59:11" (1/1) ... [2018-11-23 05:59:11,863 INFO L141 PredicateUnifier]: Initialized classic predicate unifier [2018-11-23 05:59:11,883 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 05:59:11,889 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 45 states and 76 transitions. [2018-11-23 05:59:11,889 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 76 transitions. [2018-11-23 05:59:11,892 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2018-11-23 05:59:11,892 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 05:59:11,937 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 05:59:11,964 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 05:59:11,971 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 05:59:11,984 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-23 05:59:11,994 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 05:59:11,995 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 45 states and 71 transitions. [2018-11-23 05:59:11,996 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 71 transitions. [2018-11-23 05:59:11,996 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 13 [2018-11-23 05:59:11,996 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 05:59:11,997 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 05:59:12,979 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 05:59:12,985 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 05:59:13,144 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 05:59:13,145 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 05:59:13,150 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 59 treesize of output 69 [2018-11-23 05:59:13,261 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 05:59:13,265 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 2 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 24 treesize of output 24 [2018-11-23 05:59:13,265 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2018-11-23 05:59:13,321 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 24 treesize of output 18 [2018-11-23 05:59:13,335 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 4 [2018-11-23 05:59:13,335 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2018-11-23 05:59:13,340 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 05:59:13,368 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-23 05:59:13,498 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 05:59:13,499 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 05:59:13,501 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 59 treesize of output 69 [2018-11-23 05:59:13,620 WARN L180 SmtUtils]: Spent 111.00 ms on a formula simplification. DAG size of input: 37 DAG size of output: 35 [2018-11-23 05:59:13,634 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 21 [2018-11-23 05:59:13,635 INFO L267 ElimStorePlain]: Start of recursive call 7: End of recursive call: and 1 xjuncts. [2018-11-23 05:59:13,669 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-23 05:59:13,681 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 13 treesize of output 1 [2018-11-23 05:59:13,681 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2018-11-23 05:59:13,684 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2018-11-23 05:59:13,711 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, 1 dim-2 vars, End of recursive call: and 1 xjuncts. [2018-11-23 05:59:13,778 INFO L267 ElimStorePlain]: Start of recursive call 1: 8 dim-0 vars, 2 dim-2 vars, End of recursive call: 4 dim-0 vars, and 2 xjuncts. [2018-11-23 05:59:13,778 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 10 variables, input treesize:119, output treesize:63 [2018-11-23 05:59:42,053 WARN L180 SmtUtils]: Spent 23.59 s on a formula simplification that was a NOOP. DAG size: 59 [2018-11-23 05:59:42,069 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-23 06:00:08,519 WARN L180 SmtUtils]: Spent 21.46 s on a formula simplification that was a NOOP. DAG size: 60 [2018-11-23 06:00:21,033 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 06:00:21,033 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 70 states to 45 states and 70 transitions. [2018-11-23 06:00:21,033 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 70 transitions. [2018-11-23 06:00:21,034 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 15 [2018-11-23 06:00:21,034 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 06:00:21,035 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 06:00:21,068 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 06:00:21,071 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 06:00:21,286 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-23 06:00:38,366 WARN L180 SmtUtils]: Spent 4.92 s on a formula simplification that was a NOOP. DAG size: 56 [2018-11-23 06:01:14,760 WARN L180 SmtUtils]: Spent 23.61 s on a formula simplification that was a NOOP. DAG size: 62 [2018-11-23 06:01:56,609 WARN L180 SmtUtils]: Spent 30.21 s on a formula simplification that was a NOOP. DAG size: 63 [2018-11-23 06:02:35,525 WARN L180 SmtUtils]: Spent 24.60 s on a formula simplification that was a NOOP. DAG size: 63 [2018-11-23 06:03:22,982 WARN L180 SmtUtils]: Spent 28.62 s on a formula simplification that was a NOOP. DAG size: 64 [2018-11-23 06:03:23,490 INFO L82 GeneralOperation]: Start removeUnreachable. Operand no size info available [2018-11-23 06:03:23,491 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 47 states and 76 transitions. [2018-11-23 06:03:23,491 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 76 transitions. [2018-11-23 06:03:23,492 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 16 [2018-11-23 06:03:23,492 INFO L427 CodeCheckObserver]: Error Path is FOUND. [2018-11-23 06:03:23,493 ERROR L613 CodeCheckObserver]: First Tracecheck threw exception Indexed Sort BitVec undefined [2018-11-23 06:03:23,526 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2018-11-23 06:03:23,530 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2018-11-23 06:03:23,539 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 06:03:23,540 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 06:03:23,541 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 06:03:23,541 INFO L683 Elim1Store]: detected equality via solver [2018-11-23 06:03:23,543 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-23 06:03:23,545 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_5 (_ bv4 32) ((_ extract 63 32) v_prenex_28)) 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-23 06:03:23,548 INFO L168 Benchmark]: Toolchain (without parser) took 261805.68 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 126.4 MB). Free memory was 948.7 MB in the beginning and 803.1 MB in the end (delta: 145.6 MB). Peak memory consumption was 271.9 MB. Max. memory is 11.5 GB. [2018-11-23 06:03:23,549 INFO L168 Benchmark]: CDTParser took 0.16 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-23 06:03:23,549 INFO L168 Benchmark]: CACSL2BoogieTranslator took 276.88 ms. Allocated memory is still 1.0 GB. Free memory was 948.7 MB in the beginning and 927.2 MB in the end (delta: 21.5 MB). Peak memory consumption was 21.5 MB. Max. memory is 11.5 GB. [2018-11-23 06:03:23,550 INFO L168 Benchmark]: Boogie Procedure Inliner took 49.09 ms. Allocated memory is still 1.0 GB. Free memory is still 927.2 MB. There was no memory consumed. Max. memory is 11.5 GB. [2018-11-23 06:03:23,550 INFO L168 Benchmark]: Boogie Preprocessor took 97.83 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 126.4 MB). Free memory was 927.2 MB in the beginning and 1.1 GB in the end (delta: -186.0 MB). Peak memory consumption was 16.4 MB. Max. memory is 11.5 GB. [2018-11-23 06:03:23,550 INFO L168 Benchmark]: RCFGBuilder took 9677.54 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 60.8 MB). Peak memory consumption was 60.8 MB. Max. memory is 11.5 GB. [2018-11-23 06:03:23,551 INFO L168 Benchmark]: CodeCheck took 251701.65 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 803.1 MB in the end (delta: 249.3 MB). Peak memory consumption was 249.3 MB. Max. memory is 11.5 GB. [2018-11-23 06:03:23,553 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_5 (_ bv4 32) ((_ extract 63 32) v_prenex_28)) de.uni_freiburg.informatik.ultimate.plugins.generator.codecheck: UnsupportedOperationException: nested self-update not yet implemented: (store v_arrayElimCell_5 (_ bv4 32) ((_ extract 63 32) v_prenex_28)): 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.16 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 276.88 ms. Allocated memory is still 1.0 GB. Free memory was 948.7 MB in the beginning and 927.2 MB in the end (delta: 21.5 MB). Peak memory consumption was 21.5 MB. Max. memory is 11.5 GB. * Boogie Procedure Inliner took 49.09 ms. Allocated memory is still 1.0 GB. Free memory is still 927.2 MB. There was no memory consumed. Max. memory is 11.5 GB. * Boogie Preprocessor took 97.83 ms. Allocated memory was 1.0 GB in the beginning and 1.2 GB in the end (delta: 126.4 MB). Free memory was 927.2 MB in the beginning and 1.1 GB in the end (delta: -186.0 MB). Peak memory consumption was 16.4 MB. Max. memory is 11.5 GB. * RCFGBuilder took 9677.54 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 1.1 GB in the end (delta: 60.8 MB). Peak memory consumption was 60.8 MB. Max. memory is 11.5 GB. * CodeCheck took 251701.65 ms. Allocated memory is still 1.2 GB. Free memory was 1.1 GB in the beginning and 803.1 MB in the end (delta: 249.3 MB). Peak memory consumption was 249.3 MB. Max. memory is 11.5 GB. RESULT: Ultimate could not prove your program: Toolchain returned no result. [MP z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:10000 (1)] Forcibly destroying the process Received shutdown request...