a computer program for discovering and proving recognition rules for backus normal form grammars
This paper is based upon a running computer program which will discover rules for the recognition of grammatical strings when given a simple Backus Normal Form (BNF) grammar [10]. The program attempts to prove that these rules are both necessary and sufficient to characterize grammatical strings. The main mathematical techniques that are mechanized are induction and case analysis. In addition, the program is capable of producing counter-examples. There are two reasons for writing this program. First, we are interested in constructing efficient recognizers for simple BNF grammars. Second, the task of proving that a proposed recognizer is indeed a recognizer is sufficiently complex and difficult to make it a convenient area for proving theorems by machines, especially theorems whose proofs may use fairly involved case analysis.
computer programming recognition rules normalization grammar paper strings inductance case analysis reasoning writing efficiency task complexity use examples