문자열이 목록의 동의어 인 부분 문자열의 귀납적 한정자를 원한다고 가정합니다. 여기귀납적 Coq 정의에서 실존 적 한정사와 일반 한정사 사이의 관계
Inductive substring {A : Set} (w : string A) :
(string A) -> Prop :=
| SS_substr : forall x y z : string A,
x ++ y ++ z = w ->
substring w y.
내가 예를 들어 다음과 같은 증명할 수 :
이Theorem test : substring [3;4;1] [4].
Proof.
eapply SS_substr.
cbn.
instantiate (1:=[1]).
instantiate (1:=[3]).
reflexivity.
Qed.
그러나 증거는 사실에도 불구하고, 오히려 "보편적"이 아닌 "존재"입니다 유도 정의 상태 forall x y z
만 그들의 모양을 제한한다. 이것은 다소 비현실적입니다. 뭐라 구요?
또한 유도 정의를 exists x : string A, exists y : string A, exists z : string, x ++ y ++ z = w -> substring w y
을 사용하여 만들 수 있습니까?
감사합니다. (Jibadiba podajiba brm brm brm - 더 많은 문자가 필요함) – AntlerM
@AntlerM 초기 질문에 답해도 해결책으로 내 게시물을 선택하기 전에 기다려야합니다. 다른 사용자가 주제에 대해 흥미로운 것을 게시하지 못하게 할 수 있습니다. – eponier
글쎄요, 제 목적을 위해서, 보편적 인 것에서 확실하게 실존한다는 것이 확실합니다. (물론 A에있는 x는 P이면 x는 존재합니다 : A, P x '는 A가 공백이 아니라고 가정하고) 제가 궁금해하는 모든 것을 설명합니다 약; 어떤 사람들은 다른 사람들이 이것을 우연히 발견 할 수 있기 때문에 주제에 대한 "관심"이 더 많이 생길 수있는 여지를 남겨 두었다. 슬프게도 나는 13 명으로 당신을 배가시킬 수 없다. :). – AntlerM