Require Export ZArith.
(*Require Export Bmc.Logic.*)
Open Scope nat_scope.
Set Implicit Arguments.
(**)
Definition state : Type := Z.
Definition sseq : Type := nat -> state.
Definition nth (n : nat) (ss : sseq) : state :=
ss n.
Notation "ss .[ n ] " := (nth n ss)
(at level 0).
Definition skipn (n : nat) (ss : sseq) : sseq :=
fun i => ss (i+n).

Lemma prop_state_sseq :
forall (p : state -> Prop),
(forall (ss:sseq), p ss.[0]) ->
(forall (s:state), p s).