Login
You're viewing the discuss.systems public feed.
  • Jul 29, 2026, 1:51 PM
    @david_chisnall @0xabad1dea @calx > the models and the properties
    that is outside the scope of a theorem prover. if you prove properties of an invalid spec you have shown the implementation to be correctly invalid.
    💬 1🔄 0⭐ 0

Replies

  • 💬 1🔄 3⭐ 18
  • Jul 29, 2026, 1:55 PM
    @david_chisnall was there any proof that the relevant properties of the abstract machine and the concrete machine were equivalent? :blobcatopenmouth:
    💬 1🔄 0⭐ 0
  • 💬 1🔄 0⭐ 2
  • 💬 0🔄 0⭐ 0
  • Jul 29, 2026, 2:10 PM

    @mario There is some really exciting work to try to prove equivalence between the various layers of lowering from RTL to silicon, but it's very early. It's basically a full abstraction proof and those are hard enough even when you don't have 'physics' as one of the layers.

    💬 0🔄 1⭐ 5
  • Jul 29, 2026, 2:26 PM

    @mario @david_chisnall In certified software development--the ones I was involved with and read about anyway--this is done by a person who signs off that the implementation follows the spec correctly. There's a bunch of this sort of thing that happens before any silicon is made. Takes a long time and is thus very expensive.

    Described situation was a demo during research phase sounds like. I hope they'd have found this before it made to production but yeah, no guarantees.

    💬 1🔄 0⭐ 1
  • Jul 29, 2026, 2:34 PM

    @crazyeddie @mario

    In certified software development--the ones I was involved with and read about anyway--this is done by a person who signs off that the implementation follows the spec correctly.

    No it isn't. At no point in certified software development will anyone sign of on (for example) the C compiler's output being a 100% faithful representation of the C abstract machine. At least, not in any situation where liability may lead back to them, because it is never true (well, it's technically true for CompCERT, though with the all-bets-are-off-if-your-source-code-has-any-undefined-behaviour get-out-of-jail-free card).

    Described situation was a demo during research phase sounds like. I hope they'd have found this before it made to production but yeah, no guarantees.

    No, the point of the demo was that you would not find this. It was a tweak that was possible to make during back-end layout or to the GDSII after you've sent it to the fab, so a completely plausible supply-chain attack on a hardware security mechanism.

    This kind of attack is easier on hardware than software, because you can at least run a compiled program on a simulator.

    💬 1🔄 0⭐ 4
  • Jul 29, 2026, 2:35 PM

    @david_chisnall @mario "At no point in certified software development will anyone sign of on (for example) the C compiler's output being a 100% faithful representation of the C abstract machine."

    This is quite the straw man you've summoned. Didn't get any better either.

    Later.

    💬 1🔄 0⭐ 0
  • 💬 1🔄 0⭐ 1
  • 💬 1🔄 0⭐ 0
  • Jul 29, 2026, 2:38 PM

    @crazyeddie @mario

    I can only assume you're not reading the thread in context because you jumped into a middle of a conversation with a post about a problem with the concrete machine not being a faithful representation of the abstract machine that the proofs were constructed in to say that, in certified software development, people signed off on that.

    💬 0🔄 0⭐ 1
  • Jul 29, 2026, 2:07 PM

    @mario @0xabad1dea @david_chisnall i can't seem to agree with this take, i am probably super wrong, but

    i'll define a theorem prover as something that, when provided with a proof, can say with 100% surety whether the proof contains any mistake or not, and thus if it is valid, according to current database of proven methods

    and if you agree with my definition, that should also include anything that isn't directly a part of the theorem prover, but still impact how it's output gets interpreted by the human, including,
    - the software,
    - the formal proof for that software,
    - the hardware,
    - the formal proof for that hardware,
    - the model of the hardware, and
    - even the human brain interpreting the results,

    without having a 100% surety on all these terms, we can't say that, when theorem prover verifies a proof, the proof is true, with 100% surety.

    💬 1🔄 0⭐ 1
  • Jul 29, 2026, 2:16 PM
    @calx @0xabad1dea @david_chisnall a proof is only valid within it's system. in the case of rocq the system is the calculus of inductive constructions i.e.
    there are extraction systems which translate the formal language of rocq (gallina) into high-level code like ocaml or c.
    these are two different structures, like you have the formal logic side and you have the computation side which are connected via the curry howard correspondence.
    like a theorem prover assists you by providing tools for theorem proving, it's scope is formal logic.
    💬 1🔄 0⭐ 0
  • Jul 29, 2026, 3:22 PM

    @mario @0xabad1dea @david_chisnall this kinda is making sense to me
    basically, what i think you mean is

    when we say "this proof is verified by xyz verifier", all the uncertainty that i mention gets put under the assumption that verifier isn't faulty

    right?

    i was going over whether that assumption can be true in my post, and what you're saying is once we add that assumption to our system, the proof becomes valid in that system, right?

    💬 1🔄 0⭐ 0
  • Jul 29, 2026, 3:29 PM
    @calx @0xabad1dea @david_chisnall > once we add that assumption to our system, the proof becomes valid in that system, right?
    if you are able to prove that assumption within your knowledge space and tactics then it already was part of the system in the first place. but now you don't only have proven that assumption in your system but you have also found an instance of the assumption you can then further use in proving more stuff. at least for constructive logic thats the case.

    > the assumption that verifier isn't faulty
    that can be proven actually
    💬 1🔄 0⭐ 0
  • Jul 29, 2026, 3:39 PM

    @mario @0xabad1dea @david_chisnall
    > > the assumption that verifier isn't faulty
    > that can be proven actually

    but to remove that assumption and to prove it, you'll need to add some other assumption, maybe about the hardware you'll use to prove the previous assumption, or maybe the model modelling the system on which the theorem prover will run

    in no way can a theorem prover, escape from its dependence on the assumptions about the system it is running on

    a normal proof doesn't have any such hidden dependence

    💬 0🔄 0⭐ 1
  • 💬 0🔄 0⭐ 0
  • 💬 1🔄 1⭐ 8
  • 💬 0🔄 0⭐ 4