Мне нужна еще одна лемма, показывающая, что inj₁ x ≡ inj₂ y
абсурден как часть более крупной теоремы о типах несвязных объединений (⊎
) в Агда.Являются ли конструкторы непересекающимися в Агда? (или как опровергнуть 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 = ?
Ха-ха, никоим образом! Я действительно должен был это пробовать. Благодарю. – curiousleo
Вы также можете использовать большое исключение, чтобы доказать ложность без примитивных абсурдных узоров. Основное состоит в том, что вы можете написать функцию, которая переводит ваши 'inj₁' в' ⊤' и 'inj₂' в' ⊥'. Затем вы можете использовать 'subst' с этой функцией, чтобы« отличить »тривиально доступное значение типа' ⊤' к '⊥'. – copumpkin