mlw_wp.mli 1.94 KB
Newer Older
Andrei Paskevich's avatar
Andrei Paskevich committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(**************************************************************************)
(*                                                                        *)
(*  Copyright (C) 2010-2012                                               *)
(*    François Bobot                                                      *)
(*    Jean-Christophe Filliâtre                                           *)
(*    Claude Marché                                                       *)
(*    Guillaume Melquiond                                                 *)
(*    Andrei Paskevich                                                    *)
(*                                                                        *)
(*  This software is free software; you can redistribute it and/or        *)
(*  modify it under the terms of the GNU Library General Public           *)
(*  License version 2.1, with the special exception on linking            *)
(*  described in file LICENSE.                                            *)
(*                                                                        *)
(*  This software is distributed in the hope that it will be useful,      *)
(*  but WITHOUT ANY WARRANTY; without even the implied warranty of        *)
(*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                  *)
(*                                                                        *)
(**************************************************************************)

open Why3
22
open Theory
23
24
open Mlw_ty
open Mlw_ty.T
25
open Mlw_decl
26
open Mlw_expr
Andrei Paskevich's avatar
Andrei Paskevich committed
27
28
29
30
31
32
33
34
35
36
37

(** WP-only builtins *)

val ts_mark : Ty.tysymbol
val ty_mark : Ty.ty

val fs_old : Term.lsymbol
val fs_at  : Term.lsymbol

val th_mark : Theory.theory

Andrei Paskevich's avatar
Andrei Paskevich committed
38
39
val fs_now : Term.lsymbol
val e_now  : expr
40
41
42

(** Weakest preconditions *)

43
44
45
val wp_val: Env.env -> known_map -> theory_uc -> val_decl -> theory_uc
val wp_let: Env.env -> known_map -> theory_uc -> let_defn -> theory_uc
val wp_rec: Env.env -> known_map -> theory_uc -> rec_defn list -> theory_uc