我有一个函数f,它使用fintype A的斧头和P x的证明来返回fintype B的元素。对于所有满足P的x,我想返回fx的鳍集,可以这样写: / p>
From mathcomp
Require Import ssreflect ssrbool fintype finset.
Variable A B : finType.
Variable P : pred A.
Variable f : forall x : A, P x -> B.
Definition myset := [set (@f x _) | x : A & P x].
但是,这失败了,因为Coq没有在右边的信息中填充占位符,并且我不知道如何显式地提供它。
无论是在ssreflect代码还是在书中,我都没有找到有关如何执行此操作的指示。我意识到我可以通过使用sigma类型{x:A; P x}并修改f,但感觉比应该的要复杂得多。有没有一种简单/可读的方法可以做到这一点?
答案 0 :(得分:2)
实际上,使事情按您建议的方式工作的最简单方法是使用sigma类型:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=$PATH:/my-path/to/depot_tools
mkdir ~/webrTEST && cd ~/webrtcTEST
fetch --nohooks webrtc_android
gclient sync
./build/install-build-deps.sh
但是,实际上,Definition myset := [set f (tagged x) | x : { x : A | P x }].
有点奇怪,我想我们需要了解有关您的用例的更多详细信息,以了解您的去向。