扁平化关系的量化

时间:2014-12-18 19:35:19

标签: logic isabelle

我有一个关系f定义为f:A - > B×C。我想写一个firsr-order公式来约束这个关系是从A到B×C的双射函数?

更确切地说,我想要以下公式的第一个计数器部分(实际上是三者的结合):

∀a:A,∃! bc:B×C,f(a)= bc -- f is function

∀a1,a2:A,f(a1)= f(a2)→a1 = a2 -- f is injective

∀(b,c):B×C,∃a:A,f(a)= bc -- f is surjective

正如您所看到的,上面的公式是高阶逻辑,因为我对关系进行了量化。如果可能的话,这些公式的一阶逻辑等价是什么?

PS: 这是更一般的(数学)问题,而不是更具体到任何定理证明者,而是从这些社区获得帮助 - 我认为这些社区对数学有成熟的理解 - 我把定理证明标记放在这个问题

1 个答案:

答案 0 :(得分:1)

更新:有人对我的回答感到不满意,所以我总是把我搞砸了,所以我在这里说出我想要的东西,以后可能会删除它,我想。

我知道SO不是辩论和肥皂盒的地方。另一方面,OP,qartal,我认为是不满意的人,想要将数字应用于数字化处理的数学问题,这个问题来源于此{{{{{ 1}}和isabelle

首先,符号很重要,而草率符号可能会导致一个模糊不清的问题。

第二,拥有B.S.在数学方面,我完全赞赏ZFC集的逻辑,所以我非常感谢math.stackexchange.com。

我在这里提出的论点是,在下面链接的math.stackexchange.com上给出的答案在Isabelle / HOL的背景下是错误的。 (首先,我在不明确的情况下提出索赔对人们来说很烦人。)

如果我错了,有人教我一些东西,那么这里的情况就会被赎回。

回答者说:

  

首先,逻辑logic只是另一套。

不仅仅是一种逻辑。当我看到符号B x C时,我的直接反应是想到一个类型,而不是一个集合。考虑一下,看起来像x

f: A -> BxC

我想我应该多多地在套装和类型之间来回走动,并阅读思想,但我确实通过输入这个术语来学习:

definition foo :: "nat => int × real" where "foo x = (x,x)"

感到偏执,我这样做是为了看看是否陷入了一个主要问题:

term "B × C" (* shows it's of type "('a × 'b) set" *)

它给出了语法错误。我在这里,所有的迂腐,我们的讨论是不明确的,因为符号是不明确的。

症结:另一个答案中的公式在这种情况下不是一阶

(另一个嗯,写完我在下面说的话之后,我已经完整的圈子了。当事情的背景不明确时,说些什么东西。)

语境就是一切。其他站点的上下文通常是ZFC集。在这里,它是HOL。那个回答者说要为他的公式假设这些,我在下面给出:

term "f : A -> B × C"

语法。没有人在这里定义它,但这里的标签是Ax is true iff x∈A Bx is true iff x∈B×C Rxy is true iff f(x)=y ,所以我认为我可以用iff的左侧代替右侧。

此外,表达式isabelle 在典型的集合论教科书中的公式中,而不是x ∈ A。因此,为了使回答者的公式具有意义,我可以正确地将Rxy插入其中。

这就是我在第一个答案中做了很多对冲的原因。变量f(x) = y不能在公式中。如果它在公式中,则它是一个隐式量化的自由变量。这是Isar语法中的公式:

f

这里有替换:

term "∀x. (Ax --> (∃y. By ∧ Rxy ∧ (∀z. (Bz ∧ Rxz) --> y = z)))"

在HOL中,∀x. (x∈A --> (∃y. y∈B×C ∧ f(x)=y ∧ (∀z. (z∈B×C ∧ f(x)=z) --> y = z))) ,所以f(x) = f x是隐含的,普遍量化的。如果是这种情况,那么它不是第一顺序。

真的,我应该深入思考我所教的内容,f意味着:

f(x)=y

最终让我:

(x,f(x)) = (x,y)  which means we have to have   (x,y)∈(A, B×C)

最后,我猜结果是在math.stackexchange.com的背景下,它是100%的。

我是唯一一个在Isabelle / HOL背景下质疑这意味着什么的人吗?我不接受这里的所有内容都已经足够明确地表明它是第一个订单。

真的,qartal,你的符号应该特定于一个特定的逻辑。

第一个答案

Isabelle,我根据我对你的解释来回答这个问题 ∀x. (x∈A --> (∃y. y∈B×C ∧ (x,y)∈(A,B×C) ∧ (∀z. (z∈B×C ∧ (x,z)∈(A,B×C)) --> y = z))) ,我作为ZFC集,特别是其中的一部分 笛卡儿积f: A -> B x C

你从ZFC的两个逻辑中得到了一种混合符号 和HOL的集合。因此,我可能会对我的想法感到失望 问。

你没有定义你的关系,所以我保持简单。 我定义了一个简单的ZFC函数,并证明了第一个 第一个条件的一部分,A x (B x C)是一个函数。第二部分是 证明独特性。可以看出f满足那个,所以一旦a 正确地说明了唯一性的公式,f可能很容易证明它。

请注意 定理是一阶公式。字符auto!是ASCII ?\<forall>的等价物。

(澄清时必须充实 与HOL合作。如果变量是原子的,它是一阶逻辑。在这 case,变量的类型是\<exists>。基本概念就在那里。那 我很可能在某些细节上错了。)

numeral

(为了给你一个你所要求的例子,我必须重新定义我的功能,所以它是双射的。很少有例子可以做大量工作。)

这是基本思想,其余证明definition "A = {1,2}" definition "B = A" definition "C = A" definition "f = {(1,(1,1)), (2,(1,1))}" theorem "!a. a \<in> A --> (? z. z \<in> (B × C) & (a,z) \<in> f)" by(auto simp add: A_def B_def C_def f_def) 是一个功能 遵循这个基本模式。

如果出现问题,您的f是ZFC设置功能/关系,并且 Isabelle / HOL的逻辑基础设施被设置为一种类型的功能。

作为有序对的函数,ZFC样式,可以在Isabelle / HOL中形式化,但是 它没有以合理完整的方式完成。

概括一切就是工作的所在。对于特定的关系,如 我在上面定义,如果我忽略它,我可以将自己限制为一阶公式 基础,Isabelle / HOL,当然是高阶逻辑。