Definition mit Initialisierung durch Kopieren ist für jeden LEDA-Typ möglich. Sie initialisiert die definierte Variable mit einer Kopie des Argumentes der Defnition.
Für unabhängige Item-Typen (Handle-Typen) meint das Identitätsprädikat die Gleichheit zwischen Werten. Das Gleichheitsprädikat ist individuell für jeden Item-Typ definiert. Gewöhnlicherweise meint es die Gleichheit zwischen Attributen.
Für abhängige Item-Typen meint das Gleichheitsprädikat die Gleichheit zwischen Werten.
Es ist illegal, auf die Attribute eines Items zuzugreifen, das auf einen Container verweist, der zerstört wurde, oder auf die Attribute des Items nil zuzugreifen.
Unabhängige Item-Typen (Handle-Typen) bieten keine Operationen, die es erlauben, Attribute abzuändern; die Attribute sind unveränderlich.
Die Attribute eines unabhängigen Item-Typs sind immer definiert. Im Besonderen initialisiert eine Defintion mit Default-Initialisierung alle Attribute. Ein Typ kann die initialen Werte spezifizieren, muss es aber nicht.
Eine Zuweisung x = A weist der Variablen x eine Kopie des Ausdrucks A zu.
Alle eingebauten Typen, alle Zeigertypen und alle Item-Typen sind primitiv.
Eine Kopie eines Wertes eines primitiven Typs ist der Wert selbst.
Ein Wert x eines einfach-strukturierten Typs ist eine Menge oder eine Folge von Elementen oder Variablen eines Typs E. Eine Kopie von x ist eine komponentenweise Kopie.
Eine Kopie einer Variable ist eine neue Variable desselben Typs, initialisiert mit einer Kopie des Wertes des Originals.
Ein Wert eines item-basierten strukturierten Typs ist eine strukturierte Ansammlung von Items, von denen jedes ein oder mehrere Attribute hat. Eine Kopie eines solchen Wertes ist eine Ansammlung von neuen Items, eines für jedes Item im Original. Die kombinatorische Struktur, die den neuen Items auferlegt wird, ist isomorph zur Struktur des Originals. Jedes Attribut eines neuen Items, das keine kombinatorische Struktur kodiert, wird auf eine Kopie des entsprechenden Attributes des entsprechenden Items im Original gesetzt.
Wenn ein LEDA-Objekt zerstört wird, wird der für das Objekt allozierte Platz wieder frei gemacht. Das ist genau der Platz, der kopiert würde, wenn eine Kopie des Objektes angelegt würde.
Eine Iteration über die Items einer Kollektion C darf keine neuen Items zu C hinzufügen. Sie darf das Item unter dem Iterator löschen, aber kein anderes Item. Die Attribute der Items in C können ohne Beschränkungen geändert werden.
break- und continue-Anweisungen können in allen forall-Schleifen benutzt werden.
Das Datentypargument in einer Iterationsanweisung darf kein Funktionsaufruf sein, der ein Objekt des Datentyps erzeugt, sondern nur ein Objekt des Datentyps selbst.
Jedes Typenargument T muss die folgenden Funktionen implementieren
| einen Default-Konstruktor | T::T() |
| einen Copy-Konstruktor | T::T(const T&) |
| einen Zuweisungs-Operator | T& T::operator = (const T&) |
| einen Eingabe-Operator | istream& operator >> (istream&, T&) |
| einen Ausgabe-Operator | ostream& operator << (ostream&, const T&) |
Ein linear geordneter Typ muss darüber hinaus implementieren
| eine Vergleichsfunktion | int compare(const T&, const T&) |
Ein gehashter Typ muss darüber hinaus implementieren
| eine Hash-Funktion | int Hash(const T&) |
| einen Gleichheits-Operator | bool operator == (const T&, const T&) |
Ein numerischer Wert muss die arithmetischen Basisfunktionen Addition, Subtraktion und Multiplikation sowie die Standard-Vergleichsoperatoren besitzen.
Ein Typ T heißt linear geordnet, wenn die Funktion
int compare(const T&, const T&);
für den Typ T definiert ist und eine lineare Ordnung auf T realisiert. Wenn compare(x,y) für zwei Objekte x und y eine 0 zurückliefert, heißen sie vergleichs-äquivalent oder einfach äquivalent.
Wenn der Gleichheitsoperator
bool operator==(const T&, const T&);
für eine Klasse T definiert ist, dann definiert er eine Äquivalenzrelation auf T. x und y heißen gleich, wenn x==y zu true ausgewertet wird.
Für jeden gehashten Typ T und alle Objekte x und y dieses Typs gilt: Wenn x==y, dann auch Hash(x)==Hash(y).
Ein Wert und eine Kopie eines Wertes müssen vergleichs-äquivalent und gleich sein.