在《何谓相等 (Equality),在类型理论(Type Theory)语境下》 一文中,定义了两个元素的相等,a = b,即,如两个元素是同样地被建构出来的,那么它们就相等。同时,相等关系具有,自反性(reflexive),对称性(symmetricity),传递性(transitivity)的。
扩展来说,如果有一个计算 c,通过执行c运算后,得到 a,我们就可以说, c = a, a = b,从而, c = b。
正式点来说,就是,通过根本的构建函数构建出来的元素,我们称之为 正规元素 (canonical element / formal element / formal form, etc.),通过定义在对应类型上的运算或函数,如加、减、乘、除等,得到的元素,以一个计算表达式来表示的元素,称为非正规元素 (non-canonical element / informal element / informal form, etc.)。非正规元素 可以通过转换(conversion)或者简化(reduction)来得到对应的正规元素,从而使用正规元素的相等关系,来把元素的相等关系,拓展到包含非正规元素。
那么,有哪些转换(conversion)或简化(reduction),可以作用将正规和非正规元素上呢?有两个很重要的是 alpha转换(alpha-conversion)和 beta简化(beta-reduction)。
alpha转换的核心概念是,对于绑定的名称,可随意改名,以避免名字冲突。
beta简化的核心概念是替换,相当于在函数调用时,调用参数会替代所有函数里出现的对应形式参数。
还有其它的转换(conversion)或简化(reduction)可以参考《Coq 转化规则》 。