Skip to main content

Deterministic verification of European high school math axioms.

Project description

symave

symave stands for SYmbolic MAth VErifier. This project is intended to be used as a library for deterministic user lemma verification, as an alternative to statistical approaches that are in some contexts unacceptable, namely in education. This library focuses on rudimentary axioms, statements and propositions present in a typical high school curriculum.

What it does

Given a mathematical symbol (e.g., integer1:factorof) and a student expression, symave returns whether the expression satisfies the symbol's definition.

Symbols are defined in a Knowledge Base (KB) based on OpenMath. OpenMath is an excellent starting point but may not be sufficient for various reasons:

  • geometric and combinatorial concepts have limited representation [Labre, 2026]
  • OpenMath is a standard with multiple encodings (XML, binary, Content MathML); the format of mathematical expressions across content dictionaries is heterogeneous, which poses challenges for consistent indexing [Labre, 2026]
  • even though OpenMath strives to be unambiguous, it does not provide an API (that's not what the project aims to achieve, anyway)
  • OpenMath categorization is strictly hierarchical and achieved through content dictionaries that group related concepts together; further, referencing across the ontology is possible; however, tagging or any other indexing is limited

Install

pip install symave

Usage

from symave import get_verifier

verifier = get_verifier("integer1:factorof")
verifier.verify(params={"n": 6}, expression="3")  # True

Development

Requires Hatch.

hatch run test      # run test suite
hatch run lint      # format + lint + type check
hatch run sec       # security scan
hatch run kb-serve  # browse the Knowledge Base at http://localhost:8787

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

symave-0.2.3.tar.gz (152.3 kB view details)

Uploaded Source

Built Distribution

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

symave-0.2.3-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file symave-0.2.3.tar.gz.

File metadata

  • Download URL: symave-0.2.3.tar.gz
  • Upload date:
  • Size: 152.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for symave-0.2.3.tar.gz
Algorithm Hash digest
SHA256 c779405b18e8c1961331545f0b5a7c27d2ab07c10f0713f8e19be8c826350307
MD5 135f5dcc4b3a19c928977a4554322fca
BLAKE2b-256 52be4e74aa79a02d4cce11024782d4efd42e82dd89f83ce05a4e95f246726f6f

See more details on using hashes here.

File details

Details for the file symave-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: symave-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for symave-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4c4bbdcc3abb7037ee6801c632e866c4c3260915becc6343955523b3e816b02f
MD5 f1222f4b95d8cc7600cc640e47a38dac
BLAKE2b-256 f46e90941264fd68045a08a74366c34cc4146eb8b2f18d6c71208eb1217b5f56

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