(** Validity of a list of registers. *)

Definition regs_valid (rl: list reg) (s: state) : Prop :=
  forall r, In r rl -> reg_valid r s.

(* Specifications: *)
Lemma regs_valid_nil: forall s, regs_valid nil s.
Lemma regs_valid_cons: forall r1 rl s, reg_valid r1 s -> regs_valid rl s -> regs_valid (r1 :: rl) s.
Lemma regs_valid_app: forall rl1 rl2 s, regs_valid rl1 s -> regs_valid rl2 s -> regs_valid (rl1 ++ rl2) s.
Lemma regs_valid_incr: forall s1 s2 rl, state_incr s1 s2 -> regs_valid rl s1 -> regs_valid rl s2.