打破形式的连词&&&;在Isabelle的子目标中

打破形式的连词&&&;在Isabelle的子目标中,isabelle,Isabelle,如果我在Isar中写下如下内容: have "(x ↔ z) ∙ R = (xa ↔ z) ∙ S" "(x ↔ z) ∙ T = (xa ↔ z) ∙ Ta" "(x ↔ z) ∙ q = (xa ↔ z) ∙ t" 我将获得一个子目标: (x ↔ z) ∙ R = (xa ↔ z) ∙ S &&& (x ↔ z) ∙ T = (xa ↔ z) ∙ Ta &&&

如果我在Isar中写下如下内容:

have "(x ↔ z) ∙ R = (xa ↔ z) ∙ S" 
     "(x ↔ z) ∙ T = (xa ↔ z) ∙ Ta" 
     "(x ↔ z) ∙ q = (xa ↔ z) ∙ t" 
我将获得一个子目标:

(x ↔ z) ∙ R = (xa ↔ z) ∙ S &&&
(x ↔ z) ∙ T = (xa ↔ z) ∙ Ta &&&
(x ↔ z) ∙ q = (xa ↔ z) ∙ t

如何将这个&&&分为三个子目标?

当一个人用一个以上的语句陈述引理时,通常只会遇到这样的子目标,这没什么好担心的。这几乎不可能在日常使用中造成任何问题——你可以忽略它

详细说明:当您编写类似于
引理p1p2
的东西时,您确实将
P1&&P2
视为一种证明义务。但是,不要因此而惊慌:如果您运行任何证明方法,此元连接将立即拆分,并且您甚至在该方法看到目标之前就拥有两个独立的子目标
P1
P2
。因此,只要假设它从一开始就是两个独立的子目标


(有了足够的犯罪能量,或许可以避免这种自动拆分,但前提是你定义了自己的证明方法。)

当一个人用一个以上的陈述陈述引理时,通常只会遇到这样的子目标,这没什么好担心的。这几乎不可能在日常使用中造成任何问题——你可以忽略它

详细说明:当您编写类似于
引理p1p2
的东西时,您确实将
P1&&P2
视为一种证明义务。但是,不要因此而惊慌:如果您运行任何证明方法,此元连接将立即拆分,并且您甚至在该方法看到目标之前就拥有两个独立的子目标
P1
P2
。因此,只要假设它从一开始就是两个独立的子目标


(有了足够的犯罪能量,或许可以避免这种自动分割,但前提是你定义自己的证明方法。)

正如@Manuel所说,通常的证明方法会自动为你分割子目标。在极少数情况下,如果您使用的方法不能做到这一点,那么
-
方法也会拆分&元连词。您可能在
证明-
中看到过这一点,也可以是
应用
-ed.

正如@Manuel所说,通常的证明方法会自动为您分割子目标。在极少数情况下,如果您使用的方法不能做到这一点,那么
-
方法也会拆分&元连词。你可能在
proof-
中看到过这一点,也可以是
apply
-ed.

你说“这样的子目标非常罕见,我不知道如何重现。”因为每当你写“引理”时,你都会得到这样的子目标,并显示多个语句,我会说他们非常频繁,很容易重现OP描述的情况。在任何情况下,我都会尝试相应地编辑我的答案。嗯,你说“这样的子目标非常罕见,我不知道如何重现。”鉴于你每次写“引理”时都会得到这样的子目标,并显示多个语句,我认为它们非常频繁,重现OP描述的情况非常容易。无论如何,吹毛求疵:这些不是“Isar连词”,它们是来自Isabelle/Pure的元连词。挑剔:这些不是“Isar连词”,它们是来自伊莎贝尔/纯的元连词。伊萨尔与此无关。谢谢你的回答。问题的真正问题(虽然我没有坚持)是如何将相同的重写方法应用于三个子目标。正如您所说,它们在子目标中自动分离……在这种情况下,
+
方法组合器通常工作:
通过我的方法+
。如果您有其他不想触碰的环境目标,您也可以尝试
apply(-;my_method)
。谢谢您的回答。问题的真正问题(虽然我没有坚持)是如何将相同的重写方法应用于三个子目标。正如您所说,它们在子目标中自动分离……在这种情况下,
+
方法组合器通常工作:
通过我的方法+
。如果您有其他不想触碰的环境目标,您也可以尝试
apply(-;my_方法)