В Агде конструкторы не пересекаются? (или как опровергнуть травму)

Мне нужна еще одна лемма, показывающая, что inj₁ x ≡ inj₂ y абсурдно как часть большей теоремы о непересекающихся типах объединения ( в Агде.

Этот результат будет следовать непосредственно из двух конструкторов для а именно inj₁ а также inj₂, будучи непересекающимся. Это тот случай в Агде? Как мне это доказать?

Вот полная лемма:

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 = ?

1 ответ

Решение

Конструкторы типов данных не пересекаются. Я бы сказал, что это теорема в мета-теории системы типов Агды.

Вы можете попробовать eq доказательство (C-c C-c) и Агда найдет противоречие

lemma : ∀ {a b} {A : Set a} {B : Set b} {x : A} {y : B} → ¬ inj₁ x ≡ inj₂ y
lemma ()

Это радостно проверено.

Другие вопросы по тегам