Pantograph/README.md

54 lines
1.2 KiB
Markdown
Raw Normal View History

2023-05-09 22:51:19 -07:00
# Pantograph
An interaction system for Lean 4.
## Installation
Install `elan` and `lean4`. Then, execute
``` sh
lake build
```
2023-05-12 01:08:36 -07:00
In order to use `mathlib`, its binary must also be built
``` sh
2023-05-12 16:12:21 -07:00
lake build Qq
lake build aesop
2023-05-12 01:08:36 -07:00
lake build std
lake build mathlib
```
2023-05-09 22:51:19 -07:00
## Usage
The binary must be run inside a `lake env` environment. i.e. `lake env
build/bin/pantograph`. The REPL loop accepts commands and outputs either an
`Error:` (indicating malformed command) or a json return value indicating the
result of a command execution. The command can be passed in one of two formats
```
command { ... }
{ "cmd": command, "payload": ... }
```
The list of available commands can be found in `Pantograph/Commands.lean`. An
empty command aborts the REPL.
2023-05-12 16:12:21 -07:00
Example: (~5k symbols)
```
$ lake env build/bin/Pantograph
create {"imports": ["Init"]}
catalog {"id": 0}
inspect {"id": 0, "symbol": "Nat.le_add_left"}
2023-05-12 16:12:21 -07:00
```
Example with `mathlib` (~90k symbols)
2023-05-12 01:08:36 -07:00
```
$ lake env build/bin/Pantograph
create {"imports": ["Mathlib.Analysis.Seminorm"]}
catalog {"id": 0}
2023-05-09 22:51:19 -07:00
```
2023-05-12 16:12:21 -07:00
2023-05-09 22:51:19 -07:00
2023-05-14 15:22:41 -07:00
## Troubleshooting
2023-05-09 22:51:19 -07:00
2023-05-14 15:22:41 -07:00
If lean encounters stack overflow problems when printing catalog, execute this before running lean:
```sh
ulimit -s unlimited
```