Agda排除中间的法则

时间:2016-04-16 20:01:09

标签: logic agda type-theory

我听说过Agda的Martin-Lof Type Theory with Excluded Middle就是一致的说法。我如何将其添加为假设?另外,在添加LEM之后,它是经典的一阶逻辑吗?我的意思是,我是否也有(对所有)=存在(不)等价?我不知道类型理论,所以如果你在类型理论中引用任何结果,请添加其他解释。

1 个答案:

答案 0 :(得分:5)

在MLTT中,offset对应于在标准库中Data.Product中定义的从属对。它将存在的证据和它具有正确财产的证据打包在一起。

没有必要假设任何东西来证明存在主义陈述的否定意味着否定财产的普遍陈述:

exists

为了证明相反,你确实需要排除中间的法则让证人出现在空中。使用新假设扩展Agda非常容易,您可以简单地写(∄⇒∀ : {A : Set} {B : A → Set} → ¬ (∃ λ a → B a) → ∀ a → ¬ (B a) ∄⇒∀ ¬∃ a b = ¬∃ (a , b) Relation.Nullary中定义):

Dec

记住如何从postulate LEM : (A : Set) → Dec A 开始证明双重否定消除始终是一件好事,我们将在以后继续使用它,因此LEM在{{case_of_中定义3}}并在Function中解释):

¬¬A⇒A : {A : Set} → ¬ (¬ A) → A
¬¬A⇒A {A} ¬¬p =
  case LEM A of λ
    { (yes p) → p
    ; (no ¬p) → ⊥-elim $ ¬¬p ¬p
    }

然后你可以证明对普遍陈述的否定意味着一个 存在主义的一样:

¬∀⇒∃ : {A : Set} {B : A → Set} →
      ¬ (∀ a → B a) →
      ∃ λ a → ¬ (B a)
¬∀⇒∃ {A} {B} ¬∀ = 
  case LEM (∃ λ a → ¬ B a) of λ
    { (yes p) → p
    ; (no ¬p) → ⊥-elim $ ¬∀ (¬¬A⇒A ∘ ∄⇒∀ ¬p)
    }

README.Case