Creating Dependable Software Using AI

A woman stands in front of an artificial blue surface and explores her surroundings in a virtual world. The picture shows the letters "AI", which stands for artificial intelligence. A woman stands in front of an artificial blue surface and explores her surroundings in a virtual world. The picture shows the letters "AI", which stands for artificial intelligence.

Generate-and-check AI is gaining traction in software development for ensuring outputs meet strict rules. The system works like this: AI generates a proposal, then a separate checker verifies it against practical constraints. Example? A crossword puzzle. The AI offers word suggestions, and the checker confirms lengths and letter consistency across clues.

This approach isn’t just for games. It’s perfect for coding too. Checks can enforce style guides, validate properties, and catch errors early. That way, verification happens on final products, not on the AI itself. The result: safer, more accurate, compliant code, with less human oversight.

Teams combining AI, software engineering, and fields like embedded systems are pushing generate-and-check forward. They say it’s a powerful collaboration that tackles complex applications.

Advertisement

One clear takeaway: generate-and-check means trustable AI outputs through practical validation.

The team shared:

As an intuitive example, consider a crossword puzzle. While filling in suggestions, you check that the words actually fit with the overall entries in the puzzle. This is a generate-and-check approach, and we apply it to a generative AI-based system: after the AI generates a creative proposal — such as a word — a separate system checks it against practical constraints and rules. For the crossword, we can check the correct length of suggestions and, over time, the consistency of letters across different entries. Additionally, if there is an issue such as an inconsistency of letters across words, you can provide this feedback to the assistant to improve future suggestions.

The generate-and-check approach is particularly well-suited for software development, where established rules can be automatically checked. These rules can vary in complexity — ranging from coding style guides to formal verification of specified properties. This facilitates verification and validation, as we verify resulting artifacts rather than validating the system under all circumstances. By implementing strong rule sets, we can ensure that the AI’s output is safe, accurate, and compliant with specific requirements, reducing the need for extensive human supervision.

We’re excited about the potential of generate-and-check and pleased to see this approach gaining traction within the software engineering community. Generate-and-check is inherently a multi-disciplinary approach, e.g., combining AI, software engineering, and — in our case — domain-specific aspects such as embedded systems and safe software. As such, we have a great collaboration in our team where each member contributes their unique background to tackle exciting and challenging applications of generate-and-check. Let’s take a closer look at some of these.

Add a Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Advertisement