Proof checking at higher abstraction level
Compare changes
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.