(WIP) A Moonbit Proof Assistant.
moon add Luna-Flow/stella@0.2.0// moon.pkg
import {
"Luna-Flow/stella/elab",
"moonbitlang/core/list",
}using @elab {type TermInf}
test {
// (λx. x : 1 → 1) has type 1 → 1, and applied to ⋆ it computes ⋆
let id_unit = TermInf::Ann(Lam(Inf(Bound(0))), Inf(Pi(Inf(UnitType), Inf(UnitType))))
let ty = @elab.type_inf_0(@list.empty(), id_unit)
debug_inspect(@elab.quote(0, ty), content="Inf(Pi(Inf(UnitType), Inf(UnitType)))")
let v = @elab.eval_inf(App(id_unit, UnitElement), @list.empty())
debug_inspect(@elab.quote(0, v), content="UnitElement")
}| Package | Contents |
|---|---|
| Luna-Flow/stella/elab | Core syntax, values, evaluation, read-back, bidirectional type checking |
Install
Download zip(WIP) A Moonbit Proof Assistant.