Isabelle/HOL 使用 addition/subtraction 关联性

Isabelle/HOL using addition/subtraction associativity

我正在尝试证明某种形式

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

据我所知,结合性定理是库的一部分,但未标记为简化,因此我需要手动添加它们。适当名称的确切名称是什么/它们在哪个 theory 中定义?

此类目标通常使用定理集 algebra_simps 来解决。直接写 by (simp add: algebra_simps).

请注意,您陈述定理的方式将无法证明它,因为您没有指定 bcd 是 a 的元素团体。你需要写类似

的东西
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