Frage

Angenommen, wir haben eine algebraische Spezifikation in Form: $ {s, f, w } $, wobei $ s $ die Arten sind, $ f $ die Funktionen und $ W $ die Gleichungen sind. Zum Beispiel die Spezifikation für natürliche Zahlen:

  • $ S = { mathhrm {int} } $
  • $ F = {0: mathhrm {int}, ; mathhrm {SCUcR}: mathhrm {int} rightarrow mathhrm {int}, ; mathhrm {pred}: mathhrm {int} rightarrow mathhrm {int} } $
  • $ w = { mathhrm {SConR} ( mathhrm {pred} (x)) = x, ; mathhrm {pred} ( mathhrm {progn} (x)) = x } $

Meine Frage ist, warum und wo brauchen wir in diesem Fall Homomorphismen und Isomorphismen? Wie sehen Homomorphismen und Isomorphismen zwischen Algebren aus?

War es hilfreich?

Lösung

Können Sie sich zwei verschiedene Algebren einfallen lassen, beispielsweise eine, in der die Domäne $ mathbb {n} $ ist und eine, in der die Domäne $ {0,1 } $ ist und in der ersteren ist, suc und pred Arbeiten Sie, wie Sie annehmen würden, und in letzterem sind sie Modulo 2 -Operationen? Versuchen Sie dann, einen Homomorphismus von einem zum anderen zu finden.

Versuchen Sie dann, eine Algebra zu erstellen, wobei die Domäne $ {0, S0, SS0, SSS0, Punkte } $ ist und definieren suc und pred Wie du erraten würdest. Machen Sie einen Isomorphismus von diesem zu dem mit $ mathbb {n} $ als Domain.

Schließlich können Sie die "Term Algebra" machen, die als Domain alle Zeichenfolgen, die "Begriffe" gültig sind $) "ist in der Domain und" Pred ($ t $) "ist in der Domain. Ihre Interpretation ist einfach, dass die Konstante 0 Karten an die Zeichenfolge "0". Der Begriff pred(suc(suc(suc(0)))) Karten an die Zeichenfolge "Pred (Suc (Suc (Suc (0))))". Jetzt fällt es Ihnen möglicherweise schwer, einen Isomorphismus von dieser zur Standardalgebra (die mit $ mathbb {n} $) zu erstellen, da "0" und "Pred (Suc (0))" beide auf 0 zugeordnet werden sollten.

Ich bin mir nicht sicher, wonach Sie fragen, aber diese beiden Aufgaben sollten Sie zumindest den Einstieg bringen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top