15-815 Automated Theorem Proving
Assignment 4: Implementing the Inverse Method
The assignment is worth 80 pts, due Thu Feb
26. You are encouraged to collaborate in groups of two.
In this assignment we explore an implementation of the inverse method
for intuitionistic propositional logic as an alternative decision
procedure. You should hand in an implementation and a short explanation
as specified below.
Implement the inverse method for intuitionistic propositional logic
for the same connectives as in Assignment 2
(conjunction, truth, implication, disjunction, and falsehood, with
negation a notational definition). Put all your code in a single file
that depends only on asst2.sml and
defines a structure Inv_yourid :> G4IP_CERT. Note
that the treatment of falsehood and negation was not discussed in
lecture, but is treated in Chapter
5 of the lecture notes.
Your implementation should be a decision procedure, returning
a proof if there is one and fail otherwise, as specified in
the G4IP_CERT signature. You may take advantage of your
(and others) test structures from Assignment 2.
Please note: efficiency is not a criterion, only correctness.
Please try to make your code as elegant and transparent as possible!
Explain your implementation strategy (data structures, algorithms)
in response to each of the following questions. You do not need
to be formal, and you should cross-reference the code only sparingly
to make the explanation self-contained, yet helpful in understanding
- Subformula naming: explain how you name subformulas
and how you maintain or store this information.
- Rules and rule application: explain how you represent
rules, how you implement rule application, and what strategy
you use to decide which rules to apply.
- Subsumption: explain how you implement subsumption
- Termination: explain how initialize the search
procedure and how you detect termination, both upon success
(theorem is proven) and failure (search space is saturated
without deriving the proposed theorem).
- Proof terms: explain how you implement proof