Skip to content

Commit 62ef4bb

Browse files
committed
update README.md
1 parent 7fe0bdc commit 62ef4bb

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

β€ŽREADME.mdβ€Ž

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,17 @@ Although Lean-auto is still under development, it's already able to solve nontri
2525
<img src="Doc/pics/shortfive.png" alt="drawing" width="500"/>
2626
</p>
2727

28-
Type **"auto πŸ‘"** to see whether auto is set up.
28+
Type **"auto πŸ‘"** to test whether auto is set up.
2929

3030
## Usage
3131
* ``auto [<term>,*] u[<ident>,*] d[<ident>,*]``
3232
* ``u[<ident>,*]``: Unfold identifiers
3333
* ``d[<ident>,*]``: Add definitional equality related to identifiers
34+
* The file ``Test/Test_Regression.lean`` in this repo contains working examples of usages of ``lean-auto``. Note that the ``native`` mode in ``Test/Test_Regression`` uses a dummy native solver, but this is only for testing. In real use cases, you should replace the dummy solver with a native theorem prover such as ``duper``. See below for detailed instructions.
3435
* Currently, auto supports
35-
* SMT solver invocation: ``set_option auto.smt true``, but without proof reconstruction. Make sure that SMT solvers are installed, and that ``auto.smt.solver.name`` is correctly set.
36-
* TPTP Solver invocation: ``set_option auto.tptp true``, but without proof reconstruction. Make sure that TPTP solvers (currently only supports zipperposition) are installed, and that ``auto.tptp.solver.name`` and ``auto.tptp.zeport.path`` are correctly set.
37-
* Proof search by native prover. To enable proof search by native prover, use ``set_option auto.native true``, and use ``attribute [rebind Auto.Native.solverFunc] <solve_interface>`` to bind `lean-auto` to the interface of the solver, which should be a Lean constant of type ``Array Lemma β†’ MetaM Expr``.
36+
* SMT solver invocation: ``set_option auto.smt true``, but without proof reconstruction. Make sure that SMT solvers are installed, and that ``auto.smt.solver.name`` is correctly set. If you want to try
37+
* TPTP solver invocation: ``set_option auto.tptp true``, but without proof reconstruction. Currently, we only support zipperposition. Make sure that ``auto.tptp.solver.name`` and ``auto.tptp.zeport.path`` are correctly set.
38+
* Proof search by native prover. To enable proof search by native prover, use ``set_option auto.native true``, and use ``attribute [rebind Auto.Native.solverFunc] <solve_interface>`` to bind `lean-auto` to the interface of the solver, which should be a Lean constant of type ``Array Lemma β†’ Array Lemma β†’ MetaM Expr``.
3839

3940
## Installing Lean-auto
4041
* ``z3`` version >= 4.12.2. Lower versions may not be able to deal with smt-lib 2.6 string escape sequence.
@@ -47,12 +48,6 @@ Type **"auto πŸ‘"** to see whether auto is set up.
4748
* Command ```#fromMetaTactic [<ident>]```: Calls ```Tactic.liftMetaTactic``` on ```<ident>```. The constant ```<ident>``` must be already declared and be of type ```MVarId β†’ MetaM (List MVarId)```
4849
* Lexical Analyzer Generator: ```Parser/LeanLex.lean```. The frontend is not yet implemented. The backend can be found in ```NDFA.lean```.
4950

50-
## Monomorphization Strategy
51-
* Let $H : \alpha$ be an assumption. We require that
52-
* $(1)$ If the type $\beta$ of any subterm $t$ of $\alpha$ depends on a bound variable $x$ inside $\alpha$, and $\beta$ is not of type $Prop$, then $x$ must be instantiated. Examples: [Monomorphization](./Doc/Monomorphization.lean), section `InstExamples`
53-
* $(2)$ If any binder $x$ of $\alpha$ has binderinfo `instImplicit`, then the binder $x$ must be instantiated via typeclass inference.
54-
* **TODO**
55-
5651
## Translation Workflow (Tentative)
5752
* Collecting assumptions from local context and user-provided facts
5853
* We reduce ```let``` binders and unfold projections when we collect assumptions. So, in the following discussion, we'll assume that the expression contains no ```let``` binders and no ```proj```s.

0 commit comments

Comments
Β (0)