open DItv open DProd open DomArrayBlk open DomBasic module Val = Prod4(Itv)(PowLoc)(ArrayBlk)(PowProc) (** val itv_of_val : Val.t -> Itv.t **) let itv_of_val = Val.fst (** val pow_loc_of_val : Val.t -> PowLoc.t **) let pow_loc_of_val = Val.snd (** val array_of_val : Val.t -> ArrayBlk.t **) let array_of_val = Val.thrd (** val pow_proc_of_val : Val.t -> PowProc.t **) let pow_proc_of_val = Val.frth (** val powProc_of_val : Val.t -> PowProc.t **) let powProc_of_val = pow_proc_of_val (** val val_of_itv : Itv.t -> Val.t **) let val_of_itv x = (((x, PowLoc.bot), ArrayBlk.bot), PowProc.bot) (** val val_of_pow_loc : PowLoc.t -> Val.t **) let val_of_pow_loc x = (((Itv.bot, x), ArrayBlk.bot), PowProc.bot) (** val val_of_array : ArrayBlk.t -> Val.t **) let val_of_array x = (((Itv.bot, PowLoc.bot), x), PowProc.bot) (** val val_of_pow_proc : PowProc.t -> Val.t **) let val_of_pow_proc x = (((Itv.bot, PowLoc.bot), ArrayBlk.bot), x) (** val modify_itv : Val.t -> Itv.t -> Val.t **) let modify_itv x i = (((i, (pow_loc_of_val x)), (array_of_val x)), (pow_proc_of_val x)) (** val modify_pow_loc : Val.t -> PowLoc.t -> Val.t **) let modify_pow_loc x l = ((((itv_of_val x), l), (array_of_val x)), (pow_proc_of_val x)) (** val modify_array : Val.t -> ArrayBlk.t -> Val.t **) let modify_array x a = ((((itv_of_val x), (pow_loc_of_val x)), a), (pow_proc_of_val x)) (** val modify_pow_proc : Val.t -> PowProc.t -> Val.t **) let modify_pow_proc x p = ((((itv_of_val x), (pow_loc_of_val x)), (array_of_val x)), p)