Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
why3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
121
Issues
121
List
Boards
Labels
Service Desk
Milestones
Merge Requests
15
Merge Requests
15
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Why3
why3
Commits
82c3b516
Commit
82c3b516
authored
Jul 15, 2015
by
David Hauzar
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit '
0a191c7b
' into counter-examples
parents
33beb7e0
0a191c7b
Changes
287
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
287 changed files
with
15662 additions
and
8623 deletions
+15662
-8623
Makefile.in
Makefile.in
+4
-3
ROADMAP
ROADMAP
+10
-5
bench/programs/bad-typing/variant3.mlw
bench/programs/bad-typing/variant3.mlw
+19
-0
check.sh
check.sh
+1
-1
drivers/coq-ssreflect.drv
drivers/coq-ssreflect.drv
+139
-0
drivers/isabelle-common.gen
drivers/isabelle-common.gen
+4
-0
drivers/mathsat.drv
drivers/mathsat.drv
+4
-1
drivers/ocaml-gen.drv
drivers/ocaml-gen.drv
+17
-0
drivers/ocaml-unsafe-int.drv
drivers/ocaml-unsafe-int.drv
+81
-4
drivers/ocaml64.drv
drivers/ocaml64.drv
+42
-1
drivers/pvs-common.gen
drivers/pvs-common.gen
+4
-1
drivers/smt-libv2-bv.gen
drivers/smt-libv2-bv.gen
+3
-0
drivers/smt-libv2.drv
drivers/smt-libv2.drv
+16
-3
drivers/why3.drv
drivers/why3.drv
+0
-9
drivers/why3_smt.drv
drivers/why3_smt.drv
+26
-6
drivers/yices.drv
drivers/yices.drv
+3
-1
examples/algo63/why3session.xml
examples/algo63/why3session.xml
+215
-239
examples/algo63/why3shapes.gz
examples/algo63/why3shapes.gz
+0
-0
examples/algo64/why3session.xml
examples/algo64/why3session.xml
+17
-17
examples/algo64/why3shapes.gz
examples/algo64/why3shapes.gz
+0
-0
examples/algo65/why3session.xml
examples/algo65/why3session.xml
+40
-40
examples/algo65/why3shapes.gz
examples/algo65/why3shapes.gz
+0
-0
examples/all_distinct/why3session.xml
examples/all_distinct/why3session.xml
+13
-13
examples/all_distinct/why3shapes.gz
examples/all_distinct/why3shapes.gz
+0
-0
examples/arm/why3session.xml
examples/arm/why3session.xml
+19
-19
examples/arm/why3shapes.gz
examples/arm/why3shapes.gz
+0
-0
examples/assigning_meanings_to_programs/why3session.xml
examples/assigning_meanings_to_programs/why3session.xml
+2
-2
examples/assigning_meanings_to_programs/why3shapes.gz
examples/assigning_meanings_to_programs/why3shapes.gz
+0
-0
examples/bag.mlw
examples/bag.mlw
+2
-1
examples/bag/why3session.xml
examples/bag/why3session.xml
+4
-4
examples/bag/why3shapes.gz
examples/bag/why3shapes.gz
+0
-0
examples/balance/why3session.xml
examples/balance/why3session.xml
+34
-34
examples/balance/why3shapes.gz
examples/balance/why3shapes.gz
+0
-0
examples/bellman_ford.mlw
examples/bellman_ford.mlw
+2
-1
examples/bellman_ford/why3session.xml
examples/bellman_ford/why3session.xml
+2133
-165
examples/bellman_ford/why3shapes.gz
examples/bellman_ford/why3shapes.gz
+0
-0
examples/binary_search/why3session.xml
examples/binary_search/why3session.xml
+33
-33
examples/binary_search/why3shapes.gz
examples/binary_search/why3shapes.gz
+0
-0
examples/bitvector_examples/why3session.xml
examples/bitvector_examples/why3session.xml
+11
-11
examples/bitvector_examples/why3shapes.gz
examples/bitvector_examples/why3shapes.gz
+0
-0
examples/bts/fsetint/why3session.xml
examples/bts/fsetint/why3session.xml
+2
-2
examples/bts/fsetint/why3shapes.gz
examples/bts/fsetint/why3shapes.gz
+0
-0
examples/bubble_sort/why3session.xml
examples/bubble_sort/why3session.xml
+34
-34
examples/bubble_sort/why3shapes.gz
examples/bubble_sort/why3shapes.gz
+0
-0
examples/check-builtin/array/why3session.xml
examples/check-builtin/array/why3session.xml
+5
-5
examples/check-builtin/array/why3shapes.gz
examples/check-builtin/array/why3shapes.gz
+0
-0
examples/coincidence_count/why3session.xml
examples/coincidence_count/why3session.xml
+55
-54
examples/coincidence_count/why3shapes.gz
examples/coincidence_count/why3shapes.gz
+0
-0
examples/conjugate/why3session.xml
examples/conjugate/why3session.xml
+31
-31
examples/conjugate/why3shapes.gz
examples/conjugate/why3shapes.gz
+0
-0
examples/counting_sort.mlw
examples/counting_sort.mlw
+4
-3
examples/counting_sort/why3session.xml
examples/counting_sort/why3session.xml
+230
-249
examples/counting_sort/why3shapes.gz
examples/counting_sort/why3shapes.gz
+0
-0
examples/cursor.mlw
examples/cursor.mlw
+2
-2
examples/cursor/why3session.xml
examples/cursor/why3session.xml
+43
-63
examples/cursor/why3shapes.gz
examples/cursor/why3shapes.gz
+0
-0
examples/decrease1/why3session.xml
examples/decrease1/why3session.xml
+23
-23
examples/decrease1/why3shapes.gz
examples/decrease1/why3shapes.gz
+0
-0
examples/dijkstra/why3session.xml
examples/dijkstra/why3session.xml
+38
-38
examples/dijkstra/why3shapes.gz
examples/dijkstra/why3shapes.gz
+0
-0
examples/double_wp/compiler/why3session.xml
examples/double_wp/compiler/why3session.xml
+371
-389
examples/double_wp/compiler/why3shapes.gz
examples/double_wp/compiler/why3shapes.gz
+0
-0
examples/double_wp/imp/why3session.xml
examples/double_wp/imp/why3session.xml
+46
-46
examples/double_wp/imp/why3shapes.gz
examples/double_wp/imp/why3shapes.gz
+0
-0
examples/double_wp/logic/why3session.xml
examples/double_wp/logic/why3session.xml
+11
-11
examples/double_wp/logic/why3shapes.gz
examples/double_wp/logic/why3shapes.gz
+0
-0
examples/double_wp/specs/why3session.xml
examples/double_wp/specs/why3session.xml
+45
-45
examples/double_wp/specs/why3shapes.gz
examples/double_wp/specs/why3shapes.gz
+0
-0
examples/double_wp/vm/why3session.xml
examples/double_wp/vm/why3session.xml
+4
-4
examples/double_wp/vm/why3shapes.gz
examples/double_wp/vm/why3shapes.gz
+0
-0
examples/edit_distance/edit_distance_WP_EditDistance_WP_parameter_distance_1.v
...e/edit_distance_WP_EditDistance_WP_parameter_distance_1.v
+109
-88
examples/edit_distance/edit_distance_WP_EditDistance_WP_parameter_distance_2.v
...e/edit_distance_WP_EditDistance_WP_parameter_distance_2.v
+118
-103
examples/edit_distance/why3session.xml
examples/edit_distance/why3session.xml
+143
-143
examples/edit_distance/why3shapes.gz
examples/edit_distance/why3shapes.gz
+0
-0
examples/fib_memo/why3session.xml
examples/fib_memo/why3session.xml
+5
-5
examples/fib_memo/why3shapes.gz
examples/fib_memo/why3shapes.gz
+0
-0
examples/fibonacci.mlw
examples/fibonacci.mlw
+41
-0
examples/fibonacci/why3session.xml
examples/fibonacci/why3session.xml
+157
-67
examples/fibonacci/why3shapes.gz
examples/fibonacci/why3shapes.gz
+0
-0
examples/fill/why3session.xml
examples/fill/why3session.xml
+2
-2
examples/fill/why3shapes.gz
examples/fill/why3shapes.gz
+0
-0
examples/find/why3session.xml
examples/find/why3session.xml
+42
-42
examples/find/why3shapes.gz
examples/find/why3shapes.gz
+0
-0
examples/finite_tarski/why3session.xml
examples/finite_tarski/why3session.xml
+2
-2
examples/finite_tarski/why3shapes.gz
examples/finite_tarski/why3shapes.gz
+0
-0
examples/flag/why3session.xml
examples/flag/why3session.xml
+31
-31
examples/flag/why3shapes.gz
examples/flag/why3shapes.gz
+0
-0
examples/flag2/why3session.xml
examples/flag2/why3session.xml
+33
-33
examples/flag2/why3shapes.gz
examples/flag2/why3shapes.gz
+0
-0
examples/foveoos11-cm/array_max/why3session.xml
examples/foveoos11-cm/array_max/why3session.xml
+1
-1
examples/foveoos11-cm/array_max/why3shapes.gz
examples/foveoos11-cm/array_max/why3shapes.gz
+0
-0
examples/foveoos11-cm/duplets/why3session.xml
examples/foveoos11-cm/duplets/why3session.xml
+2
-2
examples/foveoos11-cm/duplets/why3shapes.gz
examples/foveoos11-cm/duplets/why3shapes.gz
+0
-0
examples/foveoos11_challenge1/why3session.xml
examples/foveoos11_challenge1/why3session.xml
+13
-13
examples/foveoos11_challenge1/why3shapes.gz
examples/foveoos11_challenge1/why3shapes.gz
+0
-0
examples/foveoos11_challenge3/foveoos11_challenge3_WP_TwoEqualElements_WP_parameter_two_equal_elements_1.v
...3_WP_TwoEqualElements_WP_parameter_two_equal_elements_1.v
+48
-33
examples/foveoos11_challenge3/foveoos11_challenge3_WP_TwoEqualElements_WP_parameter_two_equal_elements_2.v
...3_WP_TwoEqualElements_WP_parameter_two_equal_elements_2.v
+48
-33
examples/foveoos11_challenge3/foveoos11_challenge3_WP_TwoEqualElements_WP_parameter_two_equal_elements_3.v
...3_WP_TwoEqualElements_WP_parameter_two_equal_elements_3.v
+53
-37
examples/foveoos11_challenge3/foveoos11_challenge3_WP_TwoEqualElements_WP_parameter_two_equal_elements_4.v
...3_WP_TwoEqualElements_WP_parameter_two_equal_elements_4.v
+29
-30
examples/foveoos11_challenge3/why3session.xml
examples/foveoos11_challenge3/why3session.xml
+42
-43
examples/foveoos11_challenge3/why3shapes.gz
examples/foveoos11_challenge3/why3shapes.gz
+0
-0
examples/generate_all_trees/why3session.xml
examples/generate_all_trees/why3session.xml
+42
-42
examples/generate_all_trees/why3shapes.gz
examples/generate_all_trees/why3shapes.gz
+0
-0
examples/hashtbl_impl.mlw
examples/hashtbl_impl.mlw
+5
-4
examples/hashtbl_impl/why3session.xml
examples/hashtbl_impl/why3session.xml
+28
-28
examples/hashtbl_impl/why3shapes.gz
examples/hashtbl_impl/why3shapes.gz
+0
-0
examples/hoare_logic/blocking_semantics5.mlw
examples/hoare_logic/blocking_semantics5.mlw
+2
-1
examples/hoare_logic/blocking_semantics5/why3session.xml
examples/hoare_logic/blocking_semantics5/why3session.xml
+99
-252
examples/hoare_logic/blocking_semantics5/why3shapes.gz
examples/hoare_logic/blocking_semantics5/why3shapes.gz
+0
-0
examples/hoare_logic/formula.why
examples/hoare_logic/formula.why
+3
-3
examples/hoare_logic/formula/why3session.xml
examples/hoare_logic/formula/why3session.xml
+2
-2
examples/hoare_logic/formula/why3shapes.gz
examples/hoare_logic/formula/why3shapes.gz
+0
-0
examples/hoare_logic/imp_n.why
examples/hoare_logic/imp_n.why
+7
-7
examples/hoare_logic/imp_n/why3session.xml
examples/hoare_logic/imp_n/why3session.xml
+12
-12
examples/hoare_logic/imp_n/why3shapes.gz
examples/hoare_logic/imp_n/why3shapes.gz
+0
-0
examples/hoare_logic/wp2.mlw
examples/hoare_logic/wp2.mlw
+3
-3
examples/hoare_logic/wp2/why3session.xml
examples/hoare_logic/wp2/why3session.xml
+36
-36
examples/hoare_logic/wp2/why3shapes.gz
examples/hoare_logic/wp2/why3shapes.gz
+0
-0
examples/in_progress/bitwalker.mlw
examples/in_progress/bitwalker.mlw
+243
-38
examples/in_progress/bitwalker_abstract.mlw
examples/in_progress/bitwalker_abstract.mlw
+378
-0
examples/in_progress/bitwalker_abstract2.mlw
examples/in_progress/bitwalker_abstract2.mlw
+323
-0
examples/in_progress/bitwalker_abstract2/why3session.xml
examples/in_progress/bitwalker_abstract2/why3session.xml
+768
-0
examples/in_progress/bitwalker_abstract2/why3shapes.gz
examples/in_progress/bitwalker_abstract2/why3shapes.gz
+0
-0
examples/in_progress/mp.mlw
examples/in_progress/mp.mlw
+6
-5
examples/in_progress/nqueens.mlw
examples/in_progress/nqueens.mlw
+491
-0
examples/in_progress/nqueens/why3session.xml
examples/in_progress/nqueens/why3session.xml
+612
-0
examples/in_progress/nqueens/why3shapes.gz
examples/in_progress/nqueens/why3shapes.gz
+0
-0
examples/insertion_sort/why3session.xml
examples/insertion_sort/why3session.xml
+54
-54
examples/insertion_sort/why3shapes.gz
examples/insertion_sort/why3shapes.gz
+0
-0
examples/insertion_sort_naive/why3session.xml
examples/insertion_sort_naive/why3session.xml
+125
-125
examples/insertion_sort_naive/why3shapes.gz
examples/insertion_sort_naive/why3shapes.gz
+0
-0
examples/inverse_in_place/why3session.xml
examples/inverse_in_place/why3session.xml
+20
-20
examples/inverse_in_place/why3shapes.gz
examples/inverse_in_place/why3shapes.gz
+0
-0
examples/isqrt.mlw
examples/isqrt.mlw
+5
-5
examples/isqrt/why3session.xml
examples/isqrt/why3session.xml
+42
-60
examples/isqrt/why3shapes.gz
examples/isqrt/why3shapes.gz
+0
-0
examples/kmp/kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_2.v
...les/kmp/kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_2.v
+88
-89
examples/kmp/kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_3.v
...les/kmp/kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_3.v
+88
-88
examples/kmp/kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_4.v
...les/kmp/kmp_WP_KnuthMorrisPratt_WP_parameter_initnext_4.v
+90
-87
examples/kmp/why3session.xml
examples/kmp/why3session.xml
+76
-76
examples/kmp/why3shapes.gz
examples/kmp/why3shapes.gz
+0
-0
examples/knuth_prime_numbers.mlw
examples/knuth_prime_numbers.mlw
+16
-16
examples/knuth_prime_numbers/knuth_prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_1.v
...prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_1.v
+134
-0
examples/knuth_prime_numbers/knuth_prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_2.v
...prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_2.v
+138
-0
examples/knuth_prime_numbers/knuth_prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_3.v
...prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_3.v
+133
-0
examples/knuth_prime_numbers/knuth_prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_4.v
...prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_4.v
+181
-0
examples/knuth_prime_numbers/knuth_prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_5.v
...prime_numbers_PrimeNumbers_WP_parameter_prime_numbers_5.v
+145
-0
examples/knuth_prime_numbers/knuth_prime_numbers_WP_PrimeNumbers_WP_parameter_prime_numbers_5.v
...me_numbers_WP_PrimeNumbers_WP_parameter_prime_numbers_5.v
+50
-48
examples/knuth_prime_numbers/why3session.xml
examples/knuth_prime_numbers/why3session.xml
+1811
-616
examples/knuth_prime_numbers/why3shapes.gz
examples/knuth_prime_numbers/why3shapes.gz
+0
-0
examples/lcp/why3session.xml
examples/lcp/why3session.xml
+12
-12
examples/lcp/why3shapes.gz
examples/lcp/why3shapes.gz
+0
-0
examples/linear_probing.mlw
examples/linear_probing.mlw
+4
-5
examples/linear_probing/why3session.xml
examples/linear_probing/why3session.xml
+178
-204
examples/linear_probing/why3shapes.gz
examples/linear_probing/why3shapes.gz
+0
-0
examples/linked_list_rev.mlw
examples/linked_list_rev.mlw
+7
-11
examples/linked_list_rev/why3session.xml
examples/linked_list_rev/why3session.xml
+560
-58
examples/linked_list_rev/why3shapes.gz
examples/linked_list_rev/why3shapes.gz
+0
-0
examples/logic/lagrange_inequality/why3session.xml
examples/logic/lagrange_inequality/why3session.xml
+4
-4
examples/logic/triangle_inequality/why3session.xml
examples/logic/triangle_inequality/why3session.xml
+97
-97
examples/max_matrix.mlw
examples/max_matrix.mlw
+3
-2
examples/max_matrix/why3session.xml
examples/max_matrix/why3session.xml
+27
-27
examples/max_matrix/why3shapes.gz
examples/max_matrix/why3shapes.gz
+0
-0
examples/maximum_subarray/why3session.xml
examples/maximum_subarray/why3session.xml
+213
-213
examples/maximum_subarray/why3shapes.gz
examples/maximum_subarray/why3shapes.gz
+0
-0
examples/mergesort_array/why3session.xml
examples/mergesort_array/why3session.xml
+8
-11
examples/mergesort_array/why3shapes.gz
examples/mergesort_array/why3shapes.gz
+0
-0
examples/mjrty/why3session.xml
examples/mjrty/why3session.xml
+19
-19
examples/mjrty/why3shapes.gz
examples/mjrty/why3shapes.gz
+0
-0
examples/muller/why3session.xml
examples/muller/why3session.xml
+48
-45
examples/muller/why3shapes.gz
examples/muller/why3shapes.gz
+0
-0
examples/optimal_replay/distance_Distance_WP_parameter_distance_1.v
...ptimal_replay/distance_Distance_WP_parameter_distance_1.v
+35
-33
examples/optimal_replay/why3session.xml
examples/optimal_replay/why3session.xml
+23
-23
examples/optimal_replay/why3shapes.gz
examples/optimal_replay/why3shapes.gz
+0
-0
examples/pigeonhole/why3session.xml
examples/pigeonhole/why3session.xml
+1
-1
examples/pigeonhole/why3shapes.gz
examples/pigeonhole/why3shapes.gz
+0
-0
examples/queens.mlw
examples/queens.mlw
+76
-60
examples/queens/why3session.xml
examples/queens/why3session.xml
+106
-841
examples/queens/why3shapes.gz
examples/queens/why3shapes.gz
+0
-0
examples/quicksort/why3session.xml
examples/quicksort/why3session.xml
+214
-238
examples/quicksort/why3shapes.gz
examples/quicksort/why3shapes.gz
+0
-0
examples/random_access_list.mlw
examples/random_access_list.mlw
+180
-31
examples/random_access_list/why3session.xml
examples/random_access_list/why3session.xml
+187
-19
examples/random_access_list/why3shapes.gz
examples/random_access_list/why3shapes.gz
+0
-0
examples/remove_duplicate/why3session.xml
examples/remove_duplicate/why3session.xml
+59
-50
examples/remove_duplicate/why3shapes.gz
examples/remove_duplicate/why3shapes.gz
+0
-0
examples/resizable_array.mlw
examples/resizable_array.mlw
+9
-3
examples/resizable_array/why3session.xml
examples/resizable_array/why3session.xml
+9
-9
examples/resizable_array/why3shapes.gz
examples/resizable_array/why3shapes.gz
+0
-0
examples/ropes/why3session.xml
examples/ropes/why3session.xml
+114
-114
examples/ropes/why3shapes.gz
examples/ropes/why3shapes.gz
+0
-0
examples/schorr_waite/why3session.xml
examples/schorr_waite/why3session.xml
+12
-12
examples/schorr_waite/why3shapes.gz
examples/schorr_waite/why3shapes.gz
+0
-0
examples/selection_sort/why3session.xml
examples/selection_sort/why3session.xml
+28
-28
examples/selection_sort/why3shapes.gz
examples/selection_sort/why3shapes.gz
+0
-0
examples/sieve/why3session.xml
examples/sieve/why3session.xml
+41
-41
examples/sieve/why3shapes.gz
examples/sieve/why3shapes.gz
+0
-0
examples/skew_heaps/why3session.xml
examples/skew_heaps/why3session.xml
+79
-79
examples/skew_heaps/why3shapes.gz
examples/skew_heaps/why3shapes.gz
+0
-0
examples/stdlib/array/why3session.xml
examples/stdlib/array/why3session.xml
+9
-9
examples/stdlib/array/why3shapes.gz
examples/stdlib/array/why3shapes.gz
+0
-0
examples/stdlib/list/why3session.xml
examples/stdlib/list/why3session.xml
+67
-67
examples/stdlib/list/why3shapes.gz
examples/stdlib/list/why3shapes.gz
+0
-0
examples/sudoku.mlw
examples/sudoku.mlw
+4
-1
examples/sudoku/why3session.xml
examples/sudoku/why3session.xml
+152
-103
examples/sudoku/why3shapes.gz
examples/sudoku/why3shapes.gz
+0
-0
examples/sum_of_digits/why3session.xml
examples/sum_of_digits/why3session.xml
+14
-14
examples/sum_of_digits/why3shapes.gz
examples/sum_of_digits/why3shapes.gz
+0
-0
examples/tests/matrix-test.mlw
examples/tests/matrix-test.mlw
+6
-6
examples/topological_sorting.mlw
examples/topological_sorting.mlw
+4
-2
examples/topological_sorting/why3session.xml
examples/topological_sorting/why3session.xml
+3
-3
examples/topological_sorting/why3shapes.gz
examples/topological_sorting/why3shapes.gz
+0
-0
examples/vacid_0_binary_heaps/heap_implem.mlw
examples/vacid_0_binary_heaps/heap_implem.mlw
+2
-1
examples/vacid_0_binary_heaps/proofs/why3session.xml
examples/vacid_0_binary_heaps/proofs/why3session.xml
+151
-149
examples/vacid_0_binary_heaps/proofs/why3shapes.gz
examples/vacid_0_binary_heaps/proofs/why3shapes.gz
+0
-0
examples/vacid_0_sparse_array/why3session.xml
examples/vacid_0_sparse_array/why3session.xml
+20
-20
examples/vacid_0_sparse_array/why3shapes.gz
examples/vacid_0_sparse_array/why3shapes.gz
+0
-0
examples/verifythis_2015_dancing_links/why3session.xml
examples/verifythis_2015_dancing_links/why3session.xml
+2
-2
examples/verifythis_2015_dancing_links/why3shapes.gz
examples/verifythis_2015_dancing_links/why3shapes.gz
+0
-0
examples/verifythis_2015_parallel_gcd/why3session.xml
examples/verifythis_2015_parallel_gcd/why3session.xml
+7
-7
examples/verifythis_2015_parallel_gcd/why3shapes.gz
examples/verifythis_2015_parallel_gcd/why3shapes.gz
+0
-0
examples/verifythis_2015_relaxed_prefix/why3session.xml
examples/verifythis_2015_relaxed_prefix/why3session.xml
+1
-1
examples/verifythis_2015_relaxed_prefix/why3shapes.gz
examples/verifythis_2015_relaxed_prefix/why3shapes.gz
+0
-0
examples/verifythis_PrefixSumRec/why3session.xml
examples/verifythis_PrefixSumRec/why3session.xml
+143
-148
examples/verifythis_PrefixSumRec/why3shapes.gz
examples/verifythis_PrefixSumRec/why3shapes.gz
+0
-0
examples/verifythis_fm2012_LRS/why3session.xml
examples/verifythis_fm2012_LRS/why3session.xml
+262
-264
examples/verifythis_fm2012_LRS/why3shapes.gz
examples/verifythis_fm2012_LRS/why3shapes.gz
+0
-0
examples/verifythis_fm2012_treedel/why3session.xml
examples/verifythis_fm2012_treedel/why3session.xml
+45
-47
examples/verifythis_fm2012_treedel/why3shapes.gz
examples/verifythis_fm2012_treedel/why3shapes.gz
+0
-0
examples/vstte10_inverting/vstte10_inverting_InvertingAnInjection_WP_parameter_inverting2_1.v
...nverting_InvertingAnInjection_WP_parameter_inverting2_1.v
+81
-0
examples/vstte10_inverting/why3session.xml
examples/vstte10_inverting/why3session.xml
+98
-73
examples/vstte10_inverting/why3shapes.gz
examples/vstte10_inverting/why3shapes.gz
+0
-0
examples/vstte10_max_sum/why3session.xml
examples/vstte10_max_sum/why3session.xml
+31
-33
examples/vstte10_max_sum/why3shapes.gz
examples/vstte10_max_sum/why3shapes.gz
+0
-0
examples/vstte10_queens.mlw
examples/vstte10_queens.mlw
+4
-4
examples/vstte10_queens/why3session.xml
examples/vstte10_queens/why3session.xml
+6
-6
examples/vstte10_queens/why3shapes.gz
examples/vstte10_queens/why3shapes.gz
+0
-0
examples/vstte12_bfs/why3session.xml
examples/vstte12_bfs/why3session.xml
+47
-604
examples/vstte12_bfs/why3shapes.gz
examples/vstte12_bfs/why3shapes.gz
+0
-0
examples/vstte12_ring_buffer.mlw
examples/vstte12_ring_buffer.mlw
+4
-4
examples/vstte12_ring_buffer/why3session.xml
examples/vstte12_ring_buffer/why3session.xml
+114
-138
examples/vstte12_ring_buffer/why3shapes.gz
examples/vstte12_ring_buffer/why3shapes.gz
+0
-0
examples/vstte12_two_way_sort/why3session.xml
examples/vstte12_two_way_sort/why3session.xml
+26
-26
examples/vstte12_two_way_sort/why3shapes.gz
examples/vstte12_two_way_sort/why3shapes.gz
+0
-0
examples/warshall_algorithm.mlw
examples/warshall_algorithm.mlw
+6
-6
examples/warshall_algorithm/warshall_algorithm_WarshallAlgorithm_weakening_1.v
...orithm/warshall_algorithm_WarshallAlgorithm_weakening_1.v
+11
-22
examples/warshall_algorithm/why3session.xml
examples/warshall_algorithm/why3session.xml
+28
-28
examples/warshall_algorithm/why3shapes.gz
examples/warshall_algorithm/why3shapes.gz
+0
-0
examples/zeros/why3session.xml
examples/zeros/why3session.xml
+13
-10
examples/zeros/why3shapes.gz
examples/zeros/why3shapes.gz
+0
-0
lib/coq/int/NumOf.v
lib/coq/int/NumOf.v
+3
-1
lib/coq/map/Const.v
lib/coq/map/Const.v
+34
-0
lib/coq/map/Map.v
lib/coq/map/Map.v
+4
-8
lib/coq/seq/Seq.v
lib/coq/seq/Seq.v
+45
-4
lib/isabelle/Why3_Map.thy
lib/isabelle/Why3_Map.thy
+9
-2
lib/ocaml/why3__Matrix.ml
lib/ocaml/why3__Matrix.ml
+20
-0
modules/array.mlw
modules/array.mlw
+3
-4
modules/mach/array.mlw
modules/mach/array.mlw
+27
-33
modules/mach/bv.mlw
modules/mach/bv.mlw
+201
-0
modules/mach/int.mlw
modules/mach/int.mlw
+45
-0
modules/mach/matrix.mlw
modules/mach/matrix.mlw
+67
-0
modules/matrix.mlw
modules/matrix.mlw
+29
-54
src/core/theory.ml
src/core/theory.ml
+5
-1
src/jessie/ACSLtoWhy3.ml
src/jessie/ACSLtoWhy3.ml
+46
-35
src/jessie/register.ml
src/jessie/register.ml
+2
-2
src/jessie/tests/basic/oracle/app.res.oracle
src/jessie/tests/basic/oracle/app.res.oracle
+3
-3
src/jessie/tests/basic/oracle/axiomatic.res.oracle
src/jessie/tests/basic/oracle/axiomatic.res.oracle
+5
-5
src/jessie/tests/basic/oracle/constants.res.oracle
src/jessie/tests/basic/oracle/constants.res.oracle
+3
-3
src/jessie/tests/basic/oracle/forty-two.res.oracle
src/jessie/tests/basic/oracle/forty-two.res.oracle
+14
-17
src/jessie/tests/basic/oracle/generic.res.oracle
src/jessie/tests/basic/oracle/generic.res.oracle
+3
-3
src/jessie/tests/basic/oracle/incr.res.oracle
src/jessie/tests/basic/oracle/incr.res.oracle
+24
-25
src/jessie/tests/basic/oracle/lemma.res.oracle
src/jessie/tests/basic/oracle/lemma.res.oracle
+3
-3
src/jessie/tests/demo/f91.c
src/jessie/tests/demo/f91.c
+1
-3
src/jessie/tests/demo/oracle/array_max.res.oracle
src/jessie/tests/demo/oracle/array_max.res.oracle
+100
-117
src/jessie/tests/demo/oracle/binary_search.res.oracle
src/jessie/tests/demo/oracle/binary_search.res.oracle
+1
-1
src/parser/lexer.mll
src/parser/lexer.mll
+1
-1
src/printer/coq.ml
src/printer/coq.ml
+93
-64
src/transform/reduction_engine.ml
src/transform/reduction_engine.ml
+8
-5
src/why3session/why3session_info.ml
src/why3session/why3session_info.ml
+3
-2
src/whyml/mlw_expr.ml
src/whyml/mlw_expr.ml
+9
-11
src/whyml/mlw_interp.ml
src/whyml/mlw_interp.ml
+3
-2
src/whyml/mlw_ocaml.ml
src/whyml/mlw_ocaml.ml
+22
-25
src/whyml/mlw_wp.ml
src/whyml/mlw_wp.ml
+29
-30
tests/test-poly.why
tests/test-poly.why
+27
-0
theories/int.why
theories/int.why
+8
-8
theories/map.why
theories/map.why
+7
-1
theories/set.why
theories/set.why
+24
-24
No files found.
Makefile.in
View file @
82c3b516
...
...
@@ -866,7 +866,7 @@ COQLIBS_NUMBER = $(addprefix lib/coq/number/, $(COQLIBS_NUMBER_FILES))
COQLIBS_SET_FILES
=
Set
COQLIBS_SET
=
$(
addprefix
lib/coq/set/,
$(COQLIBS_SET_FILES)
)
COQLIBS_MAP_FILES
=
Map Occ MapPermut MapInjection
COQLIBS_MAP_FILES
=
Map
Const
Occ MapPermut MapInjection
COQLIBS_MAP
=
$(
addprefix
lib/coq/map/,
$(COQLIBS_MAP_FILES)
)
COQLIBS_LIST_FILES
=
List Length Mem Nth NthLength HdTl NthHdTl Append NthLengthAppend Reverse HdTlNoOpt NthNoOpt RevAppend Combine Distinct NumOcc Permut
...
...
@@ -1148,7 +1148,7 @@ ISABELLELIBS_NUMBER = $(addsuffix .xml, $(addprefix lib/isabelle/number/, $(ISAB
ISABELLELIBS_SET_FILES
=
Set Fset
ISABELLELIBS_SET
=
$(
addsuffix
.xml,
$(
addprefix
lib/isabelle/set/,
$(ISABELLELIBS_SET_FILES)
))
ISABELLELIBS_MAP_FILES
=
Map Occ MapPermut MapInjection
ISABELLELIBS_MAP_FILES
=
Map
Const
Occ MapPermut MapInjection
ISABELLELIBS_MAP
=
$(
addsuffix
.xml,
$(
addprefix
lib/isabelle/map/,
$(ISABELLELIBS_MAP_FILES)
))
ISABELLELIBS_LIST_FILES
=
List Length Mem Nth NthNoOpt NthLength HdTl NthHdTl Append NthLengthAppend Reverse HdTlNoOpt RevAppend Combine Distinct NumOcc Permut
...
...
@@ -1270,7 +1270,8 @@ clean::
# Ocaml realizations
#######################
OCAMLLIBS_FILES
=
why3__BigInt_compat why3__BigInt why3__IntAux why3__Array
OCAMLLIBS_FILES
=
why3__BigInt_compat why3__BigInt why3__IntAux why3__Array
\
why3__Matrix
OCAMLLIBS_MODULES
:=
$(
addprefix
lib/ocaml/,
$(OCAMLLIBS_FILES)
)
...
...
ROADMAP
View file @
82c3b516
...
...
@@ -155,19 +155,24 @@ Release Notes (details in file CHANGES):
== TODO ==
* Document src/core/trans.mli, and fill the paragraph on
transformations in the tutorial: doc/api.tex, section 4.7 "Applying
transformations"
* fix bug 18953 : (<>) not allowed as prefix form
* finalize detect_polymorphism. Allow polymorphic tuples (supported by SMT ?)
* integrate server feature done by Johannes
* Coq realization of bitvector theory
*
DONE
Coq realization of bitvector theory
* make counter-examples feature more robust
* support for both isabelle 2014 and 2015
* DONE support for both isabelle 2014 and 2015
+ bugfix for installation
* review support for division operators by SMT provers
*
DONE
review support for division operators by SMT provers
* take some time to fix some bugs of the BTS: 18029 at least
...
...
@@ -176,7 +181,7 @@ Release Notes (details in file CHANGES):
alt-ergo -replay <file>.agr
* make the strategy feature public and documented. Possibly generate
default strat
r
egies dynamically at the time of why3 config --detect,
default strategies dynamically at the time of why3 config --detect,
using the provers detected : for that, we can annotated the provers in
prover-detection-data.conf to tell if they should be used in the strategies,
with which priority
...
...
@@ -187,7 +192,7 @@ Release Notes (details in file CHANGES):
. or, on the contrary, favor splitting
. or, favor timelimt increase...
. or, favor timelim
i
t increase...
...
...
bench/programs/bad-typing/variant3.mlw
0 → 100644
View file @
82c3b516
(* Different instances of a polymorphic relation. *)
module M
use import list.List
predicate rel (a b:list 'a)
let rec aux (a:list int) : unit
variant { a with rel }
= aux2 Nil
with aux2 (a:list unit) : unit
variant { a with rel }
= aux Nil
end
check.sh
View file @
82c3b516
# useful script for git bisect
make
||
exit
125
;
bin/why3config
--detect
&&
bin/why3replay examples/bellman_ford
.mlw
(
autoconf
&&
./configure
--enable-local
--disable-coq-libs
--disable-isabelle-libs
&&
make
)
||
exit
125
;
bin/why3config
--detect
&&
bin/why3replay examples/linear_probing
.mlw
drivers/coq-ssreflect.drv
0 → 100644
View file @
82c3b516
prelude "(* This file is generated by Why3's coq-ssreflect driver *)"
prelude "(* Beware! Only edit allowed sections below *)"
printer "coq-ssr"
filename "%t.v"
valid 0
unknown "Error: \\(.*\\)$" "\\1"
fail "Syntax error: \\(.*\\)$" "\\1"
time "why3cpulimit time : %s s"
transformation "inline_trivial"
transformation "eliminate_non_struct_recursion"
transformation "eliminate_if"
transformation "eliminate_non_lambda_set_epsilon"
transformation "eliminate_projections"
transformation "simplify_formula"
theory BuiltIn
prelude "
Require Import ssreflect ssrbool ssrfun ssrnat seq eqtype ssrint.
Require Import ssrint ssrwhy3.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
"
syntax type int "int"
syntax type real "R"
syntax predicate (=) "(%1 = %2)"
end
theory HighOrd
syntax type func "(%1 -> %2)"
syntax type pred "(%1 -> bool)"
syntax function (@) "(%1 %2)"
end
theory Bool
syntax type bool "bool"
syntax function True "true"
syntax function False "false"
end
theory bool.Bool
syntax function andb "(Init.Datatypes.andb %1 %2)"
syntax function orb "(Init.Datatypes.orb %1 %2)"
syntax function xorb "(Init.Datatypes.xorb %1 %2)"
syntax function notb "(Init.Datatypes.negb %1)"
syntax function implb "(Init.Datatypes.implb %1 %2)"
end
theory map.Map
syntax type map "(%1 -> %2)%type"
syntax function get "(%1 %2)"
end
theory map.Const
remove prop Const
end
theory int.Int
prelude "
Require Import ssralg ssrnum.
Import GRing.Theory Num.Theory.
Local Open Scope ring_scope."
syntax function zero "0%:Z"
syntax function one "1%:Z"
syntax function (+) "(%1 + %2)%R"
syntax function (-) "(%1 - %2)%R"
syntax function ( * ) "(%1 * %2)%R"
syntax function (-_) "(-%1)%R"
syntax predicate (<=) "(%1 <= %2)%R"
syntax predicate (<) "(%1 < %2)%R"
syntax predicate (>=) "(%1 >= %2)%R"
syntax predicate (>) "(%1 > %2)%R"
remove prop CommutativeGroup.Comm.Comm
remove prop CommutativeGroup.Assoc
remove prop CommutativeGroup.Unit_def_l
remove prop CommutativeGroup.Unit_def_r
remove prop CommutativeGroup.Inv_def_l
remove prop CommutativeGroup.Inv_def_r
remove prop Assoc.Assoc
remove prop Mul_distr_l
remove prop Mul_distr_r
remove prop Comm.Comm
remove prop Unitary
remove prop Refl
remove prop Trans
remove prop Antisymm
remove prop Total
remove prop NonTrivialRing
remove prop CompatOrderAdd
remove prop CompatOrderMult
remove prop ZeroLessOne
end
theory array.Array
syntax type array "(array %1)"
syntax function get "(get %1 %2)"
syntax function length "(size %1 : int)"
syntax function elts "(get %1)"
syntax function set "(set %1 %2 %3)"
(* does not exist anymore
syntax function make "(make %1 %2)"
*)
end
theory matrix.Matrix
syntax type matrix "(matrix %1)"
syntax function get "(matrix_get %1 %2 %3)"
syntax function rows "(nrows %1 : int)"
syntax function columns "(ncols %1 : int)"
syntax function elts "(matrix_get_curry %1)"
syntax function set "(matrix_set %1 %2 %3)"
(* does not exist anymore
syntax function make "(matrix_make %1 %2)"
*)
end
drivers/isabelle-common.gen
View file @
82c3b516
...
...
@@ -134,7 +134,11 @@ theory map.Map
syntax function ([]) "<app>%1%2</app>"
syntax function set "<app><const name=\"Fun.fun_upd\"/>%1%2%3</app>"
syntax function ([<-]) "<app><const name=\"Fun.fun_upd\"/>%1%2%3</app>"
end
theory map.Const
syntax function const "<app><const name=\"_type_constraint_\"><fun>%t0%t0</fun></const><abs name=\"\"><type name=\"dummy\"/>%1</abs></app>"
end
theory set.SetGen
...
...
drivers/mathsat.drv
View file @
82c3b516
...
...
@@ -170,10 +170,13 @@ theory map.Map
syntax type map "(Array %1 %2)"
meta "encoding : lskept" function get
meta "encoding : lskept" function set
meta "encoding : lskept" function const
syntax function get "(select %1 %2)"
syntax function set "(store %1 %2 %3)"
end
theory map.Const
meta "encoding : lskept" function const
(* syntax function const "(const[%t0] %1)" *)
end
...
...
drivers/ocaml-gen.drv
View file @
82c3b516
...
...
@@ -119,6 +119,23 @@ module array.Array
syntax val blit "Why3__Array.blit"
end
module matrix.Matrix
syntax type matrix "(%1 Why3__Matrix.t)"
syntax function get "(Why3__Matrix.get %1 %2)"
syntax exception OutOfBounds "Why3__Matrix.OutOfBounds"
syntax val get "Why3__Matrix.get"
syntax val set "Why3__Matrix.set"
syntax val rows "Why3__Matrix.rows"
syntax val columns "Why3__Matrix.columns"
syntax val defensive_get "Why3__Matrix.defensive_get"
syntax val defensive_set "Why3__Matrix.defensive_set"
syntax val make "Why3__Matrix.make"
syntax val copy "Why3__Matrix.copy"
end
module mach.int.Int
syntax val ( / ) "Why3__BigInt.computer_div"
syntax val ( % ) "Why3__BigInt.computer_mod"
...
...
drivers/ocaml-unsafe-int.drv
View file @
82c3b516
(** OCaml driver with Why3 type int being mapped to OCaml type int.
This is of course unsafe, yet useful to run your code
is
you
have an independ
ant argument regarding
the absence of arithmetic
This is of course unsafe, yet useful to run your code
when
you
have an independ
ent argument for
the absence of arithmetic
overflows. *)
printer "ocaml"
printer "ocaml
-unsafe-int
"
theory BuiltIn
syntax type int "int"
(* meta "ocaml arithmetic" "unsafe int" *)
syntax predicate (=) "(%1 = %2)"
end
...
...
@@ -127,6 +126,23 @@ module array.Array
syntax val blit "Array.blit"
end
module matrix.Matrix
syntax type matrix "(%1 array array)"
syntax exception OutOfBounds "(Invalid_argument \"index out of bounds\")"
syntax function rows "(Array.length %1)"
syntax function columns "(Array.length %1.(0))"
syntax val rows "Array.length"
syntax val columns "(fun m -> Array.length m.(0))"
syntax val get "(fun m i j -> m.(i).(j))"
syntax val set "(fun m i j v -> m.(i).(j) <- v)"
syntax val defensive_get "(fun m i j -> m.(i).(j))"
syntax val defensive_set "(fun m i j v -> m.(i).(j) <- v)"
syntax val make "Array.make_matrix"
syntax val copy "(Array.map Array.copy)"
end
module mach.int.Int31
syntax val of_int "(fun x -> x)"
syntax converter of_int "%1"
...
...
@@ -147,6 +163,37 @@ module mach.int.Int31
syntax val (>=) "(>=)"
syntax val (>) "(>)"
end
module mach.int.Int63
syntax val of_int "(fun x -> x)"
syntax converter of_int "%1"
syntax function to_int "(%1)"
syntax type int63 "int"
syntax val ( + ) "( + )"
syntax val ( - ) "( - )"
syntax val (-_) "( ~- )"
syntax val ( * ) "( * )"
syntax val ( / ) "( / )"
syntax val ( % ) "(mod)"
syntax val eq "(=)"
syntax val ne "(<>)"
syntax val (<=) "(<=)"
syntax val (<) "(<)"
syntax val (>=) "(>=)"
syntax val (>) "(>)"
end
module mach.int.Refint63
syntax val incr "Pervasives.incr"
syntax val decr "Pervasives.decr"
syntax val (+=) "(fun r v -> Pervasives.(:=) r (Pervasives.(!) r + v))"
syntax val (-=) "(fun r v -> Pervasives.(:=) r (Pervasives.(!) r - v))"
syntax val ( *= ) "(fun r v -> Pervasives.(:=) r (Pervasives.(!) r * v))"
end
module mach.int.MinMax63
syntax val min "Pervasives.min"
syntax val max "Pervasives.max"
end
(* TODO
other mach.int.XXX modules *)
...
...
@@ -165,6 +212,36 @@ module mach.array.Array31
syntax val blit "Array.blit"
syntax val self_blit "Array.blit"
end
module mach.array.Array63
syntax type array63 "(%1 array)"
syntax val make "Array.make"
syntax val ([]) "Array.get"
syntax val ([]<-) "Array.set"
syntax val length "Array.length"
syntax val append "Array.append"
syntax val sub "Array.sub"
syntax val copy "Array.copy"
syntax val fill "Array.fill"
syntax val blit "Array.blit"
syntax val self_blit "Array.blit"
end
module mach.matrix.Matrix63
syntax type matrix "(%1 array array)"
syntax exception OutOfBounds "(Invalid_argument \"index out of bounds\")"
syntax function rows "(Array.length %1)"
syntax function columns "(Array.length %1.(0))"
syntax val rows "Array.length"
syntax val columns "(fun m -> Array.length m.(0))"
syntax val get "(fun m i j -> m.(i).(j))"
syntax val set "(fun m i j v -> m.(i).(j) <- v)"
syntax val defensive_get "(fun m i j -> m.(i).(j))"
syntax val defensive_set "(fun m i j v -> m.(i).(j) <- v)"
syntax val make "Array.make_matrix"
syntax val copy "(Array.map Array.copy)"
end
(* TODO
module string.Char
...
...
drivers/ocaml64.drv
View file @
82c3b516
...
...
@@ -85,6 +85,17 @@ module mach.int.Int63
(* syntax val to_bv "(fun x -> x)"
syntax val of_bv "(fun x -> x)"*)
end
module mach.int.Refint63
syntax val incr "Pervasives.incr"
syntax val decr "Pervasives.decr"
syntax val (+=) "(fun r v -> Pervasives.(:=) r (Pervasives.(!) r + v))"
syntax val (-=) "(fun r v -> Pervasives.(:=) r (Pervasives.(!) r - v))"
syntax val ( *= ) "(fun r v -> Pervasives.(:=) r (Pervasives.(!) r * v))"
end
module mach.int.MinMax63
syntax val min "Pervasives.min"
syntax val max "Pervasives.max"
end
module mach.int.Int64
syntax val of_int "Why3__BigInt.to_int64"
...
...
@@ -186,7 +197,7 @@ module mach.array.Array32
end
module mach.array.Array63
syntax type array
"(%1 array)"
syntax type array
63
"(%1 array)"
syntax val make "Array.make"
syntax val ([]) "Array.get"
...
...
@@ -199,3 +210,33 @@ module mach.array.Array63
syntax val blit "Array.blit"
syntax val self_blit "Array.blit"
end
module mach.array.Array63
syntax type array63 "(%1 array)"
syntax val make "Array.make"
syntax val ([]) "Array.get"
syntax val ([]<-) "Array.set"
syntax val length "Array.length"
syntax val append "Array.append"
syntax val sub "Array.sub"
syntax val copy "Array.copy"
syntax val fill "Array.fill"
syntax val blit "Array.blit"
syntax val self_blit "Array.blit"
end
module mach.matrix.Matrix63
syntax type matrix "(%1 array array)"
syntax exception OutOfBounds "(Invalid_argument \"index out of bounds\")"
syntax function rows "(Array.length %1)"
syntax function columns "(Array.length %1.(0))"
syntax val rows "Array.length"
syntax val columns "(fun m -> Array.length m.(0))"
syntax val get "(fun m i j -> m.(i).(j))"
syntax val set "(fun m i j v -> m.(i).(j) <- v)"
syntax val defensive_get "(fun m i j -> m.(i).(j))"
syntax val defensive_set "(fun m i j v -> m.(i).(j) <- v)"
syntax val make "Array.make_matrix"
syntax val copy "(Array.map Array.copy)"
end
drivers/pvs-common.gen
View file @
82c3b516
...
...
@@ -38,6 +38,9 @@ theory map.Map
remove prop Select_eq
remove prop Select_neq
end
theory map.Const
syntax function const "(LAMBDA (x:%v0): %1)"
remove prop Const
end
...
...
@@ -263,7 +266,7 @@ end
theory list.Mem
syntax predicate mem "member(%1, %2)"
end
theory list.Nth
...
...
drivers/smt-libv2-bv.gen
View file @
82c3b516
...
...
@@ -55,6 +55,9 @@ theory bv.BV64
syntax function nth_bv
"(not (= (bvand (bvlshr %1 %2) (_ bv1 64)) (_ bv0 64)))"
(* possible alternative definition :
"(= ((_ extract 0 0) (bvlshr %1 %2)) (_ bv1 1))"
*)
syntax function rotate_left "(bvor (bvshl %1 (bvurem %2 (_ bv64 64))) (bvlshr %1 (bvsub (_ bv64 64) (bvurem %2 (_ bv64 64)))))"
syntax function rotate_right "(bvor (bvlshr %1 (bvurem %2 (_ bv64 64))) (bvshl %1 (bvsub (_ bv64 64) (bvurem %2 (_ bv64 64)))))"
...
...
drivers/smt-libv2.drv
View file @
82c3b516
...
...
@@ -142,11 +142,24 @@ end
theory map.Map
syntax type map "(Array %1 %2)"
meta "encoding : lskept" function get
meta "encoding : lskept" function set
meta "encoding : lskept" function const
meta "encoding:ignore_polymorphism_ts" type map
syntax function get "(select %1 %2)"
syntax function set "(store %1 %2 %3)"
meta "encoding : lskept" function get
meta "encoding : lskept" function set
meta "encoding:ignore_polymorphism_ls" function get
meta "encoding:ignore_polymorphism_ls" function ([])
meta "encoding:ignore_polymorphism_ls" function set
meta "encoding:ignore_polymorphism_ls" function ([<-])
meta "encoding:ignore_polymorphism_pr" prop Select_eq
meta "encoding:ignore_polymorphism_pr" prop Select_neq
remove prop Select_eq
remove prop Select_neq
end
theory map.Const
meta "encoding : lskept" function const
(* syntax function const "(const[%t0] %1)" *)
end
drivers/why3.drv
View file @
82c3b516
...
...
@@ -3,17 +3,8 @@
printer "why3"
filename "%f-%t-%g.why"
(* transformation "detect_polymorphism" *)
theory BuiltIn
syntax type int "int"
syntax type real "real"
syntax predicate (=) "(%1 = %2)"
(* meta "encoding:ignore_polymorphism_ls" predicate (=) *)
end
(*
theory list.List
meta "encoding:ignore_polymorphism_ts" type list
end
*)
drivers/why3_smt.drv
View file @
82c3b516
...
...
@@ -4,20 +4,30 @@ printer "why3"
filename "%f-%t-%g.why"