HNHacker News
TopNewBestAskShowJobs

amw-zero

1,249 karma · joined June 27, 2016

submissionscomments
amw-zero··on AI will make formal verification go mainstream
How do you or the client know that the software is doing what they want?
amw-zero··on AI will make formal verification go mainstream
Compare the spec with the application here: https://concerningquality.com/model-based-testing/

I think we've become used to the complexity in typical web applications, but there's a difference between familiar and simple (simple vs. easy, as it were). The behavior of most business software can be very simply expressed using simple data structures (sets, lists, maps) and simple logic.

No matter how much we simply it, via frameworks and libraries or whatever have you, things like serialization, persistence, asynchrony, concurrency, and performance end up complicating the implementation. Comparing this against a simpler spec is quite nice in practice - and a huge benefit is now you can consult a simple in-memory spec vs. worrying about distributed system deployments.

amw-zero··on Apple Services Experiencing Outage
Half of the world uses Apple products, how is that not the maximum possible impact?
amw-zero··on Apple Services Experiencing Outage
that's a fantastic point.
amw-zero··on Branching with or Without PII: The Future of Environments
And to clarify - only writes on the _branch_ lead to a copy being created right? Writes on the original don’t get propagated to the branch?
amw-zero··on Cloudflare Global Network experiencing issues
What does this even mean? Because people have locked in their data, they’re ok with downtime? I can’t imagine a world where this is true.
amw-zero··on Go subtleties
The “simplicity” of Go is just virtue signaling. It has gotchas like that all over the language, because it’s not actually simple.
amw-zero··on Zig feels more practical than Rust for real-world CLI tools
How often are you writing non-trivial data structures?
amw-zero··on Why language models hallucinate
I love the euphemistic thinking. “We built something that legitimately doesn’t do the thing that we advertise, but when it doesn’t do it we shall deem that hallucination.”
amw-zero··on Mathematics for Computer Science (2024)
Hard disagree.

Errors are found in human proofs all the time. And like everything else, going through the process of formalizing to a machine only increases the clarity and accuracy of what you’re doing.

amw-zero··on Mathematics for Computer Science (2024)
The first topic is "Predicates, Sets, and Proofs."

I use predicates and sets quite often in daily programming.

amw-zero··on Mathematics for Computer Science (2024)
You can write proofs along with the course, and since they are machine checked you can have confidence that they are correct.

If you don't know, writing a proof in isolation can be difficult, since you may be writing on that isn't actually sound.

amw-zero··on My first verified imperative program
Research points to there being a quadratic relationship between automated proof and code size: https://trustworthy.systems/publications/nictaabstracts/Mati....

Specifically, the relationship is between the _specification_ and the proof, and it was done for proofs written in Isabelle and not Lean.

The good news is that more and more automation is possible for proofs, so the effort to produce each proof line will likely go down over time. Still, the largest full program we've fully verified is much less than 100,000 LOC. seL4 (verified operating system) is around 10,000 lines IIRC.

amw-zero··on The unreasonable effectiveness of fuzzing for porting programs
There are 2 main problems in generative testing:

- Input data generation (how do you explore enough of the program's behavior to have confidence that you're test is a good proxy for total correctness)

- Correctness statements (how do you express whether or not the program is correct for an arbitrary input)

When you are porting a program, you have a built in correctness statement: The port should behave exactly as the source program does. This greatly simplifies the testing process.

amw-zero··on OxCaml - a set of extensions to the OCaml programming language.
Are you aware of how many allocations the average program executes in the span of a couple of minutes? Where do you propose all of that memory lives in a way that doesn’t prevent the application from running?
amw-zero··on Systems Correctness Practices at Amazon Web Services
You can write proofs in TLA+ and many other formalisms. You don’t need to ever use a model checker. The proofs hold for an infinite number of infinite-length executions. We are definitely not limited to finite behaviors.
amw-zero··on Making Postgres Distributed with FoundationDB
> this doesn't replace the lower level page heap storage

So this is wrong. The heap storage is replaced.

amw-zero··on Making Postgres Distributed with FoundationDB
How do table access methods work with standard PG concepts such as the shared_buffers cache? Is that irrelevant since data is stored in FDB? Also, how do the deployment semantics of FDB affect this. If I remember correctly, you typically run one FDB process per CPU on a machine. How do PG processes map to those?
amw-zero··on Making Postgres Distributed with FoundationDB
> From what I can tell, this doesn't replace the lower level page heap storage, but instead actually provides new implementation of table and indexes

These seem contradictory. If the data is stored in FoundationDB, then it won't be stored in the filesystem as blocks, right?

amw-zero··on How to title your blog post or whatever
Eh. I like to wing it and call it whatever I like. If the content is good, people will find it.
amw-zero··on Reservoir Sampling
You’re confusing statistics with forecasting. We can and should trust statistics. We should just never trust their relation to future behavior.
amw-zero··on A proof checker meant for education
Not all proofs have proof terms, so not all proof can be compiled to existing languages.
amw-zero··on The SeL4 Microkernel: An Introduction [pdf]
We should look at formal verification like everything else: in terms of statistical effectiveness. It's not really important whether or not there are _no_ bugs. What's important is how many bugs there are for each unit of "effort."

For example, if this were hypothetically the only bug that was ever found, then that would be a pretty damn good argument that formal verification is effective. Because the bug rate of other non-verified operating systems is much higher.

amw-zero··on Coq-of-rust: Formal verification tool for Rust
Yes - that is what [Validation](https://en.wikipedia.org/wiki/Verification_and_validation) is for. I'm not saying it's easy (it's not). But there is a term for this.
amw-zero··on Coq-of-rust: Formal verification tool for Rust
You are describing "validation": the process of verifying that your spec really says what you mean.
amw-zero··on Ask HN: Any insider takes on Yann LeCun's push against current architectures?
This exactly describes my intuition as well. Language is limited by its representation, and we have to jam so many bits of information into one dimension of text. It works well enough to have a functioning society, but it’s not very precise.
amw-zero··on Making Postgres scale
Curious. At that scale and transaction rate, are you deleting / offloading rows to another storage solution after some amount of time? I’m assuming you’re not just letting 150,000 rows a second accumulate indefinitely.
amw-zero··on I Wrote a WebAssembly VM in C
I totally agree. Standard ML set the stage for everyone to finally formally specify a full language, and only WebAssembly has carried the torch as far as I know (other than small research languages).
amw-zero··on I Wrote a WebAssembly VM in C
Those are all programming languages.
amw-zero··on Ruby “Thread Contention” Is Simply GVL Queuing
Throughput is a property of a queue.
← PreviousPage 2 of 22Next →