The work performed over the course of the project was divided among the three themes of the action.
Refactoring: The action looked into the feasibility of certain refactoring operations. In limited settings, such as one where the packet scheduling behavior of a network device must be organized to work on particular hardware, it was shown that refactoring is possible and in fact feasible (this result was published at OOPSLA 2024). Progress was also made towards a characterization of program behavior that *requires* the use of non-local control flow (e.g. "goto" statements), and can thus not be refactored to avoid these (part of the results were published at ESOP 2022; other work is currently under submission at a conference).
Equivalence checking: The possibility of verifying the correctness of a refactoring operation after-the-fact was researched, and this was also found to be feasible in limited cases (this result is currently under submission at a conference). Moreover, several fragments of programming languages were identified, including the parsing sub-language of P4, a programming language for network switches, and a limited subset of traditional ("while-based") programming languages that include probabilistic behavior. For these fragments, tractable equivalence checking algorithms were developed that relied on the simplification that arose from looking only at the fragment (these results were published at PLDI 2021 and ICALP 2023 respectively).
Learning: Because restricted fragments of programming languages may have a more complex representation, no new learning algorithms were found. However, an existing learning algorithm due to Angluin was generalized to learn program behavior where certain equations hold, thus constituting a limited fragment (this result was published at CMCS 2022).