@@ -12,47 +12,47 @@ module L = List
12
12
module Sy = Sys
13
13
module D = Direct
14
14
module S = String
15
-
15
+ (*
16
16
module Sz3 = Solve.Solve(Smtz3.SMTz3)
17
17
module Sminisat = Solve.Solve(Smtminisat.Smtmini)
18
+ module Dummy = struct let truc = 1 end
19
+ module SmtMsat = Solve.Solve(Smtmsat.SMTmsat(Dummy)) *)
18
20
19
- module Dummy =
20
- struct
21
- let truc = 1
22
- end
23
21
24
22
let pf = Printf. printf
25
23
let spf = Printf. sprintf
26
24
25
+ let max_var = 50 ;;
26
+
27
27
(* --------------------------------------------------------*)
28
28
(* Génération aléatoire de formule *)
29
29
(* --------------------------------------------------------*)
30
- let variables = [" p" ;" q" ;" p2" ;" q2" ;" r" ;" r2" ;" s" ;" s2" ]
30
+ (* let variables = ["p";"q";"p2";"q2";"r";"r2";"s";"s2"] *)
31
31
32
- let tire_var () =
32
+ let tire_var max_var =
33
33
begin
34
34
R. self_init () ;
35
- L. nth variables ( R. int 4 ) ;
35
+ R. int max_var ;
36
36
end
37
37
38
38
39
- let rec tire_form n =
39
+ let rec tire_form n max_var =
40
40
begin
41
41
R. self_init () ;
42
42
match n with
43
43
| 0 ->
44
44
begin
45
45
match R. int 2 with
46
- | 0 -> M. Atom (tire_var () )
47
- | _ -> M. Not (M. Atom (tire_var () ))
46
+ | 0 -> M. Atom (tire_var max_var )
47
+ | _ -> M. Not (M. Atom (tire_var max_var ))
48
48
end
49
49
| n ->
50
50
begin
51
51
match (R. int 4 ) with
52
- | 0 -> M. Conj (tire_form (n-1 ), tire_form (n-1 ))
53
- | 1 -> M. Dij (tire_form (n-1 ), tire_form (n-1 ))
54
- | 2 -> M. Boxe (tire_form(n-1 ))
55
- | _ -> M. Diamond (tire_form (n-1 ))
52
+ | 0 -> M. Conj (tire_form (n-1 ) max_var, tire_form (n-1 ) max_var )
53
+ | 1 -> M. Dij (tire_form (n-1 ) max_var, tire_form (n-1 ) max_var )
54
+ | 2 -> M. Boxe (tire_form(n-1 ) max_var )
55
+ | _ -> M. Diamond (tire_form (n-1 ) max_var )
56
56
end ;
57
57
58
58
end
@@ -103,10 +103,10 @@ let get_logic () =
103
103
(* --------------------------------------------------------*)
104
104
105
105
let handle = function
106
- | C. MeauvaisFormat s ->
106
+ | C. WrongFormat s ->
107
107
pf " Erreur : meauvais format \n %s \n " s
108
- | C. FreeVDM (v1 ,v2 ,s ) ->
109
- pf " Erreur : les variables %s et %s ne matchent pas : \n %s \n " v1 v2 s
108
+ | C. FreeVDontMatch (v1 ,v2 ,s ) ->
109
+ pf " Erreur : les variables %d et %d ne matchent pas : \n %s \n " v1 v2 s
110
110
| _ -> ()
111
111
112
112
let print_debug s =
@@ -131,8 +131,16 @@ let get_arg () =
131
131
begin
132
132
pf " le second argument est la profondeur max \n " ;
133
133
exit 1 ;
134
- end
135
- in (nb,n)
134
+ end
135
+ and max_var =
136
+ try int_of_string (Sy. argv.(3 ))
137
+ with
138
+ | _ ->
139
+ begin
140
+ pf " le troisième argument est le nomre de variables \n " ;
141
+ exit 1 ;
142
+ end
143
+ in (nb, n, max_var)
136
144
(*
137
145
let rec check_form = function
138
146
| M.Atom _ -> true
@@ -147,7 +155,8 @@ let rec check_form = function
147
155
148
156
149
157
let _ =
150
- let nb,n = get_arg ()
158
+ let nb, n, max_var = get_arg ()
159
+ and a,_ = get_logic ()
151
160
and t0 = ref 0.
152
161
and t_sz3 = ref 0.
153
162
and t_direct = ref 0.
@@ -163,13 +172,19 @@ and res_minisat = ref true
163
172
and res_direct = ref true
164
173
and out = None (* Some (open_out "test.out") *)
165
174
and res = open_out_gen [Open_append ] 777 " resultatsz3.csv"
166
- and comp = ref 0
175
+ and comp = ref 0 in
176
+ let module Argument = struct let argument = a end in
177
+ let module Decide = Decide. GetDecide (Argument ) in
178
+ let module Simplify = Simplify. GetSimplify (Argument ) in
179
+ let module SmtZ3 = Solve. Solve (Smtz3. SMTz3 )(Decide )(Simplify ) in
180
+ let module SmtMinisat = Solve. Solve (Smtminisat. Smtmini )(Decide )(Simplify ) in
181
+ let module Dummy = struct let truc = 1 end in
182
+ let module SmtMsat = Solve. Solve (Smtmsat. SMTmsat (Dummy ))(Decide )(Simplify )
167
183
in begin
168
184
for i = 1 to nb do
169
- let f = tire_form n in
170
- let f0 = C. st " w" f
171
- and a,_ = get_logic () in
172
- let module Smsat = Solve. Solve (Smtmsat. SMTmsat (Dummy ))
185
+ let f = tire_form n max_var in
186
+ let f0 = C. st 0 f in
187
+ let module Smsat = Solve. Solve (Smtmsat. SMTmsat (Dummy ))(Decide )(Simplify )
173
188
in begin
174
189
pf " ========================= \n " ;
175
190
(*
@@ -181,20 +196,20 @@ in begin
181
196
On fait les résolutions avec les différents oracles
182
197
*)
183
198
184
- t0 := U. gettimeofday () ;
199
+ (* t0 := U.gettimeofday () ;
185
200
res_sz3 := Sz3.solve f0 a ;
186
201
dt_sz3 := (U.gettimeofday () -. !t0);
187
202
t_sz3 := !t_sz3 +. !dt_sz3;
188
-
203
+ *)
189
204
190
205
t0 := U. gettimeofday () ;
191
- res_msat := Smsat . solve f0 a ;
206
+ res_msat := SmtMsat . solve f ;
192
207
dt_msat:= (U. gettimeofday () -. ! t0);
193
208
t_msat := ! t_msat +. ! dt_msat;
194
209
195
210
196
211
t0 := U. gettimeofday () ;
197
- res_minisat := Sminisat . solve f0 a ;
212
+ res_minisat := SmtMinisat . solve f ;
198
213
dt_minisat:= (U. gettimeofday () -. ! t0);
199
214
t_minisat := ! t_minisat +. ! dt_minisat;
200
215
0 commit comments