复杂的数据类型区分是否合理?

时间:2015-10-07 13:30:01

标签: haskell types calculus

pigworker曾问过how to express that a type is infinitely differentiable。这个问题让人联想到这样一个事实:在复杂的分析中,一个可微分的函数(在开集上)必须是无限可微的(在那个集合上)。有没有办法谈论数据类型的复杂差异?如果是这样,类似的定理是否成立?

1 个答案:

答案 0 :(得分:7)

不是一个真正的答案......但这个咆哮对于评论来说太长了

我觉得复杂的差异性只意味着无限的差异性,这有点误导。事实上它比那更强大:如果一个函数是复杂可微的,那么它的衍生物在任何点determine the entire function。并且因为无限可微性为您提供完整的泰勒级数,所以您具有与您的函数相等的分析函数,即您的函数本身。因此,从某种意义上说,复杂的可微分函数是分析性的...因为它们是。
从(标准)微积分的角度来看,真正的差异性和复杂的差异性之间的关键对比是,在实际中,只有一个方向可以取得差异商的极限( f x + δ) - fx )/ δ。您只需要左边界限等于右边界限。但是因为在限制之后是,所以这只会在本地产生影响。 (从拓扑学的角度来说,约束只是比较两个离散值,因此根本不会真正处理连续性属性。)
OTOH,对于复杂的可微分性,如果我们从整个复平面中的任何方向逼近 x ,我们要求差商的极限相同。这是一个完全连续的自由度受限制。然后,您可以继续执行拓扑技巧(Cauchy积分本质上是这样)以在整个域中“扩展”约束。

我认为这在哲学上有点问题。 全纯函数根本不是真正的函数,如:在整个域中它们的整个结果值没有那么多定义,就像通过某种方式用分析公式来编写它们(即可能无限的代数表达式/多项式)。
大多数数学家和物理学家显然很喜欢这样 - 这种表达只是他们通常编写函数的方式。 我真的不喜欢它:对我来说,一个函数应该是一个函数,一个由各个值定义的东西,比如你可以在空间中测量的场强或你可以在Haskell中定义的结果。
无论如何,我离题了......

如果我们将这个问题从数字上的函数转换为Haskell类型的仿函数,我认为结果是复杂的diff_ability只是意味着:类型可以写成(可能是无限的?)ADT多项式。如何在the post you linked to中显示这种ADT的无限可微性。

另一个旋转...也许更接近答案。

这些Haskell类型的“衍生物”在微积分意义上并不是真正的衍生物。如同,他们没有受到小插管反应分析概念的推动。碰巧你可以在数学上证明,对于一个非常特殊的函数类 - 由代数表达式定义的函数 - 微积分导数可以再次用简单的代数方式编写(由众所周知的微分规则给出)。这意味着你可以经常无限地区分。

这种象征性差异化的有用性也促使人们将其视为一种更抽象的运作。当你区分Haskell类型时,它主要只是你要追求的代数定义,而不是原始的微积分定义。

哪个好......但是一旦你做代数而不是微积分,区分“真实”和“复杂”并不是很有意义 - 它实际上都不是,因为你处理值但值的符号表示。一种无类型的语言,如果你愿意的话(事实上,Haskell的类型语言仍然是无类型的,所有类型都有*)。

使用传统的收敛限制或NSA - 无穷小。