Skip to main content

Synopsis

tt (truth table) is a library aiming to provide a toolkit for working with Boolean expressions and truth tables. Please see the project site for guides and documentation.

Installation

tt is tested on the latest three major versions of CPython. You can get the latest release from PyPI with:

pip install ttable

Features

Parse expressions:

>>> from tt import BooleanExpression
>>> b = BooleanExpression('A impl not (B nand C)')
>>> b.tokens
['A', 'impl', 'not', '(', 'B', 'nand', 'C', ')']
>>> print(b.tree)
impl
`----A
`----not
     `----nand
          `----B
          `----C

Evaluate expressions:

>>> b = BooleanExpression('(A /\\ B) -> (C \\/ D)')
>>> b.evaluate(A=1, B=1, C=0, D=0)
False
>>> b.evaluate(A=1, B=1, C=1, D=0)
True

Interact with expression structure:

>>> b = BooleanExpression('(A and ~B and C) or (~C and D) or E')
>>> b.is_dnf
True
>>> for clause in b.iter_dnf_clauses():
...     print(clause)
...
A and ~B and C
~C and D
E

Apply expression transformations:

>>> from tt import to_primitives, to_cnf
>>> to_primitives('A xor B')
<BooleanExpression "(A and not B) or (not A and B)">
>>> to_cnf('(A nand B) impl (C or D)')
<BooleanExpression "(A or C or D) and (B or C or D)">

Or create your own:

>>> from tt import tt_compose, apply_de_morgans, coalesce_negations, twice
>>> b = BooleanExpression('not (not (A or B))')
>>> f = tt_compose(apply_de_morgans, twice)
>>> f(b)
<BooleanExpression "not not A or not not B">
>>> g = tt_compose(f, coalesce_negations)
>>> g(b)
<BooleanExpression "A or B">

Exhaust SAT solutions:

>>> b = BooleanExpression('~(A or B) xor C')
>>> for sat_solution in b.sat_all():
...     print(sat_solution)
...
A=0, B=0, C=0
A=1, B=0, C=1
A=0, B=1, C=1
A=1, B=1, C=1

Find just a few:

>>> with b.constrain(A=1):
...     for sat_solution in b.sat_all():
...         print(sat_solution)
...
A=1, B=0, C=1
A=1, B=1, C=1

Or just one:

>>> b.sat_one()
<BooleanValues [A=0, B=0, C=0]>

Build truth tables:

>>> from tt import TruthTable
>>> t = TruthTable('A iff B')
>>> print(t)
+---+---+---+
| A | B |   |
+---+---+---+
| 0 | 0 | 1 |
+---+---+---+
| 0 | 1 | 0 |
+---+---+---+
| 1 | 0 | 0 |
+---+---+---+
| 1 | 1 | 1 |
+---+---+---+

And much more!

License

tt uses the MIT License.

Metadata

Release files for ttable 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ttable 0.7.0
File Size Uploaded
ttable-0.7.0.tar.gz 38.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ttable 0.7.0
File Interpreter ABI Platform
ttable-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 84.0 kB

Release files / ttable-0.7.0.tar.gz

Download URL ttable-0.7.0.tar.gz
Size 38.6 kB
Tags Source
SHA-256 checksum
How to use checksums
824e0f03a061a37f50be526b2aac2cc26e65ebea1c617e6bc1894aabfea77559
BLAKE2b-256 checksum
How to use checksums
73c3cd5003a06cea2240182dc9cbb8a208abefe9fc8ea0fb66d8742a5ab3a81e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.2

Release files / ttable-0.7.0-py3-none-any.whl

Download URL ttable-0.7.0-py3-none-any.whl
Size 45.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
14bdffa4ba5b544a84e9906e151e2341faffa71bd03fdd8a3175cea175c06738
BLAKE2b-256 checksum
How to use checksums
7a8e7453510c1ebb1cf163182b0ce041a56ec6628b5e60646eff5886f51b5956
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.2

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.4

4 release files

0.6.1

1 release file

0.6.0

7 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

1 release file

0.3

2 release files

0.2

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page