Skip to main content

Non-boolean truth structures for dialectical reasoning, an alternative to boolean binarism, inspired by Hegelian logic.

Project description

🧠 Sublation

Classical boolean logic forces every proposition into exactly one of two states. That works well for most software, but it can't represent situations where a claim and its negation are both partially warranted, or where neither is warranted yet. As a solution, Sublation models truth as a relationship between a thesis and an antithesis, and derives a synthesis from how they interact — allowing states like contradiction and becoming to be detected rather than defined away.

✨ Main Features

  • Thesis and Antithesis classes to represent claims and their negations.
  • Synthesis class to represent the interaction between a thesis and an antithesis.
  • Methods to detect negation, contradiction, becoming, and sublation.

✅ Prerequisites

  • Python 3.12+ installed on your machine
  • Astral Uv package manager (optional)
  • Dependencies listed in requirements.txt

⚙️ Installation

For regular use:

# Clone the repository
git clone https://github.com/germanocastanho/sublation-package
cd sublation-package/

# Create a venv (optional)
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Install sublation package
pip install -e .

For development:

# Clone the repository
git clone https://github.com/germanocastanho/sublation-package
cd sublation-package/

# Create a venv (optional)
python3 -m venv .venv
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Install sublation package
pip install -e ".[dev]"

# Run full test suite
pytest

🚀 Quick Start

from sublation import Thesis, Antithesis, Synthesis

t = Thesis(True)
a = Antithesis(True)
s = Synthesis(t, a)

s.contradiction()       # True  — the tension is real and detectable
s.becoming()            # False — this is not a quiet resolution
s.sublation()           # True  — it doesn't collapse into falsehood

# The next round
t2 = s.as_thesis()

📜 Libre Software

If you have ideas for improvements or new features, please open an issue or submit a pull request! Make sure to follow the existing code style and include tests for any new functionality. This project is licensed under the MIT License. You are free to use, modify, and distribute this software. For more information, please refer to the LICENSE file.

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

sublation-0.1.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sublation-0.1.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file sublation-0.1.0.tar.gz.

File metadata

  • Download URL: sublation-0.1.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sublation-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5c640c02437d8da97e7fcf284122f45a10f8760ac9f14478bab425782c298830
MD5 95c09f69ee73c074e8a7c6de6bb2d4c0
BLAKE2b-256 585e98b252ed716f1017176e348513399330e2f584b78556700cb27fd66ad639

See more details on using hashes here.

File details

Details for the file sublation-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sublation-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sublation-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e009722b2a54cff39e2915f71bdf94a9febc2a1e61885e0eab7b7cc6aa01f9d0
MD5 e2951f483d775f598594fdef93c8dc78
BLAKE2b-256 e31bf3c92d7d81b896bf133304a206497c3bf34be4b9f9cc65eeaaf7f9b06150

See more details on using hashes here.

Supported by

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