This book can be seen either as a text on theorem proving that uses techniques from general algebra, or else as a text on general algebra illustrated and made concrete by practical exercises in theorem proving. The book considers several different logical systems, including first-order logic, Horn clause logic, equational logic, and first-order logic with equality. Similarly, several different proof paradigms are considered. However, we do emphasize equational logic, and for simplicity we use only the OBJ3 software system, though it is used in a rather flexible manner. We do not pursue the lofty goal of mechanizing proofs like those of which mathematicians are justly so proud; instead, we seek to take steps towards providing mechanical assistance for proofs that are useful for computer scientists in developing software and hardware. This more modest goal has the advantage of both being achievable and having practical benefits. The following topics are covered: many-sorted signature, algebra and homomorphism; term algebra and substitution; equation and satisfaction; conditional equations; equational deduction and its completeness; deduction for conditional equations; the theorem of constants; interpretation and equivalence of theories; term rewriting, termination, confluence and normal form; abstract rewrite systems; standard models, abstract data types, initiality, and induction; rewriting and deduction modulo equations; first-order logic, models, and proof planning; second-order algebra; order-sorted algebra and rewriting; modules; unification and completion; and hidden algebra. In parallel with these are a gradual introduction to OBJ3, applications to group theory, various abstract data types (such as number systems, lists, and stacks), propositional calculus, hardware verification, the {\lambda}-calculus, correctness of functional programs, and other topics.
翻译:这本书既可以被视为理论文字,可以证明使用通用代数的计算法,也可以视为一般代数的计算法,在理论证明中以实际练习方式演示和具体化。本书考虑了若干不同的逻辑系统,包括一阶逻辑、合恩条款逻辑、方程逻辑和等序逻辑。同样,也考虑了若干不同的证明范式。然而,为了简单起见,我们只使用OBJ3软件系统,尽管它以相当灵活的方式使用。我们不追求诸如数学家引以为豪的那种普通代数的校正证明的崇高目标;相反,我们寻求采取步骤,为计算机科学家在开发软件和硬件方面有用的证据提供机械协助。这个更小的目标具有既可以实现又具有实际效益的优势。以下主题被覆盖了:许多分解的签名、代数和正态;术语变数和替代;公式和满意度;等式推算及其完整性;对等式公式的推算;对等式公式的推算;对等式;对等式、正序、变数的判和变数。