DM@数理逻辑@命题公式及其赋值@真值表@公式分类

文章目录

abstract

DM@数理逻辑@命题公式及其赋值@真值表@公式分类

命题公式及其赋值

命题常项

  • 简单命题是命题逻辑 中最基本的研究单位,其真值式确定的,称为命题常项命题常元
  • 命题常项 相当于初等数学中的常数(0,1)

命题变项

  • 对应于初等数学中的变量,命题逻辑中有:取值1(真)或0(假)的变元称为命题变项命题变元
  • 用命题变项表示真值可以变换的陈述句
  • 命题变项不是命题,其和命题常项的关系如同初等数学中变量与常量的关系

命题公式

合式公式(命题公式)

  • 将命题变相用联结词圆括号 按一定逻辑关系 联系起来的符号串 ,称为合式公式
  • 单个命题变项是合式公式,且称为原子命题公式

限定基本联结词的合适公式的定义

  • 当使用联结词集 { ¬ , ∨ , ∧ , → , ↔ \neg,\vee,\wedge,\to,\leftrightarrow ¬,∨,∧,→,↔}时,合式公式定义(递归定义)为:
    1. 单个命题变项是合式公式
    2. 若 A , B A,B A,B都是合式公式,则 ( ¬ A ) (\neg{A}) (¬A), ( A ∨ B ) (A\vee{B}) (A∨B), ( A ∧ B ) (A\wedge{B}) (A∧B), ( A → B ) , ( A ↔ B ) (A\to{B}),(A\leftrightarrow{B}) (A→B),(A↔B)是合式公式.不妨称这几个公式为一层公式
    3. 有限次应用(2)中的方式形成的符号串是合式公式
  • 合式公式也成为命题公式 ,简称公式
  • Note:
    • 析取联结词 ∧ \wedge ∧不能省略不写
    • 任意两个不重叠的子公式都要有二元联结词( T T T中的联结词)链接,例如 p q → r pq\to{r} pq→r就不是合式公式,而 p ∧ q → r p\wedge{q}\to{r} p∧q→r是合式公式

合式公式中的0和1

  • 合适公式可以出现0,1它们分别视为 p ∧ ¬ p p\wedge{\neg{p}} p∧¬p, p ∨ ¬ p p\vee{\neg{p}} p∨¬p;两种表示可以相互替换和解释

子公式

  • 设 A A A为合式公式, B B B是 A A A中的一部分(子串),则称 B B B是 A A A的子公式

公式的层次定义

  • 若公式 A A A是单个命题变项,则 A A A称为0层公式

  • 设 B B B是 n n n层公式,则 A = ¬ B A=\neg{B} A=¬B是 n + 1 n+1 n+1层公式

  • 称设 B , C B,C B,C分别是 i , j i,j i,j层公式,且 n = max ⁡ ( i , j ) n=\max(i,j) n=max(i,j),则 A = B ∗ C A=B*{C} A=B∗C是 n + 1 n+1 n+1层的( ∗ ∈ T = { ∨ , ∧ , → , ↔ } *\in T=\{\vee,\wedge,\to,\leftrightarrow\} ∗∈T={∨,∧,→,↔})

    • 即, A = B ∧ C A=B\wedge{C} A=B∧C, A = B ∨ C A=B\vee{C} A=B∨C, A = B → C A=B\to{C} A=B→C, A = B ↔ C A=B\leftrightarrow{C} A=B↔C的层数是 1 + max ⁡ ( i , j ) 1+\max{(i,j)} 1+max(i,j)

分层加括号

  • 例如: ( ¬ p ∨ q ) → r (\neg{p}\vee{q})\to{r} (¬p∨q)→r可以通过加括号处理,(对1层及上的子公式加括号)使得计数其层数更加容易: ( ( ( ¬ p ) ∨ q ) → r ) (((\neg{p})\vee{q})\to{r}) (((¬p)∨q)→r),可以看到,该公式的最深称括号有3层,各层如下
    • 0层: p , q , r p,q,r p,q,r,(我们通常对0层不感兴趣)
    • 1层: ¬ p \neg{p} ¬p,
    • 2层: ¬ p ∨ q \neg{p}\vee{q} ¬p∨q
    • 3层: ( ¬ p ∨ q ) → r (\neg{p}\vee{q})\to{r} (¬p∨q)→r
  • 例: ( ¬ ( p → ¬ q ) ) ∧ ( ( r ∨ s ) ↔ ¬ p ) (\neg{(p\to{\neg{q}})}) \wedge{((r\vee{s)\leftrightarrow{\neg{p}}})} (¬(p→¬q))∧((r∨s)↔¬p),可以加括号为: ( ( ¬ ( p → ( ¬ q ) ) ) ∧ ( ( r ∨ s ) ↔ ( ¬ p ) ) ) ((\neg{(p\to{(\neg{q})})}) \wedge{((r\vee{s)\leftrightarrow{(\neg{p})}})}) ((¬(p→(¬q)))∧((r∨s)↔(¬p)));可见其有4层

命题公式的赋值和解释

  • 设 p 1 , ⋯   , p n p_1,\cdots,p_n p1,⋯,pn是出现在公式 A A A中的全部命题变项(公式 A A A表示为 A ( p 1 , ⋯   , p n ) A(p_1,\cdots,p_n) A(p1,⋯,pn)),分别为这 n n n个命题变项指定一个真值 ,称为对公式 A A A的一个赋值解释

  • 写法: p 1 = α 1 , ⋯   , p n = α n p_1=\alpha_1,\cdots,p_n=\alpha_n p1=α1,⋯,pn=αn可以简写为 α 1 , ⋯   , α n \alpha_1,\cdots,\alpha_n α1,⋯,αn

成真赋值@成假赋值

  • 若指定一组值使得 A A A为1,记为 A = 1 A=1 A=1,称这组值为 A A A的成真赋值
    • 若 A = 0 A=0 A=0,则称这组值为 A A A的成假赋值

公式的书写规范@括号的省略

  • 为了方便起见,一层公式单独出现的时候,可以省略括号不写,
  • 公式中不影响运算次序的括号也可以省去,例如 ( p ∨ q ) ∨ ( ¬ r ) (p\vee{q})\vee{(\neg{r})} (p∨q)∨(¬r)可以简写为 p ∨ q ∨ ¬ r p\vee{q}\vee\neg{r} p∨q∨¬r

真值表

  • 反映公式 A A A所有取值及其结果的表称为 A A A的真值表

赋值方法数量

  • n n n个命题变项(构成)的公式有 2 n 2^{n} 2n种不同的赋值方法
  • 将 n n n个命题变项(构成)的公式全体构成的集合记为 F ( n ) F(n) F(n),意味着 F ( n ) F(n) F(n)中公式的真值表有 2 n 2^{n} 2n行

构造真值表

总体步骤是,列出 2 n 2^{n} 2n个不同的赋值,分别计算它们的真值,具体的操作如下:

  1. 找出公式中所有的命题变项 p 1 , ⋯   , p n p_1,\cdots,p_n p1,⋯,pn,列出 2 n 2^{n} 2n个赋值
    • 赋值从 0 ⋯ 0 0\cdots0 0⋯0,按二进制加法加1生成下一个赋值,到 1 ⋯ 1 1\cdots1 1⋯1为止,恰好 2 n 2^{n} 2n个赋值
  2. 公式层次分析:从低层次到高层的顺序分解公式的各个层次
  3. 对应各个赋值计算各个层次的真值,那么最后一个层次的真值就是整个公式的真值

例: ( ¬ p ∧ q ) → ¬ r (\neg{p}\wedge{q})\to{\neg{r}} (¬p∧q)→¬r

p q r pqr pqr ¬ p \neg{p} ¬p ¬ r \neg{r} ¬r ¬ p ∧ q \neg{p}\wedge{q} ¬p∧q ( ¬ p ∧ q ) → ¬ r (\neg{p}\wedge{q})\to{\neg{r}} (¬p∧q)→¬r
000 1 1 0 1
001 1 0 0 1
010 1 1 1 1
011 1 0 1 0
100 0 0 0 1
101 0 0 0 1
110 0 1 0 1
111 0 0 0 1
  • 第1列是赋值,第2,3列是第一层子式,第3列示第3层子式,最后一列是整个公式的真值
    • 其中非首尾的各列是为了提高计算正确率的辅助列,并不是一个真值表必须的列
    • 第一列也可以看作是0层列,低层的列可以帮助计算高层的列,减少重复计算

公式分类

  • 若 A A A在所有赋值下取值均为 ,则 A A A称为重言式永真式 ( A A A的真值表最后一列全为1)
  • 若 A A A在它的所有赋值下取值均为 ,则 A A A称为矛盾式永假式 ( A A A的真值表最后一列全为0)
  • 若 A A A不是矛盾式 ,则 A A A使可满足式 ,特别的,若至少存在一个成假赋值 ,则称 A A A为非重言可满足式
相关推荐
iceslime1 个月前
Educator头歌:离散数学 - 图论
图论·离散数学·分享·educator
rootting2 个月前
离散数学实验五c语言(并查集处理,Kruskal算法求最小生成树)
c语言·开发语言·课程设计·离散数学·大作业·克鲁斯卡尔算法
rootting2 个月前
离散数学实验四c语言(计算可达矩阵,判断性质:强连通性、单侧联通性质、无联通性质、弱联通性质)
c语言·算法·矩阵·课程设计·离散数学·大作业
rootting2 个月前
离散数学实验二c语言(输出关系矩阵,输出矩阵性质,输出自反闭包,对称闭包,传递闭包,判断矩阵是否为等价关系,相容关系,偏序关系)
c语言·算法·矩阵·课程设计·离散数学·大作业
summ1ts3 个月前
组合数求法汇总
c++·数学·算法·离散数学·组合数学
YiYo8324 个月前
XJTUSE-离散数学-命题演算
离散数学
桃木山人6 个月前
离散数学-万字课堂笔记-期末考试-考研复习-北航离散数学1
考研·数学·离散数学·期末
块上码10 个月前
【笔记】【电子科大 离散数学】 3.谓词逻辑
笔记·离散数学
块上码10 个月前
【笔记】【电子科大 离散数学】 2.命题
人工智能·笔记·自然语言处理·离散数学
kaixin_啊啊1 年前
离散数学——图论(笔记及思维导图)
笔记·图论·思维导图·离散数学