Section Basics.
(** * Basic results about [iszero], [shiftl], [shiftr] *)
(** * Iterated shift to the right *)
Definition nshiftr x := nat_rect _ x (fun _ => shiftr).
(** * Iterated shift to the left *)
Definition nshiftl x := nat_rect _ x (fun _ => shiftl).
(** More advanced results about [nshiftr] *)
(** * Some induction principles over [int31] *)
(** Not used for the moment. Are they really useful ? *)

Lemma int31_ind_twice : forall P : int31->Prop,
P 0 ->
(forall x, P x -> P (twice x)) ->
(forall x, P x -> P (twice_plus_one x)) ->
forall x, P x.