假设我们的形式有一个代数规范:$ {s,f,w } $,其中$ s $是各种各样的,$ f $是函数,$ w $是一组方程。例如,自然数的规范:

  • $ s = { mathrm {int} } $
  • $ f = {0: mathrm {int},; mathrm {scucs}: mathrm {int} rightarrow mathrm {int},; Mathrm {pred}: mathrm {int} rightarrow mathrm {int} } $
  • $ w = { mathrm {ucc}( mathrm {pred}(x))= x,; Mathrm {pred}( mathrm {scucs}(x))= x } $

我的问题是,在这种情况下,为什么以及在哪里需要同态和同构?代数之间的同态和同构看起来像什么?

有帮助吗?

解决方案

您能否提出两个不同的代数,例如,域是$ mathbb {n} $的一个,一个域是$ {0,1 } $,在前者中, sucpred 正如您想象的那样,在后者中,它们是Modulo 2操作吗?然后,尝试从一个角度提出同态。

然后,尝试制作一个代数,其中域为$ {0,s0,ss0,sss0, dots } $并定义 sucpred 正如您猜到的。将同构从这个域中作为$ mathbb {n} $作为域的同构。

最后,您可以制作“术语代数”,该术语为域,所有有效的“术语”的字符串,即:“ 0”在域中,对于域中的每个元素$ t $,suc($ t) $)“在域中,并且“ pred($ t $)”在域中。他们的解释仅仅是不变 0 映射到字符串“ 0”。期限 pred(suc(suc(suc(0)))) 映射到字符串“ pred(suc(suc(suc(0))))”。现在,您可能很难将同构为标准代数(具有$ Mathbb {n} $),因为“ 0”和“ pred(suc(0))”应映射到0。

我不确定您的要求,但是至少这两个任务应该让您入门。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top