[ home
| schedule
| assignments
| projects
| resources
| handouts
| overview
| links
]
# 15-815 Automated Theorem Proving

# Project Week 1: Propositional Reasoning

Work on the inverse method in the first week focuses on establishing
the basic inference mechanism, including subformula labelling and
forward subsumption in the propositional case.

- 1 Interface
- Parsing and printing of propositions
(see grammar)
- Subterm labeling
- 2 Validation
- Proof term calculus
- Checker for proof terms
- 3 Search
- Applying inference rules
- Saturating clause space
- 4 Redundancy Elimination
- Ordering of propositions
- Forward subsumption
- 5 Coordination
- Creating initial regression testing suite
- Signature coordination
- Summary progress report
- Task assignment for next week

### Blue Group (Backward Reasoning)

Work on the backwards method in the first week focuses on taking the
implementations of backward reasoning presented in class so far
and adding parsing, printing, and proof terms for the propositional
case. Also, we aim to improve efficiency of loop detection via
subformula labeling as in the inverse method.

- 1 Interface
- Parsing and printing of propositions
(see grammar)
- Subterm labeling
- 2 Validation
- Proof term calculus
- Checker for proof terms
- 3 Search
- Applying focusing rules
- 4 Redundancy Elimination
- Ordering of propositions
- Loop detection
- 5 Coordination
- Creating initial regression testing suite
- Signature coordination
- Summary progress report
- Task assignment for next week

All projects will use the same grammar and precedence rules.
As the course proceeds, we will enlarge this grammar.

Whitespace
space ( ) tab (\t) newline (\n) form feed (\f)
other characters not listed below are illegal
Comment
% to newline (\n)
all characters except newline (\n) are allowed in comment
Atomic Proposition
P identifiers starting with letter A-Z or a-z
followed by letters A-Z or a-z or digits 0-9
identifiers are case-sensitive
Proposition
A ::= P
| ~ A % negation
| A & A % conjunction
| A v A % disjunction
| A => A % implication
| T % truth
| F % falsehood
| (A) % parentheses to override precedence
Operator Precedence ~ > & > v > =>
& v are left associative
=> is right associative
Declaration
D ::= prove A. % prove A
| refute A. % refute A
File Contents
F ::= % empty
| D F % declaration

Note that disjunction (`v`) may require surrounding
whitespace for a correct parse since it is represent by a letter.

### Reading

- Handout 12
on
*Forward Sequent Calculus*
(also availabe in PDF format).

### Links

[ home
| schedule
| assignments
| projects
| resources
| handouts
| overview
| links
]

Frank Pfenning
fp@cs