How to integrate formal proofs into software development

ICSE paper presents techniques piloted by Amazon Web Services’ Automated Reasoning team.

Formal verification is the process of using automatic proof procedures to establish that a computer program will do what it’s supposed to. Given a mathematical specification of how a function is supposed to behave, and some assumptions about the environment where the code executes (e.g., how the operating system behaves and which inputs are reasonable), formal verification determines whether the code as written will ever, with any input that meets the assumptions, violate the specification.

Formal verification is known to produce more secure and less buggy code, but it’s rarely used on large commercial software projects. Developers working on deadline lack time to write careful function specifications — if they’re even familiar with the formal languages typically used for them. Verification teams, conversely, lack familiarity with the software under development; learning how every function in a commercial-scale program is supposed to behave can be prohibitively time consuming.

Embedded verification code.png
An example of how developers might embed function specifications in their code.

On the Amazon Web Services’ Automated Reasoning team, we’ve piloted several projects on integrating formal verification into the software development process. Some involve verification at the protocol level; some involve generating code directly from a verified specification; and some involve verification at the code level itself.

In a paper we’ll present at the International Conference on Software Engineering — which was to be held this week but has been postponed until July — we describe lessons learned from one of the code-level verification projects, which involved a large development initiative in 2019.

In the paper, we report that, thanks to our methodology, the number of verified lines of code, bugs found and fixed, verification “contracts” introduced by developers, and working code (i.e., non-proof code) contributed by the verification team all increased precipitously in the first eight months of the project.

Lines proven.png
Thousands of lines of code verified over the first eight months of a large AWS development project. The graph flatline indicates that we hit our target for this experiment.

Our method has six key components:

1. Function specification in a familiar programming language.

Writing function specifications typically requires a special-purpose formal language that can capture all of the logical relationships that might govern a function’s execution. With our method, both the verification team and the developer team instead specify functions in the language in which the code is being written — in this case, C. This approach sacrifices some expressive power: there are some logical relationships that C cannot capture. But we have found that ease of adoption more than makes up for the loss of expressivity.

2. Declarative function specification.

Most familiar programming languages — such as C — are imperative, meaning they describe functions as sequences of operations. For function specification, however, declarative syntax is more intuitive. For instance, the developer should be able to say (in slightly more formal terms), “This function doubles each value in an array”, rather than having to write out the procedure for stepping through the array and doubling values individually. With our method, the verification team provides a library of functions that enables developers to write such declarative specifications in a familiar imperative language.

3. Code-embedded specifications.

Most program functions are written as self-contained blocks of code. With our method, we allow the developer to write a function specification as a set of preconditions that precede each such block — which function inputs are invalid, for instance — and a set of postconditions after each such block — that an array has adequate memory allocated to it, for instance (see sample code, above). Usually, a developer writing a function is thinking through such operational parameters, anyway, so adding the specification is not a huge burden.

4. A proof model that uses a familiar “unit test” syntax.

Many developers are already familiar with writing “unit tests” for their code. Inserted into the code for a specific program function, the unit test cycles through a sequence of inputs to determine whether any cause errors. Our proof method uses a very similar syntax, except that, rather than a sequence of concrete inputs, it specifies a range of possible inputs. Such test code can automatically be converted into the type of mathematical expression that automated provers are designed to evaluate.

Bugs found.png
Number of bugs found over the first eight months of the project.

5. Bug repair.

The great advantage of formal verification is that it not only identifies bugs but indicates how to fix them, by pinpointing exactly which lines of code lead to violation of the function specification. We have found that one of the most effective means of selling developers on the utility of formal verification is for the verification team to not only identify bugs but provide code patches for them.

6. Continuous integration.

On large software projects, code is constantly being revised. As part of our method, we provide a back-end system that automatically re-runs the prover on new code as soon as it’s checked in to a repository, providing immediate feedback on whether the revision does or does not violate function specifications.

Continuous integration.png
The interface for our continuous-integration engine, indicating newly checked-in code that does (x’s) or does not (check marks) violate existing function specifications.

In the paper, we report the application of our methodology during development work on the AWS C Common Library, an open-source repository of functions used by several other AWS libraries, including widely used AWS software development kits.

Using our methodology, one full-time verification engineer and two interns, working together with the development team, were able to specify and verify (with some assumptions) 171 entry points (points in the program where the user can input data) over nine key modules of the library.

In ongoing work, we are expanding not only the code base to which we apply our methodology but also the range of functionality that our method can verify automatically. We are also evaluating best practices for long-term maintenance of provable code and for bringing new developers up to speed on existing provable code bases.

Related content

US, WA, Redmond
Amazon Leo is Amazon’s low Earth orbit satellite broadband network. Its mission is to deliver fast, reliable internet to customers and communities around the world, and we’ve designed the system with the capacity, flexibility, and performance to serve a wide range of customers, from individual households to schools, hospitals, businesses, government agencies, and other organizations operating in locations without reliable connectivity. Export Control Requirement: Due to applicable export control laws and regulations, candidates must be a U.S. citizen or national, U.S. permanent resident (i.e., current Green Card holder), or lawfully admitted into the U.S. as a refugee or granted asylum. We are looking for an experienced Data Scientist to help architect state-of-the-art test infrastructure and lead the development of data models and analysis tools to represent the ground truth about satellite test results in order to facilitate important business decisions. Our team is responsible for core infrastructure and tools that will serve as the backbone of automated satellite testing operations to enable rapid scaling of manufacturing processes. Key job responsibilities * Work with engineering, software and manufacturing teams to understand drivers, impacts, and key influences on satellite performance * Lead the design, build and implementation of production models and make decisions in real time for satellite test results * Drive actions at scale to optimize test methodology and drive increases to satellite reliability * Analysis and modeling of satellite telemetry from test results in lab and on-orbit * Develop models and data pipelines for satellite telemetry * Create and manage datasets for continued pre-training and supervised fine-tuning of LLMs * Develop scalable visualizations for analysis of satellite performance A day in the life As Amazon Leo Data Scientist you will own the architecture definition and development of data analysis tools to to aid engineering and production teams in deciding flight-worthiness of each Amazon Leo satellite and historical traceability tools to enable simplified discovery and interpretation of past test data. You will work with multiple engineering, software and manufacturing teams across ground and space systems, to specify requirements, define data collection, interpretation strategies, data pipelines and implement data analysis and reporting tools for Integrated Vehicle tests. Your focus will be in optimizing the analysis of test results to enable Amazon Leo production plans. About the team The Automated Vehicle Testing Team is a mix of scientists and software engineers responsible for data infrastructure, tools, and research that serve as the backbone of automated satellite testing operations to enable rapid scaling of manufacturing processes.
CN, 31, Shanghai
Worldwide Global Selling has been helping individuals and businesses increase sales and reach new customers around the globe. Today, more than 50% of Amazon's total unit sales come from third-party selection. The Global Selling team in China is responsible for recruiting local businesses to sell on Amazon's 19+ overseas marketplaces and supporting local Sellers' success and growth on Amazon. Our vision is to be the first choice for all types of Chinese business to go globally. The Worldwide Global Selling Analytics, Intelligence, and Technology (WWGS-AIT) team serves as the research, automation, and insight arm of the International Seller Service data hub, enabling rapid delivery of growth insights through strategic investments in regional data foundations, self-service business intelligence solutions, and artificial intelligence tools. The WWGS-AIT team is positioned to establish AI-ready foundational capabilities across the WWGS organization while maintaining excellence in business insight generation, and self-service BI/AI application development. WWGS-AIT is looking for a Data Scientist to design and build seller-facing AI agents that turn our AI-ready data foundation into intelligent, conversational experiences for Amazon's global sellers. You will own the intelligence layer of these agents end-to-end, from modeling and retrieval to evaluation and launch, working alongside applied scientists, data engineers, and the Seller Assistant platform team to put trustworthy AI directly into sellers' hands. Key job responsibilities - Design, build, and iterate seller-facing AI agents (LLM-powered) that help Chinese sellers grow globally, reasoning over WWGS-AIT's AI-ready data foundation and knowledge base. - Develop the intelligence layer of agents: retrieval-augmented generation (RAG) over our knowledge management system, tool-use / function-calling orchestration, prompt engineering, and model fine-tuning or adaptation where needed. - Ground agent responses in standardized metrics and unified seller profiles to guarantee consistency and accuracy across agents; design and enforce guardrails that prevent hallucination and protect sensitive, compliance-restricted data. - Build rigorous evaluation frameworks (golden datasets, offline evaluation, and online experimentation) to measure and continuously improve agent quality, safety, and seller impact. - Develop seller-intelligence models (segmentation, entity resolution / One-ID, ranking and recommendation) that power personalized agent experiences. - Partner with WWGS Tech and the Seller Assistant platform team to productionize agents and tools (e.g., via MCP), defining the model and intelligence contract while engineering operates the runtime. - Collaborate with business, product, and cross-functional partners to translate seller pain points into agent capabilities and measurable business outcomes. - Stay current with advances in GenAI and agentic systems, and bring applied research into production.
US, WA, Redmond
At Amazon, we’re inventing on behalf of customers, and with Amazon Leo, we’re redefining what global connectivity looks like. Our mission is to deliver fast, affordable broadband to unserved and underserved communities around the world through a constellation of low Earth orbit (LEO) satellites. Every system we build helps connect people to education, healthcare, opportunity, and each other. As a Data Scientist, you will be responsible for developing advanced analytics and machine learning solutions for user terminals. You will develop predictive models to proactively identify possible user terminal failures in the field. You will work in a collaborative environment with a multi-disciplinary team, including constellation, RF, antenna, silicon, algorithm, and software engineers. Key job responsibilities As a Data Scientist, you will develop analytic tools for a team developing current and future user terminals. Your responsibilities include: • Develop statistical and analytical tool to enable the regression decision from on-orbit and lab measurement of user terminals • Publish documents and create compelling visualizations and presentations to communicate insights to stakeholders • Create and manage datasets for continued pre-training and supervised fine-tuning of LLMs • Develop scalable visualizations for analysis of user terminal performance • Work closely with constellation, RF, antenna, silicon, algorithm, and software engineers to root-cause the failures using data as the primary tool • Drive consensus on metrics and analysis approaches to support product development strategy Export Control Requirement: Due to applicable export control laws and regulations, candidates must be a U.S. citizen or national, U.S. permanent resident (i.e., current Green Card holder), or lawfully admitted into the U.S. as a refugee or granted asylum. A day in the life As a Data Scientist in the LEO Customer Terminal Team, you will work daily with satellite constellation, algorithm, RF, antenna, silicon, hardware, and software teams in a collaborative environment. Your focus will be using data as an intelligence source to enable design decisions for the team. About the team The LEO Customer Terminal team is responsible for developing both outdoor and indoor devices that enable customers to access internet service via the LEO satellite network. We own the entire process from early prototypes through mass production, including requirements documentation, architecture definition, hardware development, algorithm development, and all integration and verification testing.
US, WA, Seattle
Amazon Web Services (AWS) is looking for a sr. Manager, Applied to join the Quick Science team. Quick is AWS’s enterprise generative AI assistant that helps users answer questions, summarize documents, generate content, take actions, and automate workflows using information across enterprise systems. As a key member of this team, you will lead research and development efforts in generative AI and Agentic AI to enable intelligent agents that perform complex reasoning, automate multi-step workflows, and make enterprise users significantly more productive. Key job responsibilities You’ll work on building and optimizing multi-modal foundation models, training and fine-tuning state-of-the-art LLMs, and architecting systems that scale efficiently across domains. This role blends science leadership, development of applied scientists, innovation, and deep collaboration with engineering teams to bring research into production.
US, NY, New York
MULTIPLE POSITIONS AVAILABLE Employer: AMAZON.COM SERVICES LLC Offered Position: Research Scientist II Job Location: New York, New York Job Number: AMZ9898222 Position Responsibilities: Interact with various software and business groups to develop an understanding of their business requirements and operational processes. Utilize acquired knowledge and business judgment to build scalable machine learning systems, optimization models and operational tools to improve the bottom line. Build quantitative mathematical models to represent a wide range of supply chain, transportation and logistics systems. Implement these models and tools using modeling languages and engineering code in software languages such as Python, C++, or JAVA. Gather required data for analysis and mathematical model building by writing ad-hoc scripts and database queries. Perform quantitative, economic, and numerical performance analyses of these systems under uncertainty using statistical and optimization tools. Create computer simulations to support operational decision-making. Identify areas with potential for improvement and work with internal teams to generate requirements to realize improvements. Design optimal or near optimal solution methodologies to be used by in-house decision support tools and software. Create software prototypes to verify and validate the devised solutions methodologies. Integrate prototypes into production systems using standard software development tools and methodologies. Position Requirements: Master's degree or foreign equivalent degree in Operations Research, Computer Science, Engineering, Mathematics, or a related field and one year of research or work experience in the job offered, or as a Research Scientist, Research Assistant, Software Engineer, or a related occupation. Employer will accept a Bachelor's degree or foreign equivalent degree in Operations Research, Computer Science, Engineering, Mathematics, or a related field and five years of progressive post-baccalaureate research or work experience in the job offered or a related occupation as equivalent to the Master's degree and one year of experience. Must have one year of research or work experience in the following skill(s): (1) programming with a major programming language including Java, C++, C#, C, or Python; and (2) formulating and solving both discrete and continuous optimization problems. Amazon.com is an Equal Opportunity-Affirmative Action Employer – Minority / Female / Disability / Veteran / Gender Identity / Sexual Orientation. 40 hours / week, 8:00am-5:00pm, Salary Range $158,440/year to $212,800/year. Amazon is a total compensation company. Dependent on the position offered, equity, sign-on payments, and other forms of compensation may be provided as part of a total compensation package, in addition to a full range of medical, financial, and/or other benefits. For more information, visit: https://www.aboutamazon.com/workplace/employee-benefits.#0000
IN, TN, Chennai
As a member of the CMT team, you'll play a key role in the evolution of our Competitive Monitoring systems to solve significantly complex and interesting technical challenges in machine learning, large language models in production, and recommender systems to name a few. The team's work directly impacts customer experience at a worldwide scale. Key job responsibilities Key job responsibilities 1. Research the problem domain and come up with various approaches to solve the problem. 2. Be willing to experiment quickly and fail fast. 3. Collaborate with engineers to come up with the right end to end solution to the business problems. 4. Ideate on future roadmap for science in CMT 5. Be willing to roll up your sleeves and learn core topics outside applied science, for example ML engineering A day in the life A typical day might involve (a) working on ideas for improving models around product similarity or price recommendations, (b) working closely with other scientists and our ML engineers to ensure that the best models are in production, (c) writing good maintainable code that can be reused and reproduced, (d) sharing your work across CMT and beyond via technical writings and presentations
US, CA, Sunnyvale
Prime Video is a first-stop entertainment destination offering customers a vast collection of premium programming in one app available across thousands of devices. Prime members can customize their viewing experience and find their favorite movies, series, documentaries, and live sports – including Amazon MGM Studios-produced series and movies; licensed fan favorites; and programming from Prime Video add-on subscriptions such as Apple TV+, Max, Crunchyroll and MGM+. All customers, regardless of whether they have a Prime membership or not, can rent or buy titles via the Prime Video Store, and can enjoy even more content for free with ads. Are you interested in shaping the future of entertainment? Prime Video's technology teams are creating best-in-class digital video experience. As a Prime Video technologist, you’ll have end-to-end ownership of the product, user experience, design, and technology required to deliver state-of-the-art experiences for our customers. You’ll get to work on projects that are fast-paced, challenging, and varied. You’ll also be able to experiment with new possibilities, take risks, and collaborate with remarkable people. We’ll look for you to bring your diverse perspectives, ideas, and skill-sets to make Prime Video even better for our customers. With global opportunities for talented technologists, you can decide where a career Prime Video Tech takes you! Key job responsibilities - Develop ML models for various recommendation & search systems using deep learning, online learning, and optimization methods - Work closely with other scientists, engineers and product managers to expand the depth of our product insights with data, create a variety of experiments to determine the high impact projects to include in planning roadmaps - Stay up-to-date with advancements and the latest modeling techniques in the field - Publish your research findings in top conferences and journals A day in the life We're using advanced approaches such as foundation models to connect information about our videos and customers from a variety of information sources, acquiring and processing data sets on a scale that only a few companies in the world can match. This will enable us to recommend titles effectively, even when we don't have a large behavioral signal (to tackle the cold-start title problem). It will also allow us to find our customer's niche interests, helping them discover groups of titles that they didn't even know existed. We are looking for creative & customer obsessed machine learning scientists who can apply the latest research, state of the art algorithms and ML to build highly scalable page personalization solutions. You'll be a research leader in the space and a hands-on ML practitioner, guiding and collaborating with talented teams of engineers and scientists and senior leaders in the Prime Video organization. You will also have the opportunity to publish your research at internal and external conferences.
US, CA, Sunnyvale
Prime Video is a first-stop entertainment destination offering customers a vast collection of premium programming in one app available across thousands of devices. Prime members can customize their viewing experience and find their favorite movies, series, documentaries, and live sports – including Amazon MGM Studios-produced series and movies; licensed fan favorites; and programming from Prime Video add-on subscriptions such as Apple TV+, Max, Crunchyroll and MGM+. All customers, regardless of whether they have a Prime membership or not, can rent or buy titles via the Prime Video Store, and can enjoy even more content for free with ads. Are you interested in shaping the future of entertainment? Prime Video's technology teams are creating best-in-class digital video experience. As a Prime Video technologist, you’ll have end-to-end ownership of the product, user experience, design, and technology required to deliver state-of-the-art experiences for our customers. You’ll get to work on projects that are fast-paced, challenging, and varied. You’ll also be able to experiment with new possibilities, take risks, and collaborate with remarkable people. We’ll look for you to bring your diverse perspectives, ideas, and skill-sets to make Prime Video even better for our customers. With global opportunities for talented technologists, you can decide where a career Prime Video Tech takes you! We are looking for a self-motivated, passionate and resourceful Applied Scientist to bring diverse perspectives, ideas, and skill-sets to make Prime Video even better for our customers. You will spend your time as a hands-on machine learning practitioner and a research leader. You will play a key role on the team, building and guiding machine learning models from the ground up. At the end of the day, you will have the reward of seeing your contributions benefit millions of Amazon.com customers worldwide. Key job responsibilities - Develop AI solutions for various Prime Video Search systems using Deep learning, GenAI, Reinforcement Learning, and optimization methods; - Work closely with engineers and product managers to design, implement and launch AI solutions end-to-end; - Design and conduct offline and online (A/B) experiments to evaluate proposed solutions based on in-depth data analyses; - Effectively communicate technical and non-technical ideas with teammates and stakeholders; - Stay up-to-date with advancements and the latest modeling techniques in the field; - Publish your research findings in top conferences and journals. About the team Prime Video Search Science team owns science solution to power search experience on various devices, from sourcing, relevance, ranking, to name a few. We work closely with the engineering teams to launch our solutions in production.
US, WA, Seattle
Prime Video is a first-stop entertainment destination offering customers a vast collection of premium programming in one app available across thousands of devices. Prime members can customize their viewing experience and find their favorite movies, series, documentaries, and live sports – including Amazon MGM Studios-produced series and movies; licensed fan favorites; and programming from Prime Video subscriptions such as Apple TV+, HBO Max, Peacock, Crunchyroll and MGM+. All customers, regardless of whether they have a Prime membership or not, can rent or buy titles via the Prime Video Store, and can enjoy even more content for free with ads. Are you interested in shaping the future of entertainment? Prime Video's technology teams are creating best-in-class digital video experience. As a Prime Video team member, you’ll have end-to-end ownership of the product, user experience, design, and technology required to deliver state-of-the-art experiences for our customers. You’ll get to work on projects that are fast-paced, challenging, and varied. You’ll also be able to experiment with new possibilities, take risks, and collaborate with remarkable people. We’ll look for you to bring your diverse perspectives, ideas, and skill-sets to make Prime Video even better for our customers. With global opportunities for talented technologists, you can decide where a career Prime Video Tech takes you! Key job responsibilities As a highly experienced science leader in speech and audio processing, you will apply state-of-the-art research in automatic speech recognition, voice synthesis, speech translation, and prosody modeling to make content sound great in every language, powering features like Dialogue Boost, AI-Assisted Dubbing, and Automated Audio Descriptions. You will lead the research direction for a team of deeply talented applied scientists working at the intersection of speech AI and accessibility, defining roadmaps that advance our capabilities in dialogue enhancement, hybrid AI-human dubbing pipelines, and dialect adaptation at scale. You will communicate these roadmaps effectively to senior leadership, connecting technical breakthroughs to customer impact. About the team The Prime Video - Content Reasoning, Enrichment & Localization Team's mission is to deeply understand all content and empower all customers with relevant language options, innovative accessibility assists, and rich title-information across all their content-experiences on Prime Video. We create and publish content on-time that's meaningful, accurate, and accessible to every customer globally. We delight our customers by pushing the boundaries of content understanding and enrichment. Through inclusion and innovation, we do the most fulfilling work of our career.
JP, 13, Tokyo
Do you want to see your research directly impact how millions of customers discover, browse, and purchase products on Amazon — across Japan and the globe? Amazon's Japan Store Tech team owns the science and technology behind cross-border shopping — product discovery, search relevance, personalization, and content experiences spanning dozens of marketplaces. We tackle problems at massive scale: multi-language signals, multi-marketplace data, and region-specific customer behaviors, all served at low latency to millions of daily shoppers. We're looking for current Bachelor or Master students with a passion for applied science and machine learning to join us as an Applied Scientist in 2028 to shape the future of customer experiences at scale. For this position, our Japan Store Tech team is looking for students with a specialization in one or more of the following research areas: machine learning, deep learning, natural language processing (NLP), information retrieval, recommender systems, computer vision, large language models (LLMs), generative AI, causal inference, experimentation and A/B testing, optimization, and more! As an Applied Scientist Intern, you'll develop novel models and algorithms, design and run experiments on live traffic, and own meaningful science contributions end-to-end. You'll also leverage and contribute to GenAI/LLM systems that power both customer-facing experiences and internal development tools. If you want to kickstart your science career at global scale — solving real customer problems alongside talented scientists and engineers in a collaborative, international environment — this is the place to start. Key job responsibilities - Collaborate and communicate effectively with experienced cross-disciplinary Amazonians to design, develop, and deploy innovative machine learning models and scientific solutions that delight our customers, while participating in technical discussions to drive solutions forward. - Develop and implement scalable machine learning models and algorithms to improve product discovery, search relevance, personalization, or other customer-facing experiences. - Design and conduct experiments (offline and online) to validate hypotheses and measure the impact of proposed solutions. - Analyze large-scale datasets to identify patterns, generate insights, and inform model design decisions. - Leverage and contribute to the development of GenAI and LLM-powered tools to enhance customer experiences and development productivity while staying current with emerging technologies. - Write clean, maintainable, production-quality code following best practices. - Communicate research findings effectively through documentation, presentations, and technical papers. - Work in an agile environment and collaborate closely with software engineers to bring science solutions from prototype to production.