How do you reconcile this: "Julia's type system is designed for semantics specification, not proofs, so it's not really what you'd want to use there."
With
"think the most promising way to go is basically to let the users specify their own correctness criteria (for example, some people really care about correctness of array dimensions), and then just go to a full theorem proving system"
If the former, how do you get code reuse?
What do you mean by expanded lattice? I thought the type lattice was fixed. What would something general look like ?
Thanks for humoring my naive question(s).
As far as I know, currently the non-julia-types type lattice is hardcoded. But even if that's the case, that's not fundamental to the design.
> If [you make the type lattice user extendable], how do you get code reuse?
What kind of code reuse do you mean? This alternative type lattice is not supposed to change the semantics of any Julia program, aside from rejecting programs that would otherwise have semantics in Julia.