手动向简化器添加假设(Isabelle)

时间:2016-08-23 10:57:55

标签: isabelle simplification

我试图在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 个答案:

答案 0 :(得分:1)

  1. 这个假设将保持在本地。它只能在名称1也有效的情况下使用
  2. 简化器会自动使用假设,但是当您启动proof时,它不再是您当前子目标中的假设。
  3. 如果您使用结构化证明,通过assumesshows以结构化方式记下引理通常会更好:

    lemma axiom1: 
    assumes 1[simp]: "x = y"
    shows "Δ x y z = 0"
    ...