1SubMl: experimental ML-like programming language with a unified module and value language, and more

17 points by KnorrFG


osa1

I think ideally a type system with this complexity should come with a mechanized formalization. This kind of thing used to be extremely difficult, and maybe it still is, but I'm hoping that Lean + the developments in AI (and agents etc.) will make this kind of thing easier and I'm dreaming of a future where every type system comes with a mechanized formalization that can parse the programs in the test suite, type check, and run, and a soundness proof (+ maybe proofs of other useful properties). In this idealized future, if a type system doesn't have the mechanization with proofs then by default we assume it's unsound.

IMHO there's just no way that you'll have a combination of all these features and just know, just by thinking hard and long enough, that it's sound.

(The same applies to the type system that I'm developing as well. It's much simpler that this one, but IMHO it's still complex enough to require a formal definition and proofs.)

(Yes I'm aware that a formalization separate from actual implementation does not prove the implementation is sound, it's still a big step forward towards formally verified language implementations.)

Edit: I think this should be tagged "plt" rather than "programming".