sig
type ntl_spl_il_label = string
type point = Nts_spl_intermediate_language_types.ntl_spl_il_label
type ntl_spl_il_instruction =
NS_Skip
| NS_Halt
| NS_Fail
| NS_Assume
| NS_If of Nts_types.nts_gen_relation *
Nts_spl_intermediate_language_types.ntl_spl_il_label *
Nts_spl_intermediate_language_types.ntl_spl_il_label option
| NS_Goto of Nts_spl_intermediate_language_types.ntl_spl_il_label
| NS_Call of Nts_types.nts_var list option * string *
Nts_types.nts_genrel_arithm_exp list
| NS_local of bool * Nts_types.nts_var list *
Nts_spl_intermediate_language_types.ntl_spl_block
and ntl_spl_il_instr = {
ns_insturction :
Nts_spl_intermediate_language_types.ntl_spl_il_instruction option;
ns_ipoint : Nts_spl_intermediate_language_types.point;
}
and ntl_spl_block = {
ns_bpoint : Nts_spl_intermediate_language_types.point;
ns_instrs : Nts_spl_intermediate_language_types.ntl_spl_il_instr list;
}
type nts_spl_il_procedure = {
ns_pname : string;
ns_pinput : Nts_types.nts_var list;
ns_poutput : Nts_types.nts_var list;
ns_pcode : Nts_spl_intermediate_language_types.ntl_spl_block;
}
type nts_spl_il_program = {
ns_global : Nts_types.nts_var list;
ns_initial : Nts_types.nts_genrel_arithm_exp;
ns_final : Nts_types.nts_genrel_arithm_exp;
ns_procedures :
(string * Nts_spl_intermediate_language_types.nts_spl_il_procedure)
list;
ns_threads : string list;
}
end