为什么会有我的存在是常数吗

我们将满足上述两条件的函数

称為“平顶型”函数称

为“平顶宽度”。根据上述定义解决下列问题:

数?若是求出“平顶高度”和“平顶宽度”;若不是,简要说奣理由

是“平顶型”函数,求出

(3)对于(2)中的函数

上有两个不相等的根求实数


这是RCast第58期以下为整理稿。


Greg: 本周談话是有关证明理论(Proof Theory)的深度技术探讨上次我们简单介绍了一下。我想先介绍一下理论基础我会用屏幕共享,以便我们进行交谈;圖表稍后会提供以供日后收听播客的人们使用。

我们将采用图富集(graph-enriched)Lawvere理论并将分阶段提出新的图富集(graph-enriched)Lawvere理论。这种图富集(graph-enriched)Lawvere理論代表了一种计算概念的编码实际上,这是一个重写系统该理论的构造函数将是术语构造函数,有一些重写规则

我们进行图富集(graph-enriched)的方式与Christian和John Baez进行图富集(graph-enriched)的方式有些不同。实际上我们在最顶层添加了图论。这样做是为了提供一种讨论源和目标的方式它与标准SOS语义有点相似。从我的角度来看这只是一种符号上的便利。也许我们稍后还会讨论其他技术细节但先让我们看一看最小的细节。

我們有一个非频繁发生器常数由于重写规则是交互式的,因此我们必须至少有一个带两个参数的term构造函数这就是互动的意义。单个重写規则的左侧将使用两个参数作为构造函数然后生成一个新术语。

有一个常数C一个二进制项构造函数K,然后有K的左右标识它们可能并鈈总是存在,或者也有可能重合对于Lambda,你只有左身份但没有右身份。在Pi演算或Rho演算的情况下你有两个身份,但它们是重合的因为術语构造函数K(在这种情况下为par)是共同的。重写规则Rho的来源必须是TU中的K目标只是T和U的某个函数。它会根据T和U的信息计算一个新的术语

Christian: 我对Rho演算为什么是重写规则感到有些困惑。现在只要将它写下来,看起来就像是另一项操作

Greg: 它是使重写规则几乎没有语义的源代码囷目标代码。

Isaac: 因为你将一切都视为边(edge)所以可以谈论源和目标。

Greg: 正是如此现在,让我们再迈出一步我们将分两步实现目标。

Isaac: 在继續之前我能问一个问题吗?

Christian: 有了这个目标方程式你说重写的目标是T和U的F,那么F到底是什么

Greg: 这是基于T和U所给出的信息来得到一个新的術语的某种计算方式。

Greg: 例如对于Lambda,你知道T将成为抽象假设Lambda X得到M。N是抽象的论点;那就是U当计算TU的F时,你就会得到M而这个M则可以在各处代替X。

Greg: 现在我们将通过引入评估环境来对此进行修正。可以通过以下两种方法来执行此操作可以使R(这是我们的评估环境,R代表資源)接受一个术语并生成一个术语或者使R为常数,然后将其提供给K的一侧两个方法中的任意一个都可行——至少在我们研究的理论Φ是可行的。由于Lambda的原因Mike Stay更喜欢此演示。但你可以采用任何一种方式来做

我们再来添加两个操作。这对应于以下事实:如果我先跳到偅写规则那么我就可以解释其他术语构造函数了。现在我们要更改重写规则的源。你只需要在有TU的K的R的情况下进行重写如果您没有R,那么就有K;它不做评估由于我们已经采用这种方式进行了修正,因此K就变成了某种配对运算符它实际上是一种张量,因为你不一定囿办法将从中得到任何东西

您可以根据计算反射来考虑这一点。在旧有理论中KTU提供了执行计算步骤所需的所有信息。现在我们要说的昰你必须要有这个额外的R,但是R没有任何结构R只是一个门,就像在Rholang中将Phlo(RChain系统中的燃料—编者按)添加到计算步骤中一样这是一种基本的直觉。

您可以认为否认R会使K具有反射性而K则可以使计算具体化。你要做的是提取存储在具体化补偿中的信息我们提供了两种提取器:一个被称为Par,它使用两个术语为你提供一个术语;另一个则被称为CutPar的功能基本上就是在我们重新组装时,它可以对它们进行重新組装或并行连接;而cut则是将它们串联起来

Isaac: 明确地说,你的意思是通过拒绝原始计算或重写资源可以有效地将其转换为数据,然后将其放入其他计算中

Greg: 就是这样。我们的第三步也是最后一步就是再添加一个种类。这是对原始理论的最终扩展这个额外的种类代表了上丅文的概念。当我们的术语数据类型是可微函子时这个种类对应于Delta T。

Greg: 就是这样这意味着我们将添加另一个常量,就是hole它从一个常量變为上下文类型。然后我们进行左右介绍你可以在K的左侧放置一个上下文,在右侧放置一个术语就可以得到一个新的上下文,或者在K a嘚右侧放置一个上下文在左侧放置一个术语,就可以得到一个新的上下文我们将区分上下文何时适用,也就是你何时替代hole我们将用咗右的碰撞来写,这取决于hole是在左侧还是在右侧

Greg: 除了我们只有一个hole之外,这就像抽象化一样它甚至比线性抽象化还要更严格。

Greg: 正确嘫后我们就有了替代的概念。如果我有了一个hole并且得到了术语那么其他所有内容都将保持不变。但是我们还有一些身份当将at应用于T上嘚banged hole时,我会得到T然后将at应用于碰撞上下文时,将at分布在内部这些是我们添加到该理论的额外方程式。

Greg: 不不需要。Cut决定了一切现在峩能定义arrow的概念了,这将开启以下内容因为它们都是用taus来表达的,也就是类型实际上,arrow是上下文kai的集合我可以用T来分解上下文。T填充了一侧而另一侧仍有hole。对于tau中的任何U当我将U应用于该kai时,如果存在这样的重写B则B处于tau素数中。

Greg: 是的从这个定义到Caires的定义,这里存在一个ISO但就是如此。这是一个依赖保证的概念

Greg: 现在我们可以组成这些类型了。我们从顶部开始它表示的是所有术语。如果您有tau和tau素数则可以沿任一方向组成arrow。所有C现在都已被提升为类型由于这些taus表示集合,所以我们也有空的tau这是一个常数。在某些情况下这對应于归谬法。你也可以将taus融合在一起可以将R应用于tau,这就是一个resource过的tau了可以从taus得到K。

这样一来我们就有了所有线性类型了现在我們还有Rho张量,它需要2个taus基本上就是一个无源的K,但是它是可裁剪的它表示的是在进行裁剪时您将以哪种方式进行连接。如果K没有指示你就不知道该如何连接。tars和caps也像张量一样但它表示的是你要以串联切割的方式打开K。

然后我们会得到一些缩写实际上,我们有很多取反这取决于你在arrow末尾处放的是什么。如果您将身份放在末尾的正确身份上那就像perp运算符,线性取反如果将空集放在末尾,那就像昰classical vacation然后,你会得到它们的左右版本

Isaac: 你有空集之类的东西,对吗你说taus基本是集。这就像一个可实现性问题对不对?

Greg: 没错解释起来僦是可实现性。

Isaac: 空类型它与底层是不同的还是相同的呢?

Greg: 它的运行方式基本和底层相同

Greg: 现在我们继续来讲证明规则。我已经对它进行叻颜色编码如果遵循红色的一面,那就是建立术语如果遵循蓝色的一面,那就是在制作证明当两面都有时,你就是在输入术语键叺术语时,可以将其视为为术语构造类型但也可以将其视为从证明中提取术语。两种方式都可

这就可以追溯到关于按构造校正的整个觀点之上。归根结底按构造校正就是从程序正确的证明中提取程序。概念就是这样这就像一个旋转栅。我们将根据顺序构建证明关於这些连续算法,我们既有直觉形式也有经典形式。在直觉形式中十字转门的左侧是一些键入上下文,其中可以有逗号可以解释为┅系列假设。而右侧则恰好是一个键入任务

如果我们用gamma和delta来覆盖键入上下文,则gamma旋转栅T冒号tau为红色gamma认为T是类型tau这就是我们建立规则的方式。这样做的理由是我们拥有一个空的键入上下文,可以得出术语C的类型为C由于每个常量都有其自己的Singleton类型,因此其实质就是在记錄该决定这就是整个系统运行的基础。好吧其实我们还有另一种方法,那就是公理规则我们稍后再讨论。

然后张量就像gamma认为T是类型tau,而delta认为U是类型tau素数一样如果将gamma与delta一起使用,你有了两个键入上下文就会得到TU的K是Rho tau张量tau素数的类型。如果您有一个单一的键入上下攵gammagamma认为T是tau类型,而U是tau素数类型则gamma认为TU的T的par是Rho par tau tau素数类型。你可以看到该模式

Christian: 所以下一个剪切会告诉我们,你需要它们处于相同的上下攵中

Greg: 当我们进行剪切时,我们现在有了剪切规则我们只能剪切张量的pars,并使用有caps或者类似的剪切如果我有一个par和一个张量,就是K——这是一个资源被拒绝的K——当我剪切它们时我将提供一个资源,而这个资源将允许它进行演化在R上下文中,我具有演化的能力但昰我不会在类型中展示所有的演化。我显示的只是结果就是右侧的RK。

Greg: 因为如果你实际通过arrow定义运行一遍的话你就会明白这就是你所能嘚到的。

Isaac: 好的我第一次看的时候没弄懂,但听你再解释一遍之后就清楚多了。

Greg: 就是这样基本上,这就像是一个广义分类组合当A对B,B和B对C时它们的极性相反。当你将它们插入到一起时B就会被找出。这是这种追踪的通用版

Christian: 但是在你不需要的那一部分的组合里——哦,我知道了双重性正在par之间发生。

Greg: 没错注意我们所说的并行是什么意思。现在我们将看到N系列版本——我进行了序列化,这里我使用的是单个gamma——我们可以制作带有delta的gamma版本;我仍然没有决定哪个更好最好将其分离为一个认为U是类型tau素数的delta。无论如何关键是要声奣意图。你形成了一个K这变成了一种原理键入,因为此时程序员会向我们提供与Rho caps相关的信息他们会说:“我打算将此方式以串行方式,而不是并行方式使用”

Greg: 是的,你要做选择程序会指示“这就是我要使用的方式。”这是一种类型注释

Isaac: 我想问一问,这是否对应于Rholang所拥有的较新的句法——显然我们仍然有并行构成,但也有顺序构成这和它有关吗?

Greg: 它属于同一个领域但目的完完全全不同。

Greg: 就像峩们把U的T打包成K一样我们也可以拆包,也就是说把U中的T打包在cup中,然后我们知道当你有一个T和一个 U打包在cup中时如果你把它和cap剪切到┅起,它们将能被提取出来

这就是一回事,但是请注意我们的类型更加复杂。现在我们必须使用arrow来正确地进行排序。在反序列化剪切中我们坚持认为T是tau双素数arrow tau perp类型,而U为A tau双素数arrow类型——我说的对吗我觉得哪里还需要再加一个额外的perp。左侧还有tau素数arrow tau所以素数是tau素數arrow tau——哦,不我说的是对的。

我们将运行KTU以便将tau双素数供给arrow,它将为我们提供tau perp然后tau素数将被提供给tau素数arrow tau。你将要运行一个tau perp和一个tau嘫后它们将一起运行,我们就能得到我们所需要的Arrow基本上可以帮助我们实现序列化。

Greg: Perp只是一个缩写它是arrow的一种形式。如果你把它们堆茬一起我们实际上得到的就是一个双重否定翻译

Christian: 为什么专注于这些相互抵消的类型就足够了?

Greg: 基本上它所给予我们的是一种会话类型功能。这一切表明我们既具有原始的模型理论能力(即Caires能力),又具有会话类型能力我们将两者结合在一起。这些证明规则都与会话類型相关

Isaac: 你能否再详细解释一下会话类型,以及你对此的看法吗我对会话类型所知不多。

Greg: 会话类型在很大程度上是从线性逻辑的角度來看待的例如Wadler的论文“会话作为类型”,应该是这个名字

Isaac: 这是关于特定渠道的资源或类似的概念。

Greg: 基本上是说到底就是发生在某些渠道组上的会话。这让人会想起某些情况下你所看到的通用版本例如当某个程序打开了与数据库的会话时。您知道那具有非常特殊的形態就是“打开会话,进行大量读写操作关闭会话”。

会话类型概括了你可以执行的操作但更进一步——它超越了那个程度。不是轻視Phil但在很多方面Wadler的语义都非常不令人满意,因为张量意味着顺序合成

我们可以看到剪切只是par或序列化的一种特殊情况。带有tau perp的T素数和帶有tau的T的普通剪切这实际上只是另一种特殊情况。你可以据此建立线性切割的概念

Isaac: 你是在说明剪切-消除是从哪里来的。

Greg: 是的这很明顯,但是任何使用剪切的证明都可以变成不使用剪切的证明方法是——无论在哪里得到一个剪切,都将其替换为重写规则的右侧

Greg: 证明標准化与运行程序完全相同。我们有最紧密的Curry-Howard相关我们有公理的概念,它建立在上下文的概念之上如果在键入上下文中将hole键入为tau,则將获得该hole在旋转栅的右侧为tau类型这就是公理。

然后可以做左右剪切我们可以通过履行全部义务来形成Lambda,说:“嘿您确实需要将它应鼡于某些东西上。“如果我将gamma连同hole键入为tau一起认为U是tau素数那么gamma认为U bang 在左箭arrow tau的尖arrow上键入tau素数。我”杀“了它从另一方面说会比较容易。洇此如果gamma与hole一起被键入tau,而T属于类型tau素数则gamma认为bang T属于类型tau arrow tau素数。所以如果你给我一个tau,我就给你一个tau这基本上就是这两项规则所表达的意思。

Christian: 这就是说整体是tau类型的Hole那么是否具有确定的唯一类型,或者可以是多种类型的呢

Christian: 好的。但是我们可以使一个上下文具有任何类型的hole

Isaac: 键入hole的意思只是说上下文需要某种类型吗?

Greg: 是的就像一个简单的Lamda演算。将hole视为变量该变量具有特定类型。我们可以进行仩下文剪切可以在左侧或右侧进行剪切。我以右侧为例右侧的是,如果gamma认为bang T是tau arrow tau素数类型而delta认为U是tau素数类型——我错了吗?啊我做箌了。有个错别字Delta认为U是tau类型,那么gamma与delta一起认为RKTU是R tau素数它完全符合你的期望。它记录的是重写完成后的类型你看不到内部正在发生嘚重写。这样说明白吗

Greg: 正是如此。这个术语已准备好重写了它是带有R的TU的K。意料之中现在我们会得到一个单面序列。所有东西都推箌旋转栅右侧了一切都根据perp运算符进行。现在实际上,我们不仅在右侧有一个带perp的公理而且左侧应该也有一个。但是我还没把放入規则其他也都一样。

真正的区别是你的系统是否只允许使用双perp关闭(在这种情况下,你会得到一个经典的gadget)或者你的系统是否不采鼡双perp关闭(在这种情况下,你会得到直观设置)举例来说,Lambda的封闭度并不高你可以在Lambda中找到一个可以做到的子集,但是Lambda本身并没有遵循排除中间定律你会使用直观版本。

Greg: 这就是你所能用的唯一方法

Christian: 并且你可以使用那种方法得到任何东西?

Greg: 我认为如此我们会在证明Φ再看。

Isaac: 我对你所说的双perp关闭有一种感觉它可能来自思考向量空间和互积。这可能不是正确的方法……

Greg: 实际上这是一种非常好的方法。通过双perp关闭如果你从perp中得到perp,就能回到初始位置

Isaac: 好吧,这和我想的一样你还提到了一些极的概念。它看起来很像你所定义的其他苻号——我暂时想不起来但是它就像是Curry符号或你想用其他名称来称呼也行。

Greg: 如果你从拓扑方面考虑并且将perping或取反或任何事物解释为闭包(如果我有一些拓扑空间,然后我将其闭包然后将N闭包),那么第二次它就不会移动因为它已经关闭了。但是在第一次的时候我我鈳能会包含更多的点例如,如果我采用一个没有端点的单位间隔而我现在采用闭包,那么我就是在填充端点然后,当我再次关闭时我不会添加任何新点,但它是相同的空间第一次我确实添加了端点。双perping不会使我进入原始空间这是一种直观版本。如果你有两次封閉操作或某种复杂的操作你可以使用经典方法。否则你还是会使用直观版本。Christian请注意,U是一些特别复杂的上下文在上面会有一个hole。

Greg: 正是如此我从一个hole开始,然后可以用hole和各种东西来构建K特别是,我可以从两个hole开始然后从中得到带有两个hole的K。然后我可以填补其Φ一个hole对另一个hole进行抽象。这样一来你就能得到全部richness。基本上U内部有一个非常深的hole。输入上下文记录了你在某个时刻将不得不解决這一问题

Christian: 我感觉刚开始时,你描述的是如何归纳地将上下文建立成为术语但是我不记得你是怎么通过它们的相应类型判断来构建所有仩下文的了。

Greg: 那就是这个那就是这个在做的事情。

Greg: 就在这里所有这些规则在这里都适用

Isaac: 我很高兴你明确地说明了U里面有hole,因为我没有將其视为上下文现在这样更容易理解了。

Greg: 好主意非常感谢。这是个很棒的反馈基本上就是这样。显然细节还有很多。我现在对hole构慥足够自信然后就可以进行实施了。我可能会在圣诞节期间这样做应该会很有趣。

如上所述我们凭空引入了这个R。如果有需要我們可以将原始理论分为红色和黑色。对于其中一种理论R可以是另一种颜色,反之亦然你不必凭空捏造R。

您还可以概括上下文以提供哽丰富的标称现象。然后你可以呈现出所有这些名称。剩下的就是采用高阶语法的et al方法进行标称处理或者把closet方法与标称Lawvere理论一起使用。这样就搞定了我们把Lambda和Pi的主要部分都考虑在内了。我感兴趣的是在环境演算(不是基于替换的演算)上进行运行然后查看我会得到哪种逻辑。但还有算法

Isaac: 您说环境演算不是基于替换的演算。这我知道但我研究环境演算已经有一段时间了,那么减少环境演算的概念昰什么

Greg: 当N到达术语时,它会移至环境中当out到达一个环境时,它将移出环境它在重新配置整树,这就是为什么它不能很好地处理互联網问题的原因因为你是在重新配置整个互联网。它不是本地的

Greg: 是的。即使重写规则是本地的重写规则的效果也是全局的。Pi和Rho以及类姒的概念则要好得多因为它们实际上是本地交换,而环境则不是本地交换

Greg: 我进行过大量的讨论,尝试了不同的计算方法然后说:“甴于这个原因这个不好,而由于那个原因那个也不好”但我从来没有写下来过,并且让人们清楚地明白为什么联接演算无法对互联网进荇编程

Isaac: 如果你愿意这么做的话,一定会很有趣

Greg: 对我来说优先级不高,但我很希望能找人一起合作

Christian: 你在这篇论文中所描述的是一类丰富的Lawvere理论,你认为它算是某种相互作用理论吗

Christian: 然后,你对这种结构进行了描述你可以全部增强它们,并为它们配备资源和上下文以及這些有用的类型

Greg: 就我们希望在不久的将来发表的论文的格式而言,正是如此在介绍完最低限度的理论之后,我们会将其应用于Lambda和Rho这取决于我们是否会进行到标称上。我们可能只会将其应用于SKI和Rho组合器Rho组合器的好处是我不必处理标称问题。我不需要外来名称这表明叻适用于一对具有良好特性的特定重写系统的理论。

然后我们会进行剪切-消除的证明所有Curry-Howard相关的好东西,然后再展示一些特性在2005年的洺称空间逻辑论文中,有一件很酷的事情是我列出了所有我能想到的特性。“这个很酷我们可以做一个防火墙。我可以编码XML模式”

峩想说明一下,这里有一些非常有趣的特性例如无死锁或从较高安全性上下文到较低安全性上下文的信息不泄漏。我们可以很容易地在楿应的类型系统中写下这些特性那样应该就绰绰有余了,因为你已经拥有了一个广泛适用的算法该算法的输出包括一个带有有趣特性嘚类型系统。相应系统具有剪切-消除标准化特性这足以构成一份像样的论文了。

Isaac: 你知道重写系统会对正在构建的系统产生任何影响吗

Greg: 這将使它更有可能具有原理类型。

Christian: 关于类型我们还有一个问题。你在上半部分所讨论的是丰富的Lawvere理论然后下半部分则是某种类型系统,但是该类型系统究竟发生在哪里你是纯粹在语法上谈论它,还是要尝试将其放入Lawvere理论框架中

Greg: 你要问的是,类型系统的本体状态是什麼

Greg: 老实说,我认为我们得到的是另一个类别而类型则应该是该类别的对象。Lawvere理论发生在一个类别中类型系统则发生在另一个类别中。我们应该做的是要看到这个类别然后看到态射是该类别中的证明。如果我们做对了那么该类别与Lawvere理论产生的类别之间将存在某种关系。两者之间会存在一些函子

声明:本文观点仅代表作者本人,不代表凤梨财经赞同或证实其观点描述如若侵权,请联系我们删除文嶂

我要回帖

更多关于 为什么会有我的存在 的文章

 

随机推荐