Questions tagged «formal-methods»

一种特定的基于数学的技术,用于软件,硬件系统的规范,开发和验证。

2
什么是共生?
我听说过(结构性)归纳法。它使您可以从较小的结构中构建有限的结构,并为证明这种结构的原理提供证明。这个想法很明确。 但是共生呢?它是如何工作的?怎么能说出无限结构的定论呢? 有(至少)两个角度需要解决,即共归作为一种定义事物的方式和一种证明技术。 关于共生作为证明技术,共生和双仿真之间是什么关系?

2
Büchi自动机和线性微积分的等价性
众所周知,每个LTL公式都可以由Büchi -automaton表示。但是,很明显,Büchi自动机是一种功能更强大的表达模型。我在某处听说过Büchi自动机等效于线性时间 -calculus(即具有常规固定点且只有一个时间运算符 -calculus )。μ μ Xωω\omegaμμ\muμμ\muXX\mathbf{X} 是否存在这种相等性的算法(构造证明)?

6
解决图灵“停顿问题”的算法
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 “ Alan Turing于1936年证明,不存在解决所有可能的程序输入对暂停问题的通用算法” 我是否可以找到一种通用算法来解决某些可能的程序输入对的暂停问题? 我是否可以找到一种或多种编程语言,对于每种使用该语言的程序,我都可以决定该程序是否终止或永远运行?

3
正式方法之路
看到学生只有有限的数学和计算机科学方面的背景才开始攻读博士学位的情况并不少见。显然,这样的学生很难成为理论计算机科学家,但如果他们能够精通使用形式方法和阅读包含形式方法的论文,那将是很好的。 初学博士学位的学生可以遵循一条良好的短期途径来获得所需的曝光度,以使他们阅读涉及形式方法的论文并最终撰写使用这种形式方法的论文? 在上下文方面,我在理论B和形式验证方面的思考更多,是他们应该学习的东西,而且还涉及传统的TCS主题,例如自动机理论。

3
什么时候两个模拟不是双模拟?
给定一个标记的过渡系统 ,其中小号是一组状态,Λ是一组标签,并→ ⊆ 小号× Λ × 小号是三元关系。与往常一样,写入p α →交通 q为(p ,α ,q )∈ →交通。将标记的过渡p α →交通 q表示在状态中的系统p改变状态到q与标签(S,Λ ,→ )(S,Λ,→)(S,\Lambda,\to)小号SSΛΛ\Lambda→交通⊆小号× Λ × S→⊆S×Λ×S\to\subseteq S\times\Lambda\times Sp →αqp→αqp \stackrel\alpha\rightarrow q(p ,α ,q)∈ →(p,α,q)∈→(p,\alpha,q)\in\top →αqp→αqp\stackrel\alpha\to qpppqqq,表示 α是引起状态变化的一些可观察动作。αα\alphaαα\alpha 现在关系被一个称为模拟当且仅当 ∀ (p ,q )∈ [R , 如果 p α →交通 p ' 然后 ∃ q ',ř …

2
这种形式分数形式的“离散数学”式表示法是什么?
在论文“无冲突的JSON数据类型”中,我遇到了这种形式化定义“规则”的表示法: 这个符号叫什么?我该怎么读? 例如: 该DOC规则的“分子”中没有任何内容-为什么不呢? 在EXEC和GET规则似乎也行上述两个不同的术语,这是什么意思? 该VAR规则也很引人注目,因为尽管许多其他规则在顶部使用某种箭头(我将其表示为“暗示”),但该规则似乎只是在说x是某物的元素。 几乎所有内容都以首字母开头,Ap,其文字描述为“副本p的状态由Ap描述,是有限的部分函数” –精明的读者怎么会倾向于“看到”每条规则的那一部分? 该站点确实提出了一个相关的问题,该问题的注释看起来非常相似,在此问题上,smallB,s⟩->⟨B',s'⟩作为关于小步长问题的初始规则的意义是什么?语义?—这被标记为“ 操作语义”,这似乎是一个强有力的线索。确实是我解释这些数字所依据的框架吗?您能否以“速成课程”形式轻松地概括一下这一点,以便即使我无法验证他们的证明的正确性,我也至少可以对他们在本节中所说的内容有更多的了解?

5
如果输入受限制或可预测,是否可以解决停止问题?
在一般情况下,无法解决暂停问题。可以提出限制允许输入的已定义规则,并且可以针对这种特殊情况解决暂停问题吗? 例如,似乎一种不允许循环的语言很容易判断程序是否停止。 我现在要解决的问题是,我要制作一个脚本检查程序来检查程序的有效性。如果我确切知道脚本编写者的期望,这可以解决暂停的问题,这意味着非常可预测的输入。如果不能完全解决这个问题,有什么好的近似技术可以解决这个问题?

4
如何检查两种算法是否对任何输入返回相同的结果?
当所有输入的集合都是无限的时,如何检查两种算法(例如,合并排序和朴素排序)对于任何输入是否返回相同的结果? 更新:感谢Ben解释了在一般情况下如何通过算法无法做到这一点。Dave的答案很好地总结了算法方法和手动方法(受人类智慧和隐喻的影响),这些方法并不总是有效的,但却非常有效。

2
程序正确性,规格
来自Wikipedia:在理论计算机科学中,当说算法相对于规范是正确的时,就断言了算法的正确性。 但是问题在于,获得“适当的”规范并不是一件容易的事,并且(据我所知)没有100%正确的方法来获得正确的规范,这只是一种估计,因此,如果我们要仅仅因为谓词看起来像“一个”就以谓词为规范,为什么不仅仅因为它看起来“正确”就认为程序是正确的呢?

2
与无用状态的图灵机有关的问题
好的,这是我的计算理论课上的一个过去测试中的问题: TM中的无用状态是永远不会在任何输入字符串上输入的状态。令 证明。ü 小号Ë 大号Ë 小号小号Ť 中号USELESSTM={⟨M,q⟩∣q is a useless state in M}.USELESSTM={⟨M,q⟩∣q is a useless state in M}.\mathrm{USELESS}_{\mathrm{TM}} = \{\langle M, q \rangle \mid q \text{ is a useless state in }M\}.USELESSTMUSELESSTM\mathrm{USELESS}_{\mathrm{TM}} 我想我有一个答案,但是我不确定是否正确。将其包含在答案部分中。

3
为什么状态在while循环的小步操作语义中保持不变?
通常,我看到在while循环的结构化操作语义表示中,程序状态没有改变: (whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(while \> B \> do \>S, \sigma) \rightarrow (if \>B \> then \>S; (while \> B \> do \>S) \> else \> SKIP, \sigma) 对我来说,这不直观,如果状态没有改变(即内存状态保持不变),则将继续保持为真,并且程序将永远不会终止。B乙B 谁能解释为什么州在这条规则上没有改变?

2
一阶逻辑验证简介
我正在尝试向自己教授软件验证的不同方法。我读了一些文章。据我了解,带有时间的命题逻辑通常在SAT求解器中使用模型检查(在进行中的-反应系统中),但是带有时间的一阶逻辑又如何呢?它使用定理证明吗?还是可以使用SAT? 非常感谢初学者在这本书上指向书籍或文章的任何指针。
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.