55、自动推导比较器、显示函数及形式化纽结理论

自动推导与纽结理论形式化

自动推导比较器、显示函数及形式化纽结理论

1. 比较器的代码方程

在逻辑中定义函数的主要目的是为代码生成服务。在定义了比较器并证明相关方程后,将这些方程注册为代码方程。这样,生成的代码中只会出现比较器,部分应用的比较器和显示函数的内部构造不会出现在生成代码里。

不过,这些代码方程在执行时间上并非最优。在使用急切求值的语言中, comp-lex [c x y, cmplist c xs ys] 存在问题。即便第一次比较 c x y 的结果是 Lt Gt ,第二个参数 cmplist c xs ys 仍会被求值。

为避免这种低效情况,在将方程交给代码生成器之前,需完全展开 comp-lex 的应用。展开依据以下三个易于证明的方程:

comp-lex [ ] = Eq
comp-lex [x] = x
comp-lex (x # y # xs) = (case x of Eq ⇒ comp-lex (y # xs) | z ⇒ z)

仅为代码生成进行展开的好处是,在证明过程中仍可使用 comp-lex 的性质,同时能保持规范结构,无需进行大量的情况拆分。展开后,代码方程的右侧变为 case c x y of Eq ⇒ cmplist c xs ys | z ⇒ z ,在急切求值的语言中,递归调用只会按需求值。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值