我有一个关系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: 这是更一般的(数学)问题,而不是更具体到任何定理证明者,而是从这些社区获得帮助 - 我认为这些社区对数学有成熟的理解 - 我把定理证明标记放在这个问题
答案 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,当然是高阶逻辑。