This PR fixes an incorrect proof in the circuit propagator related to back-propagation of an ite term.
Fixes cvc5/cvc5-projects#305.
if (d_parentAssignment)
{
return mkResolution(
- mkProof(PfRule::ITE_ELIM2, {assume(d_parent)}), d_parent[c + 1], false);
+ mkProof(PfRule::ITE_ELIM2, {assume(d_parent)}), d_parent[c + 1], true);
}
return mkResolution(
mkProof(PfRule::NOT_ITE_ELIM2, {assume(d_parent.notNode())}),
regress0/preprocess/preprocess_13.cvc.smt2
regress0/preprocess/preprocess_14.cvc.smt2
regress0/preprocess/preprocess_15.cvc.smt2
+ regress0/preprocess/proj-issue305-circuit-prop-ite.smt2
regress0/print_define_fun_internal.smt2
regress0/print_lambda.cvc.smt2
regress0/print_model.cvc.smt2
--- /dev/null
+; EXPECT: sat
+(set-logic ALL)
+(set-option :check-proofs true)
+(declare-const x Bool)
+(declare-const y Bool)
+(declare-const z Bool)
+(assert y)
+(assert (not z))
+(assert (ite x y z))
+(check-sat)
\ No newline at end of file