使用加减结合性的Isabelle/HOL
我正试图证明某种形式的东西使用加减结合性的Isabelle/HOL,isabelle,formal-verification,Isabelle,Formal Verification,我正试图证明某种形式的东西 lemma assoc: "b + (c - d) = (b + c) - d" 好吧,结合性定理是库的一部分,但没有标记为简化,所以我需要手动添加它们。这些目标的确切名称是什么/它们在哪些理论中定义了?这些目标通常通过定理集合代数\u simps来解决。只需通过(simp add:algebra\u simps)编写 请注意,按照您陈述定理的方式,您将无法证明它,因为您没有指定b、c和d是组的元素。你需要写一些类似的东西 lemma assoc: "(b :: '
lemma assoc: "b + (c - d) = (b + c) - d"
好吧,结合性定理是库的一部分,但没有标记为简化,所以我需要手动添加它们。这些目标的确切名称是什么/它们在哪些理论中定义了?这些目标通常通过定理集合
代数\u simps
来解决。只需通过(simp add:algebra\u simps)编写
请注意,按照您陈述定理的方式,您将无法证明它,因为您没有指定b
、c
和d
是组的元素。你需要写一些类似的东西
lemma assoc: "(b :: 'a :: group_add) + (c - d) = (b + c) - d"
或
或者更特殊的东西,比如nat
或int
而不是'a::group\u add
事实上,当您这样做时,IDE会通知您已经存在这样一个引理:Groups.group\u add\u class.add\u diff\u eq
thm add_diff_eq
> ?a + (?b - ?c) = ?a + ?b - ?c
这些目标通常通过定理集合代数\u simps
来解决。只需通过(simp add:algebra\u simps)
编写
请注意,按照您陈述定理的方式,您将无法证明它,因为您没有指定b
、c
和d
是组的元素。你需要写一些类似的东西
lemma assoc: "(b :: 'a :: group_add) + (c - d) = (b + c) - d"
或
或者更特殊的东西,比如nat
或int
而不是'a::group\u add
事实上,当您这样做时,IDE会通知您已经存在这样一个引理:Groups.group\u add\u class.add\u diff\u eq
thm add_diff_eq
> ?a + (?b - ?c) = ?a + ?b - ?c