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

Is complex differentiation of datatypes sensible?

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

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

我发现认为复数可微性仅意味着无限可微性有点误导。它实际上比这强得多:如果一个函数是复可微的,那么它在任何点的导数 determine the entire function。因为无限可微性给你一个完整的泰勒级数,你有一个解析函数等于你的函数,即是你的函数本身。所以,在某种意义上,复杂的可微函数是解析的……因为它们是。
从(标准)微积分的角度来看,实微积分与复微积分之间的主要区别在于,在实数中,只有一个方向可以采用差商的极限(f(x+δ) - fx)/δ。您只需要求左极限等于右极限。但是因为这是 限制之后的等式,所以这只在局部有影响。 (从拓扑学上讲,约束只是比较两个离散值,所以它根本没有真正处理连续性。)
OTOH,对于复杂的可微性,如果我们从整个复平面的任何方向接近 x,我们要求差商的极限相同。这是一个完整的连续自由度约束。然后您可以继续执行拓扑技巧(柯西积分本质上就是这样)以在整个域中“传播”约束。

我认为这在哲学上有点问题。 全纯函数根本不是真正的函数,例如:它们不是由整个域的结果值定义的,而是通过某种方式用解析来编写它们的公式(即可能无限的代数表达式/多项式)。
大多数数学家和物理学家显然很喜欢这样——这样的表达方式正是他们通常编写函数的方式。
我一点也不喜欢它:对我来说,一个函数应该是一个函数,由单独的值定义的东西,比如你可以在 space 中测量的场强或你可以定义的结果在 Haskell。
总之,我跑题了...

如果我们将这个问题从关于数字的函数转换为关于 Haskell 类型的函子,我想结果是复杂的 diff'ability 意味着:类型 可以写成一个(可能是无限的?)ADT多项式the post you linked to.

中展示了如何为此类 ADT 获得无限可微性

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

Haskell 类型的这些“导数”在微积分意义上并不是真正的导数。与此一样,他们不受小扰动响应分析概念的激励。碰巧你可以在数学上证明,对于一个非常具体的 class 函数——那些由代数表达式定义的函数——微积分导数可以再次以简单的代数方式写出(由众所周知的微分给出规则)。这意味着您可以无限次微分。

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

这很好......但是一旦你在做代数而不是微积分,区分“真实”和“复杂”就没有多大意义了——实际上两者都不是,因为你 不是 处理值但值的符号表示。一种无类型语言,如果你愿意的话(事实上,Haskell 的类型语言仍然是无类型的,所有东西都有类型 *)。


无论是传统收敛极限还是NSA-无穷小.