Encoding Peano Arithmetic in a Minimal Fragment of Separation Logic
This paper demonstrates that Peano arithmetic can be encoded into a minimal fragment of separation logic containing only the intuitionistic points-to predicate, zero, and the successor function, thereby proving the undecidability of validity in this fragment and showing that it can express complex properties like system consistency and non-termination.
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
Imagine you are trying to prove a math theorem, but you are only allowed to use a very specific, tiny set of tools. You can't use a calculator, you can't write long equations, and you can't even use the words "plus" or "times." You only have three tools:
- A pointer: A way to say "This box contains that number."
- Zero: The number 0.
- The "Next" button: A way to say "The number after this one."
You might think, "With such limited tools, I can't possibly solve complex math problems." You'd be right about solving them easily, but this paper proves something shocking: You can actually solve any problem that involves checking if a mathematical statement is always true, even with just these three tools.
Here is the story of how the authors, Sohei Ito and Makoto Tatsuta, pulled off this magic trick.
The Setup: The Memory Room
Think of Separation Logic as a way to describe a messy room full of boxes (memory). Usually, this logic is used by computer programmers to check if their code handles memory correctly without crashing.
The authors looked at the simplest version of this logic. They stripped away all the fancy features (like "separating conjunction," which is like saying "this part of the room is separate from that part"). They were left with just the ability to say: "Box A holds the value B."
Then, they added the numbers: 0 and Next (which turns 0 into 1, 1 into 2, etc.).
The Trick: Building a "Cheat Sheet" in the Room
The big question was: How do you do math like or if you don't have a plus sign or a multiplication sign?
The authors' solution was brilliant: Don't calculate the math; look it up.
Imagine you have a giant, infinite wall of boxes in your memory room. You decide to use this wall as a Cheat Sheet (or a lookup table).
- If you want to know , you don't add them. You go to the specific spot on the wall labeled "Addition," find the row for 2 and 3, and read the answer written there.
- If you want to know if , you go to the "Inequality" section of the wall and check if the answer is written there.
The authors proved that even though the logic is tiny, you can force the "memory room" to build this entire Cheat Sheet for you. The logic can say: "If the wall has a box that says 'Addition of 2 and 3 equals 5', then I accept that 2+3=5."
By building these tables inside the memory, the tiny logic can simulate Peano Arithmetic (the standard math we learn in school).
The Big Result: The "Undecidable" Puzzle
In computer science, there is a famous problem called the Halting Problem. It asks: "Can we write a program that looks at any other program and tells us if it will run forever or stop?" The answer is no. It is impossible to decide.
Because the authors showed that their tiny logic can simulate standard math, and because standard math contains the Halting Problem, they proved that it is impossible to decide if a statement in this tiny logic is true or false.
Even though the logic looks simple (like a child's toy), it is actually a "monster" hiding inside. It is powerful enough to encode any mathematical truth, which means no computer program can ever be built to check all of its answers automatically.
The Catch: It Only Works One Way
The paper also points out a funny limitation. This "Cheat Sheet" trick works perfectly for questions that start with "For all numbers..." (like "For all numbers, "). This is called a formula.
However, if you ask a question that starts with "There exists a number..." (like "There exists a number such that "), the trick breaks.
- Why? Because the Cheat Sheet in the memory room might be incomplete. If the memory room is small, it might not have the entry for your specific number. The logic might say, "Well, I don't have the answer in my book, so I'll just assume the statement is true."
- This means the logic is great at proving things are always true, but it gets confused when trying to prove that something exists.
The "Two-Proof" Strategy
The authors didn't just rely on one method. They used two different ways to prove their point, like showing a magic trick from two different angles:
- The Math Way: They built the translation from standard math into their tiny logic (the Cheat Sheet method).
- The Finite World Way: They showed that you can use this logic to simulate any finite structure (like a small map of connections). Since checking if something is true for all possible finite maps is already known to be impossible to decide, their logic must also be impossible to decide.
Why Should You Care?
This paper is important for two reasons:
- For Programmers: It sets a boundary. It tells us that if we want to build automated tools to check software bugs, we have to be very careful about how much math we let them use. Even a tiny bit of math combined with memory checking can make the problem impossible to solve automatically.
- For Logicians: It shows that "simplicity" is deceptive. You don't need a complex language to be powerful. Sometimes, the simplest tools, when combined in the right way, can do the most complex things.
In a nutshell: The authors took a tiny, simple logic tool, taught it how to build a giant lookup table in its memory, and proved that this simple tool is actually powerful enough to solve (or fail to solve) the hardest math problems in the universe.
Drowning in papers in your field?
Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.