(* A "Decaled" Fibonnacci function *)

Definition shift_Fib (n : nat) :=
  match n return nat with
  | O => 0
  | S p => Fib p
  end.

(* Specifications: *)
Lemma Unfold_shift_Fib : forall n : nat, shift_Fib (S n) = Fib n.
Lemma Simpl_shift_Fib : forall n : nat, shift_Fib (S (S n)) = shift_Fib (S n) + shift_Fib n.
Lemma Unfold_shift_Fib : forall n : nat, shift_Fib (S n) = Fib n.
Lemma Simpl_shift_Fib : forall n : nat, shift_Fib (S (S n)) = shift_Fib (S n) + shift_Fib n.