+++ title = "Why this proof is tricky" author = "Yann Herklotz" tags = [] categories = [] backlinks = ["3a8g5c"] forwardlinks = ["3a8g5b", "3a8g5e"] zettelid = "3a8g5d" +++ However, one problem is that this proof is quite difficult, as there are many independent parts that need to be combined to show the correctness of the algorithm. One example is that the $t$ function, which translates a path expression to a predicate is completely independent from the correctness argument, which involves a separate function $\sigma$. Combining these parts all requires quite a lot of proofs of correctness between the different functions and how these interact with each other. For example, proving the path property ([\#3a8g5b]) requires interactions between $t$ and $\sigma$ already, proving that the predicates obtained from translating a list of paths compared to the regex are equivalent, which is not straightforward. In addition to that, even proving that the path expressions are indeed correct and follow the correctness property is non-trivial, because the algorithm by Tarjan \[1\] was followed, which uses Gaussian elimination for matrices to solve the path equation.
\[1\] R. E. Tarjan, “Fast algorithms for solving path problems,” *J. ACM*, vol. 28, no. 3, pp. 594–614, Jul. 1981, doi: [10.1145/322261.322273].
[\#3a8g5b]: /zettel/3a8g5b [10.1145/322261.322273]: https://doi.org/10.1145/322261.322273