Logic Agda中的排除中间律

Logic Agda中的排除中间律,logic,agda,type-theory,Logic,Agda,Type Theory,我听过这样的说法,即Agda的马丁·洛夫类型理论与排除中间是一致的。我怎样才能把它作为一个假设加入呢?另外,在加入LEM之后,它是经典的一阶逻辑吗?我的意思是,我是否也有不存在的等价性?我不知道类型理论,因此如果您引用类型理论中的任何结果,请添加其他解释。在MLTT中,存在对应于标准库中定义的依赖对。它将存在证人和证明其拥有权利财产的证据打包在一起 没有必要假设任何东西来证明存在陈述的否定意味着否定属性的普遍陈述: ∄⇒∀ : {A : Set} {B : A → Set} → ¬

我听过这样的说法,即Agda的马丁·洛夫类型理论与排除中间是一致的。我怎样才能把它作为一个假设加入呢?另外,在加入LEM之后,它是经典的一阶逻辑吗?我的意思是,我是否也有不存在的等价性?我不知道类型理论,因此如果您引用类型理论中的任何结果,请添加其他解释。

在MLTT中,
存在
对应于标准库中定义的依赖对。它将存在证人和证明其拥有权利财产的证据打包在一起

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

∄⇒∀ : {A : Set} {B : A → Set} →
      ¬ (∃ λ a → B a) →
      ∀ a → ¬ (B a)
∄⇒∀ ¬∃ a b = ¬∃ (a , b)
然而,要证明相反,你需要排除中间法则,让证人凭空出现。使用新的假设扩展Agda非常容易,您只需编写(
Dec
在中定义):

记住如何从
LEM
开始证明双重否定消去法总是一件好事,我们稍后将需要这样做(
case\u of
在中定义并解释):

然后你可以证明,否定一个普遍性陈述意味着 存在主义的一种说法是这样的:

¬∀⇒∃ : {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)
    }

¬¬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)
    }