Python package for propositional logic.
Project description
classical-logic - Tools for Classical Logic
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30c751ff2ff8b63a449b86a259da663f5e698b5dfe942d93e920d78799508078 |
|
MD5 | 61182abd245c186f895f147aac75dd7c |
|
BLAKE2b-256 | 731637cb69021d3ddb263750427f1c0f72d18ef655fdc115d6115e6deaec2a50 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c955d605d9c28f4db58529e687fc7b5b3f90e9425dd021e8615732dda861335 |
|
MD5 | 93706a45ca10526a3179b8de2f002fa2 |
|
BLAKE2b-256 | fe0d2a20421b70ee0cbe6fe4ef92286d4e0d0710ee88748237977be74caf7c16 |