Doctoral thesis, 2018

Automated theorem provers are computer programs that check whether a logical conjecture follows from a set of logical statements. The conjecture and the statements are expressed in the language of some formal logic, such as first-order logic. Theorem provers for first-order logic have been used for automation in proof assistants, verification of programs, static analysis of networks, and other purposes. However, the efficient usage of these provers remains challenging. One of the challenges is the complexity of translating domain problems to first-order logic. Not only can such translation be cumbersome due to semantic differences between the domain and the logic, but it might inadvertently result in problems that provers cannot easily handle.

The work presented in the thesis addresses this challenge by developing an extension of first-order logic named FOOL. FOOL contains syntactical features of programming languages and more expressive logics, is friendly for translation of problems from various domains, and can be efficiently supported by existing theorem provers. We describe the syntax and semantics of FOOL and present a simple translation from FOOL to plain first-order logic. We describe an efficient clausal normal form transformation algorithm for FOOL and based on it implement a support for FOOL in the Vampire theorem prover. We illustrate the efficient use of FOOL for program verification by describing a concise encoding of next state relations of imperative programs in FOOL. We show a usage of features of FOOL in problems of static analysis of networks. We demonstrate the efficiency of automated theorem proving in FOOL with an extensive set of experiments. In these experiments we compare the performance of Vampire on a large collection of problems from various sources translated to FOOL and ordinary first-order logic. Finally, we fix the syntax for FOOL in TPTP, the standard language of first-order theorem provers.

The work presented in the thesis addresses this challenge by developing an extension of first-order logic named FOOL. FOOL contains syntactical features of programming languages and more expressive logics, is friendly for translation of problems from various domains, and can be efficiently supported by existing theorem provers. We describe the syntax and semantics of FOOL and present a simple translation from FOOL to plain first-order logic. We describe an efficient clausal normal form transformation algorithm for FOOL and based on it implement a support for FOOL in the Vampire theorem prover. We illustrate the efficient use of FOOL for program verification by describing a concise encoding of next state relations of imperative programs in FOOL. We show a usage of features of FOOL in problems of static analysis of networks. We demonstrate the efficiency of automated theorem proving in FOOL with an extensive set of experiments. In these experiments we compare the performance of Vampire on a large collection of problems from various sources translated to FOOL and ordinary first-order logic. Finally, we fix the syntax for FOOL in TPTP, the standard language of first-order theorem provers.

clausal normal form

Program Verification

automated theorem proving

program analysis

TPTP

Vampire

first-order logic

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

Lecture Notes in Computer Science,; Vol. 9150(2015)p. 71-86

**Paper in proceedings**

Proceedings of the 2nd Global Conference on Artificial Intelligence (GCAI),; Vol. EasyChair EPiC Series in Computing volume 41(2016)

**Paper in proceedings**

Lecture Notes in Computer Science,; (2018)p. 405-421

**Paper in proceedings**

Proceedings of the 6th Workshop on Practical Aspects of Automated Reasoning co-located with Federated Logic Conference 2018,; (2018)p. 72-87

**Paper in proceedings**

Algebra and Logic

Software Engineering

Computer Science

Information and Communication Technology

978-91-7597-770-6

Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie: 4451

Chalmers University of Technology

Lecture hall ED, EDIT building

Opponent: Professor Dr. Stephan Schulz, DHBW Stuttgart, Fakultät Technik, Stuttgart, Germany