Hi guys! I just realized probably no one is aware of this branch (it was part of the work I did when investigating issues with the toy amm). This fixes a bug in the subgoal combination after applying tactics.
To be clear: This branch still assumes the semantics of subgoals is a disjunction, but it fixes a bug that produced an unsound verdict when one of the subgoals returns unknown. For example, if we have two subgoals: g1 -> Unsat, g2 -> Unknown, the current version returns Unsat, which is not sound because g2 might be Sat. The fixed version returns Unkown if there is at least one Unkown and there is no Sat.
Also, this is not really an issue for the current version of Horus because the tactics we are using do not produce more than one goal. But it will be a headache if you introduce more tactics in the future.
@Julek
Hi guys! I just realized probably no one is aware of this branch (it was part of the work I did when investigating issues with the toy amm). This fixes a bug in the subgoal combination after applying tactics.
To be clear: This branch still assumes the semantics of subgoals is a disjunction, but it fixes a bug that produced an unsound verdict when one of the subgoals returns
unknown
. For example, if we have two subgoals:g1
->Unsat
,g2
->Unknown
, the current version returnsUnsat
, which is not sound becauseg2
might beSat
. The fixed version returnsUnkown
if there is at least oneUnkown
and there is noSat
.Also, this is not really an issue for the current version of Horus because the tactics we are using do not produce more than one goal. But it will be a headache if you introduce more tactics in the future.