Docs GODI Archive
Projects Blog Link DB

Search GODI:


More options
File lib/jessie/output.cmi_pretty GODI Package apps-why
 
   output.cmi_pretty    Sources  
type constant =
  Output.constant =
    Prim_void
  | Prim_int of string
  | Prim_real of string
  | Prim_bool of bool
type logic_type =
  Output.logic_type = {
  logic_type_name : string;
  logic_type_args : logic_type list;
}
val fprintf_logic_type : Format.formatter -> logic_type -> unit
type term =
  Output.term =
    LConst of constant
  | LApp of string * term list
  | LVar of string
  | LVarAtLabel of string * string
  | Tnamed of string * term
  | TIf of term * term * term
val fprintf_term : Format.formatter -> term -> unit
type assertion =
  Output.assertion =
    LTrue
  | LFalse
  | LAnd of assertion * assertion
  | LOr of assertion * assertion
  | LIff of assertion * assertion
  | LNot of assertion
  | LImpl of assertion * assertion
  | LIf of term * assertion * assertion
  | LLet of string * term * assertion
  | LForall of string * logic_type * assertion
  | LExists of string * logic_type * assertion
  | LPred of string * term list
  | LNamed of string * assertion
val make_or : assertion -> assertion -> assertion
val make_and : assertion -> assertion -> assertion
val make_or_list : assertion list -> assertion
val make_and_list : assertion list -> assertion
val make_impl : assertion -> assertion -> assertion
val make_equiv : assertion -> assertion -> assertion
val fprintf_assertion : Format.formatter -> assertion -> unit
type why_type =
  Output.why_type =
    Prod_type of string * why_type * why_type
  | Base_type of logic_type
  | Ref_type of why_type
  | Annot_type of assertion * why_type * string list * string list *
      assertion * (string * assertion) list
val int_type : why_type
val bool_type : why_type
val unit_type : why_type
val base_type : string -> why_type
type variant = term * string option
type opaque = bool
type expr =
  Output.expr =
    Cte of constant
  | Var of string
  | And of expr * expr
  | Or of expr * expr
  | Not of expr
  | Void
  | Deref of string
  | If of expr * expr * expr
  | While of expr * assertion * variant option * expr list
  | Block of expr list
  | Assign of string * expr
  | Let of string * expr * expr
  | Let_ref of string * expr * expr
  | App of expr * expr
  | Raise of string * expr option
  | Try of expr * string * string option * expr
  | Fun of (string * why_type) list * assertion * expr * assertion *
      (string * assertion) list
  | Triple of opaque * assertion * expr * assertion *
      (string * assertion) list
  | Assert of assertion * expr
  | Label of string * expr
  | BlackBox of why_type
  | Absurd
  | Loc of Lexing.position * expr
val fprintf_expr : Format.formatter -> expr -> unit
val make_or_expr : expr -> expr -> expr
val make_and_expr : expr -> expr -> expr
val make_app : string -> expr list -> expr
val make_app_e : expr -> expr list -> expr
val make_label : string -> expr -> expr
val make_while : expr -> assertion -> variant option -> expr -> expr
val make_pre : assertion -> expr -> expr
val append : expr -> expr -> expr
type why_decl =
  Output.why_decl =
    Param of bool * string * why_type
  | Def of string * expr
  | Logic of bool * string * (string * logic_type) list * logic_type
  | Axiom of string * assertion
  | Goal of string * assertion
  | Predicate of bool * string * (string * logic_type) list * assertion
  | Function of bool * string * (string * logic_type) list * logic_type *
      term
  | Type of string * string list
  | Exception of string * logic_type option
val fprintf_why_decl : Format.formatter -> why_decl -> unit
val fprintf_why_decls : Format.formatter -> why_decl list -> unit
type kind =
  Output.kind =
    ArithOverflow
  | DownCast
  | IndexBounds
  | PointerDeref
  | UserCall
  | DivByZero
  | AllocSize
  | Pack
  | Unpack
val locs_table :
  (string, kind option * string option * string option * Loc.position)
  Hashtbl.t
val reg_loc :
  string ->
  ?id:string ->
  ?kind:kind -> ?name:string -> ?formula:string -> Loc.position -> string
val print_locs : Format.formatter -> unit
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml