Fixes #4277.
// by default, use store axioms only if --ho-elim is set
options::hoElimStoreAx.set(options::hoElim());
}
+ if (!options::assignFunctionValues())
+ {
+ // must assign function values
+ options::assignFunctionValues.set(true);
+ }
// Cannot use macros, since lambda lifting and macro elimination are inverse
// operations.
if (options::macrosQuant())
d_using_model_core(false),
d_enableFuncModels(enableFuncModels)
{
+ // must use function models when ufHo is enabled
+ Assert(d_enableFuncModels || !options::ufHo());
d_true = NodeManager::currentNM()->mkConst( true );
d_false = NodeManager::currentNM()->mkConst( false );
regress0/fp/down-cast-RNA.smt2
regress0/fp/ext-rew-test.smt2
regress0/fp/issue3536.smt2
+ regress0/fp/issue4277-assign-func.smt2
regress0/fp/rti_3_5_bug.smt2
regress0/fp/rti_3_5_bug_report.smt2
regress0/fp/simple.smt2
--- /dev/null
+; REQUIRES: symfpu
+(set-logic ALL)
+(set-option :uf-ho true)
+(set-option :assign-function-values false)
+(set-info :status sat)
+(declare-fun b () (_ BitVec 1))
+(declare-fun c () (_ BitVec 8))
+(declare-fun d () (_ BitVec 23))
+(assert (= 0 (fp.to_real (fp b c d))))
+(check-sat)