-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquery.ml
27 lines (23 loc) · 1000 Bytes
/
query.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
open Formula
open Intfdesc
open Assign
(* This file is part of Arsenic, a proofchecker for New Lace logic.
Copyright (c) 2015 Richard Bornat.
Licensed under the MIT license (sic): see LICENCE.txt or
https://opensource.org/licenses/MIT
*)
type query =
| Qassert of formula * query
| Qtaut of formula
| Qsat of formula
| Qstableformula of formula * intfdesc
| Qstableintf of intfdesc * intfdesc
| Qspimplies of formula * assign * formula
let rec string_of_query = function
| Qassert (f,q) -> "_assert " ^ string_of_formula f ^ "; " ^ string_of_query q
| Qtaut f -> string_of_formula f
| Qsat f -> "_sat " ^ string_of_formula f
| Qstableformula (f,intf) -> string_of_formula f ^ " _against " ^ string_of_intfdesc intf
| Qstableintf (intf1, intf2) -> string_of_intfdesc intf1 ^ " _against " ^ string_of_intfdesc intf2
| Qspimplies (pre, assign, post) ->
"_sp(" ^ string_of_formula pre ^ "; " ^ string_of_assign assign ^ ") => " ^ string_of_formula post