什么是共生?


67

我听说过(结构性)归纳法。它使您可以从较小的结构中构建有限的结构,并为证明这种结构的原理提供证明。这个想法很明确。

但是共生呢?它是如何工作的?怎么能说出无限结构的定论呢?

有(至少)两个角度需要解决,即共归作为一种定义事物的方式和一种证明技术。

关于共生作为证明技术,共生和双仿真之间是什么关系?


4
我实际上想知道这个答案:)
— Suresh 2012年

1
另请参阅cs.cornell.edu/~kozen/papers/Structural.pdf以获取指导文章。
— mrp

Answers:


59

首先,要消除可能的认知失调:对无限结构的推理不是问题,我们一直在这样做。只要结构是有限可描述的,那不是问题。以下是几种常见的无限结构类型:

  • 语言(某些字母上的字符串集,可能是有限的);
  • 树的语言(某些字母上的树集);
  • 非确定性系统的执行痕迹;
  • 实数;
  • 整数集;
  • 从整数到整数的函数集;…

互导性是最大的固定点

在归纳定义从基本构造块构建结构的地方,共归定义从如何解构的角度塑造结构。例如,其元素在集合中的列表类型A在Coq中定义如下:

Inductive list (A:Set) : Set :=
  | nil : list A
  | cons : A -> list A -> list A.

通俗地说,该list类型是包含内置的所有值最小的类型nil和cons构造,与公理。相反,我们可以定义最大的类型,该类型包含从这些构造函数构建的所有值,同时保持区分公理:∀xy,nil≠consxy

CoInductive colist (A:Set) : Set :=
  | conil : colist A
  | cocons : A -> colist A -> colist A.

list与的子集同构colist。此外,还colist包含无限列表:带有coconson的列表cocons。

CoFixpoint flipflop : colist ℕ := cocons 1 (cocons 2 flipflop).
CoFixpoint from (n:ℕ) : colist ℕ := cocons n (from (1 + n)).

flipflop1::2::1::2::…from 00::1::2::…

如果结果是从较小的块构建的,则递归定义的格式正确:递归调用必须在较小的输入上起作用。如果结果构建了更大的对象,则corecursive定义的格式正确。归纳法看待构造函数,共归法看待析构函数。请注意,对偶性不仅会变小,而且会变大,输入也变大。例如,上述flipflop和from定义格式正确的原因是,cocons在两种情况下,corecursive调用均由对构造函数的调用来保护。

关于归纳对象的陈述具有归纳证明,而关于共归对象的陈述具有共归证明。例如,让我们在colists上定义无限谓词。从直觉上讲,无穷无尽的Collist并非以结束conil。

CoInductive Infinite A : colist A -> Prop :=
  | Inf : forall x l, Infinite l -> Infinite (cocons x l).

为了证明形式的colists from n是无限的,我们可以通过共归进行推理。from n等于cocons n (from (1 + n))。这表明from n大于from (1 + n),这是通过共归假设无限的,因此from n是无限的。

双相似性,共生性质

共生作为证明技术也适用于最终物体。直观地讲,关于对象的归纳证明基于对象的构建方式。归纳证明基于对象如何分解。

在研究确定性系统时,通常通过归纳规则定义等价关系:如果可以通过一系列转换从一个系统转换到另一个系统,则两个系统是等效的。尽管内部结构不同,但这样的定义往往无法捕获不确定性系统最终可能具有相同(可观察)行为的许多不同方式。(共导对于描述非终止系统也很有用,即使它们是确定性的,但这也不是我在此要重点介绍的内容。)

非确定性系统(例如并发系统)通常由标记的过渡系统建模。LTS是其中标记了边缘的有向图。每个边缘代表系统的可能过渡。LTS的轨迹是图形中路径上的边缘标签序列。

ABSL→R⊆S×S

∀(p,q)∈R, if p→αp′ then ∃q′,q→αq′ and (p′,q′)∈R

ABBAR

R1R2R1∪R2

双相似性是一个共生性质。可以将其定义为运算符的最大固定点:它是最大的关系,当扩展该关系以标识等效状态时,它保持不变。

参考文献

  • Coq和归纳结构的演算

    • 伊夫·贝托(Yves Bertot)和皮埃尔·卡斯特兰(PierreCastéran)。互动定理证明和程序开发— Coq'Art:归纳结构的演算。施普林格,2004年。13. [ 网站 ] [ 亚马逊 ]
    • 爱德华多(EduardoGiménez)。归纳类型在coq中的应用:交替比特协议的验证。在“证明和程序类型研讨会”中,《计算机科学讲义》第1158号,第135-152页。Springer-Verlag,1995年。[ Google图书 ]
    • EduardoGiménez和PierreCastéran。Coq中[Co-]归纳类型的教程。2007. [ PDF ]
  • 标记的过渡系统和双仿真

    • 罗宾·米尔纳(Robin Milner)。沟通与并发。普伦蒂斯·霍尔(Prentice Hall),1989年。
    • Davide Sangiorgi。双重模拟与共生的起源。ACM编程语言和系统交易(TOPLAS),第31卷,第4期,2009年5月。[ PDF ] [ ACM ]相关的课程幻灯片:[ PDF ] [ CiteSeer ]
    • Davide Sangiorgi。Pi演算:移动过程理论。剑桥大学出版社,2003年。[ 亚马逊 ]

    • 一章中的认证程序与相关类型由A. Chlipala

    • D.Sangiorgi。“双仿真和共生介绍”。2011. [ PDF ]
    • D. Sangiorgi和J. Rutten。双模拟和归纳的高级话题。剑桥大学出版社,2012年。[ CUP ]

21

让我们考虑以下归纳定义:

⇒ε∈Tw∈T⇒aw∈Taw∈T⇒baw∈T

Tb

T={ε,a,aa,ba,aaa,aba,…}=L((ba∣a)∗)⊆Σ∗.

TT={a,b}∗

f:2Σ∞→2Σ∞

f(T)=T∪{ε}∪{aw∣w∈T}∪{baw∣aw∈T}

Tff(2Σ∞,⊆){ε}T

wawawwT′T′Σ∞bbT′=L((ba∣a)ω)

fT′T′{ε}Σ∞


符号:

  • Σ∞=Σ∗∪Σω
  • ΣωΣ

w∈T⇒aw∉T
{ε}


2
我希望归纳解释是适当的。
— 拉斐尔

ω

ωΣ∞

很好的解释。但是,我不明白这句话We can not turn the anchor around, so it goes away。
— 衡新2014年

ε∈T′ε∉T′
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.