proposition: Lemma Stern_bij_surj n: { x | (0 <= x) /\ (Stern_bij x = n) }.
proof: Proof. case: n; first by exists 0. move => n; move:(Stern_bij1_surj (pos_of_nat n n)) => [x [xp xv]]. exists x; split; first by apply: Order.POrderTheory.ltW. rewrite /Stern_bij xv Order.TotalTheory.leNgt xp /=; exact:(bin_of_natK n.+1). Qed.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat) mathcomp(seq choice fintype order bigop ssralg) mathcomp(div ssrnum ssrint rat prime path binomial) mathcomp(tuple finset) gaia(fibm)