fact: Fixpoint walk_to_corner_rec (m : nat) (i j : nat) : distr (seq nat * seq nat) := if m is m'.+1 then let s := hook_box_indices (i, j) in (if size s is _.+1 then Mlet (Uniform (unif_def (inl 0%N) s)) (fun n => match n with | inl k => Mlet (walk_to_corner_rec m' k j) (fun X => Munit (i::X.1, X.2)) | inr k => Mlet (walk_to_corner_rec m' i k) (fun X => Munit (X.1, j::X.2)) end) else Munit ([::i],[::j])) else Munit ([::i],[::j]).
imports: Misc Ccpo mathcomp(all_ssreflect) mathcomp(ssrint div rat ssralg ssrnum) tools subseq partition Yamanouchi stdtab Qmeasure