{"slug": "extending-concurrent-separation-logic-to-the-hardware-level-to-verify-the-xv6-os", "title": "Extending concurrent separation logic to the hardware level to verify the xv6 OS", "summary": "A paper submitted to arXiv on 3 September 2026 by Nickolai Zeldovich and co-authors presents MachCSL, a framework that adapts Iris-based concurrent separation logic to reason about RISC-V hardware execution at the sub-instruction level, and uses LLM-based agents to verify the xv6 OS kernel (6,657 lines of C and assembly code). The verification uncovered 11 bugs in the xv6 implementation, one bug in the Sail RISC-V semantics, and one bug in Sail's Lean extraction, and took 102 days including framework development. The authors also prove a console-level theorem covering the kernel and the init, sh, echo, cat, grep, sync, and seccomp binaries in the initial file system image.", "body_md": "# Computer Science > Logic in Computer Science\n\n  [Submitted on 3 Sep 2026 (\n\n[v1](https://arxiv.org/abs/2609.04043v1)), last revised 12 Oct 2026 (this version, v3)]\n# Title:Extending concurrent separation logic to the hardware level to verify the xv6 OS kernel on RISC-V with AI agents\n\n[View PDF](https://arxiv.org/pdf/2609.04043)\n\n[HTML (experimental)](https://arxiv.org/html/2609.04043v3)\n\nAbstract:MachCSL is a framework for verifying system software, such as an OS kernel, on top of low-level semantics of a RISC-V computer, based on the Sail RISC-V semantics. The key idea behind MachCSL is to adapt concurrent separation logic, based on Iris, to reasoning about low-level hardware execution at the sub-instruction level: page-table translation, TLB, privilege levels, configuration registers, instruction fetch/decode/execute, traps and interrupts, DMA, shared memory, power failures, etc. Reasoning at this level of detail ensures that the system software correctly manages all of the hardware details.\n\nVerifying software at this low level of abstraction is tedious, but LLM-based agents are capable of reasoning about such low-level details. As a case study, we verify the xv6 OS kernel (6,657 lines of C and assembly code), which provides a traditional Unix system call interface (processes, file system, file descriptors, and preemptive scheduling) and has substantial internal concurrency (multi-core support with fine-grained locking, shared memory, interrupts, DMA, etc.). In the verification process, we uncovered 11 bugs in the xv6 implementation, as well as one bug in the Sail RISC-V semantics, and one bug in Sail's Lean extraction. The verification effort took us 102 days, including the time to develop the MachCSL framework.\n\nOn top of the verified xv6 kernel, we prove a theorem about console-level behavior: e.g., if the user types echo hello world as input on the UART console, the only output the system can produce is hello world (if there are no crashes or other errors). This theorem covers both the kernel and the init, sh, echo, cat, grep, sync, and seccomp binaries in the initial file system image.\n\n## Submission history\n\nFrom: Nickolai Zeldovich [\n[view email](https://arxiv.org/show-email/a54cf0b4/2609.04043)]\n\n**Thu, 3 Sep 2026 16:17:47 UTC (100 KB)**\n\n[\\[v1\\]](https://arxiv.org/abs/2609.04043v1)\n**Sun, 20 Sep 2026 18:40:24 UTC (133 KB)**\n\n[\\[v2\\]](https://arxiv.org/abs/2609.04043v2)\n**[v3]** Mon, 12 Oct 2026 01:10:25 UTC (138 KB)\n\n### Additional Features\n\n### References & Citations\n\nLoading...\n\n# Bibliographic and Citation Tools\n\nBibliographic Explorer \n\n*(*[What is the Explorer?](https://info.arxiv.org/labs/showcase.html#arxiv-bibliographic-explorer))\nConnected Papers \n\n*(*[What is Connected Papers?](https://www.connectedpapers.com/about))\nLitmaps \n\n*(*[What is Litmaps?](https://www.litmaps.co/))\nscite Smart Citations \n\n*(*[What are Smart Citations?](https://www.scite.ai/))\n# Code, Data and Media Associated with this Article\n\nalphaXiv \n\n*(*[What is alphaXiv?](https://alphaxiv.org/))\nCatalyzeX Code Finder for Papers \n\n*(*[What is CatalyzeX?](https://www.catalyzex.com))\nDagsHub \n\n*(*[What is DagsHub?](https://dagshub.com/))\nGotit.pub \n\n*(*[What is GotitPub?](http://gotit.pub/faq))\nHugging Face \n\n*(*[What is Huggingface?](https://huggingface.co/huggingface))\nScienceCast \n\n*(*[What is ScienceCast?](https://sciencecast.org/welcome))\n# Demos\n\n# Recommenders and Search Tools\n\nInfluence Flower \n\n*(*[What are Influence Flowers?](https://influencemap.cmlab.dev/))\nCORE Recommender \n\n*(*[What is CORE?](https://core.ac.uk/services/recommender))\n# arXivLabs: experimental projects with community collaborators\n\narXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.\n\nBoth individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.\n\nHave an idea for a project that will add value for arXiv's community? [**Learn more about arXivLabs**](https://info.arxiv.org/labs/index.html).", "url": "https://wpnews.pro/news/extending-concurrent-separation-logic-to-the-hardware-level-to-verify-the-xv6-os", "canonical_source": "https://arxiv.org/abs/2609.04043", "published_at": "2026-11-12 07:30:43+00:00", "updated_at": "2026-11-12 07:52:57.409362+00:00", "lang": "en", "topics": ["ai-agents", "ai-research", "artificial-intelligence"], "entities": ["MachCSL", "xv6", "RISC-V", "Sail", "Iris", "Nickolai Zeldovich", "arXiv", "Lean"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/extending-concurrent-separation-logic-to-the-hardware-level-to-verify-the-xv6-os", "markdown": "https://wpnews.pro/news/extending-concurrent-separation-logic-to-the-hardware-level-to-verify-the-xv6-os.md", "text": "https://wpnews.pro/news/extending-concurrent-separation-logic-to-the-hardware-level-to-verify-the-xv6-os.txt", "jsonld": "https://wpnews.pro/news/extending-concurrent-separation-logic-to-the-hardware-level-to-verify-the-xv6-os.jsonld"}}