【发布时间】:2020-04-24 06:32:22
【问题描述】:
我想在 Isabelle 验证以下定理,我已经在纸上证明了这一点:
theorem
assumes "(X :: 'a set) ∩ (Y :: 'a set) = {}"
and "trans (r :: 'a rel) ∧ total_in X r"
and "trans (r' :: 'a rel) ∧ total_in Y r'"
shows "∃ m. m ⊇ (r ∪ r') ∧ trans m ∧ total_in (X ∪ Y) m"
proof
have 1: "(r ∪ r' ∪ {(x, y) | x y. x ∈ X ∧ y ∈ Y}) ⊇ (r ∪ r')" by simp
have 2: "trans (r ∪ r' ∪ {(x, y) | x y. x ∈ X ∧ y ∈ Y})" sorry
have 3: "total_in (X ∪ Y) (r ∪ r' ∪ {(x, y) | x y. x ∈ X ∧ y ∈ Y})" sorry
from 1 2 3 show "
r ∪ r' ⊆ (r ∪ r' ∪ {(x, y) | x y. x ∈ X ∧ y ∈ Y})
∧ trans (r ∪ r' ∪ {(x, y) | x y. x ∈ X ∧ y ∈ Y})
∧ total_in (X ∪ Y) (r ∪ r' ∪ {(x, y) | x y. x ∈ X ∧ y ∈ Y})" by auto
qed
为了证明 2 和 3,我想利用案例区分新关系的给定成员中的各方包含在哪些子集中:
(a, b) ∈ (r ∪ r' ∪ {(x, y) | x y.x ∈ X ∧ y ∈ Y}) 其中 (a ∈ X, b ∈ X) 或 (a ∈ X, b ∈ Y) 等。
对于每个可能的情况,然后我想证明子目标。
是否有某种自动证明规则可以帮助我将其形式化?我对 Isabelle 很陌生,我什至不确定我什至会在参考中搜索什么来找到这个。
此外,我对不得不到处复制"(r ∪ r' ∪ {(x, y) | x y. x ∈ X ∧ y ∈ Y})" 感到不满。将这种新关系提取到某种定义以避免复制的惯用方法是什么?
【问题讨论】:
标签: isabelle