Betrachten Sie die endlichen Multisätze . Seine Elemente sind gegeben durch { x 1 , … , x n }, die durch Permutationen zitiert werden, so dass { x 1 , … , x n } = { x π 1 , … , x π n } für jedes π ∈ S n gilt . Was ist ein Ein-Loch-Kontext für ein Element in so etwas? Nun, wir müssengehabt haben, um eine Position für das Loch auszuwählen, so dass wir mit dem verbleibendenübrig bleibenBagX{x1,…,xn}{x1,…,xn}={xπ1,…,xπn}π∈Snn - 1 B an>0n−1Elemente, aber wir sind nicht der klügere darüber, wo ist. (Das ist anders als bei Listen, bei denen die Auswahl einer Position für das Loch eine Liste in zwei Abschnitte schneidet und die zweite Ableitung einen dieser Abschnitte auswählt und ihn weiter schneidet, wie "point" und "mark" in einem Editor, aber ich schweife ab. ) Ein Ein-Loch-Kontext in einem ist also ein , und jeder kann als solcher entstehen. Wenn man räumlich denkt, sollte die Ableitung von sich selbst sein.B aBagXB a gBagXB aBagXBagX
Jetzt,
BagX=∑n∈NXn/Sn
eine Auswahl der Tupelgröße , mit einem Tupel von Elementen bis zu einer Permutationsgruppe der Ordnungund geben uns genau die Potenzreihenerweiterung von .n n ! e xnnn!ex
Naiv können wir Containertypen durch eine Menge von Formen und eine formabhängige Familie von Positionen :
charakterisieren
so dass ein Container durch a gegeben ist Formwahl und eine Karte von Positionen zu Elementen. Mit Taschen und dergleichen gibt es eine zusätzliche Wendung.P ∑ s : S X (SP
∑s:SX(Ps)
Die "Form" einer Tasche ist ein ; Die "Positionen" sind , die endliche Menge der Größe , aber die Zuordnung von Positionen zu Elementen muss unter Permutationen von unveränderlich sein . Es sollte keine Möglichkeit geben, auf eine Tasche zuzugreifen, die die Anordnung ihrer Elemente "erkennt". { 1 , … , n } n S nn∈N{1,…,n}nSn
Das East Midlands Container Consortium hat in Constructing Polymorphic Programs with Quotient Types für Mathematics of Program Construction 2004 über solche Strukturen geschrieben . Quotient Container erweitern unsere übliche Analyse von Strukturen durch "Formen" und "Positionen", indem sie einer Automorphismusgruppe erlauben, auf die Positionen einzuwirken Dies erlaubt uns, Strukturen wie ungeordnete Paare 2/2 mit der Ableitung . Ein ungeordnetes Tupel ist gegeben durchund seine Ableitung (wenn ein ungeordnetes Tupel ist). Taschen nehmen die Summe davon. Wir können ähnliche Spiele mit zyklischen TupelnX n X n / n ! n > 0 n - 1 n x n / n x n - 1X2/2XnXn/n!n>0n−1 nXn/nWenn Sie eine Position für das Loch auswählen, wird die Drehung auf einen Punkt festgelegt, wobei , ein Tupel ohne Permutation, kleiner bleibt.Xn−1
"Typenteilung" ist im Allgemeinen schwer zu verstehen, aber das Quotieren durch Permutationsgruppen (wie bei kombinatorischen Arten) ist sinnvoll und macht Spaß, damit zu spielen. (Aufgabe: Formulieren Sie ein strukturelles Induktionsprinzip für ungeordnete Zahlenpaare, , und implementieren Sie damit Addition und Multiplikation, damit sie kommutativ sind.)N2/2
Die "Formen-und-Positionen" -Charakterisierung von Behältern legt weder eine Endlichkeit auf. Kombinatorische Arten sind in der Regel eher nach Größe als nach Form organisiert, was darauf hinausläuft, Begriffe zu sammeln und den Koeffizienten für jeden Exponenten zu berechnen. Quotientenbehälter mit endlichen Positionssätzen und kombinatorische Spezies sind im Grunde genommen verschiedene Drehungen derselben Substanz.