https://github.com/verse-lab/lean-ssr
LeanSSR: an SSReflect-Like Tactic Language for Lean
https://github.com/verse-lab/lean-ssr
Last synced: 3 months ago
JSON representation
LeanSSR: an SSReflect-Like Tactic Language for Lean
- Host: GitHub
- URL: https://github.com/verse-lab/lean-ssr
- Owner: verse-lab
- License: apache-2.0
- Created: 2024-02-16T10:17:38.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-12T08:55:06.000Z (about 1 year ago)
- Last Synced: 2024-04-12T15:40:46.064Z (about 1 year ago)
- Language: Lean
- Homepage:
- Size: 168 KB
- Stars: 28
- Watchers: 1
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LeanSSR: an SSReflect-Like Tactic Language for Lean
This repository provides LeanSSR: a SSReflect tactic DSL for Lean4. LeanSSR extends Coq/SSReflect's tactic DSL with various new DSL constructions and enhanced mechanism for computational reflection.
## Building
With `elan` installed, `lake build` should suffice.
## Adding LeanSSR to your project
To use the latest version of LeanSSR in a Lean 4 project, first add this package as a dependency. In your `lakefile.lean`, add
```lean
require ssreflect from git "https://github.com/verse-lab/lean-ssr" @ "master"
```Then run
```
lake update ssreflect
```You also need to make sure that your `lean-toolchain` file contains the same version of Lean 4 as LeanSSR's, and that your versions of LeanSSR's dependencies (currently only `Batteries4`) match. THe project does not support version ranges at the moment.
You may also consider using a stable release of the framework by adding the following to your `lakefile.lean` instead:
```lean
require ssreflect from git "https://github.com/verse-lab/lean-ssr" @ "v1.0"
```Once LeanSSR is downloaded and compiler, the following test file should compile:
```lean
import Ssreflect.Langexample {α : Type} : α → α := by
-- The following is equivalent to
-- intro x; trivial
move=> x//
```## Documentation
* The paper [Small Scale Reflection for the Working Lean User](https://arxiv.org/abs/2403.12733) provides a brief tutorial on LeanSSR and documents its main features
* [LeanSSR Wiki](https://github.com/verse-lab/lean-ssr/wiki) containts detailed technical documentation on LeanSSR tactics## Examples
You can find LeanSSR use case examples at `Examples` folder
## Contributors
* [Vladimir Gladshtein](https://volodeyka.github.io/)
* [George Pîrlea](https://pirlea.net/)
* [Ilya Sergey](https://ilyasergey.net/)