Fixpoint replicate {X} (n : nat) (m : X) : list X :=
  match n with
  | O => []
  | S n' => cons m (replicate n' m)
  end.

Theorem arg_list_len_rel : forall {C : Config} (arg_list : list (block_id * operation))(s : state), well_formed s -> plift (fun l => List.length l = List.length arg_list * LOP)%nat (get_dist_list_bool arg_list s).