open Preamble open FrontEndOps open Cminor_syntax open SmallstepExec open Extra_bool open Globalenvs open IOMonad open IO open FrontEndVal open Hide open ByteValues open GenMem open FrontEndMem open CostLabel open Proper open PositiveMap open Deqsets open Extralib open Lists open Identifiers open Integers open AST open Division open Exp open Arithmetic open Extranat open Vector open FoldStuff open BitVector open Z open BitVectorZ open Pointers open ErrorMessages open Option open Setoids open Monad open Positive open PreIdentifiers open Errors open Div_and_mod open Jmeq open Russell open Util open Bool open Relations open Nat open List open Hints_declaration open Core_notation open Pts open Logic open Types open Coqlib open Values open Events open Cminor_semantics type cminor_state = Cminor_semantics.state (** val cminor_labelled : Cminor_semantics.state -> Bool.bool **) let cminor_labelled = function | Cminor_semantics.State (x, st, x0, x3, x4, x5, x7) -> (match st with | Cminor_syntax.St_skip -> Bool.False | Cminor_syntax.St_assign (x8, x9, x10) -> Bool.False | Cminor_syntax.St_store (x8, x9, x10) -> Bool.False | Cminor_syntax.St_call (x8, x9, x10) -> Bool.False | Cminor_syntax.St_seq (x8, x9) -> Bool.False | Cminor_syntax.St_ifthenelse (x8, x9, x10, x11, x12) -> Bool.False | Cminor_syntax.St_return x8 -> Bool.False | Cminor_syntax.St_label (x8, x9) -> Bool.False | Cminor_syntax.St_goto x8 -> Bool.False | Cminor_syntax.St_cost (x8, x9) -> Bool.True) | Cminor_semantics.Callstate (x, x0, x1, x2, x3) -> Bool.False | Cminor_semantics.Returnstate (x, x0, x1) -> Bool.False | Cminor_semantics.Finalstate x -> Bool.False open Sets open Listb open StructuredTraces (** val cminor_classify : Cminor_semantics.state -> StructuredTraces.status_class **) let cminor_classify = function | Cminor_semantics.State (x, x0, x1, x4, x5, x6, x8) -> StructuredTraces.Cl_other | Cminor_semantics.Callstate (x, x0, x1, x2, x3) -> StructuredTraces.Cl_call | Cminor_semantics.Returnstate (x, x0, x1) -> StructuredTraces.Cl_return | Cminor_semantics.Finalstate x -> StructuredTraces.Cl_other type cm_genv = Cminor_semantics.genv type cm_env = Cminor_semantics.env type cm_cont = Cminor_semantics.cont (** val cm_eval_expr : Cminor_semantics.genv -> AST.typ -> Cminor_syntax.expr -> Cminor_semantics.env -> Pointers.block -> GenMem.mem -> (Events.trace, Values.val0) Types.prod Errors.res **) let cm_eval_expr ge ty0 e en sp m = Cminor_semantics.eval_expr ge ty0 e en sp m (** val cmState : Cminor_syntax.internal_function -> Cminor_syntax.stmt -> Cminor_semantics.env -> GenMem.mem -> Pointers.block -> Cminor_semantics.cont -> Cminor_semantics.stack -> Cminor_semantics.state **) let cmState f s en m sp k st = Cminor_semantics.State (f, s, en, m, sp, k, st) (** val cmReturnstate : Values.val0 Types.option -> GenMem.mem -> Cminor_semantics.stack -> Cminor_semantics.state **) let cmReturnstate x x0 x1 = Cminor_semantics.Returnstate (x, x0, x1) (** val cmCallstate : AST.ident -> Cminor_syntax.internal_function AST.fundef -> Values.val0 List.list -> GenMem.mem -> Cminor_semantics.stack -> Cminor_semantics.state **) let cmCallstate x x0 x1 x2 x3 = Cminor_semantics.Callstate (x, x0, x1, x2, x3)