Re:Some notes on Rust, mutable aliasing and formal verification
by pjmlp on Thursday May 16, 2024 @04:20AM
(#40376234)
I also quite like Idris, the problem with these languages is that they require being a Mage level 10, while most folks are still getting around magic exists.
[ Parent
| on HN ]
Re:Some notes on Rust, mutable aliasing and formal verification
by Tainnor on Thursday May 16, 2024 @07:33AM
(#40377124)
I'll have to agree with this. In particular, there always seems to be some stage where you'll have to think carefully about how the simplifier works exactly, about different types of equality (syntactic vs. definitional vs. provable), etc. And changing internal representations of objects will also mean that old proofs might not compile anymore. And tactics are often rather opaque blackboxes.
I say this as a non-expert who has been enjoying writing some Lean recently and has previously also written some Coq and Idris.
Re:Some notes on Rust, mutable aliasing and formal verification
by rtpg on Thursday May 16, 2024 @06:51AM
(#40376933)
I found the onboarding to be super rough… I think it’s the sort of thing where you really want to do a full day workshop on it to get started.
The interactive elements really can’t be done justice in looking at readme’s or textbooks alone IMO
Re:Some notes on Rust, mutable aliasing and formal verification
by Tainnor on Thursday May 16, 2024 @07:35AM
(#40377135)
In my case (Lean), I've been getting a lot of help through the Zulip community. There's a dedicated #new_members stream where anybody can ask total beginner questions. It's quite humbling actually when you have someone like Kevin Buzzard answering your noob questions.
I'm sure other solvers (Coq, Idris, etc.) also have online communities where you may be able to ask questions.
Re:Some notes on Rust, mutable aliasing and formal verification
by kccqzy on Thursday May 16, 2024 @11:50AM
(#40379813)
Most programmers don't have enough previous experience proving things so this is unnatural for them. It is sadly impossible to require programmers to have been a math major to get them the mental facility to work with these languages.
Re:Some notes on Rust, mutable aliasing and formal verification
by trealira on Thursday May 16, 2024 @03:38PM
(#40382270)
At my university, all majors of computer science have to take a course in discrete math, which involves writing a couple different types of math proofs using proof by induction (including strong induction) and proof by contradiction. However, that was the only class I've ever taken where I've had to write proofs regularly.
Anyway, I think that, at a minimum, at least one class like that should be part of every CS major's education, if it isn't already. That way, proofs are less intimidating, and things like Coq and Isabelle/HOL are less intimidating.
Re:Some notes on Rust, mutable aliasing and formal verification
by kccqzy on Thursday May 16, 2024 @04:19PM
(#40382663)
I agree with you, but the ship has sailed to retroactively require all programmers to have such experience. Also, the typical introductory discrete math course likely doesn't require writing proofs in a language precise enough to be formalized. I would think that we need at least one more introductory course to logic (first order logic, Peano axioms) and an introductory course to type systems (structural induction, progress and preservation, etc).
Re:Some notes on Rust, mutable aliasing and formal verification
by trealira on Thursday May 16, 2024 @04:39PM
(#40382830)
We also learned some first order logic, enough to write the proofs in formal language, though we didn't learn anything about type systems.
You're probably right about the ship having sailed, though. It's probably harder to get people to learn new things when they haven't been in school for a long time.