Extracting TLA+ Specifications Out of a Program for a BEAM Virtual Machine - Maliuginas, Andrius; Petrauskas, Karolis (Vilnius University Open Series, 2024)
Formal specifications are mathematical descriptions of the desired system functionality. Since they are usually written separately from the software itself, it is important to ensure that the software implements what the specification requires. A common approach to achieve this is to have a specification detailed enough to generate source code but those are rarely written due to expertise required. If code is not generated, then currently there is no straightforward way to reliably show that implementation conforms to initial formal specification. This research attempts to define a way to extract formal TLA+ specification by translating Elixir source code and generating detailed specification to give the system developer the ability to show that it refines the initial one.