proposition: Lemma filter_le_dominate n r1 r0 : is_row r0 -> is_row r1 -> dominate r1 r0 -> skew_dominate ((count (>%O n) r0) - (count (>%O n) r1)) (filter (<=%O n) r1) (filter (<=%O n) r0).
proof: Proof. Proof using. move=> Hrow0 Hrow1 Hdom. have Hsize := count_gt_dominate n Hdom. move: Hdom => /dominateP[Hsz Hdom]. have /eq_count Hcount : (>%O n) =1 predC (<=%O n). by move=> i /=; rewrite ltNge. apply/dominateP; split. - rewrite size_drop !size_filter. rewrite (subnBA _ Hsize) leq_subLR [count _ r0 + _]addnC. by rewrite !Hcount !count_predC. - rewrite size_drop !size_filter => i. rewrite (subnBA _ Hsize) Hcount !count_predC ltn_subRL => /Hdom. rewrite (filter_le_row _ Hrow0) (filter_le_row _ Hrow1) !nth_drop. by rewrite -Hcount addnA (subnKC Hsize). Qed.
imports: HB(structures) mathcomp(all_ssreflect) tools partition skewpart Yamanouchi ordtype tableau std stdtab