2026
- Lazy Proof Automation for Separation LogicValentin Mikhalchuk, Vladimir Gladshtein, and Ilya SergeyITP 2026. LIPIcs, Schloss Dagstuhl.
- Velvet: A Foundational Multi-Modal Verifier for Imperative Programs in LeanVladimir Gladshtein, Vitaly Kurin, Yueyang Feng, Dipesh Kafle, George Pîrlea, Qiyuan Zhao, and Ilya SergeyCAV 2026. Springer.
- Grammar Repair with Examples and Tree AutomataYunjeong Lee, Gokul Rajiv, and Ilya SergeyProc. ACM Program. Lang. 2026. (OOPSLA), ACM.
- Foundational Multi-Modal Program VerifiersProc. ACM Program. Lang. 2026. (POPL), ACM.
- Velvet: A Multi-Modal Verifier for Effectful ProgramsDafny Workshop 2026. Workshop paper; superseded by the CAV’26 paper.
- Lessons from Building an Auto-Active Verifier in LeanDafny Workshop 2026. Workshop paper.
2025
- Beluga: Block Synchronization for BFT Consensus ProtocolsJianting Zhang, Lefteris Kokoris-Kogias, Tasos Kichidis, Arun Koshy, Mingwei Tian, Ilya Sergey, and Alberto Sonnino2025. Unpublished draft.
- Inductive First-Order Formula Synthesis by ASP: a Case Study in Invariant InferenceZiyi Yang, George Pîrlea, and Ilya SergeyICLP 2025. EPTCS.
- Veil: A Framework for Automated and Interactive Verification of Transition SystemsCAV 2025. Springer.
- Accelerating Automated Program Verifiers by Automatic Proof LocalizationKiran Gopinathan, Dionysios Spiliopoulos, Vikram Goyal, Peter Müller, Markus Püschel, and Ilya SergeyCAV 2025. Springer.
- Sound and Efficient Generation of Data-Oriented Exploits via Programming Language SynthesisUSENIX Security Symposium 2025. USENIX Association.
2024
- Concurrent Data Structures Made EasyProc. ACM Program. Lang. 2024. (OOPSLA), ACM.
- DSLs in Racket: You Want It How, Now?SLE 2024. ACM.
- Compositional Verification of Composite Byzantine Protocols31st ACM Conference on Computer and Communications Security (CCS’24) 2024. ACM.
- Higher-Order Specifications for Deductive Synthesis of Programs with PointersECOOP 2024. LIPIcs, Schloss Dagstuhl.
- Mechanised Hypersafety Proofs about Structured DataProc. ACM Program. Lang. 2024. (PLDI), ACM.
- Small Scale Reflection for the Working Lean UserVladimir Gladshtein, George Pîrlea, and Ilya Sergey2024. Unpublished draft.
- Rooting for Efficiency: Mechanised Reasoning about Array-Based Trees in Separation LogicCPP 2024. ACM.Distinguished Paper Award
2023
- Greybox Fuzzing of Distributed Systems30th ACM Conference on Computer and Communications Security (CCS’23) 2023. ACM.
- Adventure of a Lifetime: Extract Method Refactoring for RustProc. ACM Program. Lang. 2023. (OOPSLA), ACM.
- Mostly Automated Proof Repair for Verified LibrariesKiran Gopinathan, Mayank Keoliya, and Ilya SergeyProc. ACM Program. Lang. 2023. (PLDI), ACM.ACM SIGPLAN Distinguished Paper Award
- Leveraging Rust Types for Program SynthesisProc. ACM Program. Lang. 2023. (PLDI), ACM.Distinguished Artifact Award
- Unifying Formal Methods for Trustworthy Distributed Systems (Dagstuhl Seminar 23112)Dagstuhl Reports 2023. Vol. 13, (3), Pages 32–48.
- Hippodrome: Data Race Repair using Static Analysis SummariesACM Trans. Softw. Eng. Methodol. 2023. Vol. 32, (2), ACM.
2022
- Random Testing of a Higher-Order Blockchain Language (Experience Report)Proc. ACM Program. Lang. 2022. (ICFP), ACM.
- Towards Optimising Certified Programs by Proof RewritingKiran Gopinathan, and Ilya SergeyEGRAPHS 2022. Informal Proceedings.
2021
- Certifying the Synthesis of Heap-Manipulating ProgramsProc. ACM Program. Lang. 2021. (ICFP), ACM.
- The Next 700 Smart Contract LanguagesIlya SergeyPrinciples of Blockchain Systems 2021. Morgan & Claypool. Author’s version.
- Deductive Synthesis of Programs with Pointers: Techniques, Challenges, Opportunities (Invited Paper)CAV 2021. LNCS, Vol. 12759, Springer.
- Cyclic Program SynthesisPLDI 2021. ACM.ACM SIGPLAN Distinguished Paper Award
- Practical Smart Contract Sharding with Ownership and Commutativity AnalysisGeorge Pîrlea, Amrit Kumar, and Ilya SergeyPLDI 2021. ACM.
- Automated Repair of Heap-Manipulating Programs Using Deductive SynthesisVMCAI 2021. LNCS, Vol. 12597, Springer.
- Protocol Combinators for Modeling, Testing, and Execution of Distributed SystemsKristoffer Just Arndal Andersen, and Ilya SergeyJ. Funct. Program. 2021. Vol. 31, Cambridge University Press.
2020
- Compiling a Higher-Order Smart Contract Language to LLVMCoRR 2020. Accepted to 2020 Virtual LLVM Developers Meeting.
- Concise Read-Only Specifications for Better Synthesis of Programs with PointersESOP 2020. LNCS, Vol. 12075, Springer.
2019
- QED at Large: A Survey of Engineering of Formally Verified SoftwareFound. Trends Program. Lang. 2019. Vol. 5, (2-3), now Publishers.
- Safer Smart Contract Programming with ScillaProc. ACM Program. Lang. 2019. (OOPSLA), ACM.Distinguished Artifact Award
- Exploiting the laws of order in smart contractsISSTA 2019. ACM.
- Running on Fumes - Preventing Out-of-Gas Vulnerabilities in Ethereum Smart Contracts Using Static Resource AnalysisVECoS 2019. LNCS, Vol. 11847, Springer.
- Engineering Distributed Systems that We Can Trust (and Also Run)Ilya SergeyPODC 2019. ACM. Invited Talk.
- Distributed Protocol CombinatorsKristoffer Just Arndal Andersen, and Ilya SergeyPADL 2019. LNCS, Vol. 11372, Springer.
- A True Positives Theorem for a Static Race DetectorNikos Gorogiannis, Peter W. O’Hearn, and Ilya SergeyProc. ACM Program. Lang. 2019. (POPL), ACM.
- Towards Mechanising Probabilistic Properties of a BlockchainKiran Gopinathan, and Ilya SergeyCoqPL 2019. Informal Proceedings.
2018
- Finding The Greedy, Prodigal, and Suicidal Contracts at ScaleACSAC 2018. ACM.
- RacerD: compositional static race detectionProc. ACM Program. Lang. 2018. (OOPSLA), ACM.
- Paxos Consensus, Deconstructed and AbstractedESOP 2018. LNCS, Vol. 10801, Springer.
- Temporal Properties of Smart ContractsIlya Sergey, Amrit Kumar, and Aquinas HoborISoLA 2018. LNCS, Vol. 11247, Springer.
-
- Programming and Proving with Distributed ProtocolsIlya Sergey, James R. Wilcox, and Zachary TatlockProc. ACM Program. Lang. 2018. (POPL), ACM.
- Scilla: a Smart Contract Intermediate-Level LAnguageIlya Sergey, Amrit Kumar, and Aquinas HoborCoRR 2018. Vol. abs/1801.00687, Technical Report.
- Automatic Inference of Gas Bounds for Smart Contracts on the Ethereum Blockchain2018. Unpublished draft.
2017
- Modular, higher order cardinality analysis in theory and practiceJ. Funct. Program. 2017. Vol. 27, Cambridge University Press.
- Concurrent Data Structures Linked in TimeECOOP 2017. LIPIcs, Vol. 74, Schloss Dagstuhl.
- A Concurrent Perspective on Smart ContractsIlya Sergey, and Aquinas Hobor1st Workshop on Trusted Smart Contracts 2017. LNCS, Vol. 10323, Springer.
- Programming Language Abstractions for Modularly Verified Distributed SystemsJames R. Wilcox, Ilya Sergey, and Zachary TatlockSNAPL 2017. LIPIcs, Vol. 71, Schloss Dagstuhl.
2016
- Hoare-Style Specifications as Correctness Conditions for Non-Linearizable Concurrent ObjectsOOPSLA 2016. ACM.
- Operational Aspects of C/C++ ConcurrencyAnton Podkopaev, Ilya Sergey, and Aleksandar NanevskiCoRR 2016. Vol. abs/1606.01400, Working Draft.
2015
- Mechanized Verification of Fine-Grained Concurrent ProgramsIlya Sergey, Aleksandar Nanevski, and Anindya BanerjeePLDI 2015. ACM.
- Specifying and Verifying Concurrent Algorithms with Histories and SubjectivityIlya Sergey, Aleksandar Nanevski, and Anindya BanerjeeESOP 2015. LNCS, Vol. 9032, Springer.
2014
- Pushdown flow analysis with abstract garbage collectionJ. Funct. Program. 2014. Vol. 24, (2-3), Cambridge University Press.
- Communicating State Transition Systems for Fine-Grained Concurrent ResourcesESOP 2014. LNCS, Vol. 8410, Springer.
- Modular, Higher-Order Cardinality Analysis in Theory and PracticeIlya Sergey, Dimitrios Vytiniotis, and Simon L. Peyton JonesPOPL 2014. ACM.
- Deriving Interpretations of the Gradually-Typed Lambda CalculusÁlvaro García-Pérez, Pablo Nogueira, and Ilya SergeyPEPM 2014. ACM.
- Introducing Functional Programmers to Interactive Theorem Proving and Program VerificationIlya Sergey, and Aleksandar Nanevski2014. Unpublished draft.
2013
- Monadic abstract interpretersIlya Sergey, Dominique Devriese, Matthew Might, Jan Midtgaard, David Darais, Dave Clarke, and Frank PiessensPLDI 2013. ACM.
- Fixing Idioms: a Recursion Primitive for Applicative DSLsPEPM 2013. ACM.
- Ownership Types: A SurveyDave Clarke, Johan Östlund, Ilya Sergey, and Tobias WrigstadAliasing in Object-Oriented Programming. Types, Analysis and Verification 2013. LNCS, Vol. 7850, Springer.
2012
- A correspondence between type checking via reduction and type checking via evaluationIlya Sergey, and Dave ClarkeInf. Process. Lett. 2012. Vol. 112, (1-2),
-
- Introspective Pushdown Analysis of Higher-Order ProgramsICFP 2012. ACM.
- Calculating Graph Algorithms for Dominance and Shortest PathIlya Sergey, Jan Midtgaard, and Dave ClarkeMPC 2012. LNCS, Vol. 7342, Springer.
- Theory and Practice of Demand Analysis in HaskellIlya Sergey, Simon L. Peyton Jones, and Dimitrios Vytiniotis2012. Unpublished draft.
2011
- From type checking by recursive descent to type checking with an abstract machineIlya Sergey, and Dave ClarkeLDTA 2011. ACM.
- Implementation of Gradual Ownership Types for Java using Attribute GrammarsIlya SergeySoftware Engineering. 2011. Vol. 6, Saint Petersburg State University Publishing. In Russian.
2010
- Automatic refactorings for Scala programsIlya Sergey, Dave Clarke, and Alexander PodkhalyuzinThe First Scala Workshop – Scala Days 2010. Informal Proceedings.
- Scripting an IDE for EDSL AwarenessIlya Sergey, Peter Gromov, and Dave Clarke2010. Unpublished draft.
2009
- A Semantics for Context-Oriented Programming with LayersDave Clarke, and Ilya SergeyFirst International Workshop on Context-Oriented Programming (COP) 2009. ACM.
2008
- Implementation of JVM-based languages support in IntelliJ IDEAIlya SergeyInternational Workshop Workshop on Multiparadigm Programming with Object-Oriented Languages (MPOOL) 2008. Informal Proceedings.