Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/utensil/ginac-lean
A work-in-progress Lean 4 binding to GiNaC
https://github.com/utensil/ginac-lean
lean lean4
Last synced: 24 days ago
JSON representation
A work-in-progress Lean 4 binding to GiNaC
- Host: GitHub
- URL: https://github.com/utensil/ginac-lean
- Owner: utensil
- License: other
- Created: 2023-09-18T04:11:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-14T06:18:16.000Z (6 months ago)
- Last Synced: 2024-08-10T14:14:44.212Z (4 months ago)
- Topics: lean, lean4
- Language: Python
- Homepage:
- Size: 630 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GinacLean
[![build](https://github.com/utensil/ginac-lean/actions/workflows/ci.yml/badge.svg)](https://github.com/utensil/ginac-lean/actions/workflows/ci.yml) [![On Reservoir](https://img.shields.io/badge/On-Reservoir-657584?style=flat)](https://reservoir.lean-lang.org/@utensil/GinacLean)
A work-in-progress Lean 4 binding to [GiNaC](https://www.ginac.de/), which is an open-source symbolic computation library in C++, it has extensive algebraic capabilities, and has been specifically developed to be an engine for high energy physics applications.
See [this doc](doc/ffi.md) to learn more.
## Status
The work started on Sep 18, 2023, and it's still at an early stage, mostly a POC, and nowhere near a complete binding. It's encouraged to draw inspiration from this project, but it's not recommended to use it in production.
This project is still on my thoughts, and I'm still trying to figure out the best way to proceed.
If one is interested in using GiNaC in Lean, discussions are welcome (by opening an issue, or pinging me on Lean Zulip), including about creating other bindings.
## Development
```bash
lake -R build
# Follow https://pre-commit.com/ to install pre-commit
# pyenv shell 3.11
# brew install pre-commit
# pre-commit install
```## License
TL;DR: Practically, if one uses GinacLean to use GiNaC, one must comply with the GPL license. But this repository itself only contains MIT licensed code.
GinacLean itself is licensed under the MIT license, see [LICENSE](LICENSE) for details. It means any code at rest in this repository can be considered as MIT licensed.
But GiNaC is licensed under the GPL license (version 2 [or later](https://www.ginac.de/pipermail/ginac-list/2024-April/002475.html)), see [COPYING](COPYING) for details. When built or at runtime, GinacLean interacts with the GPL licensed GiNaC library, thus the GPL license applies to all of GinacLean. See [this answer on SE](https://opensource.stackexchange.com/a/4557/35422) for more details.
GiNaC depends on [CLN](https://www.ginac.de/CLN/) which is also GPL licensed. The discussion above applies to CLN as well.
One subtlety is that in [releases of GinacLean](https://github.com/utensil/ginac-lean/releases), GiNaC/CLN might be included (thus redistributed), so any such release should be considered as GPL licensed. But the plan is to make no such releases.