手动向简化器添加假设 (Isabelle)
Manually adding an assumption to the simplifier (Isabelle)
我试图在 Isabelle 中完成一个现在有效的证明:
lemma axiom1: " x = y ⟹ Δ x y z = 0"
proof -
assume 1[simp]: "x = y"
have 1: "Δ x y z = Δ y z x" by (rule axiom0_a)
also have "… = Δ y z y" by simp
also have "… = Δ z y y" by (rule axiom0_a)
moreover have "Δ y y z = - Δ z y y" by (rule axiom0_b)
moreover have "⋀r. ((r::real) = - r ⟹ r = 0)" by simp
ultimately show "Δ x y z = 0" by simp
qed
但是,我不得不手动将假设添加到简化器中。我的问题是,简化器 x=y
中的附加规则是否会保留在这个证明中,还是会在其他证明中使用(这会导致一些问题)?另外,我认为这些假设是自动添加到简化器中的:为什么这个假设不是因为它会带来一些循环的危险?
- 假设将保留在本地。它只能用于名称
1
也有效的地方
- 简化器会自动使用假设,但是当您启动
proof
时,它不再是您当前子目标中的假设。
如果你做一个结构化的证明,用 assumes
和 shows
以结构化的方式写下引理通常会更好:
lemma axiom1:
assumes 1[simp]: "x = y"
shows "Δ x y z = 0"
...
我试图在 Isabelle 中完成一个现在有效的证明:
lemma axiom1: " x = y ⟹ Δ x y z = 0"
proof -
assume 1[simp]: "x = y"
have 1: "Δ x y z = Δ y z x" by (rule axiom0_a)
also have "… = Δ y z y" by simp
also have "… = Δ z y y" by (rule axiom0_a)
moreover have "Δ y y z = - Δ z y y" by (rule axiom0_b)
moreover have "⋀r. ((r::real) = - r ⟹ r = 0)" by simp
ultimately show "Δ x y z = 0" by simp
qed
但是,我不得不手动将假设添加到简化器中。我的问题是,简化器 x=y
中的附加规则是否会保留在这个证明中,还是会在其他证明中使用(这会导致一些问题)?另外,我认为这些假设是自动添加到简化器中的:为什么这个假设不是因为它会带来一些循环的危险?
- 假设将保留在本地。它只能用于名称
1
也有效的地方 - 简化器会自动使用假设,但是当您启动
proof
时,它不再是您当前子目标中的假设。
如果你做一个结构化的证明,用 assumes
和 shows
以结构化的方式写下引理通常会更好:
lemma axiom1:
assumes 1[simp]: "x = y"
shows "Δ x y z = 0"
...