In checking this (rather baroque) formula
- Code: Select all
((all x (P(x) -> (exists y (exists z (P(y) & A(x,y,z)))))) -> (all x (all y (all z ((z=x & (P(x) & x!=y)) -> (exists z (exists w (P(z) | A(y,z,w)))))))))
for theoremhood, Prover9 finds a proof but, instead of simply stopping and reporting "THEOREM PROVED" it appears to attempt to find another proof and, when it fails, it halts and outputs:
SEARCH FAILED
Exiting with 1 proof.
In this problem, I also get the following warning:
WARNING, because some of the denials share constants,
some of the denials or their descendents may be subsumed,
preventing the target number of proofs from being found.
The shared constants are: c2.
and I assume this has something to do with Prover9's unusual behavior in this case. The thing is, I'm not overtly *giving* Prover9 a "target number of proofs". I've searched the manual but have not found a way to tell Prover9 that one proof is all I want. Is there a way to do that, and also always to be guaranteed that Prover9 will output "THEOREM PROVED" in cases like the above? (I'm counting on finding that in the output for my purposes.)
My second question concerns Mace4, but I'd like to ask it here, as it is (for me) connected to the preceding question. (I'll ask it as well in the Mace4 forum if that would be better.) If you ask Mace4 to look for a countermodel for a formula that is a logical truth, if it detects the impossibility of doing so, it nonetheless tries to find one and also appears to ignore any attempt to set max_seconds, regardless of whether it is set in the input file or via the -t flag at the command line. The output *does* contain
NOTE: unsatisfiability detected on input.
But that's not much of a help if you aren't monitoring the output and can't kill the process manually. Is this a bug or a feature? And is there a way to get Mace4 to timeout in these cases?
Many thanks!
TXLogic