Compare commits

..

No commits in common. "aeed23384642402aeef448c85be56a58d054492a" and "0ade3d1637e795a2d36ca0f7cc38e88ffd39ceb0" have entirely different histories.

2 changed files with 7 additions and 23 deletions

View File

@ -1,12 +1,9 @@
# Pantograph # Pantograph
A Machine-to-Machine interaction system for Lean 4. An interaction system for Lean 4.
![Pantograph](doc/icon.svg) ![Pantograph](doc/icon.svg)
Pantograph provides interfaces to execute proofs, construct expressions, and
examine the symbol list of a Lean project for machine learning.
## Installation ## Installation
For Nix based workflow, see below. For Nix based workflow, see below.
@ -112,12 +109,9 @@ ulimit -s unlimited
## Library Usage ## Library Usage
`Pantograph/Library.lean` exposes a series of interfaces which allow FFI call `Pantograph/Library.lean` exposes a series of interfaces which allow FFI call
with `Pantograph` which mirrors the REPL commands above. It is recommended to with `Pantograph`.
call Pantograph via this FFI since it provides a tremendous speed up.
## Developing ## Testing
### Testing
The tests are based on `LSpec`. To run tests, The tests are based on `LSpec`. To run tests,
``` sh ``` sh
@ -126,10 +120,6 @@ make test
## Nix based workflow ## Nix based workflow
The included Nix flake provides build targets for `sharedLib` and `executable`.
The executable can be used as-is, but linking against the shared library
requires the presence of `lean-all`.
To run tests: To run tests:
``` sh ``` sh
nix build .#checks.${system}.test nix build .#checks.${system}.test

View File

@ -37,14 +37,9 @@
}; };
project = leanPkgs.buildLeanPackage { project = leanPkgs.buildLeanPackage {
name = "Pantograph"; name = "Pantograph";
#roots = pkgs.lib.optional pkgs.stdenv.isDarwin [ "Main" "Pantograph" ];
roots = [ "Main" "Pantograph" ]; roots = [ "Main" "Pantograph" ];
src = pkgs.lib.cleanSourceWith { src = ./.;
src = ./.;
filter = path: type:
!(pkgs.lib.hasInfix "/Test/" path) &&
!(pkgs.lib.hasSuffix ".md" path) &&
!(pkgs.lib.hasSuffix "Makefile" path);
};
}; };
test = leanPkgs.buildLeanPackage { test = leanPkgs.buildLeanPackage {
name = "Test"; name = "Test";
@ -63,6 +58,7 @@
packages = { packages = {
inherit (leanPkgs) lean lean-all; inherit (leanPkgs) lean lean-all;
inherit (project) sharedLib executable; inherit (project) sharedLib executable;
test = test.executable;
default = project.executable; default = project.executable;
}; };
checks = { checks = {
@ -73,9 +69,7 @@
${test.executable}/bin/test > $out ${test.executable}/bin/test > $out
''; '';
}; };
devShells.default = pkgs.mkShell { devShells.default = project.devShell;
buildInputs = [ leanPkgs.lean-all leanPkgs.lean ];
};
}; };
}; };
} }