Isabelle / HOL使用加/减相关性

时间:2016-11-15 09:04:27

标签: isabelle formal-verification

我试图证明某种形式

lemma assoc: "b + (c - d) = (b + c) - d"

AFAIK关联性定理是库的一部分,但没有标记为简化,所以我需要手动添加它们。具体名称究竟是什么/它们定义的theory

1 个答案:

答案 0 :(得分:2)

这些目标通常用定理集algebra_simps来解决。只需写下by (simp add: algebra_simps)

请注意,您说明该定理的方式,您将无法证明它,因为您没有指定bcd是组的元素。您需要编写类似

的内容
lemma assoc: "(b :: 'a :: group_add) + (c - d) = (b + c) - d"

lemma assoc: 
  fixes b c d :: "'a :: group_add"
  shows "b + (c - d) = (b + c) - d"

或更特别的内容,例如natint,而不是'a :: group_add

事实上,当你这样做时,IDE会通知你已经有这样一个引理:Groups.group_add_class.add_diff_eq

thm add_diff_eq
> ?a + (?b - ?c) = ?a + ?b - ?c