Section Fixpoints.
Variables (T : choiceType) (U : {fset T}).
Definition sub_fun (F : {fset T} -> {fset T}) (X : {set U}) : {set U} :=
fsub U (F [fsetval x in X]).
Variable (F : {fset T} -> {fset T}).
Hypothesis (F_mono : {homo F : X Y / X `<=` Y}).
Hypothesis (F_bound : {homo F : X / X `<=` U}).
Notation Fsub := (sub_fun F).
Notation iterF := (fun i => iter i F fset0).
Hint Resolve Fsub_mono : core.
Definition fixfset := [fsetval x in fixset Fsub].
Hint Resolve fixfsetK : core.
Definition ffix_order (x : T) :=
if x \in U =P true is ReflectT xU then fix_order Fsub [` xU] else 0.
Definition reducef f : {fmap K -> V} :=
[fmap x => oextract (@reducef_subproof f x)].

Lemma fnd_restrict f A (k : K) :
f.[& A].[? k] = if k \in A then f.[? k] else None.