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
06b3af48
Commit
06b3af48
authored
3 years ago
by
Michele Alberti
Browse files
Options
Downloads
Patches
Plain Diff
[PyRAT] Split all tasks so that conjuctions must appear at top-level only.
parent
725b2e07
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/printers/pyrat.ml
+2
-1
2 additions, 1 deletion
src/printers/pyrat.ml
src/verification.ml
+2
-4
2 additions, 4 deletions
src/verification.ml
with
4 additions
and
5 deletions
src/printers/pyrat.ml
+
2
−
1
View file @
06b3af48
...
...
@@ -31,7 +31,6 @@ let rec print_term info fmt t =
|
Tnot
_
|
Ttrue
|
Tfalse
|
Tvar
_
|
Tlet
_
|
Tif
_
|
Tcase
_
|
Tquant
_
|
Teps
_
->
Printer
.
unsupportedTerm
t
"Not supported by PyRAT"
|
Tbinop
(
Tand
,
_
,
_
)
->
assert
false
(* Should appear only at top-level. *)
|
Tconst
c
->
Constant
.(
print
number_format
unsupported_escape
)
fmt
c
|
Tapp
(
ls
,
l
)
->
(
match
Printer
.
query_syntax
info
.
info_syn
ls
.
ls_name
with
...
...
@@ -40,6 +39,8 @@ let rec print_term info fmt t =
match
(
Term
.
Hls
.
find_opt
info
.
variables
ls
,
l
)
with
|
Some
s
,
[]
->
Fmt
.
string
fmt
s
|
_
->
Printer
.
unsupportedTerm
t
"Unknown variable(s)"
))
|
Tbinop
(
Tand
,
_
,
_
)
->
Printer
.
unsupportedTerm
t
"Unexpected conjunction not at top-level"
|
Tbinop
(
Tor
,
t1
,
t2
)
->
Fmt
.
pf
fmt
"%a or %a"
(
print_term
info
)
t1
(
print_term
info
)
t2
...
...
This diff is collapsed.
Click to expand it.
src/verification.ml
+
2
−
4
View file @
06b3af48
...
...
@@ -40,11 +40,9 @@ let combine_prover_answers answers =
let
call_prover
~
limit
(
prover
:
Why3
.
Whyconf
.
config_prover
)
driver
task
=
let
open
Why3
in
let
task_prepared
=
Driver
.
prepare_task
driver
task
in
(* We make [tasks] as a list (ie, conjunction) of disjunctions. *)
let
tasks
=
if
String
.
equal
prover
.
prover
.
prover_name
"Marabou"
then
Trans
.
apply
Split_goal
.
split_goal_full
task_prepared
else
[
task_prepared
]
(* We make [tasks] as a list (ie, conjunction) of disjunctions. *)
Trans
.
apply
Split_goal
.
split_goal_full
task_prepared
in
let
command
=
Whyconf
.
get_complete_command
~
with_steps
:
false
prover
in
let
nn_file
=
...
...
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