У меня есть функция f, которая берет топор финтипа A и доказательство P x, чтобы вернуть элемент финтипа B. Я хочу вернуть finset из fx для всех x, удовлетворяющих 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, так и в книге.Я понимаю, что мог бы сделать это, используя сигма-тип {x: A;P x} и модифицирует бит f, но он кажется более запутанным, чем следовало бы.Есть ли простой / читабельный способ сделать это?