あぐだちゃんがトリックを仕掛けて来たようです
data Bool : Set0 where true : Bool ; false : Bool data _∨_ (A : Set0) (B : Set0) : Set0 where intro1 : A -> A ∨ B intro2 : B -> A ∨ B data Id {A : Set0} : A -> A -> Set0 where refl : (a : A) -> Id a a -- Boolはなぁ・・・trueか、falseだけなんだよォォォッ!! lemma : (b : Bool) -> (Id b true) ∨ (Id b false) lemma b with b ... | true = intro1 (refl b) ... | false = intro2 (refl false) -- これは出来る {- エラーメッセージ b != true of type Bool when checking that the expression intro1 (refl b) has type Id true true ∨ Id true false Id true true ∨ Id true false には落とせるのに、b != trueとか言われても困っちゃうわ... -} {- lemma : (b : Bool) -> (Id b true) ∨ (Id b false) lemma true = intro1 (refl true) lemma false = intro2 (refl false) これは勿論大丈夫 -}
どうしてこうなった...?