mlw_wp.mli 1.99 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

(** WP-only builtins *)

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

val fs_at  : Term.lsymbol
34
35
36
37
val fs_old : Term.lsymbol

val th_mark_at  : Theory.theory
val th_mark_old : Theory.theory
Andrei Paskevich's avatar
Andrei Paskevich committed
38

39
val e_now : expr
Andrei Paskevich's avatar
Andrei Paskevich committed
40

41
val remove_old : Term.term -> Term.term
42
43
44

(** Weakest preconditions *)

45
val wp_val: Env.env -> known_map -> theory_uc -> let_sym  -> theory_uc
46
val wp_let: Env.env -> known_map -> theory_uc -> let_defn -> theory_uc
47
val wp_rec: Env.env -> known_map -> theory_uc -> rec_defn -> theory_uc