Das Beweisen von Theoremen und das mathematische Argumentieren erfordern oft ein hohes Maß an Expertise, was die Integration in den konventionellen Entwicklungszyklus behindert. Um dieses Problem zu überwinden, identifizieren wir Anwendungsbereiche, in denen alle Programme gemeinsame Eigenschaften haben, z. B. Hardware-Designs für skalierbare Mehrprozessorsysteme und verteilte Programme für Mikrokern-Betriebssysteme. Für solche Bereiche entwickeln wir spezifische Sprachen und Compiler. Unsere Compiler definieren wichtige Eigenschaften für Software und Hardware. Entwickler:innen können sie verwenden, um Hardware oder verteilte Programme zu entwerfen, ohne Fachwissen im Beweisen von Theoremen zu benötigen.