Isopod00 / FO3_to_CoR_Translation

This project aims to translate First-Order 3-variable (FO3) predicate logic into the Calculus of Relations (CoR).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FO3_to_CoR_Translation

The goal of this project is to translate First-Order 3-variable (FO3) predicate logic into the Calculus of Relations (CoR).

Contributors: Anthony Brogni (brogn002@umn.edu) and Sebastiaan J. C. Joosten (sjoosten@umn.edu)

This tool currently supports:

-Object representation of FO3 Expressions (including predicates with repeated arguments and formulas with typed arguments)

-Object representation of CoR Expressions (both homogeneous/untyped and heterogeneous/typed)

-Generation of random formulas and automated testing with the z3-solver Python library

-Discovery of simplification rules with the help of Z3

-Simplification of CoR formulas (both homogeneous/untyped and heterogeneous/typed)

Summary of each File

-FO3_Expressions.py : Definitions of FO3 objects

-COR_Expressions.py : Definitions of CoR objects (homogeneous/untyped)

-Typed_COR_Expressions.py : Definitions of heterogeneous/typed CoR objects

-FO3_Translation_Methods.py : Methods for applying the Good, Nice, and Final translation steps

-Typed_FO3_Translation.py : Contains the modified Final translation step for heterogeneous/typed formulas

-Testing.py : Random formula generation and automated testing with the z-3 solver module

-Typed_Testing.py : A modified version of Testing.py for heterogeneous/typed formulas

-Search_For_Simplification_Rules.py : Code for finding all possible simplfication rules of a given size

-Generate_Typed_Rules.py : Code for taking our dictionary of homogeneous rules and producing a dictionary of heterogeneous rules from them

-Simplify.py : Python code generated from our homogeneous simplification rules (COR_Rules.txt) for simplifying homogeneous CoR expressions

-Typed_Simplify.py : Python code generated from our heterogeneous simplification rules (Typed_COR_Rules.txt) for simplifying heterogeneous CoR expressions

-List_Methods.py : Helper methods for treating lists as if they were sets

(We plan to merge the homogeneous and hetergeneous tools together, which should reduce the number of files)

About

This project aims to translate First-Order 3-variable (FO3) predicate logic into the Calculus of Relations (CoR).


Languages

Language:Python 100.0%