Skip to main content

Python package for propositional logic.

Project description

classical-logic - Tools for Classical Logic

Documentation Status GitHub license

classical-logic is a Python package that allows you to work with logical propositions as Python objects.

It's extremely simple to use:

from classical_logic import prop

p = prop('P & Q')
assert p(P=True, Q=True) is True
assert p(P=True, Q=False) is False

Features

Parse proposition objects:

from classical_logic import prop

# Can parse simple propositions:
p = prop('P | Q')
# As well as complex ones!
p = prop('P & (Q | (Q -> R)) <-> S')

Compose proposition objects:

p = prop('P')
q = prop('Q')

# Create conjunctions and disjunctions with & and |:
u = p & (q | p)   # P & (Q | P)

# Create conditionals and biconditionals as well:
u = p.implies(q)  # P -> Q
u = p.iff(q)      # P <-> Q

Decompose propositions:

u = prop('P & Q')

# Use indexing to 
assert u[0] == prop('P')
assert u[1] == prop('Q')

# You can also use Python's unpacking feature!
p, q = u
assert p == prop('P')
assert q == prop('Q')

Interpret propositions (assign truth values):

u = prop('P <-> Q')

# Call the proposition like a function to interpret it
assert u(P=True, Q=True) is True
assert u(P=True, Q=False) is False
assert u(P=False, Q=False) is True

No dependencies. This package doesn't use any dependencies.

Want to use this package? See the documentation!

Links

Documentation @ ReadTheDocs

Github Repository

PyPI Page

Installation

This package can be installed using Pip:

pip install classical-logic

Please make sure you use a dash (-) instead of an underscore (_).

Bug Reports and Feature Requests

You can report a bug or suggest a feature on the Github repo.

See the Issues page on Github.

Contributions

Contributions to this project are welcome. :)

See the pull requests page on Github.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

classical_logic-0.1.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

classical_logic-0.1.1-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file classical_logic-0.1.1.tar.gz.

File metadata

  • Download URL: classical_logic-0.1.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.8 Windows/10

File hashes

Hashes for classical_logic-0.1.1.tar.gz
Algorithm Hash digest
SHA256 30c751ff2ff8b63a449b86a259da663f5e698b5dfe942d93e920d78799508078
MD5 61182abd245c186f895f147aac75dd7c
BLAKE2b-256 731637cb69021d3ddb263750427f1c0f72d18ef655fdc115d6115e6deaec2a50

See more details on using hashes here.

File details

Details for the file classical_logic-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: classical_logic-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.8 Windows/10

File hashes

Hashes for classical_logic-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6c955d605d9c28f4db58529e687fc7b5b3f90e9425dd021e8615732dda861335
MD5 93706a45ca10526a3179b8de2f002fa2
BLAKE2b-256 fe0d2a20421b70ee0cbe6fe4ef92286d4e0d0710ee88748237977be74caf7c16

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page