Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
caisar
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pub
caisar
Commits
5ead8dda
Commit
5ead8dda
authored
2 years ago
by
Michele Alberti
Committed by
Julien Girard-Satabin
2 years ago
Browse files
Options
Downloads
Patches
Plain Diff
[SAVer] Lint wrt ocamlformat rules.
parent
5100ed98
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
lib/ovo/ovo.ml
+2
-2
2 additions, 2 deletions
lib/ovo/ovo.ml
src/language.ml
+14
-20
14 additions, 20 deletions
src/language.ml
src/main.ml
+1
-4
1 addition, 4 deletions
src/main.ml
src/verification.ml
+2
-3
2 additions, 3 deletions
src/verification.ml
with
19 additions
and
29 deletions
lib/ovo/ovo.ml
+
2
−
2
View file @
5ead8dda
...
@@ -67,8 +67,8 @@ let parse_in_channel filename in_channel =
...
@@ -67,8 +67,8 @@ let parse_in_channel filename in_channel =
skip_ovo_header
filename
in_channel
>>=
fun
()
->
skip_ovo_header
filename
in_channel
>>=
fun
()
->
let
in_channel
=
Csv
.
of_channel
in_channel
in
let
in_channel
=
Csv
.
of_channel
in_channel
in
handle_ovo_unused_flag
in_channel
>>=
fun
()
->
handle_ovo_unused_flag
in_channel
>>=
fun
()
->
handle_ovo_basic_info
in_channel
>>=
fun
(
n_is
)
->
handle_ovo_basic_info
in_channel
>>=
fun
n_is
->
handle_ovo_basic_info
in_channel
>>=
fun
(
n_os
)
->
handle_ovo_basic_info
in_channel
>>=
fun
n_os
->
Csv
.
close_in
in_channel
;
Csv
.
close_in
in_channel
;
Ok
{
n_inputs
=
n_is
;
n_outputs
=
n_os
}
Ok
{
n_inputs
=
n_is
;
n_outputs
=
n_os
}
with
with
...
...
This diff is collapsed.
Click to expand it.
src/language.ml
+
14
−
20
View file @
5ead8dda
...
@@ -7,8 +7,9 @@
...
@@ -7,8 +7,9 @@
open
Why3
open
Why3
open
Base
open
Base
(* Support for several model formats: - NNet and ONNX for neural networks, - OVO
(* Support for several model formats: *)
for for SVM *)
(* - NNet and ONNX for neural networks *)
(* - OVO for for SVM *)
type
nnshape
=
{
type
nnshape
=
{
nb_inputs
:
int
;
nb_inputs
:
int
;
...
@@ -17,16 +18,12 @@ type nnshape = {
...
@@ -17,16 +18,12 @@ type nnshape = {
filename
:
string
;
filename
:
string
;
}
}
type
svmshape
=
{
type
svmshape
=
{
nb_inputs
:
int
;
nb_classes
:
int
;
filename
:
string
}
nb_inputs
:
int
;
nb_classes
:
int
;
filename
:
string
;
}
let
loaded_nets
=
Why3
.
Term
.
Hls
.
create
10
let
loaded_nets
=
Term
.
Hls
.
create
10
let
loaded_svms
=
Why3
.
Term
.
Hls
.
create
10
let
loaded_svms
=
Term
.
Hls
.
create
10
let
lookup_loaded_nets
=
Why3
.
Term
.
Hls
.
find_opt
loaded_nets
let
lookup_loaded_nets
=
Term
.
Hls
.
find_opt
loaded_nets
let
lookup_loaded_svms
=
Why3
.
Term
.
Hls
.
find_opt
loaded_svms
let
lookup_loaded_svms
=
Term
.
Hls
.
find_opt
loaded_svms
let
register_nn_as_tuple
nb_inputs
nb_outputs
filename
env
=
let
register_nn_as_tuple
nb_inputs
nb_outputs
filename
env
=
let
net
=
Pmodule
.
read_module
env
[
"caisar"
]
"NN"
in
let
net
=
Pmodule
.
read_module
env
[
"caisar"
]
"NN"
in
...
@@ -60,13 +57,9 @@ let register_svm_as_array nb_inputs nb_classes filename env =
...
@@ -60,13 +57,9 @@ let register_svm_as_array nb_inputs nb_classes filename env =
let
th_uc
=
Pmodule
.
create_module
env
id_as_array
in
let
th_uc
=
Pmodule
.
create_module
env
id_as_array
in
let
th_uc
=
Pmodule
.
use_export
th_uc
svm
in
let
th_uc
=
Pmodule
.
use_export
th_uc
svm
in
let
ls_svm_apply
=
let
ls_svm_apply
=
Term
.
create_fsymbol
Term
.
create_fsymbol
(
Ident
.
id_fresh
"svm_apply"
)
[]
svm_type
(
Ident
.
id_fresh
"svm_apply"
)
[]
svm_type
in
in
Why3
.
Term
.
Hls
.
add
loaded_svms
ls_svm_apply
Term
.
Hls
.
add
loaded_svms
ls_svm_apply
{
filename
;
nb_inputs
;
nb_classes
};
{
filename
;
nb_inputs
;
nb_classes
};
let
th_uc
=
let
th_uc
=
Pmodule
.
add_pdecl
~
vc
:
false
th_uc
Pmodule
.
add_pdecl
~
vc
:
false
th_uc
(
Pdecl
.
create_pure_decl
(
Decl
.
create_param_decl
ls_svm_apply
))
(
Pdecl
.
create_pure_decl
(
Decl
.
create_param_decl
ls_svm_apply
))
...
@@ -89,7 +82,8 @@ let ovo_parser env _ filename _ =
...
@@ -89,7 +82,8 @@ let ovo_parser env _ filename _ =
let
model
=
Ovo
.
parse
filename
in
let
model
=
Ovo
.
parse
filename
in
match
model
with
match
model
with
|
Error
s
->
Loc
.
errorm
"%s"
s
|
Error
s
->
Loc
.
errorm
"%s"
s
|
Ok
model
->
register_svm_as_array
model
.
n_inputs
model
.
n_outputs
filename
env
|
Ok
model
->
register_svm_as_array
model
.
n_inputs
model
.
n_outputs
filename
env
let
register_nnet_support
()
=
let
register_nnet_support
()
=
Env
.
register_format
~
desc
:
"NNet format (ReLU only)"
Pmodule
.
mlw_language
Env
.
register_format
~
desc
:
"NNet format (ReLU only)"
Pmodule
.
mlw_language
...
@@ -100,5 +94,5 @@ let register_onnx_support () =
...
@@ -100,5 +94,5 @@ let register_onnx_support () =
onnx_parser
onnx_parser
let
register_ovo_support
()
=
let
register_ovo_support
()
=
Env
.
register_format
~
desc
:
"OVO format"
Pmodule
.
mlw_language
"OVO"
[
"ovo"
]
Env
.
register_format
~
desc
:
"OVO format"
Pmodule
.
mlw_language
"OVO"
[
"ovo"
]
ovo_parser
ovo_parser
This diff is collapsed.
Click to expand it.
src/main.ml
+
1
−
4
View file @
5ead8dda
...
@@ -157,10 +157,7 @@ let verify_cmd =
...
@@ -157,10 +157,7 @@ let verify_cmd =
Arg
.(
required
&
opt
(
some
provers
)
None
&
info
[
"p"
;
"prover"
]
~
doc
)
Arg
.(
required
&
opt
(
some
provers
)
None
&
info
[
"p"
;
"prover"
]
~
doc
)
in
in
let
dataset_csv
=
let
dataset_csv
=
let
doc
=
let
doc
=
"Dataset under CSV format. Currently only supported by SAVer."
in
"Dataset under .csv format to use for analyse.
\n
\
\
Currently only supported by SAVer."
in
Arg
.(
value
&
opt
(
some
string
)
None
&
info
[
"dataset-csv"
]
~
doc
)
Arg
.(
value
&
opt
(
some
string
)
None
&
info
[
"dataset-csv"
]
~
doc
)
in
in
let
doc
=
let
doc
=
...
...
This diff is collapsed.
Click to expand it.
src/verification.ml
+
2
−
3
View file @
5ead8dda
...
@@ -145,8 +145,7 @@ let answer_saver limit config task env prover dataset_csv =
...
@@ -145,8 +145,7 @@ let answer_saver limit config task env prover dataset_csv =
in
in
answer
answer
let
answer_generic
limit
config
task
driver
let
answer_generic
limit
config
task
driver
(
prover
:
Whyconf
.
config_prover
)
=
(
prover
:
Why3
.
Whyconf
.
config_prover
)
=
let
task_prepared
=
Driver
.
prepare_task
driver
task
in
let
task_prepared
=
Driver
.
prepare_task
driver
task
in
let
tasks
=
let
tasks
=
(* We make [tasks] as a list (ie, conjunction) of disjunctions. *)
(* We make [tasks] as a list (ie, conjunction) of disjunctions. *)
...
@@ -175,7 +174,7 @@ let answer_generic limit config task driver
...
@@ -175,7 +174,7 @@ let answer_generic limit config task driver
let
answer
=
combine_prover_answers
answers
in
let
answer
=
combine_prover_answers
answers
in
answer
answer
let
call_prover
~
limit
config
(
prover
:
Why3
.
Whyconf
.
config_prover
)
driver
env
let
call_prover
~
limit
config
(
prover
:
Whyconf
.
config_prover
)
driver
env
dataset_csv
task
=
dataset_csv
task
=
let
prover_answer
=
let
prover_answer
=
if
String
.
equal
prover
.
prover
.
prover_name
"SAVer"
if
String
.
equal
prover
.
prover
.
prover_name
"SAVer"
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment