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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c779405b18e8c1961331545f0b5a7c27d2ab07c10f0713f8e19be8c826350307
|
|
| MD5 |
135f5dcc4b3a19c928977a4554322fca
|
|
| BLAKE2b-256 |
52be4e74aa79a02d4cce11024782d4efd42e82dd89f83ce05a4e95f246726f6f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c4bbdcc3abb7037ee6801c632e866c4c3260915becc6343955523b3e816b02f
|
|
| MD5 |
f1222f4b95d8cc7600cc640e47a38dac
|
|
| BLAKE2b-256 |
f46e90941264fd68045a08a74366c34cc4146eb8b2f18d6c71208eb1217b5f56
|