Universe u v w.
Inductive invertible {X:Type@{u}} {Y:Type} (f:X->Y) : Prop := .
Inductive FiniteT : Type -> Prop :=
| add_finite: forall T:Type@{v}, FiniteT T -> FiniteT (option T)
| bij_finite: forall (X:Type@{w}) (Y:Type) (f:X->Y), FiniteT X ->
invertible f -> FiniteT Y.
Set Printing Universes.

Axiom a : False.
(* Constraint v <= u. Constraint v <= w. *)
Lemma finite_subtype: forall (X:Type) (P:X->Prop),
FiniteT X -> (forall x:X, P x \/ ~ P x) ->
FiniteT {x:X | P x}.