package why3
type rsymbol = private {
rs_name : Ident.ident;
rs_cty : Ity.cty;
rs_logic : rs_logic;
rs_field : Ity.pvsymbol option;
}
module Mrs : sig ... end
module Srs : sig ... end
module Hrs : sig ... end
module Wrs : sig ... end
val rs_hash : rsymbol -> int
val create_rsymbol :
Ident.preid ->
?ghost:bool ->
?kind:rs_kind ->
Ity.cty ->
rsymbol
val create_constructor :
constr:int ->
Ident.preid ->
Ity.itysymbol ->
Ity.pvsymbol list ->
rsymbol
val create_projection : Ity.itysymbol -> Ity.pvsymbol -> rsymbol
val restore_rs : Term.lsymbol -> rsymbol
val rs_ghost : rsymbol -> bool
val ls_of_rs : rsymbol -> Term.lsymbol
val fd_of_rs : rsymbol -> Ity.pvsymbol
type prog_pattern = private {
pp_pat : Term.pattern;
pp_ity : Ity.ity;
pp_mask : Ity.mask;
pp_fail : pat_ghost;
}
type pre_pattern =
| PPwild
| PPvar of Ident.preid * bool
| PPapp of rsymbol * pre_pattern list
| PPas of pre_pattern * Ident.preid * bool
| PPor of pre_pattern * pre_pattern
exception ConstructorExpected of rsymbol
val create_prog_pattern :
pre_pattern ->
Ity.ity ->
Ity.mask ->
Ity.pvsymbol Wstdlib.Mstr.t * prog_pattern
type for_bounds = Ity.pvsymbol * for_direction * Ity.pvsymbol
type invariant = Term.term
type variant = Term.term * Term.lsymbol option
type assign = Ity.pvsymbol * rsymbol * Ity.pvsymbol
type expr = private {
e_node : expr_node;
e_ity : Ity.ity;
e_mask : Ity.mask;
e_effect : Ity.effect;
e_attrs : Ident.Sattr.t;
e_loc : Loc.position option;
}
and expr_node =
| Evar of Ity.pvsymbol
| Econst of Constant.constant
| Eexec of cexp * Ity.cty
| Eassign of assign list
| Elet of let_defn * expr
| Eif of expr * expr * expr
| Ematch of expr * reg_branch list * exn_branch Ity.Mxs.t
| Ewhile of expr * invariant list * variant list * expr
| Efor of Ity.pvsymbol * for_bounds * Ity.pvsymbol * invariant list * expr
| Eraise of Ity.xsymbol * expr
| Eexn of Ity.xsymbol * expr
| Eassert of assertion_kind * Term.term
| Eghost of expr
| Epure of Term.term
| Eabsurd
and reg_branch = prog_pattern * expr
and exn_branch = Ity.pvsymbol list * expr
and cexp_node =
| Capp of rsymbol * Ity.pvsymbol list
| Cpur of Term.lsymbol * Ity.pvsymbol list
| Cfun of expr
| Cany
and let_defn = private
| LDvar of Ity.pvsymbol * expr
| LDsym of rsymbol * cexp
| LDrec of rec_defn list
val e_attr_set : ?loc:Loc.position -> Ident.Sattr.t -> expr -> expr
val e_attr_push : ?loc:Loc.position -> Ident.Sattr.t -> expr -> expr
val e_attr_add : Ident.attribute -> expr -> expr
val let_var : Ident.preid -> ?ghost:bool -> expr -> let_defn * Ity.pvsymbol
val let_sym :
Ident.preid ->
?ghost:bool ->
?kind:rs_kind ->
cexp ->
let_defn * rsymbol
val ls_decr_of_rec_defn : rec_defn -> Term.lsymbol option
val c_app : rsymbol -> Ity.pvsymbol list -> Ity.ity list -> Ity.ity -> cexp
val c_pur :
Term.lsymbol ->
Ity.pvsymbol list ->
Ity.ity list ->
Ity.ity ->
cexp
val c_fun :
?mask:Ity.mask ->
Ity.pvsymbol list ->
Ity.pre list ->
Ity.post list ->
Ity.post list Ity.Mxs.t ->
Ity.pvsymbol Ity.Mpv.t ->
expr ->
cexp
val e_var : Ity.pvsymbol -> expr
val e_const : Constant.constant -> Ity.ity -> expr
val e_nat_const : int -> expr
val e_pur : Term.lsymbol -> expr list -> Ity.ity list -> Ity.ity -> expr
exception FieldExpected of rsymbol
val e_true : expr
val e_false : expr
val is_e_true : expr -> bool
val is_e_false : expr -> bool
exception ExceptionLeak of Ity.xsymbol
val e_exn : Ity.xsymbol -> expr -> expr
val e_raise : Ity.xsymbol -> expr -> Ity.ity -> expr
val e_match : expr -> reg_branch list -> exn_branch Ity.Mxs.t -> expr
val e_for :
Ity.pvsymbol ->
expr ->
for_direction ->
expr ->
Ity.pvsymbol ->
invariant list ->
expr ->
expr
val e_assert : assertion_kind -> Term.term -> expr
val e_locate_effect : (Ity.effect -> bool) -> expr -> Loc.position option
val term_of_post :
prop:bool ->
Term.vsymbol ->
Term.term ->
(Term.term * Term.term) option
val e_ghost : expr -> bool
val c_ghost : cexp -> bool
val rs_true : rsymbol
val rs_false : rsymbol
val rs_tuple : int -> rsymbol
val rs_void : rsymbol
val fs_void : Term.lsymbol
val e_void : expr
val t_void : Term.term
val is_e_void : expr -> bool
val is_rs_tuple : rsymbol -> bool
val rs_func_app : rsymbol
val ld_func_app : let_defn
val forget_rs : rsymbol -> unit
val print_rs : Format.formatter -> rsymbol -> unit
val print_expr : Format.formatter -> expr -> unit
val print_let_defn : Format.formatter -> let_defn -> unit
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>