Logic 如何解构Coq证明助手中的假设?

Logic 如何解构Coq证明助手中的假设?,logic,coq,proof,Logic,Coq,Proof,我想用CoqIDE证明正则语言的定理 我需要将“a”| |“b”中的假设H1:s1\解构为“a”中的H2:s1\而不创建额外的子目标 我使用了inversion H2策略,但它创建了额外的子目标。那么,是否有可能在不创建额外子目标的情况下解构假设 3 subgoals w : word H : w \in ("a" || "b");; "c" s1, s2, s3 : list ascii H1 : s1 \in "a" || "b" ______________________________

我想用CoqIDE证明正则语言的定理


我需要将“a”| |“b”中的假设
H1:s1\解构为“a”
中的
H2:s1\而不创建额外的子目标

我使用了
inversion H2
策略,但它创建了额外的子目标。那么,是否有可能在不创建额外子目标的情况下解构假设

3 subgoals
w : word
H : w \in ("a" || "b");; "c"
s1, s2, s3 : list ascii
H1 : s1 \in "a" || "b"
______________________________________(1/3)
w = ["a"; "c"]

在不创建其他子目标的情况下,您会做什么?如果a | | | b
中的
s1\那么它肯定可以来自a
中的
s1或b中的
s1
否?所以你必须处理这两种情况。“我需要将假设H1:s1\在“a”| |“b”中解构为H2:s1\在“a”中,而不创建额外的子目标。”这是不可能的,因为s1可以在“a”中,也可以在“b”中,而你期望它在“a”中。