等式关系。它只有一条引入规则 Eq.refl。
使用 a = b 作为 Eq a b 的记法。
等式的一项基本性质是它构成等价关系。
variable (α : Type) (a b c d : α)
variable (hab : a = b) (hcb : c = b) (hcd : c = d)
example : a = d :=
Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
不过,等式远不只是一种等价关系。它还具有一项重要性质:每个断言都尊重这种等价,即可以替换相等的表达式而不改变真值。
也就是说,给定 h1 : a = b 和 h2 : p a,可构造 p b 的证明,所用替换为 Eq.subst h1 h2。
示例:
example (α : Type) (a b : α) (p : α → Prop)
(h1 : a = b) (h2 : p a) : p b :=
Eq.subst h1 h2
example (α : Type) (a b : α) (p : α → Prop)
(h1 : a = b) (h2 : p a) : p b :=
h1 ▸ h2
第二种写法中的三角符号是建立在 Eq.subst 和 Eq.symm 之上的宏,可输入 \t 得到它。
更多信息:等式
标识符中记法的约定:
-
标识符中
=的推荐拼写是eq。
构造子
Eq.refl.{u_1} {α : Sort u_1} (a : α) : a = a