https://github.com/nyuichi/leanhol
super tiny implementation of higher-order logic proof assistant in lean
https://github.com/nyuichi/leanhol
higher-order-logic lean proof-assistant
Last synced: about 2 months ago
JSON representation
super tiny implementation of higher-order logic proof assistant in lean
- Host: GitHub
- URL: https://github.com/nyuichi/leanhol
- Owner: nyuichi
- Created: 2019-01-25T05:13:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-09-29T02:37:22.000Z (over 5 years ago)
- Last Synced: 2025-01-30T13:24:08.790Z (4 months ago)
- Topics: higher-order-logic, lean, proof-assistant
- Language: Lean
- Size: 21.5 KB
- Stars: 21
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Super tiny HOL proof assistant in lean
This material is a proof-of-concept code of my hypothesis that writing a prover will be much easier if I take a proof assistant as its implementation language.
An explanatory article about this project will be available soon at techbookfest 2019 spring.I didn't implement a large part of language features which a proof assistant needs for being called a proof assistant. Instead they are realized by free riding on the metalanguage; I didn't implement:
- parser (it's a DSL)
- binding structure (use HOAS)
- type checker (Lean's type checker checks it)
- type inference (Lean's unifier infers it)
- (efficient) evaluator (use the NbE technique)
- tactic language (Lean's tactic language serves it)That's why the code is very small (< 300 LoC).
I separate from the main file (`hol.lean`) some codes I additionally wrote to write my article. Mainly looking at `hol.lean` should suffice if you know its technical backgrounds already.