<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/default.xsl"?>
<fr:tree xmlns:fr="http://www.forester-notes.org" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xml="http://www.w3.org/XML/1998/namespace" root="false" base-url="/">
  <fr:frontmatter>
    <fr:authors>
      <fr:author>
        <fr:link href="/lkebulad/" title="Lukas Kebuladze" uri="https://calfproject.github.io/lkebulad/" display-uri="lkebulad" type="local">Lukas Kebuladze</fr:link>
      </fr:author>
    </fr:authors>
    <fr:uri>https://calfproject.github.io/kebuladze-2025/</fr:uri>
    <fr:display-uri>kebuladze-2025</fr:display-uri>
    <fr:route>/kebuladze-2025/</fr:route>
    <fr:title text="Amortized Analysis of Splay Trees via a Lax Homomorphism">Amortized Analysis of Splay Trees via a Lax Homomorphism</fr:title>
    <fr:taxon>Reference</fr:taxon>
    <fr:meta name="venue">Technical Report, <fr:link href="/cmu/" title="Carnegie Mellon University" uri="https://calfproject.github.io/cmu/" display-uri="cmu" type="local">Carnegie Mellon University</fr:link></fr:meta>
    <fr:meta name="external">https://www.cs.cmu.edu/~runmingl/student/kebuladze-splay.pdf</fr:meta>
    <fr:meta name="bibtex"><![CDATA[@techreport{kebuladze>2025,
  title        = {Amortized Analysis of Splay Trees via a Lax Homomorphism},
  author       = {Lukas Kebuladze},
  year         = {2025},
  month        = {aug},
  url          = {https://www.cs.cmu.edu/~runmingl/student/kebuladze-splay.pdf},
  institution  = {Carnegie Mellon University}
}]]></fr:meta>
  </fr:frontmatter>
  <fr:mainmatter>
    <html:p>
  CMU undergraduate summer SURA project report by <fr:link href="/lkebulad/" title="Lukas Kebuladze" uri="https://calfproject.github.io/lkebulad/" display-uri="lkebulad" type="local">Lukas Kebuladze</fr:link>, supervised by <fr:link href="/runmingl/" title="Runming Li" uri="https://calfproject.github.io/runmingl/" display-uri="runmingl" type="local">Runming Li</fr:link>.
</html:p>
    <html:p><fr:link href="https://www.cs.cmu.edu/~runmingl/student/kebuladze-splay.pdf" type="external">Extended abstract</fr:link>, <fr:link href="https://www.cs.cmu.edu/~runmingl/student/kebuladze-poster-popl.pdf" type="external">poster</fr:link>, and presentation: 3rd place winner in the undergraduate category of the <fr:link href="https://popl26.sigplan.org/track/POPL-2026-student-research-competition?" type="external">2026 POPL Student Research Competition</fr:link>.
</html:p>
  </fr:mainmatter>
  <fr:backmatter>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="References">References</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Context">Context</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:contributor>
                <fr:link href="/azhou4/" title="Andrew Zhou" uri="https://calfproject.github.io/azhou4/" display-uri="azhou4" type="local">Andrew Zhou</fr:link>
              </fr:contributor>
              <fr:contributor>
                <fr:link href="/hgrodin/" title="Harrison Grodin" uri="https://calfproject.github.io/hgrodin/" display-uri="hgrodin" type="local">Harrison Grodin</fr:link>
              </fr:contributor>
              <fr:contributor>
                <fr:link href="/lkebulad/" title="Lukas Kebuladze" uri="https://calfproject.github.io/lkebulad/" display-uri="lkebulad" type="local">Lukas Kebuladze</fr:link>
              </fr:contributor>
              <fr:contributor>
                <fr:link href="/rwh/" title="Robert Harper" uri="https://calfproject.github.io/rwh/" display-uri="rwh" type="local">Robert Harper</fr:link>
              </fr:contributor>
              <fr:contributor>
                <fr:link href="/runmingl/" title="Runming Li" uri="https://calfproject.github.io/runmingl/" display-uri="runmingl" type="local">Runming Li</fr:link>
              </fr:contributor>
            </fr:authors>
            <fr:uri>https://calfproject.github.io/bib-calf-cost/</fr:uri>
            <fr:display-uri>bib-calf-cost</fr:display-uri>
            <fr:route>/bib-calf-cost/</fr:route>
            <fr:title text="Cost analysis in Calf">Cost analysis in Calf</fr:title>
          </fr:frontmatter>
          <fr:mainmatter>
            <fr:tree show-metadata="true" expanded="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/hgrodin/" title="Harrison Grodin" uri="https://calfproject.github.io/hgrodin/" display-uri="hgrodin" type="local">Harrison Grodin</fr:link>
                  </fr:author>
                  <fr:author>
                    <fr:link href="/rwh/" title="Robert Harper" uri="https://calfproject.github.io/rwh/" display-uri="rwh" type="local">Robert Harper</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:uri>https://calfproject.github.io/grodin-harper-2023/</fr:uri>
                <fr:display-uri>grodin-harper-2023</fr:display-uri>
                <fr:route>/grodin-harper-2023/</fr:route>
                <fr:title text="Amortized Analysis via Coinduction">Amortized Analysis via Coinduction</fr:title>
                <fr:taxon>Reference</fr:taxon>
                <fr:meta name="venue">
                  <fr:link href="/calco23/" title="CALCO '23: 10th Conference on Algebra and Coalgebra in Computer Science (CALCO 2023)" uri="https://calfproject.github.io/calco23/" display-uri="calco23" type="local">CALCO '23: 10th Conference on Algebra and Coalgebra in Computer Science (CALCO 2023)</fr:link>
                </fr:meta>
                <fr:meta name="doi">10.4230/LIPIcs.CALCO.2023.23</fr:meta>
                <fr:meta name="bibtex"><![CDATA[@inproceedings{grodin-harper>2023,
  title        = {{Amortized Analysis via Coinduction}},
  author       = {Grodin, Harrison and Harper, Robert},
  year         = {2023},
  booktitle    = {10th Conference on Algebra and Coalgebra in Computer Science (CALCO 2023)},
  publisher    = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address      = {Dagstuhl, Germany},
  series       = {Leibniz International Proceedings in Informatics (LIPIcs)},
  volume       = {270},
  pages        = {23:1--23:6},
  doi          = {10.4230/LIPIcs.CALCO.2023.23},
  isbn         = {978-3-95977-287-7},
  issn         = {1868-8969},
  url          = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.CALCO.2023.23},
  editor       = {Baldan, Paolo and de Paiva, Valeria},
  urn          = {urn:nbn:de:0030-drops-188201},
  annote       = {Keywords: amortized analysis, coinduction, data structure, mechanized proof}
}]]></fr:meta>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Amortized analysis is a program cost analysis technique for data structures in which the cost of operations is specified in aggregate, under the assumption of continued sequential use. Typically, amortized analyses are presented inductively, in terms of finite sequences of operations. We give an alternative coinductive formulation and prove that it is equivalent to the standard inductive definition. We describe a classic amortized data structure, the batched queue, and outline a coinductive proof of its amortized efficiency in Calf, a dependent type theory for cost analysis.
</html:p>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="true" expanded="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/hgrodin/" title="Harrison Grodin" uri="https://calfproject.github.io/hgrodin/" display-uri="hgrodin" type="local">Harrison Grodin</fr:link>
                  </fr:author>
                  <fr:author>
                    <fr:link href="/rwh/" title="Robert Harper" uri="https://calfproject.github.io/rwh/" display-uri="rwh" type="local">Robert Harper</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:uri>https://calfproject.github.io/grodin-harper-2024/</fr:uri>
                <fr:display-uri>grodin-harper-2024</fr:display-uri>
                <fr:route>/grodin-harper-2024/</fr:route>
                <fr:title text="Amortized Analysis via Coalgebra">Amortized Analysis via Coalgebra</fr:title>
                <fr:taxon>Reference</fr:taxon>
                <fr:meta name="venue">
                  <fr:link href="/mfps24/" title="MFPS '24: 40th Conference on Mathematical Foundations of Programming Semantics" uri="https://calfproject.github.io/mfps24/" display-uri="mfps24" type="local">MFPS '24: 40th Conference on Mathematical Foundations of Programming Semantics</fr:link>
                </fr:meta>
                <fr:meta name="doi">10.46298/entics.14797</fr:meta>
                <fr:meta name="bibtex"><![CDATA[@article{grodin-harper>2024,
  title        = {Amortized Analysis via Coalgebra},
  author       = {Harrison Grodin and Robert Harper},
  year         = {2024},
  month        = {Dec},
  journal      = {Electronic Notes in Theoretical Informatics and Computer Science},
  volume       = {Volume 4 - Proceedings of MFPS XL},
  doi          = {10.46298/entics.14797},
  issn         = {2969-2431},
  url          = {https://entics.episciences.org/14797},
  eid          = {10},
  keywords     = {Computer Science - Programming Languages, Computer Science - Data Structures and Algorithms, Mathematics - Category Theory}
}]]></fr:meta>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  Amortized analysis is a cost analysis technique for data structures in which cost is studied in aggregate: rather than considering the maximum cost of a single operation, one bounds the total cost encountered throughout a session.
  Traditionally, amortized analysis has been phrased inductively, quantifying over finite sequences of operations. Connecting to prior work on coalgebraic semantics for data structures, we develop the alternative perspective that amortized analysis is naturally viewed coalgebraically in a category of cost algebras, where a morphism of coalgebras serves as a first-class generalization of potential function suitable for integrating cost and behavior. Using this simple definition, we consider amortization of other sample effects, non-commutative printing and randomization. To support imprecise amortized upper bounds, we adapt our discussion to the bicategorical setting, where a potential function is a colax morphism of coalgebras. We support algebraic and coalgebraic operations simultaneously by using coalgebras for an endoprofunctor instead of an endofunctor, combining potential using a monoidal structure on the underlying category. Finally, we compose amortization arguments in the indexed category of coalgebras to implement one amortized data structure in terms of others.
</html:p>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="true" expanded="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/runmingl/" title="Runming Li" uri="https://calfproject.github.io/runmingl/" display-uri="runmingl" type="local">Runming Li</fr:link>
                  </fr:author>
                  <fr:author>
                    <fr:link href="/hgrodin/" title="Harrison Grodin" uri="https://calfproject.github.io/hgrodin/" display-uri="hgrodin" type="local">Harrison Grodin</fr:link>
                  </fr:author>
                  <fr:author>
                    <fr:link href="/rwh/" title="Robert Harper" uri="https://calfproject.github.io/rwh/" display-uri="rwh" type="local">Robert Harper</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:uri>https://calfproject.github.io/li-grodin-harper-2023/</fr:uri>
                <fr:display-uri>li-grodin-harper-2023</fr:display-uri>
                <fr:route>/li-grodin-harper-2023/</fr:route>
                <fr:title text="A Verified Cost Analysis of Joinable Red-Black Trees">A Verified Cost Analysis of Joinable Red-Black Trees</fr:title>
                <fr:taxon>Reference</fr:taxon>
                <fr:meta name="venue">Manuscript</fr:meta>
                <fr:meta name="doi">10.48550/arXiv.2309.11056</fr:meta>
                <fr:meta name="bibtex"><![CDATA[@misc{li-grodin-harper>2023,
  title        = {A Verified Cost Analysis of Joinable Red-Black Trees},
  author       = {Runming Li and Harrison Grodin and Robert Harper},
  year         = {2023},
  url          = {https://arxiv.org/abs/2309.11056},
  eprint       = {2309.11056},
  archiveprefix = {arXiv},
  primaryclass = {cs.PL}
}]]></fr:meta>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
Ordered sequences of data, specified with a join operation to combine sequences, serve as a foundation for the implementation of parallel functional algorithms. This abstract data type can be elegantly and efficiently implemented using balanced binary trees, where a join operation is provided to combine two trees and rebalance as necessary. In this work, we present a verified implementation and cost analysis of joinable red-black trees in Calf, a dependent type theory for cost analysis. We implement red-black trees and auxiliary intermediate data structures in such a way that all correctness invariants are intrinsically maintained. Then, we describe and verify precise cost bounds on the operations, making use of the red-black tree invariants. Finally, we implement standard algorithms on sequences using the simple join-based signature and bound their cost in the case that red-black trees are used as the underlying implementation. All proofs are formally mechanized using the embedding of Calf in the Agda theorem prover.
</html:p>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="true" expanded="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/azhou4/" title="Andrew Zhou" uri="https://calfproject.github.io/azhou4/" display-uri="azhou4" type="local">Andrew Zhou</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:uri>https://calfproject.github.io/zhou-2025/</fr:uri>
                <fr:display-uri>zhou-2025</fr:display-uri>
                <fr:route>/zhou-2025/</fr:route>
                <fr:title text="Formally Verified Cost of the Parallel Prefix Sum Algorithm">Formally Verified Cost of the Parallel Prefix Sum Algorithm</fr:title>
                <fr:taxon>Reference</fr:taxon>
                <fr:meta name="venue">Technical Report, <fr:link href="/cmu/" title="Carnegie Mellon University" uri="https://calfproject.github.io/cmu/" display-uri="cmu" type="local">Carnegie Mellon University</fr:link></fr:meta>
                <fr:meta name="external">https://www.cs.cmu.edu/~runmingl/student/zhou-scan.pdf</fr:meta>
                <fr:meta name="bibtex"><![CDATA[@techreport{zhou>2025,
  title        = {Formally Verified Cost of the Parallel Prefix Sum Algorithm},
  author       = {Andrew Zhou},
  year         = {2025},
  month        = {aug},
  url          = {https://www.cs.cmu.edu/~runmingl/student/zhou-scan.pdf},
  institution  = {Carnegie Mellon University}
}]]></fr:meta>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  CMU undergraduate summer SURA project report by <fr:link href="/azhou4/" title="Andrew Zhou" uri="https://calfproject.github.io/azhou4/" display-uri="azhou4" type="local">Andrew Zhou</fr:link>, supervised by <fr:link href="/runmingl/" title="Runming Li" uri="https://calfproject.github.io/runmingl/" display-uri="runmingl" type="local">Runming Li</fr:link>.
</html:p>
              </fr:mainmatter>
            </fr:tree>
            <fr:tree show-metadata="true" expanded="false">
              <fr:frontmatter>
                <fr:authors>
                  <fr:author>
                    <fr:link href="/lkebulad/" title="Lukas Kebuladze" uri="https://calfproject.github.io/lkebulad/" display-uri="lkebulad" type="local">Lukas Kebuladze</fr:link>
                  </fr:author>
                </fr:authors>
                <fr:uri>https://calfproject.github.io/kebuladze-2025/</fr:uri>
                <fr:display-uri>kebuladze-2025</fr:display-uri>
                <fr:route>/kebuladze-2025/</fr:route>
                <fr:title text="Amortized Analysis of Splay Trees via a Lax Homomorphism">Amortized Analysis of Splay Trees via a Lax Homomorphism</fr:title>
                <fr:taxon>Reference</fr:taxon>
                <fr:meta name="venue">Technical Report, <fr:link href="/cmu/" title="Carnegie Mellon University" uri="https://calfproject.github.io/cmu/" display-uri="cmu" type="local">Carnegie Mellon University</fr:link></fr:meta>
                <fr:meta name="external">https://www.cs.cmu.edu/~runmingl/student/kebuladze-splay.pdf</fr:meta>
                <fr:meta name="bibtex"><![CDATA[@techreport{kebuladze>2025,
  title        = {Amortized Analysis of Splay Trees via a Lax Homomorphism},
  author       = {Lukas Kebuladze},
  year         = {2025},
  month        = {aug},
  url          = {https://www.cs.cmu.edu/~runmingl/student/kebuladze-splay.pdf},
  institution  = {Carnegie Mellon University}
}]]></fr:meta>
              </fr:frontmatter>
              <fr:mainmatter>
                <html:p>
  CMU undergraduate summer SURA project report by <fr:link href="/lkebulad/" title="Lukas Kebuladze" uri="https://calfproject.github.io/lkebulad/" display-uri="lkebulad" type="local">Lukas Kebuladze</fr:link>, supervised by <fr:link href="/runmingl/" title="Runming Li" uri="https://calfproject.github.io/runmingl/" display-uri="runmingl" type="local">Runming Li</fr:link>.
</html:p>
                <html:p><fr:link href="https://www.cs.cmu.edu/~runmingl/student/kebuladze-splay.pdf" type="external">Extended abstract</fr:link>, <fr:link href="https://www.cs.cmu.edu/~runmingl/student/kebuladze-poster-popl.pdf" type="external">poster</fr:link>, and presentation: 3rd place winner in the undergraduate category of the <fr:link href="https://popl26.sigplan.org/track/POPL-2026-student-research-competition?" type="external">2026 POPL Student Research Competition</fr:link>.
</html:p>
              </fr:mainmatter>
            </fr:tree>
          </fr:mainmatter>
        </fr:tree>
      </fr:mainmatter>
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Backlinks">Backlinks</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors>
              <fr:author>
                <fr:link href="/lkebulad/" title="Lukas Kebuladze" uri="https://calfproject.github.io/lkebulad/" display-uri="lkebulad" type="local">Lukas Kebuladze</fr:link>
              </fr:author>
              <fr:contributor>
                <fr:link href="/runmingl/" title="Runming Li" uri="https://calfproject.github.io/runmingl/" display-uri="runmingl" type="local">Runming Li</fr:link>
              </fr:contributor>
            </fr:authors>
            <fr:uri>https://calfproject.github.io/ver-splaytree/</fr:uri>
            <fr:display-uri>ver-splaytree</fr:display-uri>
            <fr:route>/ver-splaytree/</fr:route>
            <fr:title text="splay tree">splay tree</fr:title>
            <fr:taxon>Case Study</fr:taxon>
          </fr:frontmatter>
          <fr:mainmatter>
            <html:p>
              <fr:link href="/kebuladze-2025/" title="Amortized Analysis of Splay Trees via a Lax Homomorphism" uri="https://calfproject.github.io/kebuladze-2025/" display-uri="kebuladze-2025" type="local">Amortized Analysis of Splay Trees via a Lax Homomorphism</fr:link>
            </html:p>
            <html:p>
    Formalization: <fr:link href="https://lk672.github.io/splay/Examples.Amortized.SplayTree.html" type="external">splay tree</fr:link></html:p>
          </fr:mainmatter>
        </fr:tree>
      </fr:mainmatter>
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Related">Related</fr:title>
      </fr:frontmatter>
      <fr:mainmatter>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors />
            <fr:uri>https://calfproject.github.io/cmu/</fr:uri>
            <fr:display-uri>cmu</fr:display-uri>
            <fr:route>/cmu/</fr:route>
            <fr:title text="Carnegie Mellon University">Carnegie Mellon University</fr:title>
            <fr:taxon>Institution</fr:taxon>
            <fr:meta name="external">https://www.cmu.edu/</fr:meta>
            <fr:meta name="location">Pittsburgh, PA, USA</fr:meta>
          </fr:frontmatter>
          <fr:mainmatter />
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors />
            <fr:uri>https://calfproject.github.io/lkebulad/</fr:uri>
            <fr:display-uri>lkebulad</fr:display-uri>
            <fr:route>/lkebulad/</fr:route>
            <fr:title text="Lukas Kebuladze">Lukas Kebuladze</fr:title>
            <fr:taxon>Person</fr:taxon>
            <fr:meta name="institution">
              <fr:link href="/cmu/" title="Carnegie Mellon University" uri="https://calfproject.github.io/cmu/" display-uri="cmu" type="local">Carnegie Mellon University</fr:link>
            </fr:meta>
            <fr:meta name="position">Undergraduate Student</fr:meta>
          </fr:frontmatter>
          <fr:mainmatter />
        </fr:tree>
        <fr:tree show-metadata="true" expanded="false" toc="false" numbered="false">
          <fr:frontmatter>
            <fr:authors />
            <fr:uri>https://calfproject.github.io/runmingl/</fr:uri>
            <fr:display-uri>runmingl</fr:display-uri>
            <fr:route>/runmingl/</fr:route>
            <fr:title text="Runming Li">Runming Li</fr:title>
            <fr:taxon>Person</fr:taxon>
            <fr:meta name="external">https://www.cs.cmu.edu/~runmingl/</fr:meta>
            <fr:meta name="institution">
              <fr:link href="/cmu/" title="Carnegie Mellon University" uri="https://calfproject.github.io/cmu/" display-uri="cmu" type="local">Carnegie Mellon University</fr:link>
            </fr:meta>
            <fr:meta name="orcid">0000-0001-7600-9069</fr:meta>
            <fr:meta name="position">Ph.D. Student</fr:meta>
          </fr:frontmatter>
          <fr:mainmatter>
            <html:p>Runming Li is a second-year Ph.D. student in the Computer Science Department at Carnegie Mellon University, advised by Prof. <fr:link href="/rwh/" title="Robert Harper" uri="https://calfproject.github.io/rwh/" display-uri="rwh" type="local">Robert Harper</fr:link>. He studies semantics of programming languages from the perspectives of (dependent) type theory and category theory. More broadly, he is interested in the design and implementation of functional programming languages and proof assistants that facilitate the construction and verification of correct and efficient programs.</html:p>
          </fr:mainmatter>
        </fr:tree>
      </fr:mainmatter>
    </fr:tree>
    <fr:tree show-metadata="false" hidden-when-empty="true">
      <fr:frontmatter>
        <fr:authors />
        <fr:title text="Contributions">Contributions</fr:title>
      </fr:frontmatter>
      <fr:mainmatter />
    </fr:tree>
  </fr:backmatter>
</fr:tree>
