9bdf076342
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
49 lines
1.4 KiB
Text
49 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
|