Definition proj_sumbool_is_false : forall (P : Prop) (a : {P} + {~ P}), ~ P -> Coqlib.proj_sumbool a = false.Fixpoint mkBlockList (n : nat) : list nat :=
    match n with
      | 0 => nil
      | S 0 => nil
      | S n =>  n :: (mkBlockList n)
    end.

(* Specifications: *)
Lemma mkBlockList_unfold : forall n (Hn: n > 1), n :: (mkBlockList n) = mkBlockList (S n).
Lemma mkBlockList_unfold' : forall n, (S n) :: (mkBlockList (S n)) = mkBlockList (S (S n)).
Lemma mkBlockList_include : forall n k (Hk: k > 0) (Hineq: k < n) (Hn: n > 1), List.In k (mkBlockList n).
Lemma mkBlockList_not_in : forall n m (Hge: m >= n) (HIn: List.In m (mkBlockList n)), False.
Lemma mkBlockList_range: forall n k (HIn: List.In k (mkBlockList (S (S n)))), k < (S (S n)) /\ k > 0.