Replicating proof checking at the level of construction of DoubleStep
based proofs.
SCProofChecker
"x is not y"
instead of "x must be y"
. Previously, both existed simultaneously.N
where N
is a type parameter provided as ProofStepWithoutBotNorPrem[N]
. I have not found a way to do this in Scala yet, outside of adding a require
statement to the function, which in my opinion, produces a relatively unhelpful error message with respect to tracking it down. Currently, I have implemented them as part of the proof checking, and an error is raised in the same manner as a malformed proof step:if (premises.length != 2)
invalid(s"Two premises expected, ${premises.length} received.")
Status:
However, in the short term, this will make error reporting worse till #85 is resolved, since all the errors are expected to be reported through the tactic system. DO NOT MERGE before it is resolved or the status is accordingly updated above.