Я пытаюсь доказать:
forall (T : Type) (U : Type) (P : T -> U -> Prop),
(forall (x : T), exists (y : U), P x y)
-> (exists (f : T -> U), forall (x : T), P x (f x))
На простом английском языке я пытаюсь выразить способность превращать y
в f(x)
в формуле. Например, изменив y = x + 1
на f(x) = x + 1
.
Доказательство цели с перевернутой стрелкой импликации (превращение f(x)
в y
) занимает 4 строки. Однако с этой целью я не могу придумать, что делать после intros
.
Я даже не уверен, что это возможно в Coq. Если нет, то есть ли лучший способ выразить то, что я пытаюсь сделать?