Definition uniform (n : nat) (d : dist (list bool)) :=
  forall l, (List.length l = n)%nat ->
      Qeq (eval_dist d (list_beq bool eqb l)) ((1 / 2) ^ (Z.of_nat n)).

(* Specifications: *)
Theorem access_dist_preservation : forall {C : Config} (arg_list : list (block_id * operation)) (s : state), uniform ((List.length arg_list) * LOP) (get_dist_list_bool arg_list s).
Theorem access_dist_preservation : forall {C : Config} (arg_list : list (block_id * operation)) (s : state), uniform ((List.length arg_list) * LOP) (get_dist_list_bool arg_list s).