Questions tagged «logic»

与数学逻辑有关的问题及其在计算机科学中的用途

1
动态逻辑与时间逻辑之间的区别
为了找到区别,我在下面遇到了有关Wikipedia中时间逻辑的断言: 模态逻辑与动态逻辑具有许多共同特征的另一种变体与所有上述逻辑的不同之处在于Pnueli将其表征为“内生”逻辑,而其他则是“外生”逻辑。Pnueli的意思是,时间逻辑断言是在一个通用的行为框架内解释的,其中单个全局情况随时间的流逝而变化,而其他逻辑的断言则是在它们所针对的多个动作的外部做出的。内源性方法的优点是,它对环境随时间变化的原因没有做出任何基本假设。相反,时态逻辑公式可以讨论系统的两个不相关部分,因为它们是不相关的,因此它们是默认地并行地并行发展的。实际上,时间断言的普通逻辑结合是时间逻辑的并发合成运算符。这种并发方法的简单性使得时间逻辑成为选择并发系统的模态逻辑,并具有同步,干扰,独立性,死锁,活锁,公平等方面的推理。 我无法意识到这种差异。动态逻辑不能涵盖自变量中的每个时间驱动方面以及时态逻辑吗? 还是为什么动态不应该处理并发系统? 你能解决这个问题吗?

3
逻辑与计算入门书
您能给我一些有关逻辑和计算的入门(但全面)书籍的建议吗? 我想到的一些模糊主题是: Presburger artihm。,PA,ZF,ZFC,HOL 集合论,类型论 不同理论的建模计算(车床) 与计算复杂度(FMT,描述性复杂度)链接

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
推理的完整性和完整性的示例
关于推理算法是否健全和完整,以下示例是否正确? 假设我们在大海捞针中有针a,b,c,并且还有一个旨在查找针的推理算法。 声音 -仅获得针a,b和c。 完成 -获得针头a,b和c。也可以获得其他干草。
11 logic 

3
和之间有区别吗?
我目前正在学习Lambda演算,并且想知道以下两种不同的书写Lambda术语的方法。 λ X ÿ。X ÿλXÿ。Xÿ\lambda xy.xy λ X 。λ ÿ。X ÿλX。λÿ。Xÿ\lambda x.\lambda y.xy 意思或应用beta减少的方式是否存在任何差异,或者仅是表达同一件事的两种方式? 尤其是对创建的定义让我感到奇怪: 对 =λ X ÿ。λ p 。p X ÿλXÿ。λp。pXÿ\lambda xy.\lambda p.pxy

2
具有两种不同价格的饮料分配器的CCS流程
饮料分配器要求用户插入硬币(),然后按三个按钮之一:要求喝杯茶,同上咖啡,要求退款(即机器退回硬币:)。可以通过以下CCS流程对分配器进行建模:c¯c¯\bar cd¯tead¯tea\bar d_{\text{tea}}eteaeteae_{\text{tea}}r¯r¯\bar rb¯b¯\bar b M=defc.(dtea.e¯tea.M+dcoffee.e¯coffee.M+r.b¯.M)M=defc.(dtea.e¯tea.M+dcoffee.e¯coffee.M+r.b¯.M) M \stackrel{\mathrm{def}}= c.(d_{\text{tea}}.\bar e_{\text{tea}}.M + d_{\text{coffee}}.\bar e_{\text{coffee}}.M + r.\bar b.M) 内战将咖啡的价格提高到两枚硬币,而茶的价格仍然是一枚硬币。我们想要一台经过改进的机器,该机器仅在两枚硬币后才送出咖啡,并默认一枚或两枚硬币后才能退款。我们如何使用CCS流程对修改后的机器建模?

1
逻辑上“完成”有双重概念吗?
如果两个计算模型可以相互编码,则可以证明两个计算模型是完整的。如果每个推理规则的编码(如果存在则可能是公理)被证明是另一个定理,则可以证明两个逻辑是完整的。在可计算性方面,这导致了图灵完整性和教会图灵论文的自然思想。但是,我还没有看到逻辑上的完备性导致自然而然地得出类似质量的总体完备性的想法。 由于可证明性和可计算性是如此紧密地联系在一起,因此我认为没有什么逻辑上的概念可以成为图灵完备性的自然对偶。从推测上来说,是这样的:存在一个“真”定理,当且仅当存在一个计算模型无法描述的可计算函数时,该定理才能在逻辑中证明。我的问题是,有人研究过吗?参考或一些关键字会有所帮助。 在上一段中,“真实”和“可计算”是指直觉但最终无法定义的想法。例如,有人可以证明,在没有完全定义“真”的概念的情况下,古德斯坦序列的有限性是“真”的,但在Peano算术中无法证明。类似地,通过对角化可以显示出,在没有完全定义可计算的概念的情况下,存在一些不是原始递归的可计算函数。我想知道,即使它们最终最终都是经验性的概念,也许这些概念之间的关联性可能足够好,可以将完整性的概念联系起来。

2
哈达玛门背后的直觉
我试图自学量子计算,并且对线性代数有相当的了解。 我通过了NOT门,这还不错,但是后来我到达了Hadamard门。而且我被卡住了。主要是因为尽管我“理解”了这些操作,但我不理解它们的真正作用或为什么要这样做(如果有道理的话)。 例如,当Hadamard门输入它给出。这是什么意思?对于NOT门,它取并给出。对此并不清楚。它给出位的“相反”(对于叠加,它取并给出),我理解为什么是有用的;出于相同的原因(基本上),它在经典计算机中很有用。但是,例如Hadamard门在几何上对向量什么?为什么这有用?| 0 ⟩ + | 1 ⟩| 0⟩|0⟩|0\rangle | 0⟩| 1⟩α| 0⟩+β| 1⟩β| 0⟩+α| 1⟩[αβ]| 0⟩+ | 1⟩2√|0⟩+|1个⟩2\frac{|0\rangle + |1\rangle}{\sqrt{2}}| 0⟩|0⟩|0\rangle| 1⟩|1个⟩|1\rangleα | 0 ⟩ + β| 1⟩α|0⟩+β|1个⟩\alpha|0\rangle+\beta|1\rangleβ| 0⟩+α | 1⟩β|0⟩+α|1个⟩\beta|0\rangle + \alpha|1\rangle[ αβ][αβ]\begin{bmatrix}\alpha \\ \beta \end{bmatrix}

1
术语重写;计算关键对
我曾尝试解决以下练习,但在尝试找到所有关键对时陷入困境。 我有以下问题: 我怎么知道哪个关键对产生了新规则? 我怎么知道我找到了所有关键对? 令Σ={∘,i,e}Σ={∘,i,e}\Sigma= \left \{ \circ, i, e \right \}其中∘∘\circ是二进制,iii是一元,eee是常数。 E=⎧⎩⎨⎪⎪(x∘y)∘z≈x∘(y∘z)x∘e≈xx∘i(x)≈e⎫⎭⎬⎪⎪E={(x∘y)∘z≈x∘(y∘z)x∘e≈xx∘i(x)≈e} E=\left \{ \begin{gather} ( x \circ y ) \circ z \approx x \circ\left ( y \circ z \right ) \\ x \circ e \approx x \\ x \circ i(x) \approx e \end{gather} \right\} 到目前为止我的工作: x∘e>lpoxx∘e>lpoxx\circ e >_{\textsf{lpo}} …

1
DNF到CNF的转换:简单或困难
关于证明从CNF到DNF的转换是NP-Hard的线程(以及相关的Math线程): 从DNF到CNF的另一个方向如何?容易还是困难? 在本文的第2页上,他们似乎暗示了两个方向,当他们说“ 我们对从CNF表示转换为DNF表示(反之亦然)时最大的尺寸爆炸感兴趣 ”时,两个方向都同样困难。 但是DNF-SAT在P中,而CNF-SAT在NP中。因此,在给定DNF表达式,应该有一个满足条件的 CNF表达式其长度是的长度的多项式。而且转换可以在多边形时间内完成。它是否正确?ϕ1个ϕ1个\phi_1ϕ2ϕ2\phi_2ϕ1个ϕ1个\phi_1ϕ1个→ ϕ2ϕ1个→ϕ2\phi_1 \to \phi_2 编辑:更改等效于equisatisfiable(即,附加的变量允许在)。ϕ2ϕ2\phi_2

1
希尔伯特(Hilbert)的第十个问题和柴廷(Chaitin)的丢番图方程“计算机”?
在Chaitin的Meta Math中!在《寻找欧米茄》中,他简短地谈到了希尔伯特的第十个问题。然后他说,任何Diophantine方程都可以变成两个正整数系数相等的多项式:p = 0p = 0p=0p=0。p = 0⟺p1个= p2p=0⟺p1=p2p=0 \iff p_1 = p_2 然后他说我们可以将这些等式想像成“计算机”: 不定方程计算机: 程序:ķ,输出:Ñ,时间:X ,ÿ ,ž ,。。。L (k ,n ,x ,y,ž,。。。)= R (k ,n ,x ,y,ž,。。。)L(k,n,x,y,z,...)=R(k,n,x,y,z,...)L(k,n,x,y,z,...)=R(k,n,x,y,z,...) ķkk ñnn X ,ÿ,ž,。。。x,y,z,...x,y,z,... 与左侧,右侧ř。他说k是这台计算机的程序,输出n。他还说,未知数是一个多维时间变量。大号LL[RRRķkkñnn 令我感到困惑的是,他然后说希尔伯特的第十个问题从这种角度来看显然无法解决。他基本上说“由于图灵的停顿问题”。但是我看不到这种联系(我才刚刚开始学习理论)。我希望有人能更清楚地解释柴廷的观点。 我知道,图灵的暂停问题基本上表明您无法在程序实际停止之前(给定的时间)预测何时停止。使用柴廷(Chaitin)提出的符号,对希尔伯特(Hilbert)的第十个问题有什么应用?



1
不同子句的不同变量
在解析定理证明中,通常假设不同子句中的变量是不同的。这不是自动发生的事情。它需要大量额外的代码和计算才能实现。鉴于此,我正在寻找一个测试用例。 问题是,到目前为止,在我已经尝试过的所有测试用例中,它没有区别。大概只有在异常情况下才重要。正如Wikipedia所说,“不同子句中的变量是不同的...现在,将第一子句中的Q(X)与第二子句中的Q(Y)统一意味着X和Y始终成为相同的变量。” 如果不同的子句使用相同的变量,是否有任何已知的测试用例会给出错误的答案?

3
多态和归纳数据类型
我很好奇。我一直在OCaml中处理此数据类型: type 'a exptree = | Epsilon | Delta of 'a exptree * 'a exptree | Omicron of 'a | Iota of 'a exptree exptree 可以使用显式类型的递归函数(最近添加的功能)进行操作。例: let rec map : 'a 'b. ('a -> 'b) -> 'a exptree -> 'b exptree = fun f -> begin function | Epsilon -> …

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.