50 lines
1.4 KiB
Text
50 lines
1.4 KiB
Text
|
1- Coq expressivity + Z3 automation
|
||
|
2- "Real" proof objects
|
||
|
3- "Freedom to trust", semantic attachments
|
||
|
(speed) vs (trusted code base size)
|
||
|
Example: (by simp using t1 ... tn)
|
||
|
4- Extensible system (without compromising soundness)
|
||
|
5- Better support for "interactive proofs"
|
||
|
"Proofs with holes"
|
||
|
"Glue" different components
|
||
|
Script language
|
||
|
Extensibility
|
||
|
Proof maintenance
|
||
|
Unreliable automation produces "recipes" for reliable playback
|
||
|
6- Every component is exposed in the script language API
|
||
|
7- Lean is also a platform for implementing your own custom logic
|
||
|
|
||
|
Status
|
||
|
* Elaboration engine
|
||
|
- Type inference,
|
||
|
- Fill holes by solving typing constraints
|
||
|
- Higher-order unification
|
||
|
- Non-chronological backtracking
|
||
|
- ...
|
||
|
|
||
|
* Generic bottom-up simplifier
|
||
|
- Extend by providing theorems/axioms
|
||
|
- Support for dependent types
|
||
|
- Predictable/Reliable
|
||
|
|
||
|
* Tactic framework
|
||
|
- "Glue" different engines
|
||
|
- Standard combinators +
|
||
|
timeout + parallel solving
|
||
|
|
||
|
Next steps
|
||
|
* Generic tableaux like prover
|
||
|
- Extend by providing set of theorems that should be used as
|
||
|
alpha/beta/delta/gamma rules
|
||
|
- Non-chronological backtracking
|
||
|
- Callbacks: simplifier and decision procedures
|
||
|
|
||
|
* MCSat
|
||
|
- Model constructing satisfiability calculus.
|
||
|
New SMT engine
|
||
|
|
||
|
* Independent type/proof checker
|
||
|
- F-star
|
||
|
|
||
|
* Interface with existing tools: MiniSAT and Z3
|