← Latest papers
🤖 AI

Assuming You Knew: Fixing an Epistemic Semantics for Flow Policies Using Agentic AI

This paper presents a machine-checked correction of a 2018 framework for epistemic semantics of information flow policies, achieved with the assistance of an agentic AI coding assistant, to provide a robust and general foundation for specifying and enforcing expressive security requirements.

Original authors: David A. Naumann

Published 2026-08-04
📖 6 min read🧠 Deep dive

Original authors: David A. Naumann

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

The Secret Keepers and the Digital Whisper

Imagine a world where every computer program is a bustling city, and information is the currency flowing through its streets. In this city, some secrets are so valuable—like a master key or a password—that they must never leave a specific vault. This is the realm of information flow security, a branch of computer science dedicated to ensuring that sensitive data doesn't accidentally (or maliciously) leak out to the wrong eyes. But life isn't always black and white. Sometimes, a secret needs to be shared, but only under very specific conditions. Maybe a bank wants to tell a customer their account is safe, but only after they've answered a security question correctly. This tricky balancing act is called downgrading: taking a high-level secret and carefully lowering its protection level so it can be seen, but only when the rules say it's okay.

To make sense of these complex rules, scientists use a branch of logic called epistemic logic. Think of this as the "logic of knowledge." Instead of just asking "What happened?", it asks "What does the observer know?" If a hacker is watching the city, what can they deduce about the secrets in the vault based on the traffic they see? The challenge has always been writing a perfect rulebook that says exactly when a secret can be shared without creating a loophole. For years, researchers tried to build a mathematical framework for this, but the blueprints kept having cracks. If the math is wrong, the security is an illusion.

Fixing the Blueprint with a Robot Assistant

This paper tells the story of how a researcher, David Naumann, teamed up with an artificial intelligence coding assistant to fix a broken blueprint for these security rules. The original blueprint, published in 2018, was a clever attempt to define exactly when a program is allowed to "declassify" a secret. It used a concept called relational annotations, which are like sticky notes placed on the code saying, "It's okay to show this secret if the random coin flip landed on heads." The idea was that if two different runs of the program agreed on the coin flip, they could agree on showing the secret.

However, when the original paper was presented, the author realized there was a significant flaw in their proof. It was like building a bridge that looked sturdy but collapsed under a specific type of wind. The author had sketched a correction, but the details were messy and unverified. This paper takes that sketch and turns it into a solid, unshakeable structure.

The main finding here is a machine-checked proof. The author didn't just write the math on paper; they fed it into a computer program called Rocq (a proof assistant) that acts like a hyper-attentive math tutor. This robot tutor checked every single step of the logic to ensure there were no hidden gaps. The result is a corrected framework that proves: if a program follows a specific set of "safety" rules (which are easy to check while the program runs), then it is mathematically guaranteed to be secure according to the complex "knowledge" rules.

The paper explicitly rules out the idea that the original 2018 proof was correct as written. It shows that the previous definition of "release policy" (the rulebook for when secrets can be shared) was flawed because it didn't account for all the ways a program could get stuck or diverge. The author argues that you cannot simply trust a human's intuition on these complex multi-run scenarios; you need the machine to verify every possibility.

The Detective and the Alibi

To understand how this works, imagine a detective (the security system) trying to figure out if a suspect (the program) is leaking secrets. The detective has two tools: Safety and Security.

  • Security is the ultimate goal: "The suspect didn't tell anyone anything they weren't supposed to know." This is hard to prove because you have to imagine every possible scenario the suspect could have been in.
  • Safety is a simpler, local check: "Did the suspect follow the rules step-by-step as they went?"

The paper's big breakthrough is proving that Safety implies Security. If the program follows the "Safety" rules (which are like a checklist of "alibis" for every step), then the complex "Security" guarantee automatically holds true. It's like proving that if a driver never runs a red light or speeds (Safety), they will never cause a specific type of accident (Security).

The author used an agentic AI coding assistant (specifically a tool called Claude Code) to help write the code for the Rocq proof. This wasn't just a spell-checker; the AI helped translate the messy mathematical sketches into rigorous code and even found some of the author's own mistakes. For instance, the AI pointed out that a definition for "divergence" (when a program gets stuck in an infinite loop) was too strict and needed to be relaxed to make the proof work. The AI also attempted to "make assumptions stronger than necessary," but the human author caught it and corrected the course.

The Result: A Verified Rulebook

The paper concludes that the corrected framework is solid. The machine-checked proof confirms that the original idea was on the right track, but the details needed a major overhaul. The new framework allows for a "release policy" that is clearly defined and separate from the security check itself. This means developers can write their code with "assume" statements (like "assume the user is logged in") and have a mathematical guarantee that these assumptions correctly control what secrets are revealed.

The author is very sure about this result because it has been machine-checked. This isn't a simulation or a suggestion; it is a formal proof that the logic holds up under the scrutiny of a computer. They admit, however, that the code is currently a bit messy and needs human cleanup to be truly readable, much like a brilliant but scribbled-on napkin that needs to be transcribed into a clean book.

In the end, this paper is a victory for precision. It shows that even in the abstract world of computer security, where logic can get incredibly tangled, we can use both human insight and AI assistance to build a foundation that is mathematically unbreakable. It turns a shaky sketch into a verified fortress, ensuring that when we decide to share a secret, we do so exactly when we mean to, and not a moment before.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →