Für eine Subtyp-Relation auf reguläre Typen soll das Ersetzbarkeits-Prinzip von Wegner und Zdonik gelten:
Eine Instanz eines Subtyps kann überall dort verwendet werden, wo eine Instanz des Supertyps erwartet wird.Um eine entsprechende Relation zu formulieren sind einige formale Schreibweisen und Begriffe notwendig.
Wenn ein Objekt im Zustand eine Anfrage akzeptieren kann und es sich anschließend im Zustand befindet, läßt sich dies schreiben als
Hierbei handelt es sich im Allgemeinen nicht um eine Funktion, da das Objekt bei der Bearbeitung der Anfrage selbst Anfragen an andere Objekte senden kann, wodurch der Zustandsübergang auf das Objekt bezogen nichtdeterministisch erscheint.
Kann ein Objekt im Zustand eine Folge von Anfragen verarbeiten und befindet es sich anschließend im Zustand , soll dies ausgedrückt werden durch
Definition 1: Das Protokoll eines Objektes im Zustand ist gegeben durch die Menge von Folgen von Anfragen, die es bedienen kann:
Eine weitere wichtige Menge ist die der im Zustand zulässigen Anfragen.
Definition 2: .
Jetzt können wir die Menge der Fehlersituationen eines Protokolls definieren.
Definition 3:
Wollen wir nun ein Objekt im Zustand für ein Objekt im Zustand einsetzen, muss sicher gelten, dass gilt, also alle Folgen von Anfragen, die akzeptiert, auch von akzeptiert werden. Für die Fehlersituationen muss sicher das Umgekehrte gelten, d. h. ein Fehler der für auftritt muss auch für möglich sein oder aber muss außerhalb des Protokolls von liegen.
Definition 4: Die relativen Fehlersituationen eines Objektes im Zustand bzgl. eines Objektes im Zustand sind:
Damit lautet dann die Definition der Einsetzbarkeits-Relation
Definition 5: Ein Objekt im Zustand ist für ein Objekt im Zustand einsetzbar, geschrieben , genau dann, wenn gilt: und .
Es lässt sich zeigen, dass diese Einsetzbarkeits-Relation die Eigenschaften einer Halbordnung hat, also reflexiv und transitiv ist.
soll jetzt ein Subtyp von sein, genau dann, wenn gilt . Für den regulären Typ einer Variablen gilt dann , also ist ein Subtyp von .
Das Protokoll eines Objektes soll konform zum Protokoll eines Objektes heißen, wenn ein Subtyp von ist. Liegen die Protokolle der beiden Objekte als reguläre Typen vor, gibt es einen Algorithmus um die Konformität zu testen.