8 comments

  • wbeckler 17 minutes ago
    I think the royal combo is Lean 4/TLA+/etc. plus AI plus a deterministic generator. For large systems formal method assertions need to be compressed down to a human comprehensible size. This can happen when the assertions are confirming the accuracy of a model and its attached code generators. The generator can generate proofs of the generated code and a human only needs to ensure that the generator provably generates the correct mass scale assertions.

    This is how formal methods can constrain AI for large systems.

    We're doing this at the Open Markets Initiative, where we've generated millions of lines of Lean 4, TLA+, and Rocq that ensure that our open source electronic trading protocol code is accurate. We didn't expect it but the Lean prover did identify some incorrect steps. https://github.com/Open-Markets-Initiative

  • chamomeal 16 minutes ago
    What do people think of property based testing? I’ve set up a few property based tests and it feels almost like formal verification.

    I know it’s not the same thing, but PBT’s can catch all sorts of absolutely crazy bugs that I never would think to check for. Stateful stuff, cross-service stuff. My only gripe with PBTs has always been the tedious setup, but LLMs solve that.

    I haven’t seen much discussion around PBTs lately, but you get a ton of bang for your buck in the LLM age

    • te_chris 12 minutes ago
      Yeah, LLMs make setting up the annoying things like PBT and mutation testing easy. It’s great.
  • PandaRider 2 hours ago
    > ... But we expect, in the next few months and years, people will focus way more on the specifications, on the models, on the properties you want the software to have.

    Does anyone have resources on learning modelling for formal verification? (Does not have to be in Lean)

    • johnbender 1 hour ago
      Lamport’s book and or Hillel Wayne’s are both good. State machines as a specification language has always been pretty approachable and also relatively deep. If you want to get in to proof assistants Software Foundations is great and the delta to understanding Lean from Rocq is pretty small.

      https://lamport.azurewebsites.net/tla/book.html https://logicforprogrammers.com/ https://softwarefoundations.cis.upenn.edu/

    • rramadass 58 minutes ago
      Mandatory Background:

      1) Understanding Formal Methods by Jean-Francois Monin - This is the absolute best for getting a grip on the breadth, concepts and sample tools for Formal Mathematics/Specification/Verification. Fire-hose of information (not a step-by-step textbook) so use this as a map for everything "Formal". The S/N ratio is very high (~250 pages only!) so use AI/Textbooks to help explain concepts you find difficult to understand.

      Practical:

      1) Software Abstractions: Logic, Language, and Analysis by Daniel Jackson - Uses "Alloy" language to teach Structural (i.e. Data) Modeling.

      2) Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers by Leslie Lamport - Uses "TLA+" language to teach Behavioural (i.e. State Machine) modeling.

      The above two are for "System Modeling" i.e. everything needed to formally build complete systems.

      3) Finally, You should also look at the bunch of free books on the Lean4 website which can be studied parallely for "code-level" proofs and verification.

      PS: There are a few more (eg. Event-B method etc.) but you can get to those if/when you need to.

    • f0e4c2f7 2 hours ago
      • ModernMech 47 minutes ago
        This is a vibecoded project, not a resource for learning modeling for formal verification.
  • shevy-java 12 minutes ago
    I noticed a problem in the "AI is our future!" crowd.

    What they do, does not really interest me. With that I mean it is nice that they can solve many problems as-is, and that will probably become more important - but I am just not interested in looking at AI project. It is totally meaningless to me.

    In the past, when you, say, have a project written by a real human author on github, this could be interesting. With AI generated projects, I just don't have the slightest interest in "connecting". I also don't think to be the only one; you notice this on youtube too. Some people no longer have an interest in AI-generated videos and avoid them. I am curious when the AI hype phase will go down; right now it seems to not come down but I think it eventually will.

  • tug2024 22 hours ago
    [dead]
  • mentalgear 3 hours ago
    ... somewhat disappointed the guy is now associated with AWS. I guess I was hoping for a non-profit organization.
  • jdw64 4 hours ago
    While learning and applying formal verification in the context of using AI agents, what I feel is that sometimes it's hard to express my own thoughts as formal verification. But more than that, I doubt whether formal verification being done correctly actually solves the phenomenon of AI spinning in circles on a specific task.

    For example, I want to eat chicken, so I try formally verifying "chicken dish," and every time GPT or Claude starts digging into the origin of the sauce in the chicken dish or the breed of the chicken. Then the chicken dish never gets finished and never makes it to dinner, and instead I gain deep knowledge about the origin of chickens.

    Of course, I know that formal verification has liveness — meaning that there must be progress in the work is also part of formal verification — but the AI judges that learning the origin of the chicken counts as progress too. Yet it ends up doing work that it actually shouldn't be doing.

    Personally, while organizing these AI anti-patterns, I feel that when you formally verify one condition, verification of another condition gets weakened, and within that phenomenon I sense the AI spinning in circles again. In the end, I end up going through the process of reading and merging everything one by one myself, and I want to know whether this is something only I experience.

    • Phemist 2 hours ago
      A sufficiently powerful agent with sufficiently long horizon task finishing ability will first invent the universe from scratch and only then will it finish your chicken dish.
      • baq 1 hour ago
        I see not only me tried to give astra insufficiently described tasks
      • jdw64 2 hours ago
        It seems you've summarized my problem properly. Haha.
    • Gabriel54 2 hours ago
      Your example is not something that can be formally verified.
      • jdw64 2 hours ago
        What I meant in my comment is that when you use formal verification to verify AI, it passes formal verification, but even if it passes that formal verification, the AI still can’t complete the task. The original article also talks about the importance of specifications in the AI era, but my point is that even if it passes formal verification, the AI still has problems. I’m not sure whether I misunderstood the original.
    • dist-epoch 3 hours ago
      You seem to be using "formal verification" with a non-standard meaning.

      > I feel that when you formally verify one condition, verification of another condition gets weakened

      In standard formal verification there is no problem here: you formally verify the composite "condition_1 AND condition_2"

      • jdw64 3 hours ago
        The problem I often run into is this. It’s not formal verification, but I create a UML diagram to lay out the whole skeleton first. There are usually open-source architecture books, so I take it from there.

        Then it should implement the whole UML skeleton, right? But it goes like this: halfway through, at some point, it says, “This algorithm is too slow? Hmm... I need to make it faster,” and tries local optimization, so sometimes I don’t get the result I want—that is, an MVP that at least runs.

        I know the overall goal clearly, but there’s a problem where it gets obsessed with a specific subgoal or keeps expanding that subgoal.

        • moi2388 2 hours ago
          Can you try to get it to only specify interfaces first? Then tests, the write code to implement
      • jdw64 3 hours ago
        I think my English is a bit lacking, so I didn't explain my situation well enough.

        The main point is not that everything is solved if you specify all the conjunction conditions and prove that those conjunction conditions are correct. Rather, the key point is that in that process, the agent keeps expanding subgoals.

        For example, two proofs, P1 and P2, are carried out, but they proceed in a way that diverges from the actual progress of the work. That is, you can prove things like "P1: the chicken is safe" and "P2: the origin of this sauce is trustworthy," but combining these does not make a chicken dish.

        In other words, the proof logic holds, but my actual task doesn't get solved. I'm questioning how to solve this problem. It's frustrating that I'm not a native English speaker at times like this. I'm sorry for causing a misunderstanding.

        For example, it goes like this.

        I proved P1 and P2. But then it creates P1.1. It goes and finds information from an agency certifying that this chicken is safe, and puts that in. Then it starts creating P2.1 as well. The origin of this sauce is trustworthy, but maybe there’s a better one somewhere?

        It goes on like that.

    • zhengzefeng 1 hour ago
      [flagged]
  • logir22 41 minutes ago
    Testing markup handling: <test-tag>hello</test-tag> and literal < > brackets