逻辑语法与带注释谓词逻辑的自然演绎系统
逻辑语法基础
符号转换与解析
当“Bi”被假定为终结符号时,在转换中会使用“member(Bi, Si−1, Si)” 而非 “subset(Bi, Si−1, Si)”。(1)′ 中的参数 S0, S1, …, Sn 是 VT 的多重集,以元素列表形式表示。“subset” 谓词用于表示对象集的子集,第一个参数是子集名称,第二个参数是对象集,第三个参数是补集,即第二个参数减去第一个参数后的剩余部分。例如,“subset(A, S0, Sn)” 表示 “A” 是 S0 的子集,Sn 是剩余部分。
“member” 谓词由以下 Prolog 子句定义:
member(M, [M|X], X).
member(M, [A|X], [A|Y ]) :- member(M, X, Y ).
在解析时使用子句 (1)′,会将对象句子(终结符号的多重集)赋给参数 S0。为了在 S0 中找到子集 A,第一个子目标在 S0 中找到子集 B1 并将剩余部分放入 S1,下一个子目标在 S1 中找到 B2 并将剩余部分放入 S2,以此类推,最后一个子目标在 Sn−1 中找到 Bn 并将剩余部分放入 Sn。也就是说,在使用语法规则解析时,语法规则中的每个非终结符号通过从给定集合中移除自身作为子集来创建新集合,每个终结符号通过从给定集合中移除自身作为成员来创建新集合。
反向链与自顶向下解析
通常,Prolog 程序由两种确定子句组成,即事实 {F1, F2, …, Fn} 和规则 {R1, R2, …
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



