Definition Blist := list bool.
Open Scope Z_scope.
Inductive InBlocks {A : Type} (n : nat) : list A -> Prop :=
| InBlocks_nil : InBlocks n []
| InBlocks_block : forall (front back full : list A),
length front = n ->
full = front ++ back ->
InBlocks n back ->
InBlocks n full.

Lemma InBlocks_len : forall {A : Type} (l : list A) (n : nat),
PeanoNat.Nat.divide (n) (length l) -> InBlocks n l.