什么是共生?


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类型是包含内置的所有值最小的类型nilcons构造,与公理。相反,我们可以定义最大的类型,该类型包含从这些构造函数构建的所有值,同时保持区分公理:xy,nilconsxy

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定义的格式正确。归纳法看待构造函数,共归法看待析构函数。请注意,对偶性不仅会变小,而且会变大,输入也变大。例如,上述flipflopfrom定义格式正确的原因是,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的轨迹是图形中路径上的边缘标签序列。

ABSLRS×S

(p,q)R, if pαp then q,qαq and (p,q)R

ABBAR

R1R2R1R2

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

参考文献

  • 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

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

εTwTawTawTbawT

Tb

T={ε,a,aa,ba,aaa,aba,}=L((baa))Σ.

TT={a,b}

f:2Σ2Σ

f(T)=T{ε}{awwT}{bawawT}

Tff(2Σ,){ε}T

wawawwTTΣbbT=L((baa)ω)

fTT{ε}Σ


符号:

  • Σ=ΣΣω
  • ΣωΣ

wTawT
{ε}


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.