The underlying idea for the proposed proof procedure is to transform a formula into a Shannon graph and compile this graph into Horn clauses When run

Similar documents
Tidying up the Mess around the Subsumption Theorem in Inductive Logic Programming Shan-Hwei Nienhuys-Cheng Ronald de Wolf bidewolf

Foundations of AI. 9. Predicate Logic. Syntax and Semantics, Normal Forms, Herbrand Expansion, Resolution

The Resolution Principle

Lecture 14: Lower Bounds for Tree Resolution

sketchy and presupposes knowledge of semantic trees. This makes that proof harder to understand than the proof we will give here, which only needs the

Constraint Solving. Systems and Internet Infrastructure Security

Higher-Order Conditional Term Rewriting. In this paper, we extend the notions of rst-order conditional rewrite systems

An LCF-Style Interface between HOL and First-Order Logic

Boolean Representations and Combinatorial Equivalence

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur

MAX-PLANCK-INSTITUT F UR. Ordered Semantic Hyper-Linking. David A. Plaisted. MPI{I{94{235 August 1994 INFORMATIK. Im Stadtwald. D Saarbrucken

A Simplied NP-complete MAXSAT Problem. Abstract. It is shown that the MAX2SAT problem is NP-complete even if every variable

Part I Logic programming paradigm

Model Elimination, Logic Programming and Computing Answers

Finite Model Generation for Isabelle/HOL Using a SAT Solver

Local Two-Level And-Inverter Graph Minimization without Blowup

VS 3 : SMT Solvers for Program Verification

1.3. Conditional expressions To express case distinctions like

PROTEIN: A PROver with a Theory Extension INterface

Binary Decision Diagrams

Logic Programming and Resolution Lecture notes for INF3170/4171

Implementação de Linguagens 2016/2017

Module 6. Knowledge Representation and Logic (First Order Logic) Version 2 CSE IIT, Kharagpur

Programming Languages Third Edition

Logic and its Applications

SAT solver of Howe & King as a logic program

P4 Pub/Sub. Practical Publish-Subscribe in the Forwarding Plane

SOFTWARE VERIFICATION RESEARCH CENTRE DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF QUEENSLAND. Queensland 4072 Australia TECHNICAL REPORT. No.

of our toolkit of data structures and algorithms for automated deduction in rst-order

COMP4418 Knowledge Representation and Reasoning

(a) (4 pts) Prove that if a and b are rational, then ab is rational. Since a and b are rational they can be written as the ratio of integers a 1

The element the node represents End-of-Path marker e The sons T

Integrity Constraints (Chapter 7.3) Overview. Bottom-Up. Top-Down. Integrity Constraint. Disjunctive & Negative Knowledge. Proof by Refutation

Localization in Graphs. Richardson, TX Azriel Rosenfeld. Center for Automation Research. College Park, MD

Knowledge Representation and Reasoning Logics for Artificial Intelligence

A Logically Complete Reasoning Maintenance System Based on a Logical Constraint Solver

Decision Procedures for Recursive Data Structures with Integer Constraints

LP attracted two kinds of enthousiasts engineers/programmers \Never had I experienced such ease in getting a complex program coded and running" D.H.D.

P Is Not Equal to NP. ScholarlyCommons. University of Pennsylvania. Jon Freeman University of Pennsylvania. October 1989

Behavior models and verification Lecture 6

of m clauses, each containing the disjunction of boolean variables from a nite set V = fv 1 ; : : : ; vng of size n [8]. Each variable occurrence with

the application rule M : x:a: B N : A M N : (x:a: B) N and the reduction rule (x: A: B) N! Bfx := Ng. Their algorithm is not fully satisfactory in the

Model Checking I Binary Decision Diagrams

Operational Semantics

Heap-on-Top Priority Queues. March Abstract. We introduce the heap-on-top (hot) priority queue data structure that combines the

LOGIC AND DISCRETE MATHEMATICS

The Resolution Algorithm

Linear Clause Generation by Tableaux and DAGs

An Evolution of Mathematical Tools

DATABASE THEORY. Lecture 11: Introduction to Datalog. TU Dresden, 12th June Markus Krötzsch Knowledge-Based Systems

}Optimization Formalisms for recursive queries. Module 11: Optimization of Recursive Queries. Module Outline Datalog

Knowledge Representation and Reasoning Logics for Artificial Intelligence

Validating Plans with Durative Actions via Integrating Boolean and Numerical Constraints

}Optimization. Module 11: Optimization of Recursive Queries. Module Outline

Term Algebras with Length Function and Bounded Quantifier Elimination

Notes for Chapter 12 Logic Programming. The AI War Basic Concepts of Logic Programming Prolog Review questions

An Experimental CLP Platform for Integrity Constraints and Abduction

On Computing the Minimal Labels in Time. Point Algebra Networks. IRST { Istituto per la Ricerca Scientica e Tecnologica. I Povo, Trento Italy

1 Introduction One of the contributions of Java is in its bytecode verier, which checks type safety of bytecode for JVM (Java Virtual Machine) prior t

Eulerian disjoint paths problem in grid graphs is NP-complete

Logic Programming Languages

Full Clausal Logic - Syntax: clauses

size, runs an existing induction algorithm on the rst subset to obtain a rst set of rules, and then processes each of the remaining data subsets at a

time using O( n log n ) processors on the EREW PRAM. Thus, our algorithm improves on the previous results, either in time complexity or in the model o

Dynamic Logic David Harel, The Weizmann Institute Dexter Kozen, Cornell University Jerzy Tiuryn, University of Warsaw The MIT Press, Cambridge, Massac

Abstract formula. Net formula

Logic (or Declarative) Programming Foundations: Prolog. Overview [1]

Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 37 Resolution Rules

CSL105: Discrete Mathematical Structures. Ragesh Jaiswal, CSE, IIT Delhi

Abstract Relaxed balancing of search trees was introduced with the aim of speeding up the updates and allowing a high degree of concurrency. In a rela

Taxonomic Syntax for First Order Inference. Abstract: We identify a new polynomial time decidable fragment of rst order

Declarative Programming. 2: theoretical backgrounds

Automata Theory for Reasoning about Actions

The Encoding Complexity of Network Coding

Propositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

THE DEVELOPMENT OF PARALLEL RESOLUTION ALGORITHMS USING THE GRAPH REPRESENTATION. Andrey Averin, Vadim Vagin

Hyperplane Ranking in. Simple Genetic Algorithms. D. Whitley, K. Mathias, and L. Pyeatt. Department of Computer Science. Colorado State University

Evaluation Trees for Proposition Algebra

Lecture 17 of 41. Clausal (Conjunctive Normal) Form and Resolution Techniques

The Metalanguage λprolog and Its Implementation

Range Restriction for General Formulas

Bachelor/Master Exam Version V3B

Motivation. CS389L: Automated Logical Reasoning. Lecture 5: Binary Decision Diagrams. Historical Context. Binary Decision Trees

Solution Set 8 Date: 1 December, 1992

Deductive Methods, Bounded Model Checking

Formal Predicate Calculus. Michael Meyling

7.3 Spanning trees Spanning trees [ ] 61

Typed Lambda Calculus

Resolution (14A) Young W. Lim 6/14/14

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Bernhard Beckert and Joachim Posegga. \term_expansion((define C as A with B), (C=>A:-B,!)). A=?B :- [A,B]=>*[D,C], D==C."

Reduced branching-factor algorithms for constraint satisfaction problems

Lecture 4: January 12, 2015

Chapter 3. Set Theory. 3.1 What is a Set?

Fast algorithm for generating ascending compositions

Propositional Logic. Part I

Negations in Refinement Type Systems

AXIOMS FOR THE INTEGERS

Propositional Calculus. Math Foundations of Computer Science

Part 2: Balanced Trees

Transcription:

Towards First-order Deduction Based on Shannon Graphs Joachim Posegga & Bertram Ludascher Universitat Karlsruhe Institut fur Logik, Komplexitat und Deduktionssysteme Am Fasanengarten 5, 75 Karlsruhe, Germany Email: fposegga,ludaeschg@iraukade March 9, 992 Abstract We present a new approach to Automated Deduction based on the concept of Shannon graphs, which are also known as Binary Decision Diagrams (BDDs) A Skolemized formula is rst transformed into a Shannon graph, then the latter is compiled into a set of Horn clauses These can nally be run as a Prolog program trying to refute the initial formula It is also possible to precompile axiomatizations into Prolog and load these theories as required Keywords: Automated Deduction, Shannon Graphs, Binary Decision Diagrams Introduction Logical formulae are usually dened using some or all of the connectives f:; _; ^;!; $g Alternatively, one can use a ternary if-then-else operator \sh", which can be viewed as an abbreviation: sh(a; S ; S ) (:A^S )_(A^S ) Thus, sh(a; S ; S ) corresponds to an expression of the form \if A then S else S " Formulae using only this operator are called Shannon graphs (introduced by Shannon in [Shannon, 938]) or B inary Decision Diagrams [Lee, 959] BDDs have been successfully used for Boolean function manipulation [Bryant, 986, Brace et al, 99], for example in the context of hardware verication [Kropf & Wunderlich, 99] or for processing database queries [Kemper et al, 992] Up to now, this method has hardly inuenced research in Automated Deduction, probably because it has not yet been extended to full rst-order logic We will show how this can be done and argue that the concept of Shannon graphs is indeed a useful framework for implementing a rst-order deduction system Proc 6th German Conference on Articial Intelligence, Bonn, Germany, 992, LNAI 67, Springer Only Or lowska [Or lowska, 969] has described an extension to a decidable subset of rst-order logic

The underlying idea for the proposed proof procedure is to transform a formula into a Shannon graph and compile this graph into Horn clauses When run as a Prolog program the clauses simulate traversing the Shannon graph This process tries to show properties of the graph which are equivalent to the fact that the formula cannot have a model An experimental Prolog-implementation of a propositional prover based on these principles proved to be quite ecient (see Section 3); so, the extension of the principle to rst-order logic, which is currently being implemented seems promising The paper is organized as follows: in Section 2, Shannon graphs and their semantics are given together with a transformation from formulae to Shannon graphs Properties relating to the soundness and completeness of our proof method are stated Section 3 describes how one can implement the proof procedure by generation of Horn clauses and gives some test results for propositional logic 2 First-order Shannon Graphs Let L be the language of rst-order calculus dened in the usual way; L At are the atomic formulae of L \sh" is a new ternary connective, which can be regarded as an abbreviation: sh(a; S ; S ) (:A^S )_(A^S ) Denition The set of Shannon graphs is denoted by SH and dened as the smallest set such that () ; 2 SH (2) if S ; S 2 SH and A 2 L At then sh(a; S ; S ) is in SH The truth-value vald ; of a Shannon graph S in a given structure D with a xed variable assignment is dened as follows: vald ;(S) = 8 >< >: false if S = true if S = vald ;(sh ) if S = sh(a; sh ; sh ) and vald ;(A) = false vald ;(sh ) if S = sh(a; sh ; sh ) and vald ;(A) = true We can visualize the formulae of SH as binary trees with leaves and Each nonterminal node is labeled with the atomic formula occurring in the rst argument of a \sh"-term Nodes have a negative and a positive edge leading to subtrees representing the second or third argument of the corresponding \sh"-term, respectively Consider the formula a^b: its Shannon graph S = sh(a; ; sh(b; ; )) is shown in Figure Semantically, a Shannon graph can be regarded as a case-analysis over the truthvalues of atoms occurring in a formula Assume there is a sequence of nodes and edges from the root to an arbitrary leaf of a Shannon graph We prex each atomic formula with the sign of the corresponding node's outgoing edge: for example in 2

a b S a S 2 a b a S 3 Figure : Shannon Graphs for a^b, :a, and a^b^:a S in Figure, [a; b] is such a sequence leading to a -leaf We will call such a sequence a path If the atoms of some path can be consistently interpreted with the truth-value that their prex suggests (ie true for a positive and false for a negative edge), then the path represents an interpretation Under this interpretation the whole formula will have the truth-value with which the leaf is labeled Conversely, if an atomic formula and its complement occur on a path as in [a; b; a] in S 3, then the path is called inconsistent or closed and there is no need to investigate it any further Let us assume henceforth that a Skolemized formula F (X ; ; X n ) (or F ( X) for short) with the free variables X ; ; X n is given 2 In order to prove the unsatisability of the universal closure Cl 8 F ( X) of F ( X), we proceed by constructing a logically equivalent Shannon graph F( X) and try to show that it contains no consistent path to a -leaf The construction is done in the following way: obviously, an atomic formula A is logically equivalent to sh(a; ; ) If we already have two Shannon graphs A and B representing the formulae A and B, we construct the Shannon graph for A^B by replacing all -leaves of A with B This replacement is denoted A[ B ] In Figure, S 3 is the result of replacing the -leaf in S with S 2 Analogously, disjunctions are handled by replacing -leaves 2 Actually Skolemization can easily be integrated into the function conv, below 3

Denition 2 conv(f ) = 8 >< >: sh(f; ; ) if F 2 L At conv(a)[ ; ] if F = :A conv(a)[ conv ] (B) if F = A^B conv(a)[ conv (B) ] if F = A_B One easily veries that the time and space complexity of the above transformation conv as well as the size of the resulting Shannon graph are proportional to the size of the input formula if structure sharing is used for the replacement of leaves Ie, if several leaves are replaced by the same graph, we do not copy this graph but introduce edges to a single instance of it Therefore, conv constructs a directed, acyclic graph, and not a tree Remark Note, that there is a cheap way to optimize the generated graph: assume we are to construct a graph for A^B; we can either construct conv(a)[ ], or the conv(b) logically equivalent graph conv(b)[ ] Although both graphs do not dier in size, conv(a) the trees they represent generally do As those trees are the potential search space for a proof, it is of course desirable to construct the graph representing the smallest of those trees Fortunately, this comparison is easy: Assume that # ; # ; and # at denote the number of -leaves, -leaves, and (nonterminal) nodes of the tree represented by a Shannon graph If A and B are Shannon graphs, then the size of the tree for G = A[ B ] will be: or, equivalently, # at (A) # (A) # (A) (# at (B) # (B) # (B)) # (A) # (A) # (B) {z } # at(a) # (A) # {z at(b) } # (G) # at(g) # (A) # (B) {z } # (G) The size of the tree in case of a disjunction can be determined analogously Although this heuristic works only locally and does not guarantee to generate the best global result, it has proven to be very useful in practice Let us call F( X) closed if all paths to -leaves in F( X) are inconsistent, where substitutes the free variables X of F( X) Now a basic property of Shannon graphs can be stated: Proposition Let F( X) = conv(f ( X)) If there is a grounding substitution such that F( X) is closed then F ( X) is unsatisable 4

How do we nd such a We traverse a Shannon graph building a path If a path contains two uniable atoms A = A 2 with complementary signs then will close that path Consider the following example: Let P (X) := p(a)^:p(f(f(a)))^(p(x)!p(f(x))) We want to show that Cl 8 P (X) is unsatisable The equivalent Shannon graph P (X) = conv(p (X)) is shown on the left in Figure 2: p(a) p(f(f(a))) p(x) p(f(x)) P (X) p(a) p(f(f(a))) p(x) p(a) p(f(f(a))) p(y ) p(f(y )) p(f(x)) Search Tree for P (X; Y ) p(a) p(f(f(a))) p(y ) p(f(y )) Figure 2: Proving inconsistency of Cl 8 P (X) := p(a)^:p(f (f (a)))^8x(p(x)!p(f (X))) The path [p(a); p(f(f(a))); p(x)] to the leftmost -leaf in P (X) can be closed with the substitution = [X=a] Unfortunately there is no substitution such that both paths to -leaves become inconsistent, so we cannot prove the unsatisability of Cl 8 P (X) with P (X) To do this we need to consider a consequence of the compactness of rst-order logic: Proposition 2 Cl 8 F ( X) is unsatisable i 9k 2 IN; 9 : (F ( X )^ ^F ( X k )) is unsatisable maps variables to ground terms, ie to terms from the Herbrand-universe U F of F and each X i is a new variable vector X i; ; ; X i;n distinct from all Xj with j < i Since there is no such that P (X) can be closed (cf Figure 2), we extend P (X) by replacing its -leaves with an instance of P with renamed variables The 5

result P (X; Y ) := P (X)[ P (Y ) ] is by Denitions and 2 logically equivalent to P (X; Y ) := P (X)^P (Y ) Now the substitution = [X=a; Y=f(a)] yields a closed Shannon graph P (X; Y ) Hence P (X; Y ) is unsatisable and by Proposition 2 so is Cl 8 P (X) Note that the dotted subtree rooted at the negative edge of p(x) can be pruned from the search space: all paths going through this edge are closed with the substitution [X=a] Additionally, all edges to -leaves are actually never considered during the proof search For the general case, consider the sequence of Shannon graphs F ( X ) = conv(f ( X )) F i ( X ; ; X i ) = F i ( X ; ; X i )[ F ( X i) ] Starting from the initial Shannon graph F ( X ) of a Skolemized formula F ( X ) we construct an extension F i of F i by replacing its -leaves with an instance of the initial graph with new variables This corresponds to constructing the conjunction of Proposition 2 From the Denitions and 2 it follows that vald ;(F k ( X ; ; X k )) = vald ;(F ( X )^ ^F ( X k )), so if Cl 8 F ( X ) is unsatisable (cf Proposition 2) we will eventually arrive at a F k which can be closed for some 3 Generating Horn clauses To show the unsatisability of a formula Cl 8 F ( X), we have to traverse its Shannon graph F ( X) trying to nd a substitution that closes all paths from the root to - leaves; if there is no such substitution, we extend F ( X) For implementing the above method, we propose to compile F ( X) into a set of Horn clauses, which simulate the Shannon graph traversal Remember that F ( X) has a representation which is proportional to the size of the input formula We proceed as follows: For leaves no clauses are generated; for every nonterminal node in F we generate exactly one Prolog-clause, which must accomplish one or more of the following tasks : nd a substitution that closes the current path extend a -leaf transfer control to the clauses for child nodes Therefore we supply the clause with the current variable binding, the path constructed so far, and a designator of the current extension (level) A clause succeeds if at each -leaf reachable from the corresponding node the path can be made inconsistent To get a more denite idea, we will briey discuss a simplied clause for the node p(x) of P, cf Figure 2: 6

node 3(Binding,Path,Level):- () nth(level,binding,[x]), (2) (close([-p(x) Path]) (3) ; (NLevel is Level,node (Binding,[-p(X) Path],NLevel))), (4) node 4(Binding,[p(X) Path],Level) (5) In line (2), all free variables occurring in the atomic formula with which the current node is labeled, are bound (in this case only X) Technically, this can be done in the following way: since each level has its own set of variables, the variable bindings are level-dependent It is assumed that Binding is a list of such variable bindings where the n-th element stores the binding for the n-th level Each binding itself is also a list, which holds the value of each variable at a certain position; during compile time, a list is constructed that matches these position(s) in order to extract the required bindings As our example contains only one variable, the matching list is just [X] The predicate close in line (3) tries to make Path together with -p(x) inconsistent as we reach a -leaf at the negative edge; if this fails, line (4) extends the graph by increasing the level counter and calling the clause for the root-node again So extending the graph is modeled without asserting new Prolog clauses This is correct since each level establishes its own variable bindings Calling the clause for the root-node again will succeed if all paths to -leaves in one of the next extensions can be made inconsistent Finally, we have to show that all paths to -leaves reachable from the positive edge of p(x) are also inconsistent therefore we call the child node 4 at the positive edge Our proposed proof procedure will be complete if we use bounded depth-rst search with iterative deepening and force the predicate close to enumerate all possible solutions (ie ways to close paths) on backtracking Another, more ecient approach is to implement a fair selection scheme for close It should be noted that the example clauses are not a particular ecient way to code the problem in Prolog; clearness and readability has been preferred over eciency 3 Propositional Logic The method described above has been implemented for propositional logic; a rstorder version is currently under development In the propositional case, the structure of the generated Prolog clauses can be kept much simpler, since no extensions take place and no variable bindings need to be considered The maximal length of the generated paths is also known in advance, so much more ecient data-structures can be used for representing paths Performance gures for pigeon hole formulae with a propositional version of the prover are shown in Table : 7

Search Space CPU Time [msec] Problem Graph Nodes Potential Explored Closed Paths Preproc Compile Proof pig2 4 9 3 2 7 83 < 7 pig3 8 2,45 6 37 3 < 7 pig4 48 6:4 7 882 644 233 683 < 7 pig5 3: 5 9,677 7,35 466,47 83 pig6 8 :5 27 56,756 24,265 86 2,533,77 pig7 294 5:7 43 2,96,695 2,44,873,383 4,5 28,733 The CPU times are measured on a Sun-4 with Quintus Prolog 3; it was not possible to measure times less than 7 msec Table : Some Test Results \pig n" stands for \n pigeons do not t into n holes"; \Graph Nodes" shows the size of the initial graph The columns labeled \Search Space" give the potential search space, ie, the size of the tree represented by the initial graph, and the number of nodes that have actually been visited \Closed Paths" is the number of paths that have been constructed and closed, which corresponds to the number of partial models that have been generated and ruled out \Preproc" is the time for computing the initial graph and generating the Prolog clauses; \Compile" gives the time required by the Prolog System to compile the latter \Proof" is the time used for executing the generated Prolog clauses, ie, the search for a model 4 Conclusions and Outlook We have described a method to compile rst-order formulae via Shannon graphs into Horn clauses The method diers from other approaches to deduction by Horn clause generation (eg [Stickel, 988]), in that the generated clauses have no logical relation to the formula that is to be proven (ie are not a logically equivalent variant of the formula), but that they are procedurally equivalent to the search for a model This is reected by the fact that Prolog's SLD-resolution can be used and no meta-level inference is required It is straightforward to compile Shannon graphs into other target languages This has already been done for C and i386-assembler in the case of propositional logic The performance of the version generating C code is roughly comparable to the Prolog version This is basically due to the fact that the generated Prolog clauses have a very simple structure and can be eciently handled by Prolog For a rst-order version, however, C can be expected to perform better, since some optimizations are hard to encode in Prolog The version of the prover compiling to Assembler is clearly the fastest one, yielding results about 2{3 times better than those presented in Table for Prolog If an application requires very short run-times, it would even be possible to by-pass the use of an Assembler and generate machine language, directly 8

Note that the compilation process can also be done in advance for a set of axioms Such precompiled theories can then be loaded into a deduction system and used for inference In this context it is also reasonable to reduce a Shannon graph before compiling it into Prolog Reduction is a well-known operation on Shannon graphs, which often decreases its size considerably Though reduction may add to the cost of preprocessing, the resulting search space at run-time will be smaller Several liberalizations and renements of the proof procedure described at the end of section 2 are possible: When constructing an extension F i of F i it is not mandatory to replace each -leaf of F i with the same renamed copy of the initial graph Instead the copies can be distinct in that each maintains its own set of variables In general graphs can be closed with fewer extensions using this modication; additionally the handling of variable bindings is simplied Finally there is no need to investigate the complete (renamed) initial graph when constructing an extension Only 8-quantied sub-formulae of the initial formula have to be inserted at the -leaves of F i Details how this can be done are elaborated in a forthcoming paper 9

References [Brace et al, 99] Karl S Brace, Richard L Rudell, & Randal E Bryant Ecient implementation of a BDD package In Proc 27 th ACM/IEEE Design Automation Conference, pages 4 { 45 IEEE Press, 99 [Bryant, 986] Randal Y Bryant Graph{based algorithms for Boolean function manipulation IEEE Transactions on Computers, C{35:677 { 69, 986 [Kemper et al, 992] A Kemper, G Moerkotte, & M Steinbrunn Optimization of boolean expressions in object bases In Proc Intern Conf on Very Large Databases, 992 [Kropf & Wunderlich, 99] T Kropf & H-J Wunderlich A common approach to test generation and hardware verication based on temporal logic In Proc Intern Test Conf, pages 57{66, Nashville, TN, October 99 [Lee, 959] C Lee Representation of switching circuits by binary decision diagrams Bell System Technical Journal, 38:985{999, 959 [Or lowska, 969] Ewa Or lowska Automatic theorem proving in a certain class of formulae of predicate calculus Bull de L'Acad Pol des Sci, Serie des sci math, astr et phys, XVII(3):7 { 9, 969 [Posegga, 992] Joachim Posegga First-order shannon graphs In Proc Workshop on Automated Deduction / Intern Conf on Fifth Generation Computer Systems, ICOT TM{84, Tokyo, Japan, June 992 [Shannon, 938] C E Shannon A symbolic analysis of relay and switching circuits AIEE Transactions, 67:73 { 723, 938 [Stickel, 988] Mark E Stickel A Prolog Technology Theorem Prover In E Lusk & R Overbeek, editors, 9th International Conference on Automated Deduction, Argonne, Ill, May 988 Springer-Verlag