2015-01-31 7 views
4

Aguch에서 분해되지 않는 결합 유형 ()에 대한 더 큰 정리의 일부로 inj₁ x ≡ inj₂ y이 어리 석다는 것을 나타내는 하나의 보조 정리가 필요합니다.Agda에서 생성자가 분리되어 있습니까? (또는 inj1 x ≡ inj2 y를 증명하는 방법)

이 결과는 해체되고, , 즉 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 = ? 

답변

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() 

이 행복하게-검사를 입력합니다.

+0

하하, 안돼! 나는 정말로 그것을 시도해야만한다. 감사. – curiousleo

+3

큰 제거를 사용하여 원시적 인 모호한 패턴이없는 거짓을 증명할 수도 있습니다. 기본적으로''inj1''을''⊤''과'inj2''를'⊥'로 가져가는 함수를 작성할 수 있습니다. 그 함수에'subst'를 써서 쉽게 구할 수있는'⊤' 값을'⊥'에 "던지기"위해 사용할 수 있습니다. – copumpkin