Lean-yjs: formally proving the Yjs conflict resolution algorithms

@iasakura Iasakura
Wed, 17 Sep 2025 06:59:11 +0000

Hi @dmonad,

Thank you so much for your kind and detailed reply!

I’m glad that formal verification helped uncover a subtle issue in the pseudocode that went unnoticed for nine years. I’m also grateful for your clarification regarding the pseudocode. I now understand that the discrepancy is not because YATA and Yjs differ, but rather due to an error in the pseudocode itself. If I mention this point in the future (e.g., in a paper or in documentation), I’ll make sure to describe it that way.

I’m really excited to see lean-yjs referenced in the Yjs README. Thank you so much! I’ll keep improving lean-yjs, and at the same time, I’d love to work towards a paper, even if it may take quite some time since I’m not in academia right now. When a paper is published (maybe on arXiv), I’ll be sure to share it here.