我还需要一个引理,表明inj₁ x ≡ inj₂ y
是荒谬的,作为关于Agda中不相交联合类型(⊎
)的更大定理的一部分。
此结果将直接来自 ⊎
的两个构造函数,即inj₁
和inj₂
,不相交。 Agda中的情况如何?我该如何证明?
以下是完整的引理:
open import Relation.Nullary
open import Relation.Binary.PropositionalEquality
open import Data.Sum
lemma : ∀ {a b} {A : Set a} {B : Set b} {x : A} {y : B} → ¬ inj₁ x ≡ inj₂ y
lemma eq = ?
答案 0 :(得分:6)
数据类型构造函数是不相交的。我在Agda的类型系统元理论中说它是一个定理。
您可以尝试设置eq
证明(C-c C-c
),Agda会发现矛盾:
lemma : ∀ {a b} {A : Set a} {B : Set b} {x : A} {y : B} → ¬ inj₁ x ≡ inj₂ y
lemma ()
这种快乐的类型检查。