Translation of proofs from Natural Language to Lean
Project description
natural2lean
Proof of concept of a natural language interactive theorem prover
This project was developed for my Master's Thesis at UCLouvain (under the supervision of Pr. François Glineur and T.A. Sébastien Mattenet). The problem this project attempts to solve is the feedback on exercice proofs written by students, as this feedback comes either in the form of one correct version of the proof (although a theorem can be proved in many different ways), or taking up valuable T.A. time to correct simple proofs. The aim is therefore to bring machine verification to natural language proofs. This is done by translating natural language to lean4
and returning the feedback to the user.
How this project works
The project consists of a python package, natural2lean
, giving access to a Translator
class. This class contains the following methods:
__init__(lean_project_directory: str = None)
; creates the object and makes sure that it has access to the needed lean-project-template. The optionallean_project_directory
indicates to the program where to store the project.new_theorem(string: str)
; parses the string into a new theorem and returns the state of the proof after the theorem was added.new_statement(string: str)
; parses the string into a new statement and returns the state of the proof after the statement was added.new(string: str)
; delegates tonew_theorem
ornew_statement
depending on the context (whether or not there is a goal to be solved).interpretation_feedback()
; gives a feedback what parts of thestring
were used and what parts were ignored.backtrack()
; removes the last theorem / statement added.
How to install
You will need to first install lean4
(install guide).
For an end user, the easiest way to use it is to use the natural2lean-cli package, gives access to an executable (natural2lean
) containing an interactive program and a file reader.
How to tweak this project for your own uses
This project is a proof of concept, feel free to fork and tweak it for your own uses.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file natural2lean-0.0.5.tar.gz
.
File metadata
- Download URL: natural2lean-0.0.5.tar.gz
- Upload date:
- Size: 30.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23d07795b5d692a86d3ce4695806759b697afddaad5a6d8182b34a24294a1ee4 |
|
MD5 | 80452aaf77fe50fad2bb507a3b9274ef |
|
BLAKE2b-256 | 50c88cfef644a07fa98cfcc9f7ccd8a44c024deace498743f0ae613877b33890 |
File details
Details for the file natural2lean-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: natural2lean-0.0.5-py3-none-any.whl
- Upload date:
- Size: 41.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bbbd512208cd8316d45c0644e4e4a2965dbaa82b97925a97d289658a0549b3d |
|
MD5 | 5e6bca55d5598a535e73db4d45550b6e |
|
BLAKE2b-256 | 2f7220746e93d5aec5d622f6858b4ee3368d981961cac1cb43a2c99a48366d90 |