Definition possible_image {X Y} (STEP:X-> Y-> X (*-> Y*) -> Prop) (valid: X -> Y -> Prop)  st st' U:= valid st U /\ (* exists U',  *) STEP st U st' (* U' *).Definition finite_on_x {X Y} (A:X->Y->Prop):=
    exists n (f: nat -> X), forall x y, A x y -> exists i, (i < n) /\ f i = x.

Lemma finite_rel_generalize {X Y} (V: X -> Y -> Prop) (R: X -> X -> Y -> Prop): forall (propositional_extentionality: True), (forall P : Prop, P \/ ~ P) -> (forall x, finite_on_x (possible_image (fun x x' y => R x y x') V x)) -> forall (P:X -> Prop), finite P -> finite (SStep R V P).