doc: Remove stale repl documentation

This commit is contained in:
Leni Aniva 2025-07-11 20:15:14 -07:00
parent e8fdd906aa
commit 40bf3b2100
Signed by: aniva
GPG Key ID: D5F96287843E8DFB
1 changed files with 22 additions and 11 deletions

View File

@ -4,37 +4,48 @@ This documentation is about interacting with the REPL.
## Examples ## Examples
After building the `repl`, it will be available in `.lake/build/bin/repl`.
Execute it by either directly referring to its name, or `lake exe repl`.
``` sh ``` sh
pantograph-repl MODULES|LEAN_OPTIONS repl MODULES|LEAN_OPTIONS
``` ```
The `pantograph-repl` executable must be run with a list of modules to import. The `repl` executable must be given with a list of modules to import. By default
It can also accept lean options of the form `--key=value` e.g. `--pp.raw=true`. it will import nothing, not even `Init`. It can also accept lean options of the
form `--key=value` e.g. `--pp.raw=true`.
The REPL loop accepts commands as single-line JSON inputs and outputs either an The REPL loop accepts commands as single-line JSON inputs and outputs either an
`Error:` (indicating malformed command) or a JSON return value indicating the `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 result of a command execution. It accepts commands in one of two formats
``` ```
command { ... } command { ... }
{ "cmd": command, "payload": ... } { "cmd": command, "payload": ... }
``` ```
The list of available commands can be found in `Pantograph/Protocol.lean` and below. An
empty command aborts the REPL. The list of available commands can be found below. An empty command aborts the
REPL.
Example: (~5k symbols) Example: (~5k symbols)
``` ```
$ pantograph Init $ repl Init
env.catalog env.catalog
env.inspect {"name": "Nat.le_add_left"} env.inspect {"name": "Nat.le_add_left"}
``` ```
Example with `mathlib4` (~90k symbols, may stack overflow, see troubleshooting) Example with `mathlib4` (~90k symbols, may stack overflow, see troubleshooting)
``` ```
$ pantograph Mathlib.Analysis.Seminorm $ repl Mathlib.Analysis.Seminorm
env.catalog env.catalog
``` ```
Example proving a theorem: (alternatively use `goal.start {"copyFrom": "Nat.add_comm"}`) to prime the proof
Example proving a theorem: (alternatively use `goal.start {"copyFrom": "Nat.add_comm"}`)
to prime the proof
``` ```
$ pantograph Init $ repl Init
goal.start {"expr": "∀ (n m : Nat), n + m = m + n"} goal.start {"expr": "∀ (n m : Nat), n + m = m + n"}
goal.tactic {"stateId": 0, "tactic": "intro n m"} goal.tactic {"stateId": 0, "tactic": "intro n m"}
goal.tactic {"stateId": 1, "tactic": "assumption"} goal.tactic {"stateId": 1, "tactic": "assumption"}
@ -59,7 +70,7 @@ LIB="../lib"
LIB_MATHLIB="$LIB/mathlib4/.lake" LIB_MATHLIB="$LIB/mathlib4/.lake"
export LEAN_PATH="$LIB_MATHLIB:$LIB_MATHLIB/aesop/build/lib:$LIB_MATHLIB/Qq/build/lib:$LIB_MATHLIB/std/build/lib" export LEAN_PATH="$LIB_MATHLIB:$LIB_MATHLIB/aesop/build/lib:$LIB_MATHLIB/Qq/build/lib:$LIB_MATHLIB/std/build/lib"
LEAN_PATH=$LEAN_PATH build/bin/pantograph $@ LEAN_PATH=$LEAN_PATH repl $@
``` ```
The `$LEAN_PATH` executable of any project can be extracted by The `$LEAN_PATH` executable of any project can be extracted by
``` sh ``` sh