逻辑和编程语言(PTIME 的逻辑/命题和谓词逻辑)

逻辑和编程语言(PTIME 的逻辑/命题和谓词逻辑)

天真的连接:
逻辑公式和程序具有相似的构建块。
逻辑运算符在编程中大量使用。
隐含、递归、if else 构造、for 循环等。
更深层次的联系:
(1)分离逻辑(自动化程序验证中的应用)
推理操作指针数据结构的程序。
公式描述堆内存的属性
(2)库里-霍华德对应
函数式编程和逻辑之间的联系
逻辑公式是数据类型
公式证明是计算类型之间函数的程序。

逻辑作为数据库查询语言
(1)关系数据库是关系结构。
(2)关系代数和谓词逻辑可以表达相同的查询。
(3)SQL:从 GradeList 中选择学生、年级、课程
WHERE Grade >= 70 and Course = ‘COM2107’
(4)FO:{(x1,x2,x3)| ∃~y (GradeList(x1, x2, x3, ~y) ∧ x1 ≥ 70 ∧ x2 = COM2107)}
逻辑作为规范语言来表达数据库中的完整性约束
(1)数据库管理系统需要验证某些数据库依赖关系成立。 (例如,外键约束、包含依赖项)
(2)逻辑用于不同数据交换和数据集成的核心系统(例如 IBM Clio 项目)。
描述复杂性理论:
不通过决定属性所需的资源来表征属性,
而是通过表达属性所需的语言的丰富性。

∃:存在量词,意思是“存在(至少一个)
∀:谓词演算等中用来表示全称量词的符号,意思是“对所有人”

逻辑和自动机
有限自动机和正则表达式生成正则语言。
一元二阶逻辑是常规语言的特征。
谓词逻辑表征无星语言。
逻辑和复杂性类
存在二阶逻辑表征 NP。
谓词逻辑在有序结构上表征 PTIME。
主要未解决的问题:是否存在表征 PTIME 的逻辑?
PTIME 的逻辑
基本设置:

  1. 系统(例如,软件或硬件)描述系统行为的 Kripke 结构 单次运行系统
  2. 由 Kripke 结构生成的迹线系统的一个属性(例如,每个请求最终都会被授予)
  3. 表达属性的某种形式语言的公式

模型检查:
检查给定系统是否满足给定规范。
SAT解决:
检查是否可以实现给定的规范(或集合)

逻辑是自动推理的核心
陈述的正式语言。
公理和证明规则为自动推理创建了一个设置。
自动化和交互式定理证明器基于形式逻辑
在定理证明器中形式化你的定理(和背景理论)。
让证明者证明你的定理。

命题和谓词逻辑中的形式证明是什么?
证明系统的健全性和完整性。
命题逻辑的有效性是 coNP 完全的。
(参见 P 与 NP:证明很容易检查,但可能很难创建。)
谓词逻辑的有效性是不可判定的(RE-complete)。
(参见谓词逻辑只能定义图的多项式时间属性。)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值