Git Product home page Git Product logo

timmerker / automatedreasoning Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 685 KB

In this bachelor thesis, I developed a toolkit for automated reasoning and interpolation with ordered resolution.

License: MIT License

Java 100.00%
automated reasoning resolution-algorithm interpolation propositional-logic propositional-calculus propositional-proof-system propositional-resolution propositional-logic-encodings conjunctive-normal-form

automatedreasoning's Introduction

Toolkit for automated reasoning and interpolation with ordered resolution

In this bachelor thesis, I developed a toolkit for automated reasoning and interpolation with ordered resolution. Firstly, the theoretical aspects of propositional logic are covered in the preliminaries section, including syntax and semantics, the transformation of formulae in conjunctive and disjunctive normal form, the ordered resolution calculus with redundancy elimination, and Craig interpolation. Based on this, we developed a console application which provides these functionalities. The program can be run in a teaching mode or the result mode and serves as a guideline for students in propositional logic. The program is written in the programming language Java.

For the implementation of the ordered resolution calculus, we require a formula as an input. We implemented two methods for computing CNFs, the first one using equivalences in propositional logic, the second one using structure-preserving transformations. Through ordered resolution, we test the satisfiability of a clause set. If it is unsatis- fiable, we return falsum and we construct proof for the unsatisfiability of the clause. Otherwise, if the clause set is satisfiable, we return a model of the clause set using the canonical construction of interpretations. The ordered resolution calculus is used in a further test, to identify redundant clauses of a clause set and eliminate them. For the Craig interpolation, we use the ordered resolution calculus. Only specified atoms are used in the inferences of the ordered resolution. These atoms are marked as maximal in their clause. Last but not least, Craig interpolation is a further application of the ordered resolution calculus. Craig interpolation returns an interpolant, which is the cause for the unsatisfiability of the union of two clause sets.

The theoretical concepts and further documentation of the source code are presented in thesis.pdf.

automatedreasoning's People

Contributors

timmerker avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.