Я пытаюсь воспроизвести очень простое доказательство coq из основ программирования в agda, и мне сказали, что мне нужно использовать with inspect, чтобы доказать несоответствие из сопоставления с образцом для (bool) решающей способности строки с самим собой. Я получаю сообщение об ошибке ниже, и документация даже не дает правильную программу, используемую с with inspect. Почему этот вывод типа неверен и как я могу устранить свою ошибку?
module Maps where
open import Relation.Binary.PropositionalEquality using (_≡_; refl; cong; subst; trans; sym; inspect)
open import Data.String using (_++_; _==_; _≟_; String)
open import Data.Bool using (T; Bool; true; false; if_then_else_)
-- Coq-- Theorem eqb_string_refl : forall s : string, true = eqb_string s s.
eqbstringrefl' : (s : String) → true ≡ (s == s)
eqbstringrefl' s with inspect (s == s)
... | false with≡ eq = {!!}
... | true with≡ eq = {!!}
(s == s) выделен красным и выдает следующую ошибку
Bool !=< (x : _A_70) → _B_71 x of type Set
when checking that the inferred type of an application
Bool
matches the expected type
(x : _A_70) → _B_71 x