Module SpecLangIDtrans

Require Import Coqlib Maps Errors Globalenvs AST.
Require Import Values Memory Globalenvs Events Smallstep Blockset InjRels Footprint.

Require Import val_casted CUAST GMemory FMemory InteractionSemantics
        Blockset LDSim SeqCorrect.
Require Import Lia.

Require Import SpecLang SpecLangSim.

Local Open Scope error_monad_scope.

Definition id_trans_speclang: @seq_comp speclang speclang :=
  fun cu => assertion (nodup_gd_ident (cu_defs cu));
           assertion (nodup_ef (cu_defs cu));
           OK cu.

Theorem id_trans_correct: seq_correct id_trans_speclang.
Proof.
  unfold seq_correct.
  unfold id_trans_speclang.
  intros. monadInv H.
  split; auto.
  apply speclangsim.
Qed.