在 Isabelle 证明中将 2 个子目标与共同的未知变量合并
Merging 2 subgoals with common unknown variable in Isabelle proof
我目前正在尝试证明 Isabelle 中的一个引理,我剩下 2 个子目标,它们都有相同的未知变量 ?Q11。
"transitivity" 是否可以将两个子目标合并为一个?
即用第一个子目标中包含?Q11的集合替换第二个子目标中的?Q11。
goal (2 subgoals):
1. ⋀s. ?Q11 s ⊆ {s. s⦇msg_sender := address_this s, address_this := add2 s⦈ ∈ {s. s⦇g := 2⦈ ∈ {t. g t = 2}}}
2. {s. g s = 0} ⊆ {s. s⦇msg_sender := address_this s, address_this := add1 s⦈ ∈ {sa. sa⦇g := 1⦈ ∈ ?Q11 s}}
我想达到的目标是
1. {s. g s = 0} ⊆ {s. s⦇msg_sender := address_this s, address_this := add1 s⦈ ∈ {sa. sa⦇g := 1⦈ ∈ {s. s⦇msg_sender := address_this s, address_this := add2 s⦈ ∈ {s. s⦇g := 2⦈ ∈ {t. g t = 2}}}}}
由simp直接证明。
谢谢。
你可以
apply (rule order.refl)
使用子集关系的自反性解决了第一个目标。这相应地使 ?Q11 生效。
当然这并不是真的"merge subgoals",但是达到了预期的效果
我目前正在尝试证明 Isabelle 中的一个引理,我剩下 2 个子目标,它们都有相同的未知变量 ?Q11。 "transitivity" 是否可以将两个子目标合并为一个? 即用第一个子目标中包含?Q11的集合替换第二个子目标中的?Q11。
goal (2 subgoals):
1. ⋀s. ?Q11 s ⊆ {s. s⦇msg_sender := address_this s, address_this := add2 s⦈ ∈ {s. s⦇g := 2⦈ ∈ {t. g t = 2}}}
2. {s. g s = 0} ⊆ {s. s⦇msg_sender := address_this s, address_this := add1 s⦈ ∈ {sa. sa⦇g := 1⦈ ∈ ?Q11 s}}
我想达到的目标是
1. {s. g s = 0} ⊆ {s. s⦇msg_sender := address_this s, address_this := add1 s⦈ ∈ {sa. sa⦇g := 1⦈ ∈ {s. s⦇msg_sender := address_this s, address_this := add2 s⦈ ∈ {s. s⦇g := 2⦈ ∈ {t. g t = 2}}}}}
由simp直接证明。
谢谢。
你可以
apply (rule order.refl)
使用子集关系的自反性解决了第一个目标。这相应地使 ?Q11 生效。
当然这并不是真的"merge subgoals",但是达到了预期的效果