PIPages
Labs

Yuyan Bao

Augusta University, GA·Computer Science

Software now steers cars and runs medical devices, so a single bug can injure someone. One way to rule bugs out is deductive verification: instead of testing a program on examples, you write down mathematical statements about what it should do and have a tool prove the program always satisfies them.

Fields

Computer Science

Mathematics & Statistics

Topics

formal verification

deductive verification

program verification

Grants
1 known grant, through Apr 2027

What they work on

  1. Develop verification methodologies for reasoning about function values — functions handled as data — in industrial programming languages, using first-order assertions and auxiliary logical variables suited to automated reasoning.
  2. Formulate reasoning rules for common programming patterns that interleave program statements with specifications, so these patterns can be handled by Satisfiability Modulo Theories (SMT) solvers, the engines underlying automatic verifiers.
  3. Use the resulting theory to build specification synthesis techniques that generate annotations automatically, cutting the manual annotation overhead that currently requires deep formal-methods expertise.
  4. Implement the methodologies in a prototype automatic deductive program verifier, released open source and used as a tool in graduate and undergraduate curriculum development.

More about the research

The catch is that the proofs are done automatically only when the properties are expressed in a form the underlying prover can handle, and the programmer must write a lot of these statements, called annotations, by hand. Modern industrial programming languages also contain features that today's verification tools simply cannot reason about.

Why it matters

Safety- and security-critical software, from self-driving cars to digital medical devices, is growing faster than the ability to prove it correct. Reducing the manual annotation burden and supporting language features current tools cannot handle could make mathematical verification practical for working developers rather than specialists, improving software quality, safety and security.

Known grants

From NIH and NSF research grants. Labs often have other funding we can't see.

CRII: SHF: Theoretical Foundations of Verifying Function Values and Reducing Annotation Overhead in Automatic Deductive Verification

NSF · May 2024 – Apr 2027

Closest labs

Andrew Hirsch

University at Buffalo, NY·Computer Science

Develop open choreographies, choreographic programs whose co-designed components can communicate safely with independently written, off-the-shelf software.

Xiaokang Qiu

Purdue University, IN·Computer Science·Early-career

Develop program synthesis algorithms that infer objective functions, library models and task decomposition themselves, so programmers need not hand-craft them, enabling scalable library-based synthesis.

Binoy Ravindran

Virginia Polytechnic Institute and State University, VA·Computer Science

Develop methods that lift binary code into a provably over-approximate high-level model, one that captures both intended and unintended program behavior, for reasoning about exploitable flaws.

The school

Augusta University: 11 labs on PI Pages, $166M a year on research, 37 research doctorates a year.

More about Augusta University

Reach out

A start for your email. Fill in the brackets.