Require Export Coq.Arith.EqNat.
Require Export Coq.Relations.Relations.
Require Export compcert.lib.Axioms.
Require Export compcert.lib.Coqlib.
Require Export compcert.lib.Integers.
Require Export compcert.lib.Floats.
Require Export compcert.lib.Maps.
Require Export compcert.common.AST.
Require Export compcert.common.Values.
Require Export compcert.common.Memdata.
Require Export compcert.common.Memtype.
Require Export compcert.common.Memory.
Require Export compcert.common.Globalenvs.
Require Export VST.msl.Coqlib2.
Require Export VST.veric.coqlib4.
(* Lemmas about ident lists *)
Fixpoint id_in_list (id: ident) (ids: list ident) : bool :=
match ids with i::ids' => orb (Pos.eqb id i) (id_in_list id ids') | _ => false end.
Fixpoint compute_list_norepet (ids: list ident) : bool :=
match ids with
| id :: ids' => if id_in_list id ids' then false else compute_list_norepet ids'
| nil => true
end.

Lemma compute_list_norepet_e: forall ids,
compute_list_norepet ids = true -> list_norepet ids.