The Marriage of Bisimulations and Kripke Logical Relations
There has been great progress in recent years on developing effective techniques for reasoning about program equivalence in ML-like languages - that is, languages that combine features like higher-order functions, recursive types, abstract types, and general mutable references. Two of the most prominent types of techniques to have emerged are bisimulations and Kripke Logical Relations (KLRs). While both approaches are powerful, their complementary advantages have led one and other researchers to wonder whether there is an essential tradeoff between them. Furthermore, both approaches seem to suffer from fundamental limitations if one is interested in scaling them to inter-language reasoning.