Git Product home page Git Product logo

pylogics's Introduction

PyLogics

PyPI PyPI - Python Version PyPI - Status PyPI - Implementation PyPI - Wheel GitHub

test lint docs codecov

black

A Python library for logic formalisms representation and manipulation.

Install

To install the package from PyPI:

pip install pylogics

Tests

To run tests: tox

To run only the code tests: tox -e py3.7

To run only the linters:

  • tox -e flake8
  • tox -e mypy
  • tox -e black-check
  • tox -e isort-check

Please look at the tox.ini file for the full list of supported commands.

Docs

To build the docs: mkdocs build

To view documentation in a browser: mkdocs serve and then go to http://localhost:8000

License

pylogics is released under the MIT License.

Copyright 2021-2024 The Pylogics contributors

Authors

pylogics's People

Contributors

cipollone avatar francescofuggitti avatar marcofavorito avatar paulotguerra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pylogics's Issues

Add support for FOL semantics

Is your feature request related to a problem? Please describe.
Support for First-Order logic semantics is missing.

Describe the solution you'd like
Implement it.

Describe alternatives you've considered
n/a

Additional context

Depends on #48

Implement semantics for LDL

Is your feature request related to a problem? Please describe.

Currently, there isn't support for LDL semantics on finite traces.

Describe the solution you'd like
Implement it.

Reference: https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/view/17342

The solution should employ functools.singledispatch, as other API implementations do, to navigate the structure of the formula.

Describe alternatives you've considered
n/a

Additional context
n/a

Add support for FOL parsing and syntax

Is your feature request related to a problem? Please describe.
Support for First-Order Logic is missing.

Describe the solution you'd like

Implement it.

TODOs:

  • parsing
  • syntax

Describe alternatives you've considered
n/a

Additional context
n/a

Allow quoting symbols with apostrophe "'"

Subject of the issue

Currently, in PL, the token SYMBOL_NAME (

SYMBOL_NAME: /[a-z][a-z0-9_]*|"\w+"/
) is defined as follows:

SYMBOL_NAME: /[a-z][a-z0-9_]*|"\w+"/

However, this is a strict subset of the symbols acceptable by the standard at version v0.2.0. In particular:

  • instead of "\w+", it should be "[^\"\n\t\r]"
  • there should be another regex using ' as quoting symbol, i.e. '[^\'\n\t\r]'

Your environment

  • pylogics: 0.1.0

Steps to reproduce

TBD

Expected behaviour

TBD

Actual behaviour

TBD

Implement semantics for LTL

Is your feature request related to a problem? Please describe.

Currently, there isn't support for LTL semantics on finite traces.

Describe the solution you'd like
Implement it.

Reference: https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/view/17342

The solution should employ functools.singledispatch, as other API implementations do, to navigate the structure of the formula.

Describe alternatives you've considered
n/a

Additional context
n/a

Add support for MSO parsing and syntax

Is your feature request related to a problem? Please describe.
Support for Second-Order Logic is missing.

Describe the solution you'd like

Implement it.

TODOs:

  • parsing
  • syntax

Describe alternatives you've considered
n/a

Additional context
n/a

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.