From 6033e33af780a31b3b63ad2bc12d37dbeba80614 Mon Sep 17 00:00:00 2001 From: arnaudgolfouse Date: Thu, 26 Oct 2023 14:47:04 +0200 Subject: [PATCH] Adjust ui tests --- creusot/tests/should_fail/bug/222.mlcfg | 2 +- creusot/tests/should_fail/bug/492.mlcfg | 6 +- creusot/tests/should_fail/bug/692.mlcfg | 2 +- creusot/tests/should_fail/bug/695.mlcfg | 2 +- creusot/tests/should_succeed/100doors.mlcfg | 4 +- .../should_succeed/100doors/why3session.xml | 4 +- .../should_succeed/100doors/why3shapes.gz | Bin 568 -> 567 bytes creusot/tests/should_succeed/all_zero.mlcfg | 8 +- .../should_succeed/all_zero/why3session.xml | 4 +- .../should_succeed/all_zero/why3shapes.gz | Bin 397 -> 391 bytes creusot/tests/should_succeed/bdd.mlcfg | 50 ++-- creusot/tests/should_succeed/bug/486.mlcfg | 2 +- creusot/tests/should_succeed/bug/682.mlcfg | 4 +- .../should_succeed/bug/682/why3session.xml | 6 +- .../should_succeed/bug/682/why3shapes.gz | Bin 287 -> 283 bytes creusot/tests/should_succeed/bug/766.mlcfg | 2 +- .../tests/should_succeed/bug/two_phase.mlcfg | 2 +- .../bug/two_phase/why3session.xml | 4 +- .../bug/two_phase/why3shapes.gz | Bin 283 -> 279 bytes .../should_succeed/closures/01_basic.mlcfg | 6 +- .../should_succeed/closures/05_map.mlcfg | 2 +- .../closures/07_mutable_capture.mlcfg | 2 +- .../07_mutable_capture/why3session.xml | 6 +- .../closures/07_mutable_capture/why3shapes.gz | Bin 414 -> 408 bytes creusot/tests/should_succeed/drop_pair.mlcfg | 2 +- .../should_succeed/drop_pair/why3session.xml | 4 +- .../should_succeed/drop_pair/why3shapes.gz | Bin 139 -> 140 bytes .../should_succeed/filter_positive.mlcfg | 2 +- .../filter_positive/why3session.xml | 4 +- .../filter_positive/why3shapes.gz | Bin 879 -> 876 bytes creusot/tests/should_succeed/hashmap.mlcfg | 28 +- .../should_succeed/hashmap/why3session.xml | 276 +++++++++--------- .../should_succeed/hashmap/why3shapes.gz | Bin 9859 -> 9833 bytes .../should_succeed/heapsort_generic.mlcfg | 12 +- creusot/tests/should_succeed/hillel.mlcfg | 16 +- .../tests/should_succeed/index_range.mlcfg | 30 +- .../index_range/why3session.xml | 120 ++++---- .../should_succeed/index_range/why3shapes.gz | Bin 4266 -> 4256 bytes .../inplace_list_reversal.mlcfg | 4 +- .../inplace_list_reversal/why3session.xml | 4 +- .../inplace_list_reversal/why3shapes.gz | Bin 397 -> 392 bytes .../should_succeed/invariant_moves.mlcfg | 2 +- .../should_succeed/iterators/01_range.mlcfg | 2 +- .../iterators/01_range/why3session.xml | 11 +- .../iterators/01_range/why3shapes.gz | Bin 928 -> 923 bytes .../iterators/02_iter_mut.mlcfg | 12 +- .../iterators/02_iter_mut/why3session.xml | 48 +-- .../iterators/02_iter_mut/why3shapes.gz | Bin 3149 -> 3132 bytes .../iterators/03_std_iterators.mlcfg | 24 +- .../should_succeed/iterators/04_skip.mlcfg | 6 +- .../should_succeed/iterators/05_map.mlcfg | 6 +- .../iterators/05_map/why3session.xml | 72 ++--- .../iterators/05_map/why3shapes.gz | Bin 5861 -> 5847 bytes .../iterators/06_map_precond.mlcfg | 12 +- .../iterators/06_map_precond/why3session.xml | 119 ++++---- .../iterators/06_map_precond/why3shapes.gz | Bin 8940 -> 8930 bytes .../should_succeed/iterators/07_fuse.mlcfg | 8 +- .../iterators/07_fuse/why3session.xml | 13 +- .../iterators/07_fuse/why3shapes.gz | Bin 1379 -> 1377 bytes .../iterators/08_collect_extend.mlcfg | 8 +- .../08_collect_extend/why3session.xml | 96 +++--- .../iterators/08_collect_extend/why3shapes.gz | Bin 3529 -> 3502 bytes .../should_succeed/iterators/10_once.mlcfg | 2 +- .../iterators/10_once/why3session.xml | 9 +- .../iterators/10_once/why3shapes.gz | Bin 807 -> 806 bytes .../should_succeed/iterators/12_zip.mlcfg | 6 +- .../iterators/12_zip/why3shapes.gz | Bin 2039 -> 2037 bytes .../should_succeed/iterators/13_cloned.mlcfg | 4 +- .../iterators/13_cloned/why3session.xml | 14 +- .../iterators/13_cloned/why3shapes.gz | Bin 720 -> 717 bytes .../should_succeed/iterators/14_copied.mlcfg | 4 +- .../iterators/14_copied/why3session.xml | 14 +- .../iterators/14_copied/why3shapes.gz | Bin 721 -> 718 bytes .../iterators/15_enumerate.mlcfg | 6 +- .../iterators/15_enumerate/why3session.xml | 34 +-- .../iterators/15_enumerate/why3shapes.gz | Bin 1729 -> 1727 bytes .../should_succeed/iterators/16_take.mlcfg | 6 +- .../iterators/16_take/why3session.xml | 10 +- .../iterators/16_take/why3shapes.gz | Bin 880 -> 871 bytes creusot/tests/should_succeed/knapsack.mlcfg | 4 +- .../should_succeed/knapsack/why3session.xml | 183 ++++++------ .../should_succeed/knapsack/why3shapes.gz | Bin 5072 -> 5077 bytes .../tests/should_succeed/knapsack_full.mlcfg | 8 +- .../should_succeed/lang/branch_borrow_2.mlcfg | 22 +- .../tests/should_succeed/lang/move_path.mlcfg | 2 +- .../tests/should_succeed/lang/while_let.mlcfg | 2 +- .../lang/while_let/why3session.xml | 4 +- .../lang/while_let/why3shapes.gz | Bin 144 -> 132 bytes .../tests/should_succeed/list_index_mut.mlcfg | 16 +- .../list_index_mut/why3session.xml | 8 +- .../list_index_mut/why3shapes.gz | Bin 719 -> 714 bytes .../should_succeed/list_reversal_lasso.mlcfg | 36 +-- creusot/tests/should_succeed/loop.mlcfg | 2 +- .../tests/should_succeed/mapping_test.mlcfg | 4 +- .../mapping_test/why3session.xml | 6 +- .../should_succeed/mapping_test/why3shapes.gz | Bin 407 -> 401 bytes .../should_succeed/one_side_update.mlcfg | 2 +- creusot/tests/should_succeed/option.mlcfg | 4 +- .../should_succeed/option/why3session.xml | 4 +- .../tests/should_succeed/option/why3shapes.gz | Bin 490 -> 489 bytes .../should_succeed/projection_toggle.mlcfg | 16 +- .../projection_toggle/why3session.xml | 6 +- .../projection_toggle/why3shapes.gz | Bin 565 -> 553 bytes .../tests/should_succeed/projections.mlcfg | 4 +- creusot/tests/should_succeed/prophecy.mlcfg | 2 +- .../tests/should_succeed/red_black_tree.mlcfg | 238 +++++++-------- .../tests/should_succeed/resolve_uninit.mlcfg | 10 +- creusot/tests/should_succeed/result/own.mlcfg | 8 +- .../tests/should_succeed/result/result.mlcfg | 8 +- .../should_succeed/rusthorn/inc_max.mlcfg | 16 +- .../should_succeed/rusthorn/inc_max_3.mlcfg | 22 +- .../rusthorn/inc_max_many.mlcfg | 16 +- .../rusthorn/inc_max_repeat.mlcfg | 18 +- .../rusthorn/inc_some_2_list.mlcfg | 16 +- .../rusthorn/inc_some_2_tree.mlcfg | 26 +- .../rusthorn/inc_some_list.mlcfg | 22 +- .../rusthorn/inc_some_tree.mlcfg | 30 +- .../selection_sort_generic.mlcfg | 8 +- creusot/tests/should_succeed/slices/01.mlcfg | 2 +- .../tests/should_succeed/sparse_array.mlcfg | 14 +- .../tests/should_succeed/split_borrow.mlcfg | 8 +- creusot/tests/should_succeed/sum.mlcfg | 2 +- .../tests/should_succeed/sum_of_odds.mlcfg | 2 +- .../tests/should_succeed/swap_borrows.mlcfg | 4 +- .../should_succeed/syntax/05_pearlite.mlcfg | 4 +- .../tests/should_succeed/take_first_mut.mlcfg | 10 +- .../type_invariants/borrows.mlcfg | 44 +-- creusot/tests/should_succeed/unnest.mlcfg | 4 +- creusot/tests/should_succeed/vector/01.mlcfg | 6 +- .../should_succeed/vector/02_gnome.mlcfg | 4 +- .../vector/03_knuth_shuffle.mlcfg | 6 +- .../vector/06_knights_tour.mlcfg | 16 +- .../should_succeed/vector/07_read_write.mlcfg | 4 +- .../should_succeed/vector/08_haystack.mlcfg | 4 +- .../should_succeed/vector/09_capacity.mlcfg | 10 +- 135 files changed, 1043 insertions(+), 1042 deletions(-) diff --git a/creusot/tests/should_fail/bug/222.mlcfg b/creusot/tests/should_fail/bug/222.mlcfg index fded36f084..7e5224cb75 100644 --- a/creusot/tests/should_fail/bug/222.mlcfg +++ b/creusot/tests/should_fail/bug/222.mlcfg @@ -259,7 +259,7 @@ module C222_UsesInvariant } BB0 { _5 <- Borrow.borrow_mut (C222_Once_Type.once_0 ( * x)); - x <- { x with current = (let C222_Once_Type.C_Once a = * x in C222_Once_Type.C_Once ( ^ _5)) }; + x <- Borrow.make_borrow (let C222_Once_Type.C_Once a = * x in C222_Once_Type.C_Once ( ^ _5)) ( ^ x); assume { Inv0.inv ( ^ _5) }; _4 <- ([#"../222.rs" 41 4 41 14] Take0.take _5); _5 <- any borrowed (Core_Option_Option_Type.t_option t); diff --git a/creusot/tests/should_fail/bug/492.mlcfg b/creusot/tests/should_fail/bug/492.mlcfg index 002b9f0ea0..3b6caf3430 100644 --- a/creusot/tests/should_fail/bug/492.mlcfg +++ b/creusot/tests/should_fail/bug/492.mlcfg @@ -100,7 +100,7 @@ module C492_ReborrowTuple } BB0 { _3 <- Borrow.borrow_mut ( * x); - x <- { x with current = ( ^ _3) }; + x <- Borrow.make_borrow ( ^ _3) ( ^ x); assume { Inv0.inv ( ^ _3) }; _0 <- (_3, [#"../492.rs" 6 8 6 10] (32 : uint32)); _3 <- any borrowed t; @@ -226,7 +226,7 @@ module C492_Test _6 <- Borrow.borrow_mut x; x <- ^ _6; _5 <- Borrow.borrow_mut ( * _6); - _6 <- { _6 with current = ( ^ _5) }; + _6 <- Borrow.make_borrow ( ^ _5) ( ^ _6); _4 <- ([#"../492.rs" 12 19 12 41] ReborrowTuple0.reborrow_tuple _5); _5 <- any borrowed int32; goto BB1 @@ -237,7 +237,7 @@ module C492_Test assume { Resolve0.resolve _4 }; assume { Resolve1.resolve _6 }; assert { [@expl:assertion] [#"../492.rs" 13 18 13 30] ^ res = (5 : int32) }; - res <- { res with current = ([#"../492.rs" 14 11 14 13] (10 : int32)) }; + res <- Borrow.make_borrow ([#"../492.rs" 14 11 14 13] (10 : int32)) ( ^ res); assume { Resolve1.resolve res }; _0 <- (); return _0 diff --git a/creusot/tests/should_fail/bug/692.mlcfg b/creusot/tests/should_fail/bug/692.mlcfg index 06693b5055..d0120dfa75 100644 --- a/creusot/tests/should_fail/bug/692.mlcfg +++ b/creusot/tests/should_fail/bug/692.mlcfg @@ -942,7 +942,7 @@ module C692_ValidNormal_Closure2 goto BB3 } BB3 { - _1 <- { _1 with current = (let C692_ValidNormal_Closure2 a = * _1 in C692_ValidNormal_Closure2 ({ (field_0 ( * _1)) with current = _4 })) }; + _1 <- Borrow.make_borrow (let C692_ValidNormal_Closure2 a = * _1 in C692_ValidNormal_Closure2 (Borrow.make_borrow _4 ( ^ field_0 ( * _1)))) ( ^ _1); _4 <- any uint32; assume { Resolve0.resolve _1 }; res <- (); diff --git a/creusot/tests/should_fail/bug/695.mlcfg b/creusot/tests/should_fail/bug/695.mlcfg index 0e9b18c035..f5893a3931 100644 --- a/creusot/tests/should_fail/bug/695.mlcfg +++ b/creusot/tests/should_fail/bug/695.mlcfg @@ -1142,7 +1142,7 @@ module C695_Valid_Closure2 goto BB3 } BB3 { - _1 <- { _1 with current = (let C695_Valid_Closure2 a = * _1 in C695_Valid_Closure2 ({ (field_0 ( * _1)) with current = _4 })) }; + _1 <- Borrow.make_borrow (let C695_Valid_Closure2 a = * _1 in C695_Valid_Closure2 (Borrow.make_borrow _4 ( ^ field_0 ( * _1)))) ( ^ _1); _4 <- any uint32; assume { Resolve0.resolve _1 }; res <- (); diff --git a/creusot/tests/should_succeed/100doors.mlcfg b/creusot/tests/should_succeed/100doors.mlcfg index 19d19189d0..e3bda7a863 100644 --- a/creusot/tests/should_succeed/100doors.mlcfg +++ b/creusot/tests/should_succeed/100doors.mlcfg @@ -1361,7 +1361,7 @@ module C100doors_F _14 <- Borrow.borrow_mut iter; iter <- ^ _14; _13 <- Borrow.borrow_mut ( * _14); - _14 <- { _14 with current = ( ^ _13) }; + _14 <- Borrow.make_borrow ( ^ _13) ( ^ _14); _12 <- ([#"../100doors.rs" 20 4 20 41] Next0.next _13); _13 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB8 @@ -1423,7 +1423,7 @@ module C100doors_F goto BB19 } BB19 { - _30 <- { _30 with current = (not _26) }; + _30 <- Borrow.make_borrow (not _26) ( ^ _30); assume { Resolve1.resolve _30 }; door <- ([#"../100doors.rs" 27 12 27 24] door + pass); _11 <- (); diff --git a/creusot/tests/should_succeed/100doors/why3session.xml b/creusot/tests/should_succeed/100doors/why3session.xml index 6688971c2a..7ad4f77b1d 100644 --- a/creusot/tests/should_succeed/100doors/why3session.xml +++ b/creusot/tests/should_succeed/100doors/why3session.xml @@ -2,12 +2,12 @@ - + - + diff --git a/creusot/tests/should_succeed/100doors/why3shapes.gz b/creusot/tests/should_succeed/100doors/why3shapes.gz index 1b88a2a40eb5d0ab90a2282d75245de18b078a62..bbecf320a5d761c817ef5c3e40af8210c37f9a76 100644 GIT binary patch literal 567 zcmV-70?7RziwFP!00000|CLlrkDEXYzUNnP+jgT$cwRu&J)lTva_OnEdRpWpLlc!i z3M5hgeGLRQ&t3I`zVYL;{mqz9&tAQzovXcrtLjZzeD#d?{CU#+p-pi>KRF>l7@$Bg zK#6jI3e^BL>H!)w0}L=2V2I%WBaFrpJ_6UHZ!eU);#adK?kvyCW4bL@E=K@r%5+mS zw2gm0#U0U2$h;>7?v{2{x!NyXjUZ?`MUV&@!E_-217hQ7Q74NWEnK71!&#};yM#CYoL=~gI!qYRo{dI5b*_-6=VujMoK({GlP=1Av8vyXoKxlM zGCw%fL02xIE&XwNAf3zoIrt7j01Mq!*V_{9yPtLEQCl7HfBE zA$56uT)T>UQMX}tC}U!}^g#LkHl?rm+I96fsv~}Ghlu;#(JJm&ON%oN;cnvfr6~Gx zDfJRAF5<@9NhrHcdpWr*ba%}y0l&Q7>Z6K!ktL(^an#k`3C?MQPs6A%?tcTyTnuwB z?P?ef`Ojh6mwjdO{rN{*^|lWDGT&VX6(o<|7mDD9O@F|qTWOV^;LOX)%F8Ab6B;41 zW$3E~guz1VY?UoCh$3IgMHs9+Fc!20WkFgH7QljUBOBVl8mq0c(z4b1lYcY<99_%> F006f~6LtUq literal 568 zcmV-80>}LyiwFP!00000|CLnBuA49r-RCRVrA<_cF}5L9?*c_a&Zets)YU~3;xwoP zQXq-?_Z^-$&wJGkI-bXwnPU&1W=^%EgRPvCEvvN1zdG8PeV){RD9umkMm++A0SXiY z^w1liL^(i(YJeK`0Dbfa7+^5K1un)CE&|u1Z!eVD{8zmr?kvlSbG$D$HbVfai#W|| z+J`@tVo5CqNV2p)n$&}|67fY>-%WN-0Ci&$OI$bsO3xuum? z)qJx1L;aV*NHdP!9C-L;P0RRuk=vA>Oe=K)t{aZDoSfSdh3bK1?M2vAdg2+4@;Vw8 zwG$83g655FI7``h6L|Bl=!L(if`}0v*{J2Tbp%K9$?&_n>dRqy8o$s!M^rL6*3x$8jraoZf|IGxK&bBC>?PSvA z>p(*g_(>qO7f|Ap^w(mu<*m@d0c}7TkOn*h!T=a>&B6r6H`*v8jc3?u+{r(EtG4^h G1pokaHy<4U diff --git a/creusot/tests/should_succeed/all_zero.mlcfg b/creusot/tests/should_succeed/all_zero.mlcfg index 387d75ffc8..30b30e4876 100644 --- a/creusot/tests/should_succeed/all_zero.mlcfg +++ b/creusot/tests/should_succeed/all_zero.mlcfg @@ -173,13 +173,13 @@ module AllZero_AllZero } BB5 { value <- Borrow.borrow_mut (AllZero_List_Type.cons_0 ( * loop_l)); - loop_l <- { loop_l with current = (let AllZero_List_Type.C_Cons a b = * loop_l in AllZero_List_Type.C_Cons ( ^ value) b) }; + loop_l <- Borrow.make_borrow (let AllZero_List_Type.C_Cons a b = * loop_l in AllZero_List_Type.C_Cons ( ^ value) b) ( ^ loop_l); next <- Borrow.borrow_mut (AllZero_List_Type.cons_1 ( * loop_l)); - loop_l <- { loop_l with current = (let AllZero_List_Type.C_Cons a b = * loop_l in AllZero_List_Type.C_Cons a ( ^ next)) }; - value <- { value with current = ([#"../all_zero.rs" 44 17 44 18] (0 : uint32)) }; + loop_l <- Borrow.make_borrow (let AllZero_List_Type.C_Cons a b = * loop_l in AllZero_List_Type.C_Cons a ( ^ next)) ( ^ loop_l); + value <- Borrow.make_borrow ([#"../all_zero.rs" 44 17 44 18] (0 : uint32)) ( ^ value); assume { Resolve0.resolve value }; _13 <- Borrow.borrow_mut ( * next); - next <- { next with current = ( ^ _13) }; + next <- Borrow.make_borrow ( ^ _13) ( ^ next); assume { Resolve1.resolve loop_l }; loop_l <- _13; _13 <- any borrowed (AllZero_List_Type.t_list); diff --git a/creusot/tests/should_succeed/all_zero/why3session.xml b/creusot/tests/should_succeed/all_zero/why3session.xml index d2ba41cbce..d01bdef724 100644 --- a/creusot/tests/should_succeed/all_zero/why3session.xml +++ b/creusot/tests/should_succeed/all_zero/why3session.xml @@ -2,12 +2,12 @@ - + - + diff --git a/creusot/tests/should_succeed/all_zero/why3shapes.gz b/creusot/tests/should_succeed/all_zero/why3shapes.gz index c0144b2aa2d7faa0ba8c0683f3a8bae33010b1a4..fb458e653ca8b43a4167bd8bc98962490022689a 100644 GIT binary patch literal 391 zcmV;20eJo&iwFP!00000|BaH%Zi6roMfZFK%a)a&JgQ_7A)&IaG|M7~IBisdD~N*B zukYAE!7Yn!Eaq{~HRE}R!v0-->OQ>duD_V}DU8GDG05{=?Ny^&^{Osyt2>}Bisq=C z%Rtkyf*%J=zUkYd0h+12dNEgBlTz($=ur-8x33ANi*lAC1{m>F7%mP@zz7OD-J9mF zfhH)nG8!*gwB|0IsH^(W)zNgF87w}wht*>-1}dF3vZXy%Tn1FQCb1^e1m$v6a}S+Y zxoLZ#)ba61i#Z490pY0=5y&RTOx0Mds4Y2Qy1}z|Q>I0ETTPVDzW-YcKH>P^wP4J5W}9ol*lH~}Fz$<1{IQ)E z#o@n~n;d~{Tu%5tV*7GpbvXu1`XagT$M$h&7)+a|T0P)*5kMZEO&6-BslIe)f*@A4 lRwO%S36r(RcyiXq`gA(UBonfZbx5B{@C}_~IE}ai0015)yKVpg literal 397 zcmV;80doEyiwFP!00000|BaHtZi6rkhVMKDw{4sfCxLWo4;2y`=Se;er8I2SD4C!t z(w=?+k^x%}y`aSQ|NX}CV-$8D>PvUwRkz*AG|yoiMo&SSrfR2Z-KaNpY8u@l9dD7p z*K@ubHK-{IyI_BIxuWOj8u&FmM@0Sf(=OdSj3l< zk~oBz2yA7M7O81Eq;xRzl``{jta@uAMGMyR~Ov_OH0BeFll@oxok z2jmlw3>jb9_wLamB<}IZ?~|dODqWAA`eHwIn&p?pgqiofZ&8@TvHxoVuy%%jsCaHBcC_Tjgi ([#"../bdd.rs" 448 22 448 34] ([#"../bdd.rs" 448 22 448 30] (18446744073709551615 : uint64)) - ([#"../bdd.rs" 448 33 448 34] (1 : uint64)))) | False -> goto BB11 @@ -3048,11 +3048,11 @@ module Bdd_Impl11_Hashcons goto BB10 } BB10 { - self <- { self with current = (let Bdd_Context_Type.C_Context a b c d e f = * self in Bdd_Context_Type.C_Context a b c d e (Bdd_Context_Type.context_cnt ( * self))) }; + self <- Borrow.make_borrow (let Bdd_Context_Type.C_Context a b c d e f = * self in Bdd_Context_Type.C_Context a b c d e (Bdd_Context_Type.context_cnt ( * self))) ( ^ self); goto BB9 } BB11 { - self <- { self with current = (let Bdd_Context_Type.C_Context a b c d e f = * self in Bdd_Context_Type.C_Context a b c d e ([#"../bdd.rs" 454 8 454 21] Bdd_Context_Type.context_cnt ( * self) + ([#"../bdd.rs" 454 20 454 21] (1 : uint64)))) }; + self <- Borrow.make_borrow (let Bdd_Context_Type.C_Context a b c d e f = * self in Bdd_Context_Type.C_Context a b c d e ([#"../bdd.rs" 454 8 454 21] Bdd_Context_Type.context_cnt ( * self) + ([#"../bdd.rs" 454 20 454 21] (1 : uint64)))) ( ^ self); assert { [@expl:type invariant] Inv0.inv self }; assume { Resolve0.resolve self }; _0 <- r1; @@ -3221,7 +3221,7 @@ module Bdd_Impl11_Node } BB3 { _17 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _17) }; + self <- Borrow.make_borrow ( ^ _17) ( ^ self); assume { Inv0.inv ( ^ _17) }; _0 <- ([#"../bdd.rs" 469 8 469 50] Hashcons0.hashcons _17 (Bdd_Node_Type.C_If x childt childf)); _17 <- any borrowed (Bdd_Context_Type.t_context); @@ -3353,7 +3353,7 @@ module Bdd_Impl11_True } BB0 { _6 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _6) }; + self <- Borrow.make_borrow ( ^ _6) ( ^ self); assume { Inv0.inv ( ^ _6) }; _0 <- ([#"../bdd.rs" 477 8 477 27] Hashcons0.hashcons _6 (Bdd_Node_Type.C_True)); _6 <- any borrowed (Bdd_Context_Type.t_context); @@ -3482,7 +3482,7 @@ module Bdd_Impl11_False } BB0 { _6 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _6) }; + self <- Borrow.make_borrow ( ^ _6) ( ^ self); assume { Inv0.inv ( ^ _6) }; _0 <- ([#"../bdd.rs" 485 8 485 28] Hashcons0.hashcons _6 (Bdd_Node_Type.C_False)); _6 <- any borrowed (Bdd_Context_Type.t_context); @@ -3627,7 +3627,7 @@ module Bdd_Impl11_V } BB0 { _7 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _7) }; + self <- Borrow.make_borrow ( ^ _7) ( ^ self); assume { Inv0.inv ( ^ _7) }; t <- ([#"../bdd.rs" 492 16 492 28] True0.true_ _7); _7 <- any borrowed (Bdd_Context_Type.t_context); @@ -3635,7 +3635,7 @@ module Bdd_Impl11_V } BB1 { _9 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _9) }; + self <- Borrow.make_borrow ( ^ _9) ( ^ self); assume { Inv0.inv ( ^ _9) }; f <- ([#"../bdd.rs" 493 16 493 29] False0.false_ _9); _9 <- any borrowed (Bdd_Context_Type.t_context); @@ -3643,7 +3643,7 @@ module Bdd_Impl11_V } BB2 { _10 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _10) }; + self <- Borrow.make_borrow ( ^ _10) ( ^ self); assume { Inv0.inv ( ^ _10) }; _0 <- ([#"../bdd.rs" 494 8 494 26] Node0.node _10 x t f); _10 <- any borrowed (Bdd_Context_Type.t_context); @@ -3907,7 +3907,7 @@ module Bdd_Impl11_Not childt <- Bdd_Node_Type.if_childt (Bdd_Bdd_Type.bdd_0 x); childf <- Bdd_Node_Type.if_childf (Bdd_Bdd_Type.bdd_0 x); _25 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _25) }; + self <- Borrow.make_borrow ( ^ _25) ( ^ self); assume { Inv1.inv ( ^ _25) }; childt1 <- ([#"../bdd.rs" 511 29 511 45] not' _25 childt); _25 <- any borrowed (Bdd_Context_Type.t_context); @@ -3915,7 +3915,7 @@ module Bdd_Impl11_Not } BB9 { _19 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _19) }; + self <- Borrow.make_borrow ( ^ _19) ( ^ self); assume { Inv1.inv ( ^ _19) }; r1 <- ([#"../bdd.rs" 508 20 508 33] False0.false_ _19); _19 <- any borrowed (Bdd_Context_Type.t_context); @@ -3926,7 +3926,7 @@ module Bdd_Impl11_Not } BB11 { _20 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _20) }; + self <- Borrow.make_borrow ( ^ _20) ( ^ self); assume { Inv1.inv ( ^ _20) }; r1 <- ([#"../bdd.rs" 509 21 509 33] True0.true_ _20); _20 <- any borrowed (Bdd_Context_Type.t_context); @@ -3937,7 +3937,7 @@ module Bdd_Impl11_Not } BB13 { _28 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _28) }; + self <- Borrow.make_borrow ( ^ _28) ( ^ self); assume { Inv1.inv ( ^ _28) }; childf1 <- ([#"../bdd.rs" 512 29 512 45] not' _28 childf); _28 <- any borrowed (Bdd_Context_Type.t_context); @@ -3945,7 +3945,7 @@ module Bdd_Impl11_Not } BB14 { _30 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _30) }; + self <- Borrow.make_borrow ( ^ _30) ( ^ self); assume { Inv1.inv ( ^ _30) }; r1 <- ([#"../bdd.rs" 513 16 513 44] Node0.node _30 v childt1 childf1); _30 <- any borrowed (Bdd_Context_Type.t_context); @@ -3956,7 +3956,7 @@ module Bdd_Impl11_Not } BB16 { _35 <- Borrow.borrow_mut (Bdd_Context_Type.context_not_memo ( * self)); - self <- { self with current = (let Bdd_Context_Type.C_Context a b c d e f = * self in Bdd_Context_Type.C_Context a b c ( ^ _35) e f) }; + self <- Borrow.make_borrow (let Bdd_Context_Type.C_Context a b c d e f = * self in Bdd_Context_Type.C_Context a b c ( ^ _35) e f) ( ^ self); _34 <- ([#"../bdd.rs" 516 8 516 31] Add0.add _35 x r1); _35 <- any borrowed (Bdd_Hashmap_MyHashMap_Type.t_myhashmap (Bdd_Bdd_Type.t_bdd) (Bdd_Bdd_Type.t_bdd)); goto BB17 @@ -4548,7 +4548,7 @@ module Bdd_Impl11_And BB17 { assume { Resolve2.resolve _23 }; _31 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _31) }; + self <- Borrow.make_borrow ( ^ _31) ( ^ self); assume { Inv1.inv ( ^ _31) }; r1 <- ([#"../bdd.rs" 534 39 534 52] False0.false_ _31); _31 <- any borrowed (Bdd_Context_Type.t_context); @@ -4570,7 +4570,7 @@ module Bdd_Impl11_And BB21 { v <- va; _67 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _67) }; + self <- Borrow.make_borrow ( ^ _67) ( ^ self); assume { Inv1.inv ( ^ _67) }; _66 <- ([#"../bdd.rs" 553 33 553 59] and _67 childta childtb); _67 <- any borrowed (Bdd_Context_Type.t_context); @@ -4582,7 +4582,7 @@ module Bdd_Impl11_And BB23 { v <- vb; _49 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _49) }; + self <- Borrow.make_borrow ( ^ _49) ( ^ self); assume { Inv1.inv ( ^ _49) }; _48 <- ([#"../bdd.rs" 543 33 543 53] and _49 a childtb); _49 <- any borrowed (Bdd_Context_Type.t_context); @@ -4592,7 +4592,7 @@ module Bdd_Impl11_And childt <- _48; _48 <- any Bdd_Bdd_Type.t_bdd; _53 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _53) }; + self <- Borrow.make_borrow ( ^ _53) ( ^ self); assume { Inv1.inv ( ^ _53) }; _52 <- ([#"../bdd.rs" 544 33 544 53] and _53 a childfb); _53 <- any borrowed (Bdd_Context_Type.t_context); @@ -4607,7 +4607,7 @@ module Bdd_Impl11_And BB26 { v <- va; _58 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _58) }; + self <- Borrow.make_borrow ( ^ _58) ( ^ self); assume { Inv1.inv ( ^ _58) }; _57 <- ([#"../bdd.rs" 548 33 548 53] and _58 childta b); _58 <- any borrowed (Bdd_Context_Type.t_context); @@ -4617,7 +4617,7 @@ module Bdd_Impl11_And childt <- _57; _57 <- any Bdd_Bdd_Type.t_bdd; _62 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _62) }; + self <- Borrow.make_borrow ( ^ _62) ( ^ self); assume { Inv1.inv ( ^ _62) }; _61 <- ([#"../bdd.rs" 549 33 549 53] and _62 childfa b); _62 <- any borrowed (Bdd_Context_Type.t_context); @@ -4633,7 +4633,7 @@ module Bdd_Impl11_And childt <- _66; _66 <- any Bdd_Bdd_Type.t_bdd; _71 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _71) }; + self <- Borrow.make_borrow ( ^ _71) ( ^ self); assume { Inv1.inv ( ^ _71) }; _70 <- ([#"../bdd.rs" 554 33 554 59] and _71 childfa childfb); _71 <- any borrowed (Bdd_Context_Type.t_context); @@ -4647,7 +4647,7 @@ module Bdd_Impl11_And } BB31 { _74 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _74) }; + self <- Borrow.make_borrow ( ^ _74) ( ^ self); assume { Inv1.inv ( ^ _74) }; r1 <- ([#"../bdd.rs" 557 16 557 44] Node0.node _74 v childt childf); _74 <- any borrowed (Bdd_Context_Type.t_context); @@ -4658,7 +4658,7 @@ module Bdd_Impl11_And } BB33 { _79 <- Borrow.borrow_mut (Bdd_Context_Type.context_and_memo ( * self)); - self <- { self with current = (let Bdd_Context_Type.C_Context a b c d e f = * self in Bdd_Context_Type.C_Context a b c d ( ^ _79) f) }; + self <- Borrow.make_borrow (let Bdd_Context_Type.C_Context a b c d e f = * self in Bdd_Context_Type.C_Context a b c d ( ^ _79) f) ( ^ self); _78 <- ([#"../bdd.rs" 560 8 560 36] Add0.add _79 (a, b) r1); _79 <- any borrowed (Bdd_Hashmap_MyHashMap_Type.t_myhashmap (Bdd_Bdd_Type.t_bdd, Bdd_Bdd_Type.t_bdd) (Bdd_Bdd_Type.t_bdd)); goto BB34 diff --git a/creusot/tests/should_succeed/bug/486.mlcfg b/creusot/tests/should_succeed/bug/486.mlcfg index 9000f68f91..762abaf9e3 100644 --- a/creusot/tests/should_succeed/bug/486.mlcfg +++ b/creusot/tests/should_succeed/bug/486.mlcfg @@ -33,7 +33,7 @@ module C486_Test goto BB0 } BB0 { - x <- (let C486_HasMutRef_Type.C_HasMutRef a = x in C486_HasMutRef_Type.C_HasMutRef ({ (C486_HasMutRef_Type.hasmutref_0 x) with current = ([#"../486.rs" 8 11 8 12] (5 : uint32)) })); + x <- (let C486_HasMutRef_Type.C_HasMutRef a = x in C486_HasMutRef_Type.C_HasMutRef (Borrow.make_borrow ([#"../486.rs" 8 11 8 12] (5 : uint32)) ( ^ C486_HasMutRef_Type.hasmutref_0 x))); _0 <- (); return _0 } diff --git a/creusot/tests/should_succeed/bug/682.mlcfg b/creusot/tests/should_succeed/bug/682.mlcfg index c813aae83f..ec4d341c83 100644 --- a/creusot/tests/should_succeed/bug/682.mlcfg +++ b/creusot/tests/should_succeed/bug/682.mlcfg @@ -60,7 +60,7 @@ module C682_AddSome goto BB0 } BB0 { - a <- { a with current = ([#"../682.rs" 7 4 7 11] * a + ([#"../682.rs" 7 10 7 11] (1 : uint64))) }; + a <- Borrow.make_borrow ([#"../682.rs" 7 4 7 11] * a + ([#"../682.rs" 7 10 7 11] (1 : uint64))) ( ^ a); assume { Resolve0.resolve a }; _0 <- (); return _0 @@ -105,7 +105,7 @@ module C682_Foo } BB1 { _7 <- Borrow.borrow_mut ( * a); - a <- { a with current = ( ^ _7) }; + a <- Borrow.make_borrow ( ^ _7) ( ^ a); _6 <- ([#"../682.rs" 14 4 14 15] AddSome0.add_some _7); _7 <- any borrowed uint64; goto BB2 diff --git a/creusot/tests/should_succeed/bug/682/why3session.xml b/creusot/tests/should_succeed/bug/682/why3session.xml index 112c4a9757..d2a87d979b 100644 --- a/creusot/tests/should_succeed/bug/682/why3session.xml +++ b/creusot/tests/should_succeed/bug/682/why3session.xml @@ -2,17 +2,17 @@ - + - + - + diff --git a/creusot/tests/should_succeed/bug/682/why3shapes.gz b/creusot/tests/should_succeed/bug/682/why3shapes.gz index eec0f8f5d1087c27990f367db853f8784a9a5982..bc2d5aa6ac08129acbd1cd00ab1315d93313aa6f 100644 GIT binary patch literal 283 zcmV+$0p$K4iwFP!00000|BaBrZi6roMDKisZ)xcTv$nxi6A4v9LF(D+snLRsidyW- zB;@xCC~cjjhg@vU*t4s7cQF~>@yiTkG=AuueI$a!_YrRJ(Am9UtLelym4q@@Nwu%g zo56jKMnQ#Z1=!<<+11W_cU0*dDJMUOP3A)=X+z5bJ3D0#Ru5N?FUuZ$T3@V2-HoBu z7q6=(EhF_zTIUIBy&GI_ZmO_3_gE-9YmHa5xaHFy3|3w4h4VNRSC!!ZN;6g#VqJ!v zz$#Gb0yv(y#wU-WHOC({-wph7X`PEAssXgDMJi;@B``sA!)OiMG+fA*6S_?z!IOq@ hnHwsMgoKMcYiiB1Jd-rXR1?^y(Kk{)L$x^q003SbgB1V( literal 287 zcmV+)0pR{0iwFP!00000|BaAKYr`-Qgzx?px}|k5mRItlGyzjEG4w2YYFJAvY8p$$ zPMp7AC-k8tJ>()WJ6a9%-NkHt$4?sBM8nv5_sB99-$%H@edl(WSj;EBsU(!KN}64R z1C4$=k%9)73b6IV;16UL{fA1?b`G~Hsb?=(osEZ3a?R@sJGW{5-kI^rd^u&|)AAx7 zO*e(3zIt8gw2ss>vwmP`%x3gG-Be?BJ`Xt`;Ktywy3+L-lT~&hrD;?2_ z5bf!+0ImX+o*>6F+xUCN(b3^Y9d8Z4Y^?WDl$xw8%7RiWttqsY0ssjm7j2uDkTbqc lq7rk+C6N}qz)S+6E_jw0l)~ynS_bPh`T_|1YokE|005!Xhk*b9 diff --git a/creusot/tests/should_succeed/bug/766.mlcfg b/creusot/tests/should_succeed/bug/766.mlcfg index 82656e3d0e..273971f1da 100644 --- a/creusot/tests/should_succeed/bug/766.mlcfg +++ b/creusot/tests/should_succeed/bug/766.mlcfg @@ -190,7 +190,7 @@ module C766_Trait_Goo } BB0 { _2 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _2) }; + self <- Borrow.make_borrow ( ^ _2) ( ^ self); assume { Inv0.inv ( ^ _2) }; _0 <- ([#"../766.rs" 11 8 11 16] F0.f _2); _2 <- any borrowed self; diff --git a/creusot/tests/should_succeed/bug/two_phase.mlcfg b/creusot/tests/should_succeed/bug/two_phase.mlcfg index 03ab3ab23e..eab39a1583 100644 --- a/creusot/tests/should_succeed/bug/two_phase.mlcfg +++ b/creusot/tests/should_succeed/bug/two_phase.mlcfg @@ -448,7 +448,7 @@ module TwoPhase_Test } BB0 { _4 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _4) }; + v <- Borrow.make_borrow ( ^ _4) ( ^ v); _5 <- ([#"../two_phase.rs" 7 11 7 18] Len0.len ( * _4)); goto BB1 } diff --git a/creusot/tests/should_succeed/bug/two_phase/why3session.xml b/creusot/tests/should_succeed/bug/two_phase/why3session.xml index 21d4f35d69..310ef881c9 100644 --- a/creusot/tests/should_succeed/bug/two_phase/why3session.xml +++ b/creusot/tests/should_succeed/bug/two_phase/why3session.xml @@ -2,12 +2,12 @@ - + - + diff --git a/creusot/tests/should_succeed/bug/two_phase/why3shapes.gz b/creusot/tests/should_succeed/bug/two_phase/why3shapes.gz index 78e58f24169d7e6f05c6114ea4921bd79faed2b6..324ff943143f60bec64041bccdfdeb2a7c4cfdea 100644 GIT binary patch literal 279 zcmV+y0qFi8iwFP!00000|886J7&3RnPwm*OC)e9?%Q6-|1^x^BafYb8Dh_;=0>mm~h*z0F zQU>_EL!-xoKO#|$v8Q^ltu~ONw{<^y9E!Jx;_SaQR7*-qklkwT$5wyW#vb|x-yyq; z=KsG}zQRd6Yi13yBJ3Xn5p#5-ZEpK=;G$R-y^0ueYNrY~FRS1AsJa_Xwx}$YPvOxk zhD*D|0Y7xTx6@=#mvq|cjHATO1slSKPF9uyys*wr%xmX^0A`v!BKNYTo+ dlR{vFI$;}?sZ=E@Rzh(V1wW;XCm_`U006Puf9C)I literal 283 zcmV+$0p$K4iwFP!00000|8cgL&3v=)5EFOAPvyw0CO25~L^z2bBmaeinSs_<#el6cfn=2_q^ryz zt0R2gp;qSLj~J+0+fzH*UTMhD+jcM>$LeiUo&C3lW@*U-WVf0J)2r`R+r!Y|JMg<` z_Wyn38=RE0dR9<20sF@ghy^-hyW3m=EUA` - + - + - + diff --git a/creusot/tests/should_succeed/closures/07_mutable_capture/why3shapes.gz b/creusot/tests/should_succeed/closures/07_mutable_capture/why3shapes.gz index f72626ce40666945b510ca6439e2df53f45b03b5..021242326e6aee5a536f360848523a4f8caebb0c 100644 GIT binary patch literal 408 zcmV;J0cZXniwFP!00000|CLnBZi6royz>>lwIvrnz{XW`h>%bswYSR0pv4$9Y620D z^!IBM8jK?*WC6HqAG4xOz zO$z6JXiffUx<0EjD4%SL2p1H_XJjPhN*qW|6UW|&| zQUoXXHhIysZS&*BKL;oV`&1F^Uzlsk)dGWUiqR)~wIr+gBh@6^z@fG|hPvz?Hs75V zge=JE{pJqdW_lC4L~uMFS)fu>H7(K}$lzuR#jXVO_IdnL6I=37*LK4eA+5M_b7wVg znJn_oYYTdpnr!ZMV@t4C-JB&nJ9f2>c9tp`trYrBl*ndkam&O1sTFyv#qZUMy*uU) zYVjr5g=z^`>ii#ISv+fvMp&fi810}>cT|yyh)knAS@>@TZX?iJ(!6r4L7;Jjb;)8~ zR9sUKf|o)Rf^nQ+8Zm>&76*hzl`JI`kZ?vwDXSQaVfIX7ElZ5pmIl8-rSqR;1pojs C62h+l literal 414 zcmV;P0b%|hiwFP!00000|CLldZ-X!t-1!x3X~}|ZFm}}p5fVzIcB?!VJsYE<5{URn z|9)+fM$jyVfd_^=-#hN{6!`rYoOSPCbk|pH^WsxKc=l4*!O-SaGeD3E25FeQj|0eB zr*Iy|PUj!GAF}2&4tZL)y;(s5K1B%I8IC*R0ud^7gq=tP&1|J2o@%UY?R4MP7cC;Y z6oG8JuKm%)=Jf5vKL-c`Wz|5P3KY7FyJAFWHNj|_BY0!ZhHN{(#R_G6sG3~1V^j1G z58tdO2(8%H`OPD|&U{CBjq%}hWS&Uil0|SRA!R6D$&Vs>BdoudqNjB6J(&TZI2+;64I_AUnVy zQ>iKDkz|S$nkdN;M1& diff --git a/creusot/tests/should_succeed/drop_pair.mlcfg b/creusot/tests/should_succeed/drop_pair.mlcfg index 31230439fb..c272410d5c 100644 --- a/creusot/tests/should_succeed/drop_pair.mlcfg +++ b/creusot/tests/should_succeed/drop_pair.mlcfg @@ -164,7 +164,7 @@ module DropPair_Drop BB0 { assume { Resolve0.resolve _x }; _3 <- Borrow.borrow_mut ( * y); - y <- { y with current = ( ^ _3) }; + y <- Borrow.make_borrow ( ^ _3) ( ^ y); _x <- _3; _3 <- any borrowed uint32; assume { Resolve0.resolve _x }; diff --git a/creusot/tests/should_succeed/drop_pair/why3session.xml b/creusot/tests/should_succeed/drop_pair/why3session.xml index d12ee4a349..b1e6a301ca 100644 --- a/creusot/tests/should_succeed/drop_pair/why3session.xml +++ b/creusot/tests/should_succeed/drop_pair/why3session.xml @@ -2,12 +2,12 @@ - + - + diff --git a/creusot/tests/should_succeed/drop_pair/why3shapes.gz b/creusot/tests/should_succeed/drop_pair/why3shapes.gz index 5c43034a866351e363f5cfa615f91f32fa2d964b..580320d5875397f76df49a493feea3f61b99d706 100644 GIT binary patch delta 123 zcmV->0EGXG0gM5V7<9U%HMD|55yXO{+^Afd3l@qAiT3*y7q|B|8tQ|yR9L0dIX(B_ zKyMWv_(p~`nc+wL5(h3))3OTL@iqQ);p;muVhPEd6dfU^0->aQ&pa2UJbEuKSl90+ d7ur5b^bNKhPF*lf@4=i=eE>uy?NN#V006NWHgEs{ delta 122 zcmV-=0EPdI0gC~U7<0;{wkCo@5yXO{+^AfW6AQ(JMEm`Ui`#oE4fVlUDlAg!l%6~2 zK(7_=`AW!|u>a9~X?iYF)4T}T;Whko=F2K73dEA~E%Q{A;tjXKwTM2B c-j0m~k6|m(q2b1K4)A2u2ZIEajfwyO0Ory?eE - + @@ -24,7 +24,7 @@ - + diff --git a/creusot/tests/should_succeed/filter_positive/why3shapes.gz b/creusot/tests/should_succeed/filter_positive/why3shapes.gz index 71e53ebdb15d1b153c7789368c9ae9bb5fd56f33..c0ba793dba446d43cc21a2aa91d72387ae0be905 100644 GIT binary patch literal 876 zcmV-y1C#t8iwFP!00000|AkfCYU4-{efL-BZFVvYsQRuY9x#JV3zmIaihUZ>lG=$_ z*~(gW!v6hMt1ZV;DF%#N%!nte3!iXV^_C_-xHNQd|uS<(S3Da5lX-` zoS3fMN(PVUK{kVVHb&Hr@YmY5=J7Wh5cwa4Ue-f!F8_NDC>Zt32C z1t(;6JyKojG52LwUBaER)YVXydc2M0C{T?R5>;NGrhe`V3aatZ*F91S8D>Y_pHx($ z?*EJHN=W`ArpRMJ9s=mRE~4@Kz1zNLrzy&#cU^sWqNZ=kmTBmEq@c{4niKhWenHxR z3U%N3!_(<`XbAcJvfb%em#5~x+xn+}U43}PbaRm)Y%+=r*&yO-d|{ob#4qd zq?v`XlW;P_bGdU~qsShy(WyiLJ=22il}010|3dDw=aM+D+2 zvk6i%n?%#~rNte6*EX*nr3ne7aeMcVr*g+*`-YOcA1L*@H_=nAB7P*S?kqC+%UKH} z!?oPjH{IK_Kl;$`2e+A&w{)3?#F{_)uI_vFi67z&VP%)JG#EX%qNfm9X@NYBOJAxh zUFC?bg3ZuXM!F85!|V=*FUWqeC}qK=6wYT}D`&KzSIwA;o1GBZZs!uP>B48Fk=k>{ zpc1Yq3Yn4L&S#3zQ|qckSZ>)ul-zU0glCm2s=_Ig$#O>@PU(O{suN`;xmC&-uD!}k z0hP~;k*caH=8IjSt4hd(fn}+M%!09?Ehr1pg0R3XFbiNIwV5?mFa8HqWJ%!x2><}e CjIp)= literal 879 zcmV-#1Cab5iwFP!00000|AkdsYwJc3e)q4?TiP5B?Cecai4T}!BSYy^8Txe0NLnSL zvXxqPLjQedwU%Qk@;MN)!anjJg+kbzSu4j$Pdzev54M`0JvkC;CcX5eh)z zPZTS9S{4`iC)RItYIpVFM9=PoGB_4u`zL){qCnUz@b{={kI~`0-?i25we1$Pq>o?T z31wZ6RF`^^zRao%xKoz98p?8yx3LN}+Ofi*-PWh6AALd1H9q^&6Q?kKc8vRziyDmk z|N6QTmj4JTwjp5a1NgiyqH+5@?LM;e6vfd|S0A3a>6@~J@Li7-oLO;mdOMz9v(}@+ z-8b&=e0mugLUq4vcRJR^srm1={^?(;4{s%rfqJl+;5z?tHVO`H9 zZ}r=lP(|_|Ovxhs$P%`bi6wZ8@C=n=pp1kIXJi;Y1fYz^Ne6X00ZK|AeiL4=ZaC9a4NnHqm)Wdf=mHx z-Vw`629N$iE%`(x*Q;;=6pzS_@7}06JFYaIfp;o{^V7JYQDx|}0xGdyeJojt*|qqT z>&>dBJJ&~>F*bKrJA>4Ub6)9iz5WfV3TNQ_CL#b_T>_%Y1j*LF$EgYlEAdm6Eom#D(H z{I$AL){H2taF;mX{(; zRAnuB4`GF - + - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80,144 +78,144 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -234,7 +232,7 @@ - + @@ -249,7 +247,7 @@ - + @@ -260,85 +258,85 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -347,183 +345,183 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/hashmap/why3shapes.gz b/creusot/tests/should_succeed/hashmap/why3shapes.gz index 21841afd8a906a45f82f8e6aa35f084af1d9fb26..97959f7b55c4791ce16a05a1be8a468a5c031fb1 100644 GIT binary patch literal 9833 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 LeLog0.le_log (Seq.get (DeepModel0.deep_model v) i) (Seq.get (DeepModel0.deep_model v) j) }; _43 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _43) }; + v <- Borrow.make_borrow ( ^ _43) ( ^ v); assume { Inv2.inv ( ^ _43) }; _42 <- ([#"../heapsort_generic.rs" 123 8 123 28] SiftDown0.sift_down _43 ([#"../heapsort_generic.rs" 123 21 123 22] (0 : usize)) end'); _43 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); diff --git a/creusot/tests/should_succeed/hillel.mlcfg b/creusot/tests/should_succeed/hillel.mlcfg index ac163b64e3..82bbb67158 100644 --- a/creusot/tests/should_succeed/hillel.mlcfg +++ b/creusot/tests/should_succeed/hillel.mlcfg @@ -579,7 +579,7 @@ module Hillel_RightPad } BB5 { _23 <- Borrow.borrow_mut ( * str); - str <- { str with current = ( ^ _23) }; + str <- Borrow.make_borrow ( ^ _23) ( ^ str); assume { Inv3.inv ( ^ _23) }; _22 <- ([#"../hillel.rs" 25 8 25 21] Push0.push _23 pad); _23 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -866,7 +866,7 @@ module Hillel_LeftPad } BB6 { _24 <- Borrow.borrow_mut ( * str); - str <- { str with current = ( ^ _24) }; + str <- Borrow.make_borrow ( ^ _24) ( ^ str); assume { Inv3.inv ( ^ _24) }; _23 <- ([#"../hillel.rs" 44 8 44 26] Insert0.insert _24 ([#"../hillel.rs" 44 19 44 20] (0 : usize)) pad); _24 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -2315,7 +2315,7 @@ module Hillel_InsertUnique _30 <- Borrow.borrow_mut iter; iter <- ^ _30; _29 <- Borrow.borrow_mut ( * _30); - _30 <- { _30 with current = ( ^ _29) }; + _30 <- Borrow.make_borrow ( ^ _29) ( ^ _30); _28 <- ([#"../hillel.rs" 84 4 84 111] Next0.next _29); _29 <- any borrowed (Core_Slice_Iter_Iter_Type.t_iter t); goto BB14 @@ -2395,7 +2395,7 @@ module Hillel_InsertUnique } BB24 { _49 <- Borrow.borrow_mut ( * vec); - vec <- { vec with current = ( ^ _49) }; + vec <- Borrow.make_borrow ( ^ _49) ( ^ vec); assume { Inv8.inv ( ^ _49) }; _48 <- ([#"../hillel.rs" 94 4 94 18] Push0.push _49 elem); _49 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -3269,7 +3269,7 @@ module Hillel_Unique _25 <- Borrow.borrow_mut iter; iter <- ^ _25; _24 <- Borrow.borrow_mut ( * _25); - _25 <- { _25 with current = ( ^ _24) }; + _25 <- Borrow.make_borrow ( ^ _24) ( ^ _25); _23 <- ([#"../hillel.rs" 104 4 104 48] Next0.next _24); _24 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB12 @@ -3317,7 +3317,7 @@ module Hillel_Unique unique <- ^ _37; assume { Inv2.inv ( ^ _37) }; _36 <- Borrow.borrow_mut ( * _37); - _37 <- { _37 with current = ( ^ _36) }; + _37 <- Borrow.make_borrow ( ^ _36) ( ^ _37); assume { Inv2.inv ( ^ _36) }; assert { [@expl:type invariant] Inv3.inv elem }; assume { Resolve2.resolve elem }; @@ -3905,7 +3905,7 @@ module Hillel_Fulcrum _21 <- Borrow.borrow_mut iter; iter <- ^ _21; _20 <- Borrow.borrow_mut ( * _21); - _21 <- { _21 with current = ( ^ _20) }; + _21 <- Borrow.make_borrow ( ^ _20) ( ^ _21); _19 <- ([#"../hillel.rs" 159 4 159 60] Next0.next _20); _20 <- any borrowed (Core_Slice_Iter_Iter_Type.t_iter uint32); goto BB6 @@ -3974,7 +3974,7 @@ module Hillel_Fulcrum _52 <- Borrow.borrow_mut iter1; iter1 <- ^ _52; _51 <- Borrow.borrow_mut ( * _52); - _52 <- { _52 with current = ( ^ _51) }; + _52 <- Borrow.make_borrow ( ^ _51) ( ^ _52); _50 <- ([#"../hillel.rs" 171 4 171 58] Next1.next _51); _51 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB18 diff --git a/creusot/tests/should_succeed/index_range.mlcfg b/creusot/tests/should_succeed/index_range.mlcfg index b06feb085f..38a3c86b2c 100644 --- a/creusot/tests/should_succeed/index_range.mlcfg +++ b/creusot/tests/should_succeed/index_range.mlcfg @@ -1663,7 +1663,7 @@ module IndexRange_TestRange } BB54 { s2 <- Borrow.borrow_mut ( * _105); - _105 <- { _105 with current = ( ^ s2) }; + _105 <- Borrow.make_borrow ( ^ s2) ( ^ _105); _111 <- ([#"../index_range.rs" 60 12 60 19] Len0.len ( * s2)); goto BB55 } @@ -1686,14 +1686,14 @@ module IndexRange_TestRange goto BB58 } BB58 { - s2 <- { s2 with current = Slice.set ( * s2) _114 ([#"../index_range.rs" 61 11 61 13] (-1 : int32)) }; + s2 <- Borrow.make_borrow (Slice.set ( * s2) _114 ([#"../index_range.rs" 61 11 61 13] (-1 : int32))) ( ^ s2); _117 <- ([#"../index_range.rs" 62 6 62 7] (1 : usize)); _119 <- ([#"../index_range.rs" 62 4 62 8] _117 < Slice.length ( * s2)); assert { [@expl:index in bounds] [#"../index_range.rs" 62 4 62 8] _119 }; goto BB59 } BB59 { - s2 <- { s2 with current = Slice.set ( * s2) _117 ([#"../index_range.rs" 62 11 62 13] (-1 : int32)) }; + s2 <- Borrow.make_borrow (Slice.set ( * s2) _117 ([#"../index_range.rs" 62 11 62 13] (-1 : int32))) ( ^ s2); _124 <- ([#"../index_range.rs" 67 14 67 15] (2 : usize)); _126 <- ([#"../index_range.rs" 67 12 67 16] _124 < Slice.length ( * s2)); assert { [@expl:index in bounds] [#"../index_range.rs" 67 12 67 16] _126 }; @@ -2291,7 +2291,7 @@ module IndexRange_TestRangeTo } BB23 { s1 <- Borrow.borrow_mut ( * _44); - _44 <- { _44 with current = ( ^ s1) }; + _44 <- Borrow.make_borrow ( ^ s1) ( ^ _44); _50 <- ([#"../index_range.rs" 100 12 100 19] Len0.len ( * s1)); goto BB24 } @@ -2314,14 +2314,14 @@ module IndexRange_TestRangeTo goto BB27 } BB27 { - s1 <- { s1 with current = Slice.set ( * s1) _53 ([#"../index_range.rs" 101 11 101 13] (-1 : int32)) }; + s1 <- Borrow.make_borrow (Slice.set ( * s1) _53 ([#"../index_range.rs" 101 11 101 13] (-1 : int32))) ( ^ s1); _56 <- ([#"../index_range.rs" 102 6 102 7] (2 : usize)); _58 <- ([#"../index_range.rs" 102 4 102 8] _56 < Slice.length ( * s1)); assert { [@expl:index in bounds] [#"../index_range.rs" 102 4 102 8] _58 }; goto BB28 } BB28 { - s1 <- { s1 with current = Slice.set ( * s1) _56 ([#"../index_range.rs" 102 11 102 13] (-1 : int32)) }; + s1 <- Borrow.make_borrow (Slice.set ( * s1) _56 ([#"../index_range.rs" 102 11 102 13] (-1 : int32))) ( ^ s1); _63 <- ([#"../index_range.rs" 104 14 104 15] (1 : usize)); _65 <- ([#"../index_range.rs" 104 12 104 16] _63 < Slice.length ( * s1)); assert { [@expl:index in bounds] [#"../index_range.rs" 104 12 104 16] _65 }; @@ -2949,7 +2949,7 @@ module IndexRange_TestRangeFrom } BB28 { s1 <- Borrow.borrow_mut ( * _54); - _54 <- { _54 with current = ( ^ s1) }; + _54 <- Borrow.make_borrow ( ^ s1) ( ^ _54); _60 <- ([#"../index_range.rs" 139 12 139 19] Len0.len ( * s1)); goto BB29 } @@ -2972,14 +2972,14 @@ module IndexRange_TestRangeFrom goto BB32 } BB32 { - s1 <- { s1 with current = Slice.set ( * s1) _63 ([#"../index_range.rs" 140 11 140 13] (-1 : int32)) }; + s1 <- Borrow.make_borrow (Slice.set ( * s1) _63 ([#"../index_range.rs" 140 11 140 13] (-1 : int32))) ( ^ s1); _66 <- ([#"../index_range.rs" 141 6 141 7] (1 : usize)); _68 <- ([#"../index_range.rs" 141 4 141 8] _66 < Slice.length ( * s1)); assert { [@expl:index in bounds] [#"../index_range.rs" 141 4 141 8] _68 }; goto BB33 } BB33 { - s1 <- { s1 with current = Slice.set ( * s1) _66 ([#"../index_range.rs" 141 11 141 13] (-1 : int32)) }; + s1 <- Borrow.make_borrow (Slice.set ( * s1) _66 ([#"../index_range.rs" 141 11 141 13] (-1 : int32))) ( ^ s1); _73 <- ([#"../index_range.rs" 143 14 143 15] (2 : usize)); _75 <- ([#"../index_range.rs" 143 12 143 16] _73 < Slice.length ( * s1)); assert { [@expl:index in bounds] [#"../index_range.rs" 143 12 143 16] _75 }; @@ -3543,7 +3543,7 @@ module IndexRange_TestRangeFull } BB26 { s1 <- Borrow.borrow_mut ( * _43); - _43 <- { _43 with current = ( ^ s1) }; + _43 <- Borrow.make_borrow ( ^ s1) ( ^ _43); _49 <- ([#"../index_range.rs" 166 12 166 19] Len0.len ( * s1)); goto BB27 } @@ -3566,14 +3566,14 @@ module IndexRange_TestRangeFull goto BB30 } BB30 { - s1 <- { s1 with current = Slice.set ( * s1) _52 ([#"../index_range.rs" 167 11 167 13] (-1 : int32)) }; + s1 <- Borrow.make_borrow (Slice.set ( * s1) _52 ([#"../index_range.rs" 167 11 167 13] (-1 : int32))) ( ^ s1); _55 <- ([#"../index_range.rs" 168 6 168 7] (3 : usize)); _57 <- ([#"../index_range.rs" 168 4 168 8] _55 < Slice.length ( * s1)); assert { [@expl:index in bounds] [#"../index_range.rs" 168 4 168 8] _57 }; goto BB31 } BB31 { - s1 <- { s1 with current = Slice.set ( * s1) _55 ([#"../index_range.rs" 168 11 168 13] (-1 : int32)) }; + s1 <- Borrow.make_borrow (Slice.set ( * s1) _55 ([#"../index_range.rs" 168 11 168 13] (-1 : int32))) ( ^ s1); assume { Resolve0.resolve s1 }; assume { Resolve0.resolve _43 }; _61 <- ([#"../index_range.rs" 170 12 170 21] Len1.len arr); @@ -4144,7 +4144,7 @@ module IndexRange_TestRangeToInclusive } BB19 { s1 <- Borrow.borrow_mut ( * _35); - _35 <- { _35 with current = ( ^ s1) }; + _35 <- Borrow.make_borrow ( ^ s1) ( ^ _35); _41 <- ([#"../index_range.rs" 196 12 196 19] Len0.len ( * s1)); goto BB20 } @@ -4167,14 +4167,14 @@ module IndexRange_TestRangeToInclusive goto BB23 } BB23 { - s1 <- { s1 with current = Slice.set ( * s1) _44 ([#"../index_range.rs" 197 11 197 13] (-1 : int32)) }; + s1 <- Borrow.make_borrow (Slice.set ( * s1) _44 ([#"../index_range.rs" 197 11 197 13] (-1 : int32))) ( ^ s1); _47 <- ([#"../index_range.rs" 198 6 198 7] (2 : usize)); _49 <- ([#"../index_range.rs" 198 4 198 8] _47 < Slice.length ( * s1)); assert { [@expl:index in bounds] [#"../index_range.rs" 198 4 198 8] _49 }; goto BB24 } BB24 { - s1 <- { s1 with current = Slice.set ( * s1) _47 ([#"../index_range.rs" 198 11 198 13] (-1 : int32)) }; + s1 <- Borrow.make_borrow (Slice.set ( * s1) _47 ([#"../index_range.rs" 198 11 198 13] (-1 : int32))) ( ^ s1); _54 <- ([#"../index_range.rs" 200 14 200 15] (1 : usize)); _56 <- ([#"../index_range.rs" 200 12 200 16] _54 < Slice.length ( * s1)); assert { [@expl:index in bounds] [#"../index_range.rs" 200 12 200 16] _56 }; diff --git a/creusot/tests/should_succeed/index_range/why3session.xml b/creusot/tests/should_succeed/index_range/why3session.xml index ab65e191b4..819c3adace 100644 --- a/creusot/tests/should_succeed/index_range/why3session.xml +++ b/creusot/tests/should_succeed/index_range/why3session.xml @@ -2,198 +2,198 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/index_range/why3shapes.gz b/creusot/tests/should_succeed/index_range/why3shapes.gz index 4bac777467dd4b11d875813372d7900c83cdd06d..3ce3273dabd1d7ecf5cca86e59c8289aa23fbb4d 100644 GIT binary patch literal 4256 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 CgFq7i literal 4266 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 M5AGqhfH7GB0F>oKp8x;= diff --git a/creusot/tests/should_succeed/inplace_list_reversal.mlcfg b/creusot/tests/should_succeed/inplace_list_reversal.mlcfg index 6eefa17a1e..7c8b21a48b 100644 --- a/creusot/tests/should_succeed/inplace_list_reversal.mlcfg +++ b/creusot/tests/should_succeed/inplace_list_reversal.mlcfg @@ -193,7 +193,7 @@ module InplaceListReversal_Rev assume { Resolve0.resolve old_l }; prev <- InplaceListReversal_List_Type.C_Nil; _7 <- Borrow.borrow_mut ( * l); - l <- { l with current = ( ^ _7) }; + l <- Borrow.make_borrow ( ^ _7) ( ^ l); assume { Inv1.inv ( ^ _7) }; head <- ([#"../inplace_list_reversal.rs" 27 19 27 34] Replace0.replace _7 (InplaceListReversal_List_Type.C_Nil)); _7 <- any borrowed (InplaceListReversal_List_Type.t_list t); @@ -266,7 +266,7 @@ module InplaceListReversal_Rev goto BB4 } BB21 { - l <- { l with current = prev }; + l <- Borrow.make_borrow prev ( ^ l); prev <- any InplaceListReversal_List_Type.t_list t; assert { [@expl:type invariant] Inv1.inv ( * l) }; assume { Resolve1.resolve ( * l) }; diff --git a/creusot/tests/should_succeed/inplace_list_reversal/why3session.xml b/creusot/tests/should_succeed/inplace_list_reversal/why3session.xml index 9b15505cd3..71aca0aaf5 100644 --- a/creusot/tests/should_succeed/inplace_list_reversal/why3session.xml +++ b/creusot/tests/should_succeed/inplace_list_reversal/why3session.xml @@ -2,12 +2,12 @@ - + - + diff --git a/creusot/tests/should_succeed/inplace_list_reversal/why3shapes.gz b/creusot/tests/should_succeed/inplace_list_reversal/why3shapes.gz index 7049753a5fd71cd5dd0c1e47a6a486ce6943d0eb..783d396cd1da6dd6548b94bc1f1dd4dd90a0abf2 100644 GIT binary patch literal 392 zcmV;30eAi%iwFP!00000|AkUbZ-X!lz4I$LZau|G_{gLl5K=^?X{X7@p|lHHwGJ3` z^zY9JfpwLpo$|1s?e}c%Hu3modOOCG9mZqVKE!FfxsT4D=GacibU=WxK#p8TWofo% zuv2aN-nOsE74rNlU^YZ;?SRsh_0#dRGh5GL+M}GJW!H}8`Kv!!>L`&Xb1Flg>KP^o zyl{ZBd=3fZ;6ofi1{ywPy29jW3pFu!&v z7KdVSC>HToHv!>F|GtSXZuo%7KPMy#xD(DpnY#oq(w!B4D;X*s6wSNG>~Sgf4vFI0 znHGbVX!ZL2UAtp;v#PfzR mYa62)k;_c&6-y;&HU%NnK0U;;5*4qYV$nB0<7q?`0{{Sg;Jfhv literal 397 zcmV;80doEyiwFP!00000|AkV)Zi6rkz4H~^w)GSzKwwf22q~h{wA19{s$XNGVz{cvuZ$1n*u55eVApPLbx@(2(X$dRj{DD+nM zX58zpGtCKkhCIC@^oFF3=`qs9{`p+*^ww#ZawsLXXq!R5e08;LaE0 z^nzG)6DeL%{PIelv&+jm2B2VW4vM*tYtmNCS#U7_fp${C^r7whb~2~Ck9S&vuFj3F zF}-#v7MEgiDHa1)cL8C`|GtaLZ}foiKW8Kf*fY+LGJ6eRG`q~*W+Z0HPc-iz< + @@ -17,7 +18,7 @@ - + @@ -27,18 +28,18 @@ - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/01_range/why3shapes.gz b/creusot/tests/should_succeed/iterators/01_range/why3shapes.gz index 9e56edc7fefaa73befa9ae03f1b570a38d70d5cb..28271d0d5e4e4bb97e58110bfd54b69b66f4bc26 100644 GIT binary patch literal 923 zcmV;M17!RkiwFP!00000|D9D$Z`?Kzz3W%#*3?D;4!;>B1%!nK2?%m%03N%bD9TyX zE4k9zZvTCUl2$9(>!7U<=5Rh9hn)9TA8yj&yL${n`W*V<(6t{^ncn=IxW~S$pL`fB zapCxQ`rDE`vAeYC`t%&y_n~>%WZvFdu*~xE;-qn(t&%Wu zXuJK_t_@46yFuS@XzwxJwU)Zy$DD87F<1-bVdp+uI6GM8`Y?14&%vq;1IiuUA7Nj0 zec!!c(r>Q44^~4dmnKfjOsCKB2@`txjuA#DArt%o1Cw(YFMCiLs1y!`tAx;T%l4S$`Ic)jTWT=FG` zRo(t@3jM!gMfrvm7l)WxC-UU>1Hsm4Ct`BPrjyTd%k&l*eZFsSi zkEpm>YH*?MmuO6#TFOfIX}w1=;cb^FhVpDKXT(JhBe4WGOHwTH1YKk5f`t7oDT_tF z#DPU%wB|?QQ-c&SD6ApyPG8oVoNfqiKn?D3LMERD`GWRH7h^%^_J=VP<9l#Ip z!I}wvdMt=JT`Z z5@O!Vd9UWZ&g0+aE5omFkFTgFkz#xy-UMt#`ClN^7GioVh>w-jnsVMKPMof}l2S0^ zjU$=|qm`p7g@PmjICYZKDwrS}XM80q zr)Vk)o(Q9e53H{1%5W95f z9v@HtSW;y6F0b1zKfAVFtPiWm+gl5kSzcX?H0hf~5Ju3qrB0n|`s~j6_V{>+rx>u> z-S%tS#5vX7psn9G59n_jOWhws%E& z!|_iH`pq>D(Ml^^y>HyXl6#DD`{pG12mEiPyS-?xOVQgNg;Scs!~I;sCPV7LUPs+e z^Q22$rXlXv&+k`$M;Rn)vrAOV=A4 z;8Dyz%xbs$Q|$f|GO9PoxEREQJW*t)zi_5!D~l{`nG&n2@dR3&aq?-oKdKi>LV!zC zjgCWX9!}rT-^9*Rc>(8S0y6t7U~cLRV?%AJDykJys9Np=2l7yCt}knF4t1oZq8KFM zn)qTVAFASMslkJ~Uy?9RYALJSr=^aB!rRVXbQPN^oe`HTjHDD)=Ae|~37Uq`xf0Gd zhs+ZFk`|TIot3}PwtqTq2ST6uM9$0t z3ulog5{@FmXvs%D@o`Do*@jJr3|?e|WjlOUR@n$CVU^X@HDj^(MsPGOXo)}5ud=TB zH&g%3cnLA-a?;hL>mvQFzBK#__V@yN5+TNC;Ejc?sQyn0wJtF}7Np0@f~K6;iW8>; zS5gXQym3VHXtZ)vY8w-i1du+pi59C$Pz>eyabkc9UYg#)C@0B zL(Qd$8eamGkdpB*q?lDo9coXdaD+Q00`ma};k4FH5#`N}r4&k5DgOcun$WM^2mk;A Cd&E)z diff --git a/creusot/tests/should_succeed/iterators/02_iter_mut.mlcfg b/creusot/tests/should_succeed/iterators/02_iter_mut.mlcfg index 84b3bdefd7..1e6d8c3661 100644 --- a/creusot/tests/should_succeed/iterators/02_iter_mut.mlcfg +++ b/creusot/tests/should_succeed/iterators/02_iter_mut.mlcfg @@ -967,7 +967,7 @@ module C02IterMut_Impl1_Next } BB0 { _3 <- Borrow.borrow_mut (C02IterMut_IterMut_Type.itermut_inner ( * self)); - self <- { self with current = (let C02IterMut_IterMut_Type.C_IterMut a = * self in C02IterMut_IterMut_Type.C_IterMut ( ^ _3)) }; + self <- Borrow.make_borrow (let C02IterMut_IterMut_Type.C_IterMut a = * self in C02IterMut_IterMut_Type.C_IterMut ( ^ _3)) ( ^ self); assume { Inv0.inv ( ^ _3) }; _0 <- ([#"../02_iter_mut.rs" 58 8 58 37] TakeFirstMut0.take_first_mut _3); _3 <- any borrowed (borrowed (slice t)); @@ -1586,7 +1586,7 @@ module C02IterMut_IterMut } BB0 { _8 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _8) }; + v <- Borrow.make_borrow ( ^ _8) ( ^ v); assume { Inv0.inv ( ^ _8) }; _7 <- ([#"../02_iter_mut.rs" 73 26 73 31] IndexMut0.index_mut _8 (Core_Ops_Range_RangeFull_Type.C_RangeFull)); _8 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -1594,10 +1594,10 @@ module C02IterMut_IterMut } BB1 { _6 <- Borrow.borrow_mut ( * _7); - _7 <- { _7 with current = ( ^ _6) }; + _7 <- Borrow.make_borrow ( ^ _6) ( ^ _7); assume { Inv1.inv ( ^ _6) }; _5 <- Borrow.borrow_mut ( * _6); - _6 <- { _6 with current = ( ^ _5) }; + _6 <- Borrow.make_borrow ( ^ _5) ( ^ _6); assume { Inv1.inv ( ^ _5) }; _0 <- C02IterMut_IterMut_Type.C_IterMut _5; _5 <- any borrowed (slice t); @@ -1907,7 +1907,7 @@ module C02IterMut_AllZero } BB0 { _6 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _6) }; + v <- Borrow.make_borrow ( ^ _6) ( ^ v); _5 <- ([#"../02_iter_mut.rs" 79 17 79 28] IterMut0.iter_mut _6); _6 <- any borrowed (Alloc_Vec_Vec_Type.t_vec usize (Alloc_Alloc_Global_Type.t_global)); goto BB1 @@ -1969,7 +1969,7 @@ module C02IterMut_AllZero BB12 { produced <- _19; _19 <- any Ghost.ghost_ty (Seq.seq (borrowed usize)); - x <- { x with current = ([#"../02_iter_mut.rs" 89 21 89 22] (0 : usize)) }; + x <- Borrow.make_borrow ([#"../02_iter_mut.rs" 89 21 89 22] (0 : usize)) ( ^ x); assume { Resolve0.resolve x }; goto BB5 } diff --git a/creusot/tests/should_succeed/iterators/02_iter_mut/why3session.xml b/creusot/tests/should_succeed/iterators/02_iter_mut/why3session.xml index 8da8747252..8bc8715e31 100644 --- a/creusot/tests/should_succeed/iterators/02_iter_mut/why3session.xml +++ b/creusot/tests/should_succeed/iterators/02_iter_mut/why3session.xml @@ -2,100 +2,100 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/02_iter_mut/why3shapes.gz b/creusot/tests/should_succeed/iterators/02_iter_mut/why3shapes.gz index 58d6bdfa41279d7b5bc33750a3d65c9c733cb217..1ce435c9d8569ec241935f4838df4869eecff926 100644 GIT binary patch literal 3132 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 diff --git a/creusot/tests/should_succeed/iterators/03_std_iterators.mlcfg b/creusot/tests/should_succeed/iterators/03_std_iterators.mlcfg index ceead5c901..4874ee0a63 100644 --- a/creusot/tests/should_succeed/iterators/03_std_iterators.mlcfg +++ b/creusot/tests/should_succeed/iterators/03_std_iterators.mlcfg @@ -944,7 +944,7 @@ module C03StdIterators_SliceIter _19 <- Borrow.borrow_mut iter; iter <- ^ _19; _18 <- Borrow.borrow_mut ( * _19); - _19 <- { _19 with current = ( ^ _18) }; + _19 <- Borrow.make_borrow ( ^ _18) ( ^ _19); _17 <- ([#"../03_std_iterators.rs" 8 4 8 38] Next0.next _18); _18 <- any borrowed (Core_Slice_Iter_Iter_Type.t_iter t); goto BB7 @@ -1414,7 +1414,7 @@ module C03StdIterators_VecIter _18 <- Borrow.borrow_mut iter; iter <- ^ _18; _17 <- Borrow.borrow_mut ( * _18); - _18 <- { _18 with current = ( ^ _17) }; + _18 <- Borrow.make_borrow ( ^ _17) ( ^ _18); _16 <- ([#"../03_std_iterators.rs" 19 4 19 38] Next0.next _17); _17 <- any borrowed (Core_Slice_Iter_Iter_Type.t_iter t); goto BB6 @@ -2297,14 +2297,14 @@ module C03StdIterators_AllZero } BB0 { _8 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _8) }; + v <- Borrow.make_borrow ( ^ _8) ( ^ v); _7 <- ([#"../03_std_iterators.rs" 30 13 30 25] DerefMut0.deref_mut _8); _8 <- any borrowed (Alloc_Vec_Vec_Type.t_vec usize (Alloc_Alloc_Global_Type.t_global)); goto BB1 } BB1 { _6 <- Borrow.borrow_mut ( * _7); - _7 <- { _7 with current = ( ^ _6) }; + _7 <- Borrow.make_borrow ( ^ _6) ( ^ _7); _5 <- ([#"../03_std_iterators.rs" 30 13 30 25] IterMut0.iter_mut _6); _6 <- any borrowed (slice usize); goto BB2 @@ -2336,7 +2336,7 @@ module C03StdIterators_AllZero _19 <- Borrow.borrow_mut iter; iter <- ^ _19; _18 <- Borrow.borrow_mut ( * _19); - _19 <- { _19 with current = ( ^ _18) }; + _19 <- Borrow.make_borrow ( ^ _18) ( ^ _19); _17 <- ([#"../03_std_iterators.rs" 29 4 29 87] Next0.next _18); _18 <- any borrowed (Core_Slice_Iter_IterMut_Type.t_itermut usize); goto BB8 @@ -2373,7 +2373,7 @@ module C03StdIterators_AllZero _22 <- any Ghost.ghost_ty (Seq.seq (borrowed usize)); x <- __creusot_proc_iter_elem; __creusot_proc_iter_elem <- any borrowed usize; - x <- { x with current = ([#"../03_std_iterators.rs" 31 13 31 14] (0 : usize)) }; + x <- Borrow.make_borrow ([#"../03_std_iterators.rs" 31 13 31 14] (0 : usize)) ( ^ x); assume { Resolve2.resolve x }; goto BB6 } @@ -3730,7 +3730,7 @@ module C03StdIterators_Counter_Closure0 goto BB0 } BB0 { - _1 <- { _1 with current = (let C03StdIterators_Counter_Closure0 a = * _1 in C03StdIterators_Counter_Closure0 ({ (field_0 ( * _1)) with current = ([#"../03_std_iterators.rs" 50 16 50 24] * field_0 ( * _1) + ([#"../03_std_iterators.rs" 50 23 50 24] (1 : usize))) })) }; + _1 <- Borrow.make_borrow (let C03StdIterators_Counter_Closure0 a = * _1 in C03StdIterators_Counter_Closure0 (Borrow.make_borrow ([#"../03_std_iterators.rs" 50 16 50 24] * field_0 ( * _1) + ([#"../03_std_iterators.rs" 50 23 50 24] (1 : usize))) ( ^ field_0 ( * _1)))) ( ^ _1); assume { Resolve0.resolve _1 }; res1 <- x; res <- res1; @@ -4207,7 +4207,7 @@ module CreusotContracts_Std1_Iter_MapInv_Impl0_Completed type self = i use CreusotContracts_Std1_Iter_MapInv_MapInv_Type as CreusotContracts_Std1_Iter_MapInv_MapInv_Type predicate completed (self : borrowed (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.t_mapinv i Item0.item f)) = - [#"../../../../../creusot-contracts/src/std/iter/map_inv.rs" 15 8 18 9] Ghost.inner (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_produced ( ^ self)) = Seq.empty /\ Completed0.completed {current = CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_iter ( * self); final = CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_iter ( ^ self)} /\ CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_func ( * self) = CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_func ( ^ self) + [#"../../../../../creusot-contracts/src/std/iter/map_inv.rs" 15 8 18 9] Ghost.inner (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_produced ( ^ self)) = Seq.empty /\ Completed0.completed (Borrow.make_borrow (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_iter ( * self)) (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_iter ( ^ self))) /\ CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_func ( * self) = CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_func ( ^ self) val completed (self : borrowed (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.t_mapinv i Item0.item f)) : bool ensures { result = completed self } @@ -5282,7 +5282,7 @@ module C03StdIterators_SumRange _19 <- Borrow.borrow_mut iter; iter <- ^ _19; _18 <- Borrow.borrow_mut ( * _19); - _19 <- { _19 with current = ( ^ _18) }; + _19 <- Borrow.make_borrow ( ^ _18) ( ^ _19); _17 <- ([#"../03_std_iterators.rs" 65 4 65 48] Next0.next _18); _18 <- any borrowed (Core_Ops_Range_Range_Type.t_range isize); goto BB6 @@ -5918,7 +5918,7 @@ module C03StdIterators_EnumerateRange iter <- ^ _14; assume { Inv0.inv ( ^ _14) }; _13 <- Borrow.borrow_mut ( * _14); - _14 <- { _14 with current = ( ^ _13) }; + _14 <- Borrow.make_borrow ( ^ _13) ( ^ _14); assume { Inv0.inv ( ^ _13) }; _12 <- ([#"../03_std_iterators.rs" 73 4 73 96] Next0.next _13); _13 <- any borrowed (Core_Iter_Adapters_Enumerate_Enumerate_Type.t_enumerate (Core_Ops_Range_Range_Type.t_range usize)); @@ -6847,7 +6847,7 @@ module C03StdIterators_MyReverse _30 <- Borrow.borrow_mut iter; iter <- ^ _30; _29 <- Borrow.borrow_mut ( * _30); - _30 <- { _30 with current = ( ^ _29) }; + _30 <- Borrow.make_borrow ( ^ _29) ( ^ _30); _28 <- ([#"../03_std_iterators.rs" 97 4 97 36] Next0.next _29); _29 <- any borrowed (Core_Iter_Adapters_Zip_Zip_Type.t_zip (Core_Ops_Range_Range_Type.t_range usize) (Core_Ops_Range_Range_Type.t_range usize)); goto BB11 @@ -6885,7 +6885,7 @@ module C03StdIterators_MyReverse j <- (let (_, a) = __creusot_proc_iter_elem in a); assume { Resolve2.resolve __creusot_proc_iter_elem }; _38 <- Borrow.borrow_mut ( * slice); - slice <- { slice with current = ( ^ _38) }; + slice <- Borrow.make_borrow ( ^ _38) ( ^ slice); assume { Inv2.inv ( ^ _38) }; _37 <- ([#"../03_std_iterators.rs" 102 8 102 32] Swap0.swap _38 i ([#"../03_std_iterators.rs" 102 22 102 31] ([#"../03_std_iterators.rs" 102 22 102 27] n - j) - ([#"../03_std_iterators.rs" 102 30 102 31] (1 : usize)))); _38 <- any borrowed (slice t); diff --git a/creusot/tests/should_succeed/iterators/04_skip.mlcfg b/creusot/tests/should_succeed/iterators/04_skip.mlcfg index 9e8d994ada..16a3faad52 100644 --- a/creusot/tests/should_succeed/iterators/04_skip.mlcfg +++ b/creusot/tests/should_succeed/iterators/04_skip.mlcfg @@ -894,9 +894,9 @@ module C04Skip_Impl0_Next assert { [@expl:type invariant] Inv0.inv old_self }; assume { Resolve0.resolve old_self }; _7 <- Borrow.borrow_mut (C04Skip_Skip_Type.skip_n ( * self)); - self <- { self with current = (let C04Skip_Skip_Type.C_Skip a b = * self in C04Skip_Skip_Type.C_Skip a ( ^ _7)) }; + self <- Borrow.make_borrow (let C04Skip_Skip_Type.C_Skip a b = * self in C04Skip_Skip_Type.C_Skip a ( ^ _7)) ( ^ self); _6 <- Borrow.borrow_mut ( * _7); - _7 <- { _7 with current = ( ^ _6) }; + _7 <- Borrow.make_borrow ( ^ _6) ( ^ _7); n <- ([#"../04_skip.rs" 65 20 65 47] Take0.take _6); _6 <- any borrowed usize; goto BB2 @@ -921,7 +921,7 @@ module C04Skip_Impl0_Next } BB5 { _18 <- Borrow.borrow_mut (C04Skip_Skip_Type.skip_iter ( * self)); - self <- { self with current = (let C04Skip_Skip_Type.C_Skip a b = * self in C04Skip_Skip_Type.C_Skip ( ^ _18) b) }; + self <- Borrow.make_borrow (let C04Skip_Skip_Type.C_Skip a b = * self in C04Skip_Skip_Type.C_Skip ( ^ _18) b) ( ^ self); assume { Inv3.inv ( ^ _18) }; r <- ([#"../04_skip.rs" 73 20 73 36] Next0.next _18); _18 <- any borrowed i; diff --git a/creusot/tests/should_succeed/iterators/05_map.mlcfg b/creusot/tests/should_succeed/iterators/05_map.mlcfg index 79eb1408f7..7e38b394d8 100644 --- a/creusot/tests/should_succeed/iterators/05_map.mlcfg +++ b/creusot/tests/should_succeed/iterators/05_map.mlcfg @@ -61,7 +61,7 @@ module C05Map_Impl0_Completed type self = i use C05Map_Map_Type as C05Map_Map_Type predicate completed [#"../05_map.rs" 22 4 22 35] (self : borrowed (C05Map_Map_Type.t_map i b f)) = - [#"../05_map.rs" 23 8 23 75] Completed0.completed {current = C05Map_Map_Type.map_iter ( * self); final = C05Map_Map_Type.map_iter ( ^ self)} /\ C05Map_Map_Type.map_func ( * self) = C05Map_Map_Type.map_func ( ^ self) + [#"../05_map.rs" 23 8 23 75] Completed0.completed (Borrow.make_borrow (C05Map_Map_Type.map_iter ( * self)) (C05Map_Map_Type.map_iter ( ^ self))) /\ C05Map_Map_Type.map_func ( * self) = C05Map_Map_Type.map_func ( ^ self) val completed [#"../05_map.rs" 22 4 22 35] (self : borrowed (C05Map_Map_Type.t_map i b f)) : bool ensures { result = completed self } @@ -2546,7 +2546,7 @@ module C05Map_Impl0_Next } BB0 { _4 <- Borrow.borrow_mut (C05Map_Map_Type.map_iter ( * self)); - self <- { self with current = (let C05Map_Map_Type.C_Map a b = * self in C05Map_Map_Type.C_Map ( ^ _4) b) }; + self <- Borrow.make_borrow (let C05Map_Map_Type.C_Map a b = * self in C05Map_Map_Type.C_Map ( ^ _4) b) ( ^ self); assume { Inv0.inv ( ^ _4) }; _3 <- ([#"../05_map.rs" 61 14 61 30] Next0.next _4); _4 <- any borrowed i; @@ -2591,7 +2591,7 @@ module C05Map_Impl0_Next BB7 { assume { Resolve1.resolve _9 }; _12 <- Borrow.borrow_mut (C05Map_Map_Type.map_func ( * self)); - self <- { self with current = (let C05Map_Map_Type.C_Map a b = * self in C05Map_Map_Type.C_Map a ( ^ _12)) }; + self <- Borrow.make_borrow (let C05Map_Map_Type.C_Map a b = * self in C05Map_Map_Type.C_Map a ( ^ _12)) ( ^ self); assume { Inv2.inv ( ^ _12) }; _11 <- ([#"../05_map.rs" 65 21 65 35] CallMut0.call_mut _12 (v)); _12 <- any borrowed f; diff --git a/creusot/tests/should_succeed/iterators/05_map/why3session.xml b/creusot/tests/should_succeed/iterators/05_map/why3session.xml index 455d817c0e..a308ce873c 100644 --- a/creusot/tests/should_succeed/iterators/05_map/why3session.xml +++ b/creusot/tests/should_succeed/iterators/05_map/why3session.xml @@ -3,9 +3,9 @@ "http://why3.lri.fr/why3session.dtd"> - - + + @@ -16,7 +16,7 @@ - + @@ -38,51 +38,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -111,25 +111,25 @@ - + - + - + - + - + @@ -162,7 +162,7 @@ - + @@ -176,58 +176,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/05_map/why3shapes.gz b/creusot/tests/should_succeed/iterators/05_map/why3shapes.gz index 388bb90dc79b46920ab12ae7824a0565ec0821fb..172d686e4b9ea44321f4201281592cc81afb9a9d 100644 GIT binary patch literal 5847 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 diff --git a/creusot/tests/should_succeed/iterators/06_map_precond.mlcfg b/creusot/tests/should_succeed/iterators/06_map_precond.mlcfg index 6b98910a19..d29bae21c9 100644 --- a/creusot/tests/should_succeed/iterators/06_map_precond.mlcfg +++ b/creusot/tests/should_succeed/iterators/06_map_precond.mlcfg @@ -255,7 +255,7 @@ module C06MapPrecond_Impl0_Completed predicate completed [#"../06_map_precond.rs" 23 4 23 35] (self : borrowed (C06MapPrecond_Map_Type.t_map Item0.item i b f)) = - [#"../06_map_precond.rs" 24 8 27 9] Ghost.inner (C06MapPrecond_Map_Type.map_produced ( ^ self)) = Seq.empty /\ Completed0.completed {current = C06MapPrecond_Map_Type.map_iter ( * self); final = C06MapPrecond_Map_Type.map_iter ( ^ self)} /\ C06MapPrecond_Map_Type.map_func ( * self) = C06MapPrecond_Map_Type.map_func ( ^ self) + [#"../06_map_precond.rs" 24 8 27 9] Ghost.inner (C06MapPrecond_Map_Type.map_produced ( ^ self)) = Seq.empty /\ Completed0.completed (Borrow.make_borrow (C06MapPrecond_Map_Type.map_iter ( * self)) (C06MapPrecond_Map_Type.map_iter ( ^ self))) /\ C06MapPrecond_Map_Type.map_func ( * self) = C06MapPrecond_Map_Type.map_func ( ^ self) val completed [#"../06_map_precond.rs" 23 4 23 35] (self : borrowed (C06MapPrecond_Map_Type.t_map Item0.item i b f)) : bool ensures { result = completed self } @@ -3094,7 +3094,7 @@ module C06MapPrecond_Impl0_Next } BB0 { _4 <- Borrow.borrow_mut (C06MapPrecond_Map_Type.map_iter ( * self)); - self <- { self with current = (let C06MapPrecond_Map_Type.C_Map a b c = * self in C06MapPrecond_Map_Type.C_Map ( ^ _4) b c) }; + self <- Borrow.make_borrow (let C06MapPrecond_Map_Type.C_Map a b c = * self in C06MapPrecond_Map_Type.C_Map ( ^ _4) b c) ( ^ self); assume { Inv0.inv ( ^ _4) }; _3 <- ([#"../06_map_precond.rs" 66 14 66 30] Next0.next _4); _4 <- any borrowed i; @@ -3136,7 +3136,7 @@ module C06MapPrecond_Impl0_Next } BB7 { _12 <- Borrow.borrow_mut (C06MapPrecond_Map_Type.map_func ( * self)); - self <- { self with current = (let C06MapPrecond_Map_Type.C_Map a b c = * self in C06MapPrecond_Map_Type.C_Map a ( ^ _12) c) }; + self <- Borrow.make_borrow (let C06MapPrecond_Map_Type.C_Map a b c = * self in C06MapPrecond_Map_Type.C_Map a ( ^ _12) c) ( ^ self); assume { Inv2.inv ( ^ _12) }; r <- ([#"../06_map_precond.rs" 70 24 70 53] CallMut0.call_mut _12 (v, C06MapPrecond_Map_Type.map_produced ( * self))); _12 <- any borrowed f; @@ -3149,7 +3149,7 @@ module C06MapPrecond_Impl0_Next BB9 { assert { [@expl:type invariant] Inv3.inv produced }; assume { Resolve1.resolve produced }; - self <- { self with current = (let C06MapPrecond_Map_Type.C_Map a b c = * self in C06MapPrecond_Map_Type.C_Map a b produced) }; + self <- Borrow.make_borrow (let C06MapPrecond_Map_Type.C_Map a b c = * self in C06MapPrecond_Map_Type.C_Map a b produced) ( ^ self); _17 <- ([#"../06_map_precond.rs" 72 16 72 52] Ghost.new ()); goto BB10 } @@ -3171,7 +3171,7 @@ module C06MapPrecond_Impl0_Next goto BB15 } BB14 { - self <- { self with current = (let C06MapPrecond_Map_Type.C_Map a b c = * self in C06MapPrecond_Map_Type.C_Map a b _20) }; + self <- Borrow.make_borrow (let C06MapPrecond_Map_Type.C_Map a b c = * self in C06MapPrecond_Map_Type.C_Map a b _20) ( ^ self); _20 <- any Ghost.ghost_ty (Seq.seq Item0.item); assert { [@expl:type invariant] Inv3.inv (C06MapPrecond_Map_Type.map_produced ( * self)) }; assume { Resolve1.resolve (C06MapPrecond_Map_Type.map_produced ( * self)) }; @@ -4275,7 +4275,7 @@ module C06MapPrecond_Counter_Closure2 goto BB0 } BB0 { - _1 <- { _1 with current = (let C06MapPrecond_Counter_Closure2 a = * _1 in C06MapPrecond_Counter_Closure2 ({ (field_0 ( * _1)) with current = ([#"../06_map_precond.rs" 213 12 213 20] * field_0 ( * _1) + ([#"../06_map_precond.rs" 213 19 213 20] (1 : usize))) })) }; + _1 <- Borrow.make_borrow (let C06MapPrecond_Counter_Closure2 a = * _1 in C06MapPrecond_Counter_Closure2 (Borrow.make_borrow ([#"../06_map_precond.rs" 213 12 213 20] * field_0 ( * _1) + ([#"../06_map_precond.rs" 213 19 213 20] (1 : usize))) ( ^ field_0 ( * _1)))) ( ^ _1); assume { Resolve0.resolve _1 }; res1 <- x; res <- res1; diff --git a/creusot/tests/should_succeed/iterators/06_map_precond/why3session.xml b/creusot/tests/should_succeed/iterators/06_map_precond/why3session.xml index ff670a8aba..edb3d18bbb 100644 --- a/creusot/tests/should_succeed/iterators/06_map_precond/why3session.xml +++ b/creusot/tests/should_succeed/iterators/06_map_precond/why3session.xml @@ -2,8 +2,7 @@ - - + @@ -12,7 +11,7 @@ - + @@ -40,25 +39,25 @@ - + - + - + - + - + @@ -67,25 +66,25 @@ - + - + - + - + - + - + - + @@ -94,7 +93,7 @@ - + @@ -109,7 +108,7 @@ - + @@ -140,25 +139,25 @@ - + - + - + - + - + @@ -167,37 +166,37 @@ - + - + - + - + - + - + - + - + - + @@ -216,7 +215,7 @@ - + @@ -234,10 +233,10 @@ - + - + @@ -248,43 +247,43 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -294,44 +293,44 @@ - + - + - + - + - + - + - + - + - + - + @@ -341,23 +340,23 @@ - + - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/06_map_precond/why3shapes.gz b/creusot/tests/should_succeed/iterators/06_map_precond/why3shapes.gz index 48584ee07cfa6403f112c80b072addbe0320d4ee..3f895c3b5c676772bcc08f4098e98a63ddfcd3db 100644 GIT binary patch literal 8930 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 Gpa1|lRItqe diff --git a/creusot/tests/should_succeed/iterators/07_fuse.mlcfg b/creusot/tests/should_succeed/iterators/07_fuse.mlcfg index 726297dd40..3eaa1eb55c 100644 --- a/creusot/tests/should_succeed/iterators/07_fuse.mlcfg +++ b/creusot/tests/should_succeed/iterators/07_fuse.mlcfg @@ -498,7 +498,7 @@ module C07Fuse_Impl0_Next } BB0 { _3 <- Borrow.borrow_mut (C07Fuse_Fuse_Type.fuse_iter ( * self)); - self <- { self with current = (let C07Fuse_Fuse_Type.C_Fuse a = * self in C07Fuse_Fuse_Type.C_Fuse ( ^ _3)) }; + self <- Borrow.make_borrow (let C07Fuse_Fuse_Type.C_Fuse a = * self in C07Fuse_Fuse_Type.C_Fuse ( ^ _3)) ( ^ self); assume { Inv0.inv ( ^ _3) }; switch ( * _3) | Core_Option_Option_Type.C_None -> goto BB1 @@ -510,10 +510,10 @@ module C07Fuse_Impl0_Next } BB2 { iter <- Borrow.borrow_mut (Core_Option_Option_Type.some_0 ( * _3)); - _3 <- { _3 with current = (let Core_Option_Option_Type.C_Some a = * _3 in Core_Option_Option_Type.C_Some ( ^ iter)) }; + _3 <- Borrow.make_borrow (let Core_Option_Option_Type.C_Some a = * _3 in Core_Option_Option_Type.C_Some ( ^ iter)) ( ^ _3); assume { Inv3.inv ( ^ iter) }; _7 <- Borrow.borrow_mut ( * iter); - iter <- { iter with current = ( ^ _7) }; + iter <- Borrow.make_borrow ( ^ _7) ( ^ iter); assume { Inv3.inv ( ^ _7) }; _6 <- ([#"../07_fuse.rs" 42 32 42 43] Next0.next _7); _7 <- any borrowed i; @@ -562,7 +562,7 @@ module C07Fuse_Impl0_Next goto BB9 } BB9 { - self <- { self with current = (let C07Fuse_Fuse_Type.C_Fuse a = * self in C07Fuse_Fuse_Type.C_Fuse (Core_Option_Option_Type.C_None)) }; + self <- Borrow.make_borrow (let C07Fuse_Fuse_Type.C_Fuse a = * self in C07Fuse_Fuse_Type.C_Fuse (Core_Option_Option_Type.C_None)) ( ^ self); assert { [@expl:type invariant] Inv0.inv (C07Fuse_Fuse_Type.fuse_iter ( * self)) }; assume { Resolve4.resolve (C07Fuse_Fuse_Type.fuse_iter ( * self)) }; assert { [@expl:type invariant] Inv2.inv self }; diff --git a/creusot/tests/should_succeed/iterators/07_fuse/why3session.xml b/creusot/tests/should_succeed/iterators/07_fuse/why3session.xml index 3441e96b99..76ac766e53 100644 --- a/creusot/tests/should_succeed/iterators/07_fuse/why3session.xml +++ b/creusot/tests/should_succeed/iterators/07_fuse/why3session.xml @@ -2,13 +2,14 @@ + - + @@ -39,23 +40,23 @@ - + - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/07_fuse/why3shapes.gz b/creusot/tests/should_succeed/iterators/07_fuse/why3shapes.gz index 96d2692c55dcb06ef4ed24b1f78325506b2794a4..afdd8f15bdc27c511664cdc93fd68c0cc0af15d4 100644 GIT binary patch delta 1373 zcmV-j1)}=n3gHTn6@QrQTqxc|nuBGHg{4(;h{Q1#bkoTwJNCr(?k4{}1r6P_$E!^? ziVtll>hV!8>brOA%WwWQUe=%D`SN@^{;-zoci*qBfB5I)Cr5T=1rF+xI=Wl=*Ym0W z*u{%u{^7xKC!N}-Q&#?+EL$;ddD*i4EGkB+SrzILt#0k(%YW$}s->xX!ay#waAhaXSJI9US!E>SPf$6t}s`c(#M!xw<6Sb_=-jG{WpXwk7kv3!(|yR`vP3{CAdsE zR^c*)%gGY%Zi9F;Mvf)^=y;9(Za;(MbU%XRbW;~iEoE^b_f5$N)tC`uFG1@(J$D#B{+pSt10=0pl7ko|ZL7mfW4S%=74(tb99-go9 zJdxj$d`jJi2R~ZR_o&^vu%~CU zq<=KOL5nZ!4NMf=v}(ktU_p~vub9i@{S0khE|U1B#>*dF&Ly~pB%&Hv2Ec>QDC3j?qndM$9LN zJi4yh(eB>t(T*PJnVScXI@QSiztN%Z>ljhiftM{OS&_mnopxq_kGR`3)HD@0dzBcf z2TIMzvR7qaBV}%<>u=SwOTRHsxXUx2s7dmcwrdliDcH;?iV<+UcuEvUVMczFSbsvc zGC_K7fOVuZ9rddBN+^ZHPgIl`$=5)vvDzvtt+3oOOD$NkVx5X!abnbypA*pQF9{{sekUGFg;#@#sEf;j!V^dB52PCN!CYj7(MD`v+-|@a5x~xh56HSD6UGzl60XiCl)*=waS@3}B zA-Tj@rY%#JNemkkmSNzSWn<`iK*`9dl%6PowwXbf1{zG?o1pZXGs~&vU{*OP(GGFY zX)fUe1BF(}(4ieBj8GEP5V8ngh=4TU86EK5H(>~vRoZCuAq>h0E@T!FODo-=0_)27uyUVHv3#v4TRv`C+2Vc{<)hTBD(c~_Zso$u>wooktBSCy7|`mvWELir z+`}<1j{pscPIb4IcfNuNr-RT%6OW@um>g90!DYBf77P$LyG@NzNH!y+v?xT_T7<~C`*;a9nkhUYlIackef)Rb>3lwY z4*si`U&?U>JAWLG?%9HVY{WoMhGJaQX1p&|RVKl-h*>vA`r`~XiH`o$pR;H=h-|nS zy_pt;$}AO|5`K}?QDv!otOjN4;JD|v9*$Teadt4W=-|vYI=Je>OwIFnYBuclGf+nNBTz;+bY+x2iduaDukYtvh3>RXt4(0%&Y!-k@eo{B?ER-8t`E*VlEQyMHpBM8_uWl3Yvg3cb7G?^m(=x*;x~ z4%cv=$Ztt5rRc+h8?ER2)C`+1swa*VjoJ&Qp8M8JVYy>&^?JHo`_s`MuJI+k>!k_J z?2B8jj3{D>?^mV37|CW|`Yw#MGao=bAj^Z;FW%SzSeUrOp+}b#?zic9J-g#&kvX7BrFd^0_=d%+TiLB8hKmynN_#CZVNH{!59^72XUf zG*xhWgIuopV(}hjq$!KZT{s0ha#l)Hxls*P1+D6=7k4+oD9xqLVi3zXmPC4y;=7ig zkTPNw20Fz<)!{(4d66YSWxi&flC%Hkrhj#~Jf#xxlVflm*%q$k1!miiCfcsx7~PcT z!+i3T$JSLl*4>*q+L1#>`18O~rx~&TH#*dP9V5y*?Ba5YC1NOir9W<97)sr`kr^nu|beEm4+%qxuML^ zcqeKo7)lKMf0{gJD4Y(1j*`kV295~tpz}TRe(19%@sBh`6^wdL8ISH}aV|$6(D7c; zjxpA+Q5#eSr9lzHhTLEb92y)$M|;P(7X+Meq#p*N!9{4CIj?EF-I}3c)L1YujFf0A z&UylpVniQ$8aUyqCklM82CoOqB5WZ79dN~IKLjeJ@47Ay|GgeMOiq+SW)Z#+k%Q - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -87,79 +87,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/08_collect_extend/why3shapes.gz b/creusot/tests/should_succeed/iterators/08_collect_extend/why3shapes.gz index b5dd105c77d199aa6f7ad7cca7725d55dfb0f8d2..e70c2f02ebed099bf50f2220ee2ba1cf31b80a1b 100644 GIT binary patch literal 3502 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 DHHP(v diff --git a/creusot/tests/should_succeed/iterators/10_once.mlcfg b/creusot/tests/should_succeed/iterators/10_once.mlcfg index d48d3cbf58..de3a095ba1 100644 --- a/creusot/tests/should_succeed/iterators/10_once.mlcfg +++ b/creusot/tests/should_succeed/iterators/10_once.mlcfg @@ -396,7 +396,7 @@ module C10Once_Impl0_Next } BB0 { _3 <- Borrow.borrow_mut (C10Once_Once_Type.once_0 ( * self)); - self <- { self with current = (let C10Once_Once_Type.C_Once a = * self in C10Once_Once_Type.C_Once ( ^ _3)) }; + self <- Borrow.make_borrow (let C10Once_Once_Type.C_Once a = * self in C10Once_Once_Type.C_Once ( ^ _3)) ( ^ self); assume { Inv0.inv ( ^ _3) }; _0 <- ([#"../10_once.rs" 45 8 45 21] Take0.take _3); _3 <- any borrowed (Core_Option_Option_Type.t_option t); diff --git a/creusot/tests/should_succeed/iterators/10_once/why3session.xml b/creusot/tests/should_succeed/iterators/10_once/why3session.xml index 6fc2952e6a..8763db7e1e 100644 --- a/creusot/tests/should_succeed/iterators/10_once/why3session.xml +++ b/creusot/tests/should_succeed/iterators/10_once/why3session.xml @@ -2,6 +2,7 @@ + @@ -33,18 +34,18 @@ - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/10_once/why3shapes.gz b/creusot/tests/should_succeed/iterators/10_once/why3shapes.gz index a9dc0f9ffe15e149e4cf0f19fe7fb68c0b8892d4..f3293c7dbe52dd8155295f9cad250eec68246582 100644 GIT binary patch literal 806 zcmV+>1KIo^iwFP!00000|E*L_kJ~m7z3W%#m~Ji{lEaSzIT%I-30O3T06J#D&vwyW zYiqmPLOym=h!-CcY7)x3mL`x=g?$La86E84psn)C1G@$fp5 zuD-ztU1MI3lmEko)5uJCemQ>~*)Sind$WJ|cyM8)T{G_6I33%i_~97hQ>CH#+Q>v4k7CsnAf-njS8a1T_XWs})A^`Y@X~jfZ%ysydltJn)-~oe2C};;WvhbbjJ_5@ zs|Z>|=%Qh1e+5`r`I?p8o~>>Ruw^zqBMa|kUEdZLFK=?a>4|vuV^rVa#RaZ2aJQyQ zT>9VI&wmy+vaZ?BZ;5no-1PjCh7LZBF`IEAHg{W7zb2F>wo zPdCi1vQG&uYK!|sEtZkzl6*Rp`+hdRg$FwwkJF!v{~4Kjcgr|gSuPeMrVbxci2HQe z>*KCU;+Jp7A$&Pk7kEy;8Hn}EgTswnx0?|-)MwX}lZWz+Yt|0p4F_@MpiD#H#lYpR z#qd2G>Ndx$l2w%~t6a~L)-CPKsE1q0ZnaC8QgRi`T(CH>SyGOuA( zYP}*tMCm|k8W~^&?|De>XeNxb=vxXsB|Ydj2#MAw*FYlY)ES4#Ps=3_${0=%3xsYU k+({-C=R`S;TyVw|a?qX_A2`KWAZ!Eq238GfD@zCf0AeSK-T(jq literal 807 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 TjTC>1uGjq!2cGIJZyNvr;IZr6 literal 2039 zcmVG^bi{NoOH@BVQ2 z@-KgS{MxW%k$A(a2n|$GG~#&YFHh(0*U&#V(!YP-s75#DA+H{OM5BjKET3xlln>KN z92QNM$PCU+Ti<`Vy!@xJ!&*BVqtIA#%t;Upmk%Z0K>$)#4O9)U8uli3z{#YplLs1TfFjqsBe4Est`WKQKZv0<=y?pK=D=s`KvP7{F=f9-yaoyhk@*xmrGY9Pd zd%Aq|^mnOZJB?;dn+BnX?HD{CqhE$Ui+?cy<3JlKf;KeVE)npg86YGvW3bc8iotGR zXtVc04l59C4q=c(j$L`5f2A+5RQZ)T#HL z+r*Oe3oxWel|kw&a!P#wJMO=O=l%C2Y=4#I{dGnBe{7`SZ_>bLG|+9EXf53krY`XpE84x zx3VM`S=vbEG$^KN6_BV|f=xhlzLnH$0V>(bXWw{cE_zJP0vjZ=>MG-zx#%ZXhw3^_ zG@*oF5<~eg8{xOjYaODk*}5txvB*TCXxup>hcDLUB#v8~;fj5jCRFyJvd_26NxoW6 z>UKHd0)$G6EJ>0w2)tEJxPY=zbW z9B!`{-fPF%to$}We}56ea8OmCm-F*WI6ro$7kViyF1aS(!0phRABJmesSH_bMb*|L zt2>ngn9StHm)Ffr4>U{{Ygm(K;A!ZE|`Jx8OLm;S7=MPbUfo;^TpT|1d1 zd-EG5Jqqf@9;%D+VMMa1GKDclZ1YQD{*=H>oE|U^0kJCOyX~Oi>+C4qqp&C$Mb=CSF$Ge_dcAzP&K~vU1}NkAOCcI>}SRCE@_`nkDqAD z`7v##zYp{Na{kgcsq5e0`wwXc4omm`see9y{@OQUs05RRqU4PjD#nsfR@~n(0FBV4 zgpyFSqLITcMiR=BSiFaM;8e>+_o$%bX|^yohm6NjR2l6{tz38KOr($*zS?I~&SkVkbR zlBbD3to&gf#~P7PheMU)x6CsQQ|?Idk97i>*Q9&Dge0%A@{I_E#+aV(V32{1I$GL{WG?X>F;jd3RmS%q|J-p65CVhn{u+6 zhaa(#H_C>QV>vr{X$b!(k<=QLu!v+n+t|dZ(X1eptYsrEV z62aSust*|*{D8p_$xeheXr&Ao5rRNwdDr^BW6Ji)ptRQprEyYk8w9#4qPNzB-WVZd zP@!!hVjsBlR%HGqt_)H}jN@bz9Vb~jE*yt#7j*o2p!7%?EP5pZ^D+wEvLJy$IT*{)MN0Zy)%|4FC8P}yNHB6biB zU<}bi)Iu`Kn2?a2@;7!Wy3W!D(5#icmRcKW4Wabpw>64(9yt|n?UYVO?RBS=WR%KI zYuYEV7pj**Qt8C(^sRG>46V`8P-~&BuDvvdN{MtW6>n&BPKA8yLIN#>)@cu0p@UGu zQs0RNBVE2(ajM?fsnUk`El}~a#B!j$qk0j^uMr^WMVFl#C$tl*z4?=_wd{BsEd<8f zjtRjz7m>AH=UXj+V|KmjFh5H&2imCsL5dz3_e@1@BtfQAL2+pF#$j*l)L80oA$F12 zP5mA%0(8icMZ^~M4vj-vgbtNM=} - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/13_cloned/why3shapes.gz b/creusot/tests/should_succeed/iterators/13_cloned/why3shapes.gz index 67a078ee9c28702680be6bc3ea9ecef8381f6a2b..4f84fc3b52d3e8410f0ff3540ef0add8c66ce143 100644 GIT binary patch literal 717 zcmV;;0y6y{iwFP!00000|D{w-kJB&^z4uq-2)h@Lzm3G9s)!s3!2!ufDkrgFMcb6L zEb#BKW4m?BUJ!fe&W!zD=FPn1)kAaoYLD*JJiGbyG#%bFym@%NI)ArMhi8M@l|9bW z_+xM<1NQOJU_%Y-mc#T93{5G?DNZSLS0qWGD^s8$H8rffe zU;t$dpe~&QdT%$|&2Bol(WrK1HjSU=ra-o{^Sew&;(1LbqBaNtF_3h{V4aD{I#+n9 zK&gmzO~VtxO-(Gkyz1?yQNVRV|8Dy{+r#NH54g?)w-+^}gw)UyGQ)01925$p%Di|9 zjLNx8smLj>7A7<9$`+{PjX9vK0}B16)ewhXH>p1i>x~_z{c-2cQ85YXKLqjDk=ch> zJv|-1ge%j*U~E69d!MGgGl8MAZ^N&_sO>T-TE`M9cQA=Ls5(#PB=0_!llasNEGAuj z(w0?+@yzZt?VerOWtS!!*Pep}G9cSxLs<(98)Nqhqd-;*q){Nd2n<}sUdfAmIbWV6 z?B0HJ+kTqo>F32b2_L7_Ud^=3aRISttPsTt-5AX7F11A#x!CXEew|nKqFz!_ixA=Q zR|z}|;N8D)$d@_NG|G2}Mqe*p+b*B3%7iR?u>RIuYGt7;@9F04VDatX(dXSu#dcj) zqxq{`#0!Nx+pK&iM9yW-Z`l8br;UHB6$4P=^}xg{&#!491>%=BO0NTViFSwA7*kfRmCd%e_a^Q>GjhOb&f->A-v1y9Sg7 zsX=Jq8kh#EfoKR|(0~E~wFCE(GE4~dQX(gMYe(j|3hmLJH5fET_aNas>k+r3CrFM6 zBv7OTR+18@1Ybb-4kRT*1Lxij0~y#bxN!g&5tFo+jtqVQkvq^IK;ZNT{{{d66{T3M literal 720 zcmV;>0x$g^iwFP!00000|D{w-uhTFPy!Th+20Siae+P*}RS`K7f&-F|JUNLC6>U<| z@_>Jj9owl}-UZP^ySw&GJ-cJSe5lS}&B>mtCp(|_)A*+1)x)dJ<-6IBPZ~8FbDF2& zM{my>%GE6ih~-T>0BDgztYv`! z4Jcs%wQ(KLd$W7o9j4I^x^6alSGj4fGURc#?vThxSTD&$&;~vr8ltWcY!flrrV7s$ z$Q7|IX?P^KsfmS`7iYUUDBv=oe;@lYoAJE%1FrqR&8mjvkZPJkrrB+ay+Wbu+%KL3 zU8h{eRHT#_1Ct4NW%E?>#vG8x0hxY1s*n9yckz4}wmZ{L$J4=Hf@0#;fAHe3Ei(_H zdfty;{FZ6d7@N;=->2zlwP$F}TmP*wYT87KwxNXb9!x?Gb(u$Vl6N2TO8D0m7LvAH zY4WIjduDr{4o}w4vW=Y$V^2W@X^>5}p)3XZiLrZyK_Dvy(jbtn0zFr@SM(xZ)|Y=0 zrkmz@`e}z3$8W1~BHrysbMT#Nu7+BAxd2%(mybe)?lfk1o0=?*tQH*Yugj(!)^kcq zA;O>IDuX8xy!{sr`8-GLNPc^0@b==j$L0AdjL4D?%lBrj<)N}PtD76b!VTfU>+N&J zW?NLl1t@Y6He~K(wft6yl*^Rgu>TKF6F!>_p-cccM26Z)gk|43E*!%K(*cO=Dz2EK ziYTl=p$)Z`GTbA}IxKiE7$?SYL@=PPt2wD^C6y=uoZxN{1aT^?pn`JS1Lf59!VrWF zsi0OM6$k}f0aHK~5Ct9#3XmrN&K>jv0YDZzYeh%!(AnO2VuC4D7!*eLAX;04FeaF} zjtS`%Sz2@2vzlWk#R9^2pdPtS_J&$C076W1js+8pQsZiWJtBzQf&Ks?ofE4A2LJ%U CnO0-~ diff --git a/creusot/tests/should_succeed/iterators/14_copied.mlcfg b/creusot/tests/should_succeed/iterators/14_copied.mlcfg index 04d329945d..14a5a551d8 100644 --- a/creusot/tests/should_succeed/iterators/14_copied.mlcfg +++ b/creusot/tests/should_succeed/iterators/14_copied.mlcfg @@ -54,7 +54,7 @@ module C14Copied_Impl0_Completed type self = i use C14Copied_Copied_Type as C14Copied_Copied_Type predicate completed [#"../14_copied.rs" 22 4 22 35] (self : borrowed (C14Copied_Copied_Type.t_copied i)) = - [#"../14_copied.rs" 23 8 23 43] Completed0.completed {current = C14Copied_Copied_Type.copied_iter ( * self); final = C14Copied_Copied_Type.copied_iter ( ^ self)} + [#"../14_copied.rs" 23 8 23 43] Completed0.completed (Borrow.make_borrow (C14Copied_Copied_Type.copied_iter ( * self)) (C14Copied_Copied_Type.copied_iter ( ^ self))) val completed [#"../14_copied.rs" 22 4 22 35] (self : borrowed (C14Copied_Copied_Type.t_copied i)) : bool ensures { result = completed self } @@ -721,7 +721,7 @@ module C14Copied_Impl0_Next } BB0 { _4 <- Borrow.borrow_mut (C14Copied_Copied_Type.copied_iter ( * self)); - self <- { self with current = (let C14Copied_Copied_Type.C_Copied a = * self in C14Copied_Copied_Type.C_Copied ( ^ _4)) }; + self <- Borrow.make_borrow (let C14Copied_Copied_Type.C_Copied a = * self in C14Copied_Copied_Type.C_Copied ( ^ _4)) ( ^ self); assume { Inv0.inv ( ^ _4) }; _3 <- ([#"../14_copied.rs" 53 8 53 24] Next0.next _4); _4 <- any borrowed i; diff --git a/creusot/tests/should_succeed/iterators/14_copied/why3session.xml b/creusot/tests/should_succeed/iterators/14_copied/why3session.xml index 7f3b4dac9c..ec701e6900 100644 --- a/creusot/tests/should_succeed/iterators/14_copied/why3session.xml +++ b/creusot/tests/should_succeed/iterators/14_copied/why3session.xml @@ -2,33 +2,33 @@ - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/14_copied/why3shapes.gz b/creusot/tests/should_succeed/iterators/14_copied/why3shapes.gz index f54c3e28be60981e9c73f92b378130909b26cf6d..98910664635a9f0a364b30d9d73cb784978e1415 100644 GIT binary patch literal 718 zcmV;<0x|s`iwFP!00000|D{w-kJB&^z4uq-2)h@Lzm3G9s)!s3!2!ufR!(9=#kMJF zS>WGe$9C(MUJyOBGh@G(c{4A4_0Sx@+JiebFK#|=r~R9THxI8@r|)*Ve=(?C*~2`I zKL&R+U>_e1Hq@|gIZQubXi7;=aY~`PAV~sUm;w!{skwE#!|Au-3Cr8u02on1Y-EK1 z11Mtvb?F??d%JnsOoy!-jcQkB)A(s_3gl^a{yCG8cwUoeAvLsw%&_Yb2Zh3@GA~{N zqjD}&DssxJg~^P&umvi4WezCofI@$6HN>IUP3jNBdSi!acX)QEsF(!xAEv##jLbg7 z>T$dO60S^pgR%Xb?tPke&IE?ez75|7qqfVWXdO$a+`%N~pz1uClf3&_PU2I~u$Xl9 zNn2JO#xuL)^!(z&F1s|@xb_?*kOA2i8_HT>*ciK27zMIgAdLdqSzzEQ_DWvl%lYyo zVR!bMd+Mioo_?NEmFY2C(T7(FX zzewO&0Pp^VL*C~|(x;Jj2Q|%mxhJDUQ8xlr>y4O*PS2 zgGMWfv7?rF?t}o@GZ=g7nWIu5Z;6$S(o%~G08UD-EcYHsPnmL5Fgf(Sr33G2?;21V zqz0jZYhW6v2BIN=K?4c|)DGNB$}l0+ONpH5tsR-;Dzry?)?m;W-GHQIXyDx2VITt= z1~(1>BVv;F(viV0Abk5I;XLaRx1%RWjtC@Bqy$!y5~l=TK;#DW2eWp`WB&#K0BjXn AHUIzs literal 721 zcmV;?0xta@iwFP!00000|D{w-uhTFPy!Th+20Sj_^=FVcR27jUAvhrU$di*eP|=r^ zwmjh9W5;&umR=A&w7YB1WM_BMmk-tPtKGX}_3RGE?L57yMD_4$b^30%)3YJX%I**I z@S}G}1NQZ6gN7O2E{E|442vmEDaI7q3zA0Ag~`*wrvuZq>)W*G=pXVZE{a{IuV>Q&3F3`VaHuE+exK zp?cg-U;LGMGKltby!UB-a>g^X_O1UmNSZd0l65GNd|p1kI#u%e7hfRWIl9u+~=ccYLaM~iF#s=7*O zu9>D9HE6P8&M}TXalAt*ddUT~qaYN4bX_fIRcobX0T2|sK~f@^bdpIXTn|jJv6q$- zw6ua+gVG>12n}2V(?B(NFlZp20E8H!A1DBEI65agibLmm>xn5cs1P)g8&FTiPW6^K zG5{f534xMJ&X^r*?{v9<@b*cpc9tMg - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/15_enumerate/why3shapes.gz b/creusot/tests/should_succeed/iterators/15_enumerate/why3shapes.gz index a7cee1ca114418f37f86dbdb4f2451b1816f79a8..f56bffe9e54c8f56ef981fec45d3ada28d032b51 100644 GIT binary patch literal 1727 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 0 /\ UIntSize.to_int (C16Take_Take_Type.take_n ( * self)) = UIntSize.to_int (C16Take_Take_Type.take_n ( ^ self)) + 1 /\ Completed0.completed {current = C16Take_Take_Type.take_iter ( * self); final = C16Take_Take_Type.take_iter ( ^ self)} + [#"../16_take.rs" 23 8 26 9] UIntSize.to_int (C16Take_Take_Type.take_n ( * self)) = 0 /\ Resolve0.resolve self \/ UIntSize.to_int (C16Take_Take_Type.take_n ( * self)) > 0 /\ UIntSize.to_int (C16Take_Take_Type.take_n ( * self)) = UIntSize.to_int (C16Take_Take_Type.take_n ( ^ self)) + 1 /\ Completed0.completed (Borrow.make_borrow (C16Take_Take_Type.take_iter ( * self)) (C16Take_Take_Type.take_iter ( ^ self))) val completed [#"../16_take.rs" 22 4 22 35] (self : borrowed (C16Take_Take_Type.t_take i)) : bool ensures { result = completed self } @@ -698,9 +698,9 @@ module C16Take_Impl0_Next end } BB1 { - self <- { self with current = (let C16Take_Take_Type.C_Take a b = * self in C16Take_Take_Type.C_Take a ([#"../16_take.rs" 55 12 55 23] C16Take_Take_Type.take_n ( * self) - ([#"../16_take.rs" 55 22 55 23] (1 : usize)))) }; + self <- Borrow.make_borrow (let C16Take_Take_Type.C_Take a b = * self in C16Take_Take_Type.C_Take a ([#"../16_take.rs" 55 12 55 23] C16Take_Take_Type.take_n ( * self) - ([#"../16_take.rs" 55 22 55 23] (1 : usize)))) ( ^ self); _5 <- Borrow.borrow_mut (C16Take_Take_Type.take_iter ( * self)); - self <- { self with current = (let C16Take_Take_Type.C_Take a b = * self in C16Take_Take_Type.C_Take ( ^ _5) b) }; + self <- Borrow.make_borrow (let C16Take_Take_Type.C_Take a b = * self in C16Take_Take_Type.C_Take ( ^ _5) b) ( ^ self); assume { Inv1.inv ( ^ _5) }; _0 <- ([#"../16_take.rs" 56 12 56 28] Next0.next _5); _5 <- any borrowed i; diff --git a/creusot/tests/should_succeed/iterators/16_take/why3session.xml b/creusot/tests/should_succeed/iterators/16_take/why3session.xml index ca91def847..7f3807ee32 100644 --- a/creusot/tests/should_succeed/iterators/16_take/why3session.xml +++ b/creusot/tests/should_succeed/iterators/16_take/why3session.xml @@ -2,7 +2,7 @@ - + @@ -18,18 +18,18 @@ - + - + - + - + diff --git a/creusot/tests/should_succeed/iterators/16_take/why3shapes.gz b/creusot/tests/should_succeed/iterators/16_take/why3shapes.gz index d1e1dccf889ef85be13ed244bc313fac222b0755..5be8be21a59a2e9b0fc634824fdd44119ed4a823 100644 GIT binary patch delta 863 zcmV-l1EBoy2ImHl6@S)t76n96*2e;K2!b&jpy;KAjysTTxeYpFPo2!P{r9CloG94< zMK_1or1&1mM@jzvp*sHV-u$up@XPTqPoFDUJ^Zja{pk+VhhZgMZap1Gl<}18Z`i*{4<0 zZ0xQY=cQU>o)@h3k}CvNxr^E~-Wi|!$KkB8|u3YjPB z-+f7Ozs#@R62tzm+quOb=a&y}c~Vuxm&YI&7gi+Q0-MlRGUljN&S#i~J9tzb@*=cR)M1MyRjm!|!WAGSv3IvCfUt+*h zEL-29wNP77vHJ*qKTIbnzN7!({;{wVRO!B_^NV_(S z4xuS~M}LSQTI9_>s*n6ieTt6}a8G@%EV8J6b0Z14OZ6=`J;a)c;e8s8U$0&Xcr%{M z6u6A)ug@zIc{7FmiaTEglmGj4K74d*mFG;{8G@9O^zt8YZ5v z7y1gsE8{tSk&3HCBg_dnRVy#)-YbHjC zt{X?ggc}@k6b5xy0kpsfU|QWO0@RL}`qA}+@?t>8oM3}z=#}b4Z(Ies1=WIVp>9F6 zfLJZ0RGf3x_sEQ{c_&@3omQTYN_eha-?NHC%UKI%1qj#CQjH@>i6EHax*r)RIWXUW p))Bx90C(OEHFYdu96GND5QFRtjI!f3fg=D5z`y9W#XP?V007w}s_g&( delta 872 zcmV-u1DE{g2Ji-u6@RwvEDDICJ`2nt7>wZnMK3LM+(5CVHrN?^nq;Q!zb`GxiINRa zv^m5k#rH@(O7wRR&GC2t7LLtFI2`xW_+z7*hwoRXKm30DaI7tF;GkXkx5G5N_u=Tc z|NPmZlTK~&YJNIdOp#42Cf{73BBL%;#3O2M?ZfNa>2IeCSbr}yaA&GGaJB^6OBSsFwJ$>RjX1=5kg&r(>Fy^3BVk12UrRR zTo;Y`x_Dsmu;Q`niUc6zYoAT5@T~@?gCCD)33**K&cz6)iq=@3WfQo_B#McZ05YSl z1**AC5yTX*S$`D4xl#F5P|bwNTjuL0-%qb^FX0ph+KGSK{ydH0vPJ(edyo6^Hwu|X z+Q0vj<9?Z5gCmB`{^`jd!f|@}2##k}MS6Lh1>>TKNiS6{>Lt5PM!Cp&$;Bn*N?|z{ z7te_clY8dp=y%iMF#Q>ZPp@Ao@K^seq*ceckNeTTIDatDWx=_5Hzon8ZI;*`XOHzK zTHWqX;gABJQ|aaowFBuuFT{`t-uL54iBI%DFa1#2nRZMP_HbPVBz1}c>$86442lvU z`n1jYxw%P2uAk}z?RxG*!Xh1|M~B9tZp&#$eJwuX9r4L|5g#q-n8LF7#8s{b<|~A0 zJ!Mk&yMKUmdSwv{p{@6ikbo4x+fC{M@~bXTe2Rd3UEtawJ9nYIk%pG)E;w#`NVRWw z)B89azg@i&@}^CfZg7>lusp9w)J-=w3+_A`#_-qad>Ltq)%Q-^X@;nJp-4<|?u0BC zN^brOhrZ8|n~LXgLtlk7LbmA(RgD%=MvK_o@qaBxLoBnsy+YE!lTOc5>5j8q-+ZSk zTg?Fr_d0(*im9@xi)n7ZcK?s1oqwxUWWrhu!9>tTc%^vsiWw9k3h*&Bs*|1Qu;U$c zY!witVX`+&L`5ShM$3dBJaQBk&8`9HfDyoUrqcxQA+Ufp8r+$vltL|4KSZmgvDzXu zU|~AY9jFdu2ciS)prqRI9+dQK=S@&C0t2Zn=UVX~WAF`!j - + + @@ -21,274 +22,274 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/creusot/tests/should_succeed/knapsack/why3shapes.gz b/creusot/tests/should_succeed/knapsack/why3shapes.gz index f239223537fb915a7c39345b2150e2768d1b76f0..8057505b2619652372b2220fcf9faeba396f8ef5 100644 GIT binary patch delta 5057 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 XwpKBbR<^KTi#`4yfTPEk%z6L-VfYpZ delta 5049 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
g7E@YK(HAG|xug&!HY6WgQ&uv`g~TvuKWO*) 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 PBlh@z#_R?Q)Or8_K57HM diff --git a/creusot/tests/should_succeed/knapsack_full.mlcfg b/creusot/tests/should_succeed/knapsack_full.mlcfg index f831d8841a..25db524582 100644 --- a/creusot/tests/should_succeed/knapsack_full.mlcfg +++ b/creusot/tests/should_succeed/knapsack_full.mlcfg @@ -3015,7 +3015,7 @@ module KnapsackFull_Knapsack01Dyn _34 <- Borrow.borrow_mut iter; iter <- ^ _34; _33 <- Borrow.borrow_mut ( * _34); - _34 <- { _34 with current = ( ^ _33) }; + _34 <- Borrow.make_borrow ( ^ _33) ( ^ _34); _32 <- ([#"../knapsack_full.rs" 88 4 88 55] Next0.next _33); _33 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB14 @@ -3101,7 +3101,7 @@ module KnapsackFull_Knapsack01Dyn _60 <- Borrow.borrow_mut iter1; iter1 <- ^ _60; _59 <- Borrow.borrow_mut ( * _60); - _60 <- { _60 with current = ( ^ _59) }; + _60 <- Borrow.make_borrow ( ^ _59) ( ^ _60); _58 <- ([#"../knapsack_full.rs" 98 8 98 59] Next1.next _59); _59 <- any borrowed (Core_Ops_Range_RangeInclusive_Type.t_rangeinclusive usize); goto BB32 @@ -3180,13 +3180,13 @@ module KnapsackFull_Knapsack01Dyn } BB47 { _95 <- Borrow.borrow_mut ( * _96); - _96 <- { _96 with current = ( ^ _95) }; + _96 <- Borrow.make_borrow ( ^ _95) ( ^ _96); _94 <- ([#"../knapsack_full.rs" 111 12 111 32] IndexMut1.index_mut _95 w); _95 <- any borrowed (Alloc_Vec_Vec_Type.t_vec usize (Alloc_Alloc_Global_Type.t_global)); goto BB48 } BB48 { - _94 <- { _94 with current = _66 }; + _94 <- Borrow.make_borrow _66 ( ^ _94); _66 <- any usize; assume { Resolve3.resolve _94 }; assume { Resolve4.resolve _96 }; diff --git a/creusot/tests/should_succeed/lang/branch_borrow_2.mlcfg b/creusot/tests/should_succeed/lang/branch_borrow_2.mlcfg index 24527d09c1..46bb346dd5 100644 --- a/creusot/tests/should_succeed/lang/branch_borrow_2.mlcfg +++ b/creusot/tests/should_succeed/lang/branch_borrow_2.mlcfg @@ -71,9 +71,9 @@ module BranchBorrow2_F goto BB5 } BB3 { - z <- { z with current = ([#"../branch_borrow_2.rs" 23 17 23 18] (8 : int32)) }; + z <- Borrow.make_borrow ([#"../branch_borrow_2.rs" 23 17 23 18] (8 : int32)) ( ^ z); _12 <- Borrow.borrow_mut ( * z); - z <- { z with current = ( ^ _12) }; + z <- Borrow.make_borrow ( ^ _12) ( ^ z); w <- _12; _12 <- any borrowed int32; _8 <- (); @@ -82,7 +82,7 @@ module BranchBorrow2_F BB4 { assume { Resolve0.resolve z }; assume { Resolve0.resolve y }; - x <- { x with current = ([#"../branch_borrow_2.rs" 15 17 15 18] (6 : int32)) }; + x <- Borrow.make_borrow ([#"../branch_borrow_2.rs" 15 17 15 18] (6 : int32)) ( ^ x); w <- x; x <- any borrowed int32; _8 <- (); @@ -90,16 +90,16 @@ module BranchBorrow2_F } BB5 { assume { Resolve0.resolve z }; - y <- { y with current = ([#"../branch_borrow_2.rs" 19 17 19 18] (7 : int32)) }; + y <- Borrow.make_borrow ([#"../branch_borrow_2.rs" 19 17 19 18] (7 : int32)) ( ^ y); _11 <- Borrow.borrow_mut ( * y); - y <- { y with current = ( ^ _11) }; + y <- Borrow.make_borrow ( ^ _11) ( ^ y); w <- _11; _11 <- any borrowed int32; _8 <- (); goto BB6 } BB6 { - w <- { w with current = ([#"../branch_borrow_2.rs" 28 9 28 10] (5 : int32)) }; + w <- Borrow.make_borrow ([#"../branch_borrow_2.rs" 28 9 28 10] (5 : int32)) ( ^ w); assume { Resolve0.resolve w }; assume { Resolve0.resolve z }; assume { Resolve0.resolve y }; @@ -238,9 +238,9 @@ module BranchBorrow2_G b <- Borrow.borrow_mut a; a <- ^ b; c <- Borrow.borrow_mut (let (_, a) = * b in a); - b <- { b with current = (let (a, b) = * b in (a, ^ c)) }; + b <- Borrow.make_borrow (let (a, b) = * b in (a, ^ c)) ( ^ b); d <- Borrow.borrow_mut (let (a, _) = * b in a); - b <- { b with current = (let (a, b) = * b in ( ^ d, b)) }; + b <- Borrow.make_borrow (let (a, b) = * b in ( ^ d, b)) ( ^ b); assume { Resolve0.resolve c }; assume { Resolve0.resolve d }; assume { Resolve1.resolve b }; @@ -286,7 +286,7 @@ module BranchBorrow2_H } BB1 { assume { Resolve0.resolve y }; - x <- { x with current = ([#"../branch_borrow_2.rs" 53 13 53 14] (5 : int32)) }; + x <- Borrow.make_borrow ([#"../branch_borrow_2.rs" 53 13 53 14] (5 : int32)) ( ^ x); w <- x; x <- any borrowed int32; _6 <- (); @@ -294,9 +294,9 @@ module BranchBorrow2_H } BB2 { assume { Resolve0.resolve x }; - y <- { y with current = ([#"../branch_borrow_2.rs" 56 13 56 14] (6 : int32)) }; + y <- Borrow.make_borrow ([#"../branch_borrow_2.rs" 56 13 56 14] (6 : int32)) ( ^ y); _9 <- Borrow.borrow_mut ( * y); - y <- { y with current = ( ^ _9) }; + y <- Borrow.make_borrow ( ^ _9) ( ^ y); w <- _9; _9 <- any borrowed int32; _6 <- (); diff --git a/creusot/tests/should_succeed/lang/move_path.mlcfg b/creusot/tests/should_succeed/lang/move_path.mlcfg index 58b504f905..368678f19c 100644 --- a/creusot/tests/should_succeed/lang/move_path.mlcfg +++ b/creusot/tests/should_succeed/lang/move_path.mlcfg @@ -48,7 +48,7 @@ module MovePath_F y <- any borrowed int32; z <- d; d <- any borrowed int32; - z <- { z with current = ([#"../move_path.rs" 10 17 10 18] (2 : int32)) }; + z <- Borrow.make_borrow ([#"../move_path.rs" 10 17 10 18] (2 : int32)) ( ^ z); assume { Resolve0.resolve z }; _0 <- (); return _0 diff --git a/creusot/tests/should_succeed/lang/while_let.mlcfg b/creusot/tests/should_succeed/lang/while_let.mlcfg index 6153352bcb..fde49e8326 100644 --- a/creusot/tests/should_succeed/lang/while_let.mlcfg +++ b/creusot/tests/should_succeed/lang/while_let.mlcfg @@ -65,7 +65,7 @@ module WhileLet_F goto BB4 } BB4 { - b <- { b with current = Core_Option_Option_Type.C_None }; + b <- Borrow.make_borrow (Core_Option_Option_Type.C_None) ( ^ b); goto BB1 } BB5 { diff --git a/creusot/tests/should_succeed/lang/while_let/why3session.xml b/creusot/tests/should_succeed/lang/while_let/why3session.xml index e3c1ac8062..a13acc9409 100644 --- a/creusot/tests/should_succeed/lang/while_let/why3session.xml +++ b/creusot/tests/should_succeed/lang/while_let/why3session.xml @@ -2,12 +2,12 @@ - + - + diff --git a/creusot/tests/should_succeed/lang/while_let/why3shapes.gz b/creusot/tests/should_succeed/lang/while_let/why3shapes.gz index 5425689154da335908eced0c7a70e051ca9fd9d4..6e98992c7057c8379671c4026b4edf5bca5c3d94 100644 GIT binary patch literal 132 zcmV-~0DJ!*iwFP!00000|1FBK3c@fDK==EK8#U9#rV#}P2?U*mTjhF9u!BaLV1M5V zPVez}8-w*B?^N-V<~o(v5j~nMgeKvBE6=pFMGSZG+^%xs9ox8aEtctLO#e?UMc{zB m%$Na0M4hL-h*KKWll0xF+DksTQT>4SLhuFT*k*Zs0000A)IO~M literal 144 zcmV;B0B`>viwFP!00000|1FEX3c@fHM)y3$9W_&aO414r5(qjAca@to!Gbo@1pE40 z==2@V;X81sPx_<^-?Y@J%qK9wkIXf4k9&EiwXMWa-{?$vn(2jlU*#|DZ&9K2TjeNG yY=mOJMkzc)2e~Ye8Pj5j#`eYzDUcOv3|+Qemc7z};y8f33ibnxzU!ip0002m?n0vg diff --git a/creusot/tests/should_succeed/list_index_mut.mlcfg b/creusot/tests/should_succeed/list_index_mut.mlcfg index c0f48c715a..f27c7249fb 100644 --- a/creusot/tests/should_succeed/list_index_mut.mlcfg +++ b/creusot/tests/should_succeed/list_index_mut.mlcfg @@ -395,7 +395,7 @@ module ListIndexMut_IndexMut } BB5 { _25 <- Borrow.borrow_mut (ListIndexMut_List_Type.list_1 ( * l)); - l <- { l with current = (let ListIndexMut_List_Type.C_List a b = * l in ListIndexMut_List_Type.C_List a ( ^ _25)) }; + l <- Borrow.make_borrow (let ListIndexMut_List_Type.C_List a b = * l in ListIndexMut_List_Type.C_List a ( ^ _25)) ( ^ l); _24 <- ([#"../list_index_mut.rs" 50 12 50 24] AsMut0.as_mut _25); _25 <- any borrowed (Core_Option_Option_Type.t_option (ListIndexMut_List_Type.t_list)); goto BB6 @@ -407,7 +407,7 @@ module ListIndexMut_IndexMut } BB7 { _22 <- Borrow.borrow_mut ( * _23); - _23 <- { _23 with current = ( ^ _22) }; + _23 <- Borrow.make_borrow ( ^ _22) ( ^ _23); assume { Resolve1.resolve l }; l <- _22; _22 <- any borrowed (ListIndexMut_List_Type.t_list); @@ -417,11 +417,11 @@ module ListIndexMut_IndexMut } BB8 { _29 <- Borrow.borrow_mut (ListIndexMut_List_Type.list_0 ( * l)); - l <- { l with current = (let ListIndexMut_List_Type.C_List a b = * l in ListIndexMut_List_Type.C_List ( ^ _29) b) }; + l <- Borrow.make_borrow (let ListIndexMut_List_Type.C_List a b = * l in ListIndexMut_List_Type.C_List ( ^ _29) b) ( ^ l); _3 <- Borrow.borrow_mut ( * _29); - _29 <- { _29 with current = ( ^ _3) }; + _29 <- Borrow.make_borrow ( ^ _3) ( ^ _29); _0 <- Borrow.borrow_mut ( * _3); - _3 <- { _3 with current = ( ^ _0) }; + _3 <- Borrow.make_borrow ( ^ _0) ( ^ _3); assume { Resolve0.resolve _29 }; assume { Resolve0.resolve _3 }; assume { Resolve1.resolve l }; @@ -479,13 +479,13 @@ module ListIndexMut_Write } BB0 { _10 <- Borrow.borrow_mut ( * l); - l <- { l with current = ( ^ _10) }; + l <- Borrow.make_borrow ( ^ _10) ( ^ l); _9 <- ([#"../list_index_mut.rs" 64 5 64 21] IndexMut0.index_mut _10 ix); _10 <- any borrowed (ListIndexMut_List_Type.t_list); goto BB1 } BB1 { - _9 <- { _9 with current = v }; + _9 <- Borrow.make_borrow v ( ^ _9); assume { Resolve0.resolve _9 }; assume { Resolve1.resolve l }; _0 <- (); @@ -537,7 +537,7 @@ module ListIndexMut_F _8 <- Borrow.borrow_mut l; l <- ^ _8; _7 <- Borrow.borrow_mut ( * _8); - _8 <- { _8 with current = ( ^ _7) }; + _8 <- Borrow.make_borrow ( ^ _7) ( ^ _8); _6 <- ([#"../list_index_mut.rs" 69 4 69 23] Write0.write _7 ([#"../list_index_mut.rs" 69 18 69 19] (0 : usize)) ([#"../list_index_mut.rs" 69 21 69 22] (2 : uint32))); _7 <- any borrowed (ListIndexMut_List_Type.t_list); goto BB5 diff --git a/creusot/tests/should_succeed/list_index_mut/why3session.xml b/creusot/tests/should_succeed/list_index_mut/why3session.xml index 255a3f9088..28112cd7b1 100644 --- a/creusot/tests/should_succeed/list_index_mut/why3session.xml +++ b/creusot/tests/should_succeed/list_index_mut/why3session.xml @@ -2,22 +2,22 @@ - + - + - + - + diff --git a/creusot/tests/should_succeed/list_index_mut/why3shapes.gz b/creusot/tests/should_succeed/list_index_mut/why3shapes.gz index c8fd0a1bc4f292e88908129d429af7e76922706a..b54a67590c424642fe21fba9322451919ac8cd06 100644 GIT binary patch literal 714 zcmV;*0yX^~iwFP!00000|AkadkDD+Mz4I%$wMDArFZ@w$4y#Bgk*d8^@^K>rPK%mA zOW16Ge#gcJC%aWIX8eYEGoE?&$0EP{Fu&|2zuNKA4gHs#=f$UN`fa-Ys!oBJoTamX|rx_;8^(LA{A$@cDF*lijFK=lX&4uq)HxiQ1s8miw%{lbi?;hA6DjUe%eDljN|Y+XM?4zyi;l{ zoaM3zw*;Ku2bFF?v$NEg#USREfYY0x?cr;8nS7YW1iqpQnAQ*^dHj#721ibRik9iMeamJF)YLj0BlWBkOFlg z2slxiNU;3HByznMu+c>Lx~^b6`nxE=`84#_M+!~&90`UCgk)sBb<~p;30BM){2g<+ zeWthhaTxQiZ|$GM`DMzMsepRJOu_QfiARP0qaYoXJOya=tw)M%3(J05yI3Z7 zTe=g~T-Fv5)Rafn9&2Jap^a^M&USQ1c6f&}iY+5da3e~A!HFz2 wiV{UirG&IB=esf!tR}5QRx*W9ZH$#j+PaYt!b;nkT<%2n7aR2e;NS)T0DhomwEzGB literal 719 zcmV;=0x-SPIDP|{cu74q#xb&Utv;Fac(@t_Hp@2iD!quU%?~QQA5W+8&9o24A5*lhAM^pC zto;LpAf4nQNp}RjxOXh0BbgqQ2s}D+cLY7Vaa`}d^k-Kc5Cj?^WF7Q~)=_#lf>l7P z^ud~T#F^^Y{ueuu!JM!}CZ>KQ3O@>~w-Y`b#<$&ZY|R0Mn~2r=rpMP|E=>4fq45lv zj7@g(gePOaS?Q5v9A6wRlgn@;{%y4FGJBSIFM*d3w^hC`WoF^MPw{V`$K>g4?)ufL z1%H@~ZUD?Sa++sq;`&p1R}I*b`(d{qUx)Vm&N%arBBLJFwiD`wuXKt<@5sd0FuoZRILbX%BJvTFxeM;dg=D{;q)SM4u{E-tW`dOLEfJ&7 z<~m^{L`auzc}E8xikUVFM;58zI%ef}D0Y2^IlZ0wi^=8}4f&rq^e=HH9Yu&cE@VT( z>S`dC8t){~ZO*03GS12lTGc9O+p6V4H=P1$8c>XJ4m{@@wxJu?kW3p l = Seq.get (Reverse.reverse (Ghost.inner s)) (Seq.length (Ghost.inner s) - 1) }; _25 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _25) }; + self <- Borrow.make_borrow ( ^ _25) ( ^ self); _24 <- ([#"../list_reversal_lasso.rs" 139 39 139 46] IndexMut0.index_mut _25 l); _25 <- any borrowed (ListReversalLasso_Memory_Type.t_memory); goto BB5 } BB5 { _23 <- Borrow.borrow_mut ( * _24); - _24 <- { _24 with current = ( ^ _23) }; + _24 <- Borrow.make_borrow ( ^ _23) ( ^ _24); _22 <- Borrow.borrow_mut ( * _23); - _23 <- { _23 with current = ( ^ _22) }; + _23 <- Borrow.make_borrow ( ^ _22) ( ^ _23); _29 <- Borrow.borrow_mut r; r <- ^ _29; _28 <- Borrow.borrow_mut ( * _29); - _29 <- { _29 with current = ( ^ _28) }; + _29 <- Borrow.make_borrow ( ^ _28) ( ^ _29); _27 <- ([#"../list_reversal_lasso.rs" 139 48 139 76] Replace0.replace _28 l); _28 <- any borrowed usize; goto BB6 @@ -1825,20 +1825,20 @@ module ListReversalLasso_Impl4_ListReversalLasso } BB4 { _23 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _23) }; + self <- Borrow.make_borrow ( ^ _23) ( ^ self); _22 <- ([#"../list_reversal_lasso.rs" 191 39 191 46] IndexMut0.index_mut _23 l); _23 <- any borrowed (ListReversalLasso_Memory_Type.t_memory); goto BB5 } BB5 { _21 <- Borrow.borrow_mut ( * _22); - _22 <- { _22 with current = ( ^ _21) }; + _22 <- Borrow.make_borrow ( ^ _21) ( ^ _22); _20 <- Borrow.borrow_mut ( * _21); - _21 <- { _21 with current = ( ^ _20) }; + _21 <- Borrow.make_borrow ( ^ _20) ( ^ _21); _27 <- Borrow.borrow_mut r; r <- ^ _27; _26 <- Borrow.borrow_mut ( * _27); - _27 <- { _27 with current = ( ^ _26) }; + _27 <- Borrow.make_borrow ( ^ _26) ( ^ _27); _25 <- ([#"../list_reversal_lasso.rs" 191 48 191 76] Replace0.replace _26 l); _26 <- any borrowed usize; goto BB6 diff --git a/creusot/tests/should_succeed/loop.mlcfg b/creusot/tests/should_succeed/loop.mlcfg index 24675d67e4..8eeb646596 100644 --- a/creusot/tests/should_succeed/loop.mlcfg +++ b/creusot/tests/should_succeed/loop.mlcfg @@ -42,7 +42,7 @@ module Loop_F a <- ([#"../loop.rs" 4 16 4 18] (10 : int32)); b <- Borrow.borrow_mut a; a <- ^ b; - b <- { b with current = ([#"../loop.rs" 6 9 6 10] (5 : int32)) }; + b <- Borrow.make_borrow ([#"../loop.rs" 6 9 6 10] (5 : int32)) ( ^ b); assume { Resolve0.resolve b }; goto BB1 } diff --git a/creusot/tests/should_succeed/mapping_test.mlcfg b/creusot/tests/should_succeed/mapping_test.mlcfg index 06b88a4c00..69df696833 100644 --- a/creusot/tests/should_succeed/mapping_test.mlcfg +++ b/creusot/tests/should_succeed/mapping_test.mlcfg @@ -261,7 +261,7 @@ module MappingTest_Incr goto BB1 } BB1 { - t <- { t with current = (let MappingTest_T_Type.C_T a = * t in MappingTest_T_Type.C_T ([#"../mapping_test.rs" 32 4 32 15] MappingTest_T_Type.t_a ( * t) + ([#"../mapping_test.rs" 32 14 32 15] (1 : int32)))) }; + t <- Borrow.make_borrow (let MappingTest_T_Type.C_T a = * t in MappingTest_T_Type.C_T ([#"../mapping_test.rs" 32 4 32 15] MappingTest_T_Type.t_a ( * t) + ([#"../mapping_test.rs" 32 14 32 15] (1 : int32)))) ( ^ t); assume { Resolve0.resolve t }; assert { [@expl:assertion] [#"../mapping_test.rs" 35 19 35 50] ShallowModel0.shallow_model ( ^ t) = Map.set (ShallowModel1.shallow_model old_t) (Int32.to_int (MappingTest_T_Type.t_a ( * Ghost.inner old_t))) 1 }; _0 <- (); @@ -308,7 +308,7 @@ module MappingTest_F _8 <- Borrow.borrow_mut x; x <- ^ _8; _7 <- Borrow.borrow_mut ( * _8); - _8 <- { _8 with current = ( ^ _7) }; + _8 <- Borrow.make_borrow ( ^ _7) ( ^ _8); _6 <- ([#"../mapping_test.rs" 42 4 42 16] Incr0.incr _7); _7 <- any borrowed (MappingTest_T_Type.t_t); goto BB1 diff --git a/creusot/tests/should_succeed/mapping_test/why3session.xml b/creusot/tests/should_succeed/mapping_test/why3session.xml index c11e6a9287..36020776d2 100644 --- a/creusot/tests/should_succeed/mapping_test/why3session.xml +++ b/creusot/tests/should_succeed/mapping_test/why3session.xml @@ -2,17 +2,17 @@ - + - + - + diff --git a/creusot/tests/should_succeed/mapping_test/why3shapes.gz b/creusot/tests/should_succeed/mapping_test/why3shapes.gz index 8a40029bc237b13b94ea16165c97c976c8bee890..3f12a27057bf1fcb484f359be816a26833f7d820 100644 GIT binary patch literal 401 zcmV;C0dD>uiwFP!00000|CLe8Zi6royz>>@+R}?3fN@0*Q6!W|Jyt#jEylE{1Xn(gbyeMif2=C0!?#?`VZuHO)(PNPt(Q?DMMcO(~9AvF4ahUo++j@Y<`Zrrk#&1{-I zHITkFeF4X#n@jlFr|6IAVN<+KPcSj*`*QRj)L~SU8T4xxx&Bj6;xTQ5evI=R5?? vByb?iC0o2jPEG?t110^4223$ZLn$*_ND^`6bIe_TOAYM@Ti-0z`2zp|r0}>~ literal 407 zcmV;I0cidoiwFP!00000|CN!;Zi6roMfZFKyR>xUu>nJsEFvV7NL^N577dQwq7qyI zO@6=TA@VG0Hwe!i-x=TY;JM8QeyPSisJbak_3VbO_vqjX-&KoND@$|C_GYI_K?D?% zNWi54Y)w{FEw&j7vc}~~S~X3b#NNEPg>QmlbL|DTI5;FC!X$eY=m{!e+ivd|@LK~a z*kllo23S;;ss)p<{=W&38<#ECsxjq332wKt2Dzzgb5y&<{R@RpKc< zCePyWhT5>d?HoFM!N!gu!~yI5SJN&v@_QYXN(+Hw5c2OTTTnbwlB zIK+TMo-^r3ip7X7-N1%8QRwHOLDLX41`raC9HrzrGA6^AyZ(mRwjWW+24MjN008_L B!$SZ7 diff --git a/creusot/tests/should_succeed/one_side_update.mlcfg b/creusot/tests/should_succeed/one_side_update.mlcfg index f01ac7a586..0b826d0e16 100644 --- a/creusot/tests/should_succeed/one_side_update.mlcfg +++ b/creusot/tests/should_succeed/one_side_update.mlcfg @@ -61,7 +61,7 @@ module OneSideUpdate_F goto BB3 } BB2 { - b <- { b with current = OneSideUpdate_MyInt_Type.C_MyInt ([#"../one_side_update.rs" 11 19 11 20] (5 : usize)) }; + b <- Borrow.make_borrow (OneSideUpdate_MyInt_Type.C_MyInt ([#"../one_side_update.rs" 11 19 11 20] (5 : usize))) ( ^ b); assume { Resolve0.resolve b }; _0 <- (); goto BB3 diff --git a/creusot/tests/should_succeed/option.mlcfg b/creusot/tests/should_succeed/option.mlcfg index 712cfc529a..9c5d19d364 100644 --- a/creusot/tests/should_succeed/option.mlcfg +++ b/creusot/tests/should_succeed/option.mlcfg @@ -737,7 +737,7 @@ module Option_TestOption goto BB29 } BB29 { - _46 <- { _46 with current = ([#"../option.rs" 24 30 24 31] (2 : int32)) }; + _46 <- Borrow.make_borrow ([#"../option.rs" 24 30 24 31] (2 : int32)) ( ^ _46); assume { Resolve0.resolve _46 }; _52 <- ([#"../option.rs" 25 12 25 25] Unwrap0.unwrap some); goto BB30 @@ -764,7 +764,7 @@ module Option_TestOption goto BB34 } BB34 { - _55 <- { _55 with current = ([#"../option.rs" 26 30 26 31] (1 : int32)) }; + _55 <- Borrow.make_borrow ([#"../option.rs" 26 30 26 31] (1 : int32)) ( ^ _55); assume { Resolve0.resolve _55 }; _61 <- ([#"../option.rs" 27 12 27 25] Unwrap0.unwrap some); goto BB35 diff --git a/creusot/tests/should_succeed/option/why3session.xml b/creusot/tests/should_succeed/option/why3session.xml index 51bab34c4d..877a7161f9 100644 --- a/creusot/tests/should_succeed/option/why3session.xml +++ b/creusot/tests/should_succeed/option/why3session.xml @@ -2,12 +2,12 @@ - + - + diff --git a/creusot/tests/should_succeed/option/why3shapes.gz b/creusot/tests/should_succeed/option/why3shapes.gz index f8a075d8dbc7435769e21fea5f9ab2ff2a412063..fc17bbbd1ee139ae586c4fde6f24ae94b569e089 100644 GIT binary patch delta 477 zcmV<30V4kD1L*^h7Js$%2{0c+r5>zR5xHy*tvGh&L`03WjkmFz-`~L)FgZ-}dcJrV zPx85I=ilRppWBDO&)4bpwUur6rCI)t*W1GpvnlFmlFYFrd)Ft)9Zym?k)(7oN##_M z;2=ruv}wj~j%szLhn>LS(z8$aS;f$#ImCV_2TXi<`!W6T;eQEDm?55ka(G>91ZKQW zHy=9)G#)#IBtER(zI5To>>>XTQ2u4^2&m zI0y8^R2;P?g^;YxKo>%C%$`C>_JlcR4pnhEGI*iz0X*}8dgcQaQ*rPhGatyaD1z;5fL!;#)bQte`p57l} z#t=zp8eCU=q`V0j;=ZH$e$2sgX(=3a6x$NohEB!B*lMQ?jg*lFzH8#PcdC5mS*; z;g7L#FYRTzw~L>bx9MZSzoDiPa3WlDIQ2wcls_qb8JRyxeIcHlm2WAvlvr)SDl4t9 T-1e4PYDx1Srreuh)dTz&ADV>Z`ITfXLI!bU5 zB|41KIMY@AcgGE!_NlU4zn?J8hHCekXP2&;gifDmLnUxc^)ZJ5T7 zyPq)z5*`P)%RZLh1h!${N&PsaV7@dj&SS+yJwICmj)Msx(o27p-y|@eP7h}B?zZ0D z>h&d=$s{J@nNrD0l^Q2XFqyK*4xHM17EYik0dz5qrdO^+cw?aRDuI4nB~Xv61S+Hw zCD4zta?ka7yw&qC&9CF0CoiDzW@LL diff --git a/creusot/tests/should_succeed/projection_toggle.mlcfg b/creusot/tests/should_succeed/projection_toggle.mlcfg index 381c63f3fe..e5c121a811 100644 --- a/creusot/tests/should_succeed/projection_toggle.mlcfg +++ b/creusot/tests/should_succeed/projection_toggle.mlcfg @@ -110,10 +110,10 @@ module ProjectionToggle_ProjToggle assert { [@expl:type invariant] Inv0.inv b }; assume { Resolve0.resolve b }; _8 <- Borrow.borrow_mut ( * a); - a <- { a with current = ( ^ _8) }; + a <- Borrow.make_borrow ( ^ _8) ( ^ a); assume { Inv1.inv ( ^ _8) }; _6 <- Borrow.borrow_mut ( * _8); - _8 <- { _8 with current = ( ^ _6) }; + _8 <- Borrow.make_borrow ( ^ _6) ( ^ _8); assume { Inv1.inv ( ^ _6) }; assert { [@expl:type invariant] Inv0.inv _8 }; assume { Resolve0.resolve _8 }; @@ -123,16 +123,16 @@ module ProjectionToggle_ProjToggle assert { [@expl:type invariant] Inv0.inv a }; assume { Resolve0.resolve a }; _6 <- Borrow.borrow_mut ( * b); - b <- { b with current = ( ^ _6) }; + b <- Borrow.make_borrow ( ^ _6) ( ^ b); assume { Inv1.inv ( ^ _6) }; goto BB3 } BB3 { _4 <- Borrow.borrow_mut ( * _6); - _6 <- { _6 with current = ( ^ _4) }; + _6 <- Borrow.make_borrow ( ^ _4) ( ^ _6); assume { Inv1.inv ( ^ _4) }; _0 <- Borrow.borrow_mut ( * _4); - _4 <- { _4 with current = ( ^ _0) }; + _4 <- Borrow.make_borrow ( ^ _0) ( ^ _4); assume { Inv1.inv ( ^ _0) }; assert { [@expl:type invariant] Inv0.inv _6 }; assume { Resolve0.resolve _6 }; @@ -183,11 +183,11 @@ module ProjectionToggle_F _5 <- Borrow.borrow_mut a; a <- ^ _5; _4 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _4) }; + _5 <- Borrow.make_borrow ( ^ _4) ( ^ _5); _7 <- Borrow.borrow_mut b; b <- ^ _7; _6 <- Borrow.borrow_mut ( * _7); - _7 <- { _7 with current = ( ^ _6) }; + _7 <- Borrow.make_borrow ( ^ _6) ( ^ _7); x <- ([#"../projection_toggle.rs" 17 12 17 45] ProjToggle0.proj_toggle ([#"../projection_toggle.rs" 17 24 17 28] true) _4 _6); _4 <- any borrowed int32; _6 <- any borrowed int32; @@ -196,7 +196,7 @@ module ProjectionToggle_F BB1 { assume { Resolve0.resolve _7 }; assume { Resolve0.resolve _5 }; - x <- { x with current = ([#"../projection_toggle.rs" 19 4 19 11] * x + ([#"../projection_toggle.rs" 19 10 19 11] (5 : int32))) }; + x <- Borrow.make_borrow ([#"../projection_toggle.rs" 19 4 19 11] * x + ([#"../projection_toggle.rs" 19 10 19 11] (5 : int32))) ( ^ x); assume { Resolve0.resolve x }; switch (not ([#"../projection_toggle.rs" 20 12 20 19] a = ([#"../projection_toggle.rs" 20 17 20 19] (15 : int32)))) | False -> goto BB3 diff --git a/creusot/tests/should_succeed/projection_toggle/why3session.xml b/creusot/tests/should_succeed/projection_toggle/why3session.xml index df1fbf31a1..eb3a186a4d 100644 --- a/creusot/tests/should_succeed/projection_toggle/why3session.xml +++ b/creusot/tests/should_succeed/projection_toggle/why3session.xml @@ -3,17 +3,17 @@ "http://why3.lri.fr/why3session.dtd"> - + - + - + diff --git a/creusot/tests/should_succeed/projection_toggle/why3shapes.gz b/creusot/tests/should_succeed/projection_toggle/why3shapes.gz index 419ad586b1291da3a6b52c89113e0ea985548fcb..6244f8fcc989d9b1f33a202e7a57db33d9eb7de0 100644 GIT binary patch literal 553 zcmV+^0@nQ>iwFP!00000|8-Nzj@vK{z56SCYnxuQF9mWif*3K-W1(XQvMo>3rt#Fy zq`zNLOFZ$U2UGHUqDb+PA2;Rv!@jt=yt-*Vj^{6>C^w&q%O86@Uk$3$4jWt-X+x@` z-P-Sl+Kr)=-Fn2ZfH04+giyZ_`)zu4jh);)p03XDCSJj-v@VoLlt`3VC`=QFX_Yr` zSd>|m*@*ajFliteYJb~b?x`K8Y5W^tZ*<+nL@|b)&m3cK0FKT&@Mz_${U?K~HYzzP z|9NcZL2hD>a0&_`R_+q21cWpgRtOuawy$n4%CDrhwx`*_E#Px|u*&aLccHL)5DSZa ziY8Mu2?o$qA^|*KS4e=q;Z|WV-zQ%VioeN}rA%1R*^s*0-KQRY2+JiU6beV!DjK0+ zP^c=QhLBWOLcpM#A_RpKc%#s+15*^u+%8)tXD9t3$rVSaVlS?@#oWJ ze11N;0*cgO-Yly>eWB!ow+UGUYTn5Kb@yfE^}VA+%6&h@f8yYm2pGSyEQ$&$8XV>Acns3{Xj!G9D02zDt r13BOWDhQEw=#dbds(v7Sv=6{ zVAkflW@e>XW!4VS+#}o}JR;0()O;J?Y-2_{4abYsq6scU75ABvk&=;;GX*Siz^Zh( zVM$_1Vgusx0oq_P%(TNe4u9CMGm zI4C}d2XY%Dsu)q>f@mz6L|!Z_CZm1OTWS#7XfLn}ZZhUEBkr}=w5~SyPw*dU(3ye7^mZov1ODr*?Qd z?WcF-SFgw%uDG8f7g@L-3x&g`3xkX;5ZZ?0Y^=kGtZ>o;sLnp>#Ur?@|IZbWe-Bo| ziB3Y4+KZ|`>R0YrrDeP?aXvgI@c+i2cn}yB)exlaLWQ=f5da>_pK?+MH?^^=Gf>G{`lC-(lad+)6m7DH9J_P^( D5}pxC diff --git a/creusot/tests/should_succeed/projections.mlcfg b/creusot/tests/should_succeed/projections.mlcfg index beb69f4b74..e210125a54 100644 --- a/creusot/tests/should_succeed/projections.mlcfg +++ b/creusot/tests/should_succeed/projections.mlcfg @@ -173,8 +173,8 @@ module Projections_WriteIntoSum } BB4 { y <- Borrow.borrow_mut (Core_Option_Option_Type.some_0 ( * x)); - x <- { x with current = (let Core_Option_Option_Type.C_Some a = * x in Core_Option_Option_Type.C_Some ( ^ y)) }; - y <- { y with current = ([#"../projections.rs" 18 24 18 26] (10 : uint32)) }; + x <- Borrow.make_borrow (let Core_Option_Option_Type.C_Some a = * x in Core_Option_Option_Type.C_Some ( ^ y)) ( ^ x); + y <- Borrow.make_borrow ([#"../projections.rs" 18 24 18 26] (10 : uint32)) ( ^ y); assume { Resolve0.resolve y }; _0 <- (); assume { Resolve1.resolve x }; diff --git a/creusot/tests/should_succeed/prophecy.mlcfg b/creusot/tests/should_succeed/prophecy.mlcfg index 0088321425..3c52d731ed 100644 --- a/creusot/tests/should_succeed/prophecy.mlcfg +++ b/creusot/tests/should_succeed/prophecy.mlcfg @@ -42,7 +42,7 @@ module Prophecy_F x <- ([#"../prophecy.rs" 4 16 4 17] (0 : int32)); y <- Borrow.borrow_mut x; x <- ^ y; - y <- { y with current = ([#"../prophecy.rs" 9 9 9 10] (5 : int32)) }; + y <- Borrow.make_borrow ([#"../prophecy.rs" 9 9 9 10] (5 : int32)) ( ^ y); assume { Resolve0.resolve y }; _0 <- (); return _0 diff --git a/creusot/tests/should_succeed/red_black_tree.mlcfg b/creusot/tests/should_succeed/red_black_tree.mlcfg index c57b505e7c..df4636dbfe 100644 --- a/creusot/tests/should_succeed/red_black_tree.mlcfg +++ b/creusot/tests/should_succeed/red_black_tree.mlcfg @@ -3467,10 +3467,10 @@ module RedBlackTree_Impl14_RotateRight assert { [@expl:type invariant] Inv0.inv old_self }; assume { Resolve0.resolve old_self }; _16 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_left ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_left ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _16)) b c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_left ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _16)) b c d e) ( ^ self); assume { Inv1.inv ( ^ _16) }; _15 <- Borrow.borrow_mut ( * _16); - _16 <- { _16 with current = ( ^ _15) }; + _16 <- Borrow.make_borrow ( ^ _15) ( ^ _16); assume { Inv1.inv ( ^ _15) }; _14 <- ([#"../red_black_tree.rs" 421 20 421 55] Take0.take _15); _15 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -3485,16 +3485,16 @@ module RedBlackTree_Impl14_RotateRight } BB3 { _19 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_left ( * self)); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node ( ^ _19) b c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node ( ^ _19) b c d e) ( ^ self); assume { Inv3.inv ( ^ _19) }; _18 <- Borrow.borrow_mut ( * _19); - _19 <- { _19 with current = ( ^ _18) }; + _19 <- Borrow.make_borrow ( ^ _18) ( ^ _19); assume { Inv3.inv ( ^ _18) }; _21 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_right x); x <- (let RedBlackTree_Node_Type.C_Node a b c d e = x in RedBlackTree_Node_Type.C_Node a b c d ( ^ _21)); assume { Inv3.inv ( ^ _21) }; _20 <- Borrow.borrow_mut ( * _21); - _21 <- { _21 with current = ( ^ _20) }; + _21 <- Borrow.make_borrow ( ^ _20) ( ^ _21); assume { Inv3.inv ( ^ _20) }; _17 <- ([#"../red_black_tree.rs" 428 8 428 52] Swap0.swap _18 _20); _18 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -3507,13 +3507,13 @@ module RedBlackTree_Impl14_RotateRight assert { [@expl:type invariant] Inv4.inv _19 }; assume { Resolve2.resolve _19 }; _23 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _23) }; + self <- Borrow.make_borrow ( ^ _23) ( ^ self); assume { Inv5.inv ( ^ _23) }; _25 <- Borrow.borrow_mut x; x <- ^ _25; assume { Inv6.inv ( ^ _25) }; _24 <- Borrow.borrow_mut ( * _25); - _25 <- { _25 with current = ( ^ _24) }; + _25 <- Borrow.make_borrow ( ^ _24) ( ^ _25); assume { Inv5.inv ( ^ _24) }; _22 <- ([#"../red_black_tree.rs" 434 8 434 36] Swap1.swap _23 _24); _23 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -3524,13 +3524,13 @@ module RedBlackTree_Impl14_RotateRight assert { [@expl:type invariant] Inv7.inv _25 }; assume { Resolve3.resolve _25 }; _28 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_color ( * self)); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a ( ^ _28) c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a ( ^ _28) c d e) ( ^ self); _27 <- Borrow.borrow_mut ( * _28); - _28 <- { _28 with current = ( ^ _27) }; + _28 <- Borrow.make_borrow ( ^ _27) ( ^ _28); _30 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_color x); x <- (let RedBlackTree_Node_Type.C_Node a b c d e = x in RedBlackTree_Node_Type.C_Node a ( ^ _30) c d e); _29 <- Borrow.borrow_mut ( * _30); - _30 <- { _30 with current = ( ^ _29) }; + _30 <- Borrow.make_borrow ( ^ _29) ( ^ _30); _26 <- ([#"../red_black_tree.rs" 435 8 435 53] Swap2.swap _27 _29); _27 <- any borrowed (RedBlackTree_Color_Type.t_color); _29 <- any borrowed (RedBlackTree_Color_Type.t_color); @@ -3549,7 +3549,7 @@ module RedBlackTree_Impl14_RotateRight goto BB9 } BB9 { - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_Some x))) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_Some x))) ( ^ self); x <- any RedBlackTree_Node_Type.t_node k v; assert { [@expl:type invariant] Inv3.inv (RedBlackTree_Node_Type.node_right ( * self)) }; assume { Resolve5.resolve (RedBlackTree_Node_Type.node_right ( * self)) }; @@ -3930,10 +3930,10 @@ module RedBlackTree_Impl14_RotateLeft assert { [@expl:type invariant] Inv0.inv old_self }; assume { Resolve0.resolve old_self }; _16 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_right ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _16))) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _16))) ( ^ self); assume { Inv1.inv ( ^ _16) }; _15 <- Borrow.borrow_mut ( * _16); - _16 <- { _16 with current = ( ^ _15) }; + _16 <- Borrow.make_borrow ( ^ _15) ( ^ _16); assume { Inv1.inv ( ^ _15) }; _14 <- ([#"../red_black_tree.rs" 464 20 464 56] Take0.take _15); _15 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -3948,16 +3948,16 @@ module RedBlackTree_Impl14_RotateLeft } BB3 { _19 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_right ( * self)); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d ( ^ _19)) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d ( ^ _19)) ( ^ self); assume { Inv3.inv ( ^ _19) }; _18 <- Borrow.borrow_mut ( * _19); - _19 <- { _19 with current = ( ^ _18) }; + _19 <- Borrow.make_borrow ( ^ _18) ( ^ _19); assume { Inv3.inv ( ^ _18) }; _21 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_left x); x <- (let RedBlackTree_Node_Type.C_Node a b c d e = x in RedBlackTree_Node_Type.C_Node ( ^ _21) b c d e); assume { Inv3.inv ( ^ _21) }; _20 <- Borrow.borrow_mut ( * _21); - _21 <- { _21 with current = ( ^ _20) }; + _21 <- Borrow.make_borrow ( ^ _20) ( ^ _21); assume { Inv3.inv ( ^ _20) }; _17 <- ([#"../red_black_tree.rs" 465 8 465 52] Swap0.swap _18 _20); _18 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -3970,13 +3970,13 @@ module RedBlackTree_Impl14_RotateLeft assert { [@expl:type invariant] Inv4.inv _19 }; assume { Resolve2.resolve _19 }; _23 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _23) }; + self <- Borrow.make_borrow ( ^ _23) ( ^ self); assume { Inv5.inv ( ^ _23) }; _25 <- Borrow.borrow_mut x; x <- ^ _25; assume { Inv6.inv ( ^ _25) }; _24 <- Borrow.borrow_mut ( * _25); - _25 <- { _25 with current = ( ^ _24) }; + _25 <- Borrow.make_borrow ( ^ _24) ( ^ _25); assume { Inv5.inv ( ^ _24) }; _22 <- ([#"../red_black_tree.rs" 466 8 466 36] Swap1.swap _23 _24); _23 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -3987,13 +3987,13 @@ module RedBlackTree_Impl14_RotateLeft assert { [@expl:type invariant] Inv7.inv _25 }; assume { Resolve3.resolve _25 }; _28 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_color ( * self)); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a ( ^ _28) c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a ( ^ _28) c d e) ( ^ self); _27 <- Borrow.borrow_mut ( * _28); - _28 <- { _28 with current = ( ^ _27) }; + _28 <- Borrow.make_borrow ( ^ _27) ( ^ _28); _30 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_color x); x <- (let RedBlackTree_Node_Type.C_Node a b c d e = x in RedBlackTree_Node_Type.C_Node a ( ^ _30) c d e); _29 <- Borrow.borrow_mut ( * _30); - _30 <- { _30 with current = ( ^ _29) }; + _30 <- Borrow.make_borrow ( ^ _29) ( ^ _30); _26 <- ([#"../red_black_tree.rs" 467 8 467 53] Swap2.swap _27 _29); _27 <- any borrowed (RedBlackTree_Color_Type.t_color); _29 <- any borrowed (RedBlackTree_Color_Type.t_color); @@ -4012,7 +4012,7 @@ module RedBlackTree_Impl14_RotateLeft goto BB9 } BB9 { - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_Some x)) b c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_Some x)) b c d e) ( ^ self); x <- any RedBlackTree_Node_Type.t_node k v; assert { [@expl:type invariant] Inv3.inv (RedBlackTree_Node_Type.node_left ( * self)) }; assume { Resolve5.resolve (RedBlackTree_Node_Type.node_left ( * self)) }; @@ -4367,7 +4367,7 @@ module RedBlackTree_Impl14_FlipColors } BB0 { _15 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_left ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_left ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _15)) b c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_left ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _15)) b c d e) ( ^ self); assume { Inv0.inv ( ^ _15) }; _14 <- ([#"../red_black_tree.rs" 487 8 487 31] AsMut0.as_mut _15); _15 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -4379,15 +4379,15 @@ module RedBlackTree_Impl14_FlipColors goto BB2 } BB2 { - _13 <- { _13 with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * _13 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Node_Type.node_color ( * self)) c d e) }; + _13 <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * _13 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Node_Type.node_color ( * self)) c d e) ( ^ _13); assert { [@expl:type invariant] Inv1.inv _13 }; assume { Resolve0.resolve _13 }; _18 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_color ( * self)); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a ( ^ _18) c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a ( ^ _18) c d e) ( ^ self); _17 <- Borrow.borrow_mut ( * _18); - _18 <- { _18 with current = ( ^ _17) }; + _18 <- Borrow.make_borrow ( ^ _17) ( ^ _18); _23 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_right ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _23))) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _23))) ( ^ self); assume { Inv0.inv ( ^ _23) }; _22 <- ([#"../red_black_tree.rs" 488 45 488 69] AsMut0.as_mut _23); _23 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -4400,9 +4400,9 @@ module RedBlackTree_Impl14_FlipColors } BB4 { _20 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_color ( * _21)); - _21 <- { _21 with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * _21 in RedBlackTree_Node_Type.C_Node a ( ^ _20) c d e) }; + _21 <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * _21 in RedBlackTree_Node_Type.C_Node a ( ^ _20) c d e) ( ^ _21); _19 <- Borrow.borrow_mut ( * _20); - _20 <- { _20 with current = ( ^ _19) }; + _20 <- Borrow.make_borrow ( ^ _19) ( ^ _20); _16 <- ([#"../red_black_tree.rs" 488 8 488 85] Swap0.swap _17 _19); _17 <- any borrowed (RedBlackTree_Color_Type.t_color); _19 <- any borrowed (RedBlackTree_Color_Type.t_color); @@ -4869,7 +4869,7 @@ module RedBlackTree_Impl14_Balance } BB6 { _22 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _22) }; + self <- Borrow.make_borrow ( ^ _22) ( ^ self); assume { Inv0.inv ( ^ _22) }; _21 <- ([#"../red_black_tree.rs" 512 12 512 30] RotateLeft0.rotate_left _22); _22 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -4925,7 +4925,7 @@ module RedBlackTree_Impl14_Balance } BB17 { _33 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _33) }; + self <- Borrow.make_borrow ( ^ _33) ( ^ self); assume { Inv0.inv ( ^ _33) }; _32 <- ([#"../red_black_tree.rs" 516 12 516 31] RotateRight0.rotate_right _33); _33 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -4970,7 +4970,7 @@ module RedBlackTree_Impl14_Balance } BB26 { _40 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _40) }; + self <- Borrow.make_borrow ( ^ _40) ( ^ self); assume { Inv0.inv ( ^ _40) }; _39 <- ([#"../red_black_tree.rs" 520 12 520 30] FlipColors0.flip_colors _40); _40 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -5425,7 +5425,7 @@ module RedBlackTree_Impl14_MoveRedLeft } BB0 { _16 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _16) }; + self <- Borrow.make_borrow ( ^ _16) ( ^ self); assume { Inv0.inv ( ^ _16) }; _15 <- ([#"../red_black_tree.rs" 543 8 543 26] FlipColors0.flip_colors _16); _16 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -5433,7 +5433,7 @@ module RedBlackTree_Impl14_MoveRedLeft } BB1 { _22 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_right ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _22))) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _22))) ( ^ self); assume { Inv1.inv ( ^ _22) }; _21 <- ([#"../red_black_tree.rs" 544 11 544 35] AsMut0.as_mut _22); _22 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -5458,7 +5458,7 @@ module RedBlackTree_Impl14_MoveRedLeft } BB5 { _28 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_right ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _28))) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _28))) ( ^ self); assume { Inv1.inv ( ^ _28) }; _27 <- ([#"../red_black_tree.rs" 545 12 545 36] AsMut0.as_mut _28); _28 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -5471,7 +5471,7 @@ module RedBlackTree_Impl14_MoveRedLeft } BB7 { _25 <- Borrow.borrow_mut ( * _26); - _26 <- { _26 with current = ( ^ _25) }; + _26 <- Borrow.make_borrow ( ^ _25) ( ^ _26); assume { Inv0.inv ( ^ _25) }; _24 <- ([#"../red_black_tree.rs" 545 12 545 60] RotateRight0.rotate_right _25); _25 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -5481,7 +5481,7 @@ module RedBlackTree_Impl14_MoveRedLeft assert { [@expl:type invariant] Inv2.inv _26 }; assume { Resolve0.resolve _26 }; _30 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _30) }; + self <- Borrow.make_borrow ( ^ _30) ( ^ self); assume { Inv0.inv ( ^ _30) }; _29 <- ([#"../red_black_tree.rs" 546 12 546 30] RotateLeft0.rotate_left _30); _30 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -5489,7 +5489,7 @@ module RedBlackTree_Impl14_MoveRedLeft } BB9 { _32 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _32) }; + self <- Borrow.make_borrow ( ^ _32) ( ^ self); assume { Inv0.inv ( ^ _32) }; _31 <- ([#"../red_black_tree.rs" 547 12 547 30] FlipColors0.flip_colors _32); _32 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -5497,7 +5497,7 @@ module RedBlackTree_Impl14_MoveRedLeft } BB10 { _35 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_left ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_left ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _35)) b c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_left ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _35)) b c d e) ( ^ self); assume { Inv1.inv ( ^ _35) }; _34 <- ([#"../red_black_tree.rs" 548 19 548 42] AsMut0.as_mut _35); _35 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -5510,7 +5510,7 @@ module RedBlackTree_Impl14_MoveRedLeft } BB12 { _0 <- Borrow.borrow_mut ( * _33); - _33 <- { _33 with current = ( ^ _0) }; + _33 <- Borrow.make_borrow ( ^ _0) ( ^ _33); assume { Inv0.inv ( ^ _0) }; assert { [@expl:type invariant] Inv2.inv _33 }; assume { Resolve0.resolve _33 }; @@ -5943,7 +5943,7 @@ module RedBlackTree_Impl14_MoveRedRight } BB0 { _16 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _16) }; + self <- Borrow.make_borrow ( ^ _16) ( ^ self); assume { Inv0.inv ( ^ _16) }; _15 <- ([#"../red_black_tree.rs" 572 8 572 26] FlipColors0.flip_colors _16); _16 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -5951,7 +5951,7 @@ module RedBlackTree_Impl14_MoveRedRight } BB1 { _22 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_left ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_left ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _22)) b c d e) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_left ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _22)) b c d e) ( ^ self); assume { Inv1.inv ( ^ _22) }; _21 <- ([#"../red_black_tree.rs" 573 11 573 34] AsMut0.as_mut _22); _22 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -5976,7 +5976,7 @@ module RedBlackTree_Impl14_MoveRedRight } BB5 { _25 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _25) }; + self <- Borrow.make_borrow ( ^ _25) ( ^ self); assume { Inv0.inv ( ^ _25) }; _24 <- ([#"../red_black_tree.rs" 574 12 574 31] RotateRight0.rotate_right _25); _25 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -5984,7 +5984,7 @@ module RedBlackTree_Impl14_MoveRedRight } BB6 { _27 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _27) }; + self <- Borrow.make_borrow ( ^ _27) ( ^ self); assume { Inv0.inv ( ^ _27) }; _26 <- ([#"../red_black_tree.rs" 575 12 575 30] FlipColors0.flip_colors _27); _27 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -5992,7 +5992,7 @@ module RedBlackTree_Impl14_MoveRedRight } BB7 { _30 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node (RedBlackTree_Node_Type.node_right ( * self))); - self <- { self with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _30))) }; + self <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * self in RedBlackTree_Node_Type.C_Node a b c d (let RedBlackTree_Tree_Type.C_Tree a = RedBlackTree_Node_Type.node_right ( * self) in RedBlackTree_Tree_Type.C_Tree ( ^ _30))) ( ^ self); assume { Inv1.inv ( ^ _30) }; _29 <- ([#"../red_black_tree.rs" 576 19 576 43] AsMut0.as_mut _30); _30 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -6005,7 +6005,7 @@ module RedBlackTree_Impl14_MoveRedRight } BB9 { _0 <- Borrow.borrow_mut ( * _28); - _28 <- { _28 with current = ( ^ _0) }; + _28 <- Borrow.make_borrow ( ^ _0) ( ^ _28); assume { Inv0.inv ( ^ _0) }; assert { [@expl:type invariant] Inv2.inv _28 }; assume { Resolve0.resolve _28 }; @@ -6627,7 +6627,7 @@ module RedBlackTree_Impl15_InsertRec } BB2 { _11 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _11)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _11)) ( ^ self); assume { Inv0.inv ( ^ _11) }; switch ( * _11) | Core_Option_Option_Type.C_Some _ -> goto BB3 @@ -6639,7 +6639,7 @@ module RedBlackTree_Impl15_InsertRec } BB4 { node <- Borrow.borrow_mut (Core_Option_Option_Type.some_0 ( * _11)); - _11 <- { _11 with current = (let Core_Option_Option_Type.C_Some a = * _11 in Core_Option_Option_Type.C_Some ( ^ node)) }; + _11 <- Borrow.make_borrow (let Core_Option_Option_Type.C_Some a = * _11 in Core_Option_Option_Type.C_Some ( ^ node)) ( ^ _11); assume { Inv1.inv ( ^ node) }; _18 <- RedBlackTree_Node_Type.node_key ( * node); assert { [@expl:type invariant] Inv2.inv _18 }; @@ -6662,7 +6662,7 @@ module RedBlackTree_Impl15_InsertRec } BB8 { _25 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_right ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _25)) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _25)) ( ^ node); assume { Inv3.inv ( ^ _25) }; _14 <- ([#"../red_black_tree.rs" 608 27 608 58] insert_rec _25 key val'); _25 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -6685,7 +6685,7 @@ module RedBlackTree_Impl15_InsertRec } BB10 { _20 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_left ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node ( ^ _20) b c d e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node ( ^ _20) b c d e) ( ^ node); assume { Inv3.inv ( ^ _20) }; _14 <- ([#"../red_black_tree.rs" 603 24 603 54] insert_rec _20 key val'); _20 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -6702,7 +6702,7 @@ module RedBlackTree_Impl15_InsertRec goto BB13 } BB13 { - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c val' e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c val' e) ( ^ node); val' <- any v; assert { [@expl:type invariant] Inv5.inv (RedBlackTree_Node_Type.node_val ( * node)) }; assume { Resolve2.resolve (RedBlackTree_Node_Type.node_val ( * node)) }; @@ -6723,7 +6723,7 @@ module RedBlackTree_Impl15_InsertRec } BB17 { _29 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _29) }; + node <- Borrow.make_borrow ( ^ _29) ( ^ node); assume { Inv9.inv ( ^ _29) }; _28 <- ([#"../red_black_tree.rs" 610 12 610 26] Balance0.balance _29); _29 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -6769,7 +6769,7 @@ module RedBlackTree_Impl15_InsertRec goto BB28 } BB28 { - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_Some (RedBlackTree_Node_Type.C_Node (RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_None)) (RedBlackTree_Color_Type.C_Red) key val' (RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_None))))) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_Some (RedBlackTree_Node_Type.C_Node (RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_None)) (RedBlackTree_Color_Type.C_Red) key val' (RedBlackTree_Tree_Type.C_Tree (Core_Option_Option_Type.C_None))))) ( ^ self); key <- any k; val' <- any v; assert { [@expl:type invariant] Inv0.inv (RedBlackTree_Tree_Type.tree_node ( * self)) }; @@ -7213,7 +7213,7 @@ module RedBlackTree_Impl15_Insert } BB1 { _8 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _8) }; + self <- Borrow.make_borrow ( ^ _8) ( ^ self); assume { Inv0.inv ( ^ _8) }; _7 <- ([#"../red_black_tree.rs" 627 8 627 33] InsertRec0.insert_rec _8 key val'); _8 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -7223,7 +7223,7 @@ module RedBlackTree_Impl15_Insert } BB2 { _14 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _14)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _14)) ( ^ self); assume { Inv1.inv ( ^ _14) }; _13 <- ([#"../red_black_tree.rs" 628 8 628 26] AsMut0.as_mut _14); _14 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -7235,7 +7235,7 @@ module RedBlackTree_Impl15_Insert goto BB4 } BB4 { - _12 <- { _12 with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * _12 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Black) c d e) }; + _12 <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * _12 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Black) c d e) ( ^ _12); assert { [@expl:type invariant] Inv2.inv _12 }; assume { Resolve0.resolve _12 }; assert { [@expl:type invariant] Inv3.inv self }; @@ -7759,7 +7759,7 @@ module RedBlackTree_Impl15_DeleteMaxRec } BB0 { _15 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _15)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _15)) ( ^ self); assume { Inv0.inv ( ^ _15) }; _14 <- ([#"../red_black_tree.rs" 644 23 644 41] AsMut0.as_mut _15); _15 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -7772,7 +7772,7 @@ module RedBlackTree_Impl15_DeleteMaxRec } BB2 { _12 <- Borrow.borrow_mut ( * _13); - _13 <- { _13 with current = ( ^ _12) }; + _13 <- Borrow.make_borrow ( ^ _12) ( ^ _13); assume { Inv1.inv ( ^ _12) }; node <- ([#"../red_black_tree.rs" 644 23 644 59] AsMut1.as_mut _12); _12 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -7792,7 +7792,7 @@ module RedBlackTree_Impl15_DeleteMaxRec } BB5 { _19 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _19) }; + node <- Borrow.make_borrow ( ^ _19) ( ^ node); assume { Inv3.inv ( ^ _19) }; _16 <- ([#"../red_black_tree.rs" 646 12 646 31] RotateRight0.rotate_right _19); _19 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -7818,10 +7818,10 @@ module RedBlackTree_Impl15_DeleteMaxRec assert { [@expl:type invariant] Inv4.inv node }; assume { Resolve1.resolve node }; _26 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _26)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _26)) ( ^ self); assume { Inv0.inv ( ^ _26) }; _25 <- Borrow.borrow_mut ( * _26); - _26 <- { _26 with current = ( ^ _25) }; + _26 <- Borrow.make_borrow ( ^ _25) ( ^ _26); assume { Inv0.inv ( ^ _25) }; _24 <- ([#"../red_black_tree.rs" 649 23 649 53] Take0.take _25); _25 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -7892,7 +7892,7 @@ module RedBlackTree_Impl15_DeleteMaxRec } BB23 { _42 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _42) }; + node <- Borrow.make_borrow ( ^ _42) ( ^ node); assume { Inv3.inv ( ^ _42) }; _41 <- ([#"../red_black_tree.rs" 653 19 653 40] MoveRedRight0.move_red_right _42); _42 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -7900,7 +7900,7 @@ module RedBlackTree_Impl15_DeleteMaxRec } BB24 { _40 <- Borrow.borrow_mut ( * _41); - _41 <- { _41 with current = ( ^ _40) }; + _41 <- Borrow.make_borrow ( ^ _40) ( ^ _41); assume { Inv3.inv ( ^ _40) }; assert { [@expl:type invariant] Inv4.inv node }; assume { Resolve1.resolve node }; @@ -7917,7 +7917,7 @@ module RedBlackTree_Impl15_DeleteMaxRec } BB26 { _44 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_right ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _44)) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _44)) ( ^ node); assume { Inv8.inv ( ^ _44) }; r <- ([#"../red_black_tree.rs" 655 16 655 43] delete_max_rec _44); _44 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -7925,7 +7925,7 @@ module RedBlackTree_Impl15_DeleteMaxRec } BB27 { _46 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _46) }; + node <- Borrow.make_borrow ( ^ _46) ( ^ node); assume { Inv3.inv ( ^ _46) }; _45 <- ([#"../red_black_tree.rs" 656 8 656 22] Balance0.balance _46); _46 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -8360,7 +8360,7 @@ module RedBlackTree_Impl15_DeleteMax assert { [@expl:type invariant] Inv0.inv old_self }; assume { Resolve0.resolve old_self }; _8 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _8)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _8)) ( ^ self); assume { Inv1.inv ( ^ _8) }; switch ( * _8) | Core_Option_Option_Type.C_Some _ -> goto BB2 @@ -8372,7 +8372,7 @@ module RedBlackTree_Impl15_DeleteMax } BB3 { node <- Borrow.borrow_mut (Core_Option_Option_Type.some_0 ( * _8)); - _8 <- { _8 with current = (let Core_Option_Option_Type.C_Some a = * _8 in Core_Option_Option_Type.C_Some ( ^ node)) }; + _8 <- Borrow.make_borrow (let Core_Option_Option_Type.C_Some a = * _8 in Core_Option_Option_Type.C_Some ( ^ node)) ( ^ _8); assume { Inv2.inv ( ^ node) }; _12 <- ([#"../red_black_tree.rs" 670 16 670 34] IsRed0.is_red (RedBlackTree_Node_Type.node_left ( * node))); goto BB4 @@ -8384,7 +8384,7 @@ module RedBlackTree_Impl15_DeleteMax end } BB5 { - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Red) c d e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Red) c d e) ( ^ node); assert { [@expl:type invariant] Inv3.inv node }; assume { Resolve1.resolve node }; assert { [@expl:type invariant] Inv4.inv _8 }; @@ -8403,7 +8403,7 @@ module RedBlackTree_Impl15_DeleteMax BB7 { assert { [@expl:assertion] [#"../red_black_tree.rs" 676 24 676 53] SameMappings0.same_mappings ( * Ghost.inner old_self) ( * self) }; _19 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _19) }; + self <- Borrow.make_borrow ( ^ _19) ( ^ self); assume { Inv5.inv ( ^ _19) }; r <- ([#"../red_black_tree.rs" 677 16 677 37] DeleteMaxRec0.delete_max_rec _19); _19 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -8429,7 +8429,7 @@ module RedBlackTree_Impl15_DeleteMax } BB11 { _26 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _26)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _26)) ( ^ self); assume { Inv1.inv ( ^ _26) }; _25 <- ([#"../red_black_tree.rs" 679 12 679 30] AsMut0.as_mut _26); _26 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -8441,7 +8441,7 @@ module RedBlackTree_Impl15_DeleteMax goto BB13 } BB13 { - _24 <- { _24 with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * _24 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Black) c d e) }; + _24 <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * _24 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Black) c d e) ( ^ _24); assert { [@expl:type invariant] Inv3.inv _24 }; assume { Resolve1.resolve _24 }; assert { [@expl:type invariant] Inv6.inv self }; @@ -8946,7 +8946,7 @@ module RedBlackTree_Impl15_DeleteMinRec } BB0 { _15 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _15)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _15)) ( ^ self); assume { Inv0.inv ( ^ _15) }; _14 <- ([#"../red_black_tree.rs" 697 23 697 41] AsMut0.as_mut _15); _15 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -8959,7 +8959,7 @@ module RedBlackTree_Impl15_DeleteMinRec } BB2 { _12 <- Borrow.borrow_mut ( * _13); - _13 <- { _13 with current = ( ^ _12) }; + _13 <- Borrow.make_borrow ( ^ _12) ( ^ _13); assume { Inv1.inv ( ^ _12) }; node <- ([#"../red_black_tree.rs" 697 23 697 59] AsMut1.as_mut _12); _12 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -8980,10 +8980,10 @@ module RedBlackTree_Impl15_DeleteMinRec assert { [@expl:type invariant] Inv3.inv node }; assume { Resolve1.resolve node }; _22 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _22)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _22)) ( ^ self); assume { Inv0.inv ( ^ _22) }; _21 <- Borrow.borrow_mut ( * _22); - _22 <- { _22 with current = ( ^ _21) }; + _22 <- Borrow.make_borrow ( ^ _21) ( ^ _22); assume { Inv0.inv ( ^ _21) }; _20 <- ([#"../red_black_tree.rs" 699 23 699 53] Take0.take _21); _21 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -9054,7 +9054,7 @@ module RedBlackTree_Impl15_DeleteMinRec } BB18 { _38 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _38) }; + node <- Borrow.make_borrow ( ^ _38) ( ^ node); assume { Inv7.inv ( ^ _38) }; _37 <- ([#"../red_black_tree.rs" 703 19 703 39] MoveRedLeft0.move_red_left _38); _38 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -9062,7 +9062,7 @@ module RedBlackTree_Impl15_DeleteMinRec } BB19 { _36 <- Borrow.borrow_mut ( * _37); - _37 <- { _37 with current = ( ^ _36) }; + _37 <- Borrow.make_borrow ( ^ _36) ( ^ _37); assume { Inv7.inv ( ^ _36) }; assert { [@expl:type invariant] Inv3.inv node }; assume { Resolve1.resolve node }; @@ -9079,7 +9079,7 @@ module RedBlackTree_Impl15_DeleteMinRec } BB21 { _40 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_left ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node ( ^ _40) b c d e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node ( ^ _40) b c d e) ( ^ node); assume { Inv8.inv ( ^ _40) }; r <- ([#"../red_black_tree.rs" 705 16 705 42] delete_min_rec _40); _40 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -9087,7 +9087,7 @@ module RedBlackTree_Impl15_DeleteMinRec } BB22 { _42 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _42) }; + node <- Borrow.make_borrow ( ^ _42) ( ^ node); assume { Inv7.inv ( ^ _42) }; _41 <- ([#"../red_black_tree.rs" 706 8 706 22] Balance0.balance _42); _42 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -9505,7 +9505,7 @@ module RedBlackTree_Impl15_DeleteMin BB1 { assume { Resolve0.resolve _5 }; _8 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _8)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _8)) ( ^ self); assume { Inv0.inv ( ^ _8) }; switch ( * _8) | Core_Option_Option_Type.C_Some _ -> goto BB2 @@ -9517,7 +9517,7 @@ module RedBlackTree_Impl15_DeleteMin } BB3 { node <- Borrow.borrow_mut (Core_Option_Option_Type.some_0 ( * _8)); - _8 <- { _8 with current = (let Core_Option_Option_Type.C_Some a = * _8 in Core_Option_Option_Type.C_Some ( ^ node)) }; + _8 <- Borrow.make_borrow (let Core_Option_Option_Type.C_Some a = * _8 in Core_Option_Option_Type.C_Some ( ^ node)) ( ^ _8); assume { Inv1.inv ( ^ node) }; _12 <- ([#"../red_black_tree.rs" 723 16 723 34] IsRed0.is_red (RedBlackTree_Node_Type.node_left ( * node))); goto BB4 @@ -9529,7 +9529,7 @@ module RedBlackTree_Impl15_DeleteMin end } BB5 { - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Red) c d e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Red) c d e) ( ^ node); assert { [@expl:type invariant] Inv2.inv node }; assume { Resolve1.resolve node }; assert { [@expl:type invariant] Inv3.inv _8 }; @@ -9547,7 +9547,7 @@ module RedBlackTree_Impl15_DeleteMin } BB7 { _17 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _17) }; + self <- Borrow.make_borrow ( ^ _17) ( ^ self); assume { Inv4.inv ( ^ _17) }; r <- ([#"../red_black_tree.rs" 729 16 729 37] DeleteMinRec0.delete_min_rec _17); _17 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -9573,7 +9573,7 @@ module RedBlackTree_Impl15_DeleteMin } BB11 { _24 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _24)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _24)) ( ^ self); assume { Inv0.inv ( ^ _24) }; _23 <- ([#"../red_black_tree.rs" 731 12 731 30] AsMut0.as_mut _24); _24 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -9585,7 +9585,7 @@ module RedBlackTree_Impl15_DeleteMin goto BB13 } BB13 { - _22 <- { _22 with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * _22 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Black) c d e) }; + _22 <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * _22 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Black) c d e) ( ^ _22); assert { [@expl:type invariant] Inv2.inv _22 }; assume { Resolve1.resolve _22 }; assert { [@expl:type invariant] Inv5.inv self }; @@ -10356,7 +10356,7 @@ module RedBlackTree_Impl15_DeleteRec } BB0 { _16 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _16)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _16)) ( ^ self); assume { Inv0.inv ( ^ _16) }; _15 <- ([#"../red_black_tree.rs" 750 23 750 41] AsMut0.as_mut _16); _16 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -10369,7 +10369,7 @@ module RedBlackTree_Impl15_DeleteRec } BB2 { _13 <- Borrow.borrow_mut ( * _14); - _14 <- { _14 with current = ( ^ _13) }; + _14 <- Borrow.make_borrow ( ^ _13) ( ^ _14); assume { Inv1.inv ( ^ _13) }; node <- ([#"../red_black_tree.rs" 750 23 750 59] AsMut1.as_mut _13); _13 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -10460,7 +10460,7 @@ module RedBlackTree_Impl15_DeleteRec } BB18 { _40 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _40) }; + node <- Borrow.make_borrow ( ^ _40) ( ^ node); assume { Inv5.inv ( ^ _40) }; _39 <- ([#"../red_black_tree.rs" 757 27 757 47] MoveRedLeft0.move_red_left _40); _40 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -10468,7 +10468,7 @@ module RedBlackTree_Impl15_DeleteRec } BB19 { _38 <- Borrow.borrow_mut ( * _39); - _39 <- { _39 with current = ( ^ _38) }; + _39 <- Borrow.make_borrow ( ^ _38) ( ^ _39); assume { Inv5.inv ( ^ _38) }; assert { [@expl:type invariant] Inv6.inv node }; assume { Resolve3.resolve node }; @@ -10485,7 +10485,7 @@ module RedBlackTree_Impl15_DeleteRec } BB21 { _42 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_left ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node ( ^ _42) b c d e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node ( ^ _42) b c d e) ( ^ node); assume { Inv7.inv ( ^ _42) }; assert { [@expl:type invariant] Inv3.inv key }; assume { Resolve1.resolve key }; @@ -10513,7 +10513,7 @@ module RedBlackTree_Impl15_DeleteRec } BB27 { _48 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _48) }; + node <- Borrow.make_borrow ( ^ _48) ( ^ node); assume { Inv5.inv ( ^ _48) }; _47 <- ([#"../red_black_tree.rs" 763 20 763 39] RotateRight0.rotate_right _48); _48 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -10521,7 +10521,7 @@ module RedBlackTree_Impl15_DeleteRec } BB28 { _50 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_right ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _50)) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _50)) ( ^ node); assume { Inv7.inv ( ^ _50) }; assert { [@expl:type invariant] Inv3.inv key }; assume { Resolve1.resolve key }; @@ -10572,10 +10572,10 @@ module RedBlackTree_Impl15_DeleteRec } BB38 { _62 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _62)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _62)) ( ^ self); assume { Inv0.inv ( ^ _62) }; _61 <- Borrow.borrow_mut ( * _62); - _62 <- { _62 with current = ( ^ _61) }; + _62 <- Borrow.make_borrow ( ^ _61) ( ^ _62); assume { Inv0.inv ( ^ _61) }; _60 <- ([#"../red_black_tree.rs" 770 35 770 65] Take0.take _61); _61 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -10630,7 +10630,7 @@ module RedBlackTree_Impl15_DeleteRec } BB48 { _75 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _75) }; + node <- Borrow.make_borrow ( ^ _75) ( ^ node); assume { Inv5.inv ( ^ _75) }; _74 <- ([#"../red_black_tree.rs" 774 31 774 52] MoveRedRight0.move_red_right _75); _75 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -10638,7 +10638,7 @@ module RedBlackTree_Impl15_DeleteRec } BB49 { _73 <- Borrow.borrow_mut ( * _74); - _74 <- { _74 with current = ( ^ _73) }; + _74 <- Borrow.make_borrow ( ^ _73) ( ^ _74); assume { Inv5.inv ( ^ _73) }; assert { [@expl:type invariant] Inv6.inv node }; assume { Resolve3.resolve node }; @@ -10666,7 +10666,7 @@ module RedBlackTree_Impl15_DeleteRec assert { [@expl:type invariant] Inv3.inv key }; assume { Resolve1.resolve key }; _78 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_right ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _78)) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _78)) ( ^ node); assume { Inv7.inv ( ^ _78) }; kv <- ([#"../red_black_tree.rs" 777 37 777 64] DeleteMinRec0.delete_min_rec _78); _78 <- any borrowed (RedBlackTree_Tree_Type.t_tree k v); @@ -10679,16 +10679,16 @@ module RedBlackTree_Impl15_DeleteRec BB55 { assume { Resolve5.resolve _79 }; _83 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_key ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b ( ^ _83) d e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b ( ^ _83) d e) ( ^ node); assume { Inv9.inv ( ^ _83) }; _82 <- Borrow.borrow_mut ( * _83); - _83 <- { _83 with current = ( ^ _82) }; + _83 <- Borrow.make_borrow ( ^ _82) ( ^ _83); assume { Inv9.inv ( ^ _82) }; _85 <- Borrow.borrow_mut (let (a, _) = kv in a); kv <- (let (a, b) = kv in ( ^ _85, b)); assume { Inv9.inv ( ^ _85) }; _84 <- Borrow.borrow_mut ( * _85); - _85 <- { _85 with current = ( ^ _84) }; + _85 <- Borrow.make_borrow ( ^ _84) ( ^ _85); assume { Inv9.inv ( ^ _84) }; _81 <- ([#"../red_black_tree.rs" 779 24 779 64] Swap0.swap _82 _84); _82 <- any borrowed k; @@ -10701,16 +10701,16 @@ module RedBlackTree_Impl15_DeleteRec assert { [@expl:type invariant] Inv10.inv _83 }; assume { Resolve6.resolve _83 }; _88 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_val ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c ( ^ _88) e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c ( ^ _88) e) ( ^ node); assume { Inv11.inv ( ^ _88) }; _87 <- Borrow.borrow_mut ( * _88); - _88 <- { _88 with current = ( ^ _87) }; + _88 <- Borrow.make_borrow ( ^ _87) ( ^ _88); assume { Inv11.inv ( ^ _87) }; _90 <- Borrow.borrow_mut (let (_, a) = kv in a); kv <- (let (a, b) = kv in (a, ^ _90)); assume { Inv11.inv ( ^ _90) }; _89 <- Borrow.borrow_mut ( * _90); - _90 <- { _90 with current = ( ^ _89) }; + _90 <- Borrow.make_borrow ( ^ _89) ( ^ _90); assume { Inv11.inv ( ^ _89) }; _86 <- ([#"../red_black_tree.rs" 780 24 780 64] Swap1.swap _87 _89); _87 <- any borrowed v; @@ -10741,7 +10741,7 @@ module RedBlackTree_Impl15_DeleteRec } BB63 { _94 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_right ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _94)) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _94)) ( ^ node); assume { Inv7.inv ( ^ _94) }; assert { [@expl:type invariant] Inv3.inv key }; assume { Resolve1.resolve key }; @@ -10766,7 +10766,7 @@ module RedBlackTree_Impl15_DeleteRec } BB69 { _97 <- Borrow.borrow_mut ( * node); - node <- { node with current = ( ^ _97) }; + node <- Borrow.make_borrow ( ^ _97) ( ^ node); assume { Inv5.inv ( ^ _97) }; _96 <- ([#"../red_black_tree.rs" 788 8 788 22] Balance0.balance _97); _97 <- any borrowed (RedBlackTree_Node_Type.t_node k v); @@ -11204,7 +11204,7 @@ module RedBlackTree_Impl15_Delete BB1 { assume { Resolve0.resolve _7 }; _10 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _10)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _10)) ( ^ self); assume { Inv0.inv ( ^ _10) }; switch ( * _10) | Core_Option_Option_Type.C_Some _ -> goto BB2 @@ -11216,7 +11216,7 @@ module RedBlackTree_Impl15_Delete } BB3 { node <- Borrow.borrow_mut (Core_Option_Option_Type.some_0 ( * _10)); - _10 <- { _10 with current = (let Core_Option_Option_Type.C_Some a = * _10 in Core_Option_Option_Type.C_Some ( ^ node)) }; + _10 <- Borrow.make_borrow (let Core_Option_Option_Type.C_Some a = * _10 in Core_Option_Option_Type.C_Some ( ^ node)) ( ^ _10); assume { Inv1.inv ( ^ node) }; _14 <- ([#"../red_black_tree.rs" 804 16 804 34] IsRed0.is_red (RedBlackTree_Node_Type.node_left ( * node))); goto BB4 @@ -11228,7 +11228,7 @@ module RedBlackTree_Impl15_Delete end } BB5 { - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Red) c d e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Red) c d e) ( ^ node); assert { [@expl:type invariant] Inv2.inv node }; assume { Resolve1.resolve node }; assert { [@expl:type invariant] Inv3.inv _10 }; @@ -11246,7 +11246,7 @@ module RedBlackTree_Impl15_Delete } BB7 { _19 <- Borrow.borrow_mut ( * self); - self <- { self with current = ( ^ _19) }; + self <- Borrow.make_borrow ( ^ _19) ( ^ self); assume { Inv4.inv ( ^ _19) }; assert { [@expl:type invariant] Inv5.inv key }; assume { Resolve3.resolve key }; @@ -11276,7 +11276,7 @@ module RedBlackTree_Impl15_Delete } BB11 { _27 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * self)); - self <- { self with current = (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _27)) }; + self <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * self in RedBlackTree_Tree_Type.C_Tree ( ^ _27)) ( ^ self); assume { Inv0.inv ( ^ _27) }; _26 <- ([#"../red_black_tree.rs" 812 12 812 30] AsMut0.as_mut _27); _27 <- any borrowed (Core_Option_Option_Type.t_option (RedBlackTree_Node_Type.t_node k v)); @@ -11288,7 +11288,7 @@ module RedBlackTree_Impl15_Delete goto BB13 } BB13 { - _25 <- { _25 with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * _25 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Black) c d e) }; + _25 <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * _25 in RedBlackTree_Node_Type.C_Node a (RedBlackTree_Color_Type.C_Black) c d e) ( ^ _25); assert { [@expl:type invariant] Inv2.inv _25 }; assume { Resolve1.resolve _25 }; assert { [@expl:type invariant] Inv6.inv self }; @@ -12181,7 +12181,7 @@ module RedBlackTree_Impl15_GetMut } BB4 { _23 <- Borrow.borrow_mut (RedBlackTree_Tree_Type.tree_node ( * tree)); - tree <- { tree with current = (let RedBlackTree_Tree_Type.C_Tree a = * tree in RedBlackTree_Tree_Type.C_Tree ( ^ _23)) }; + tree <- Borrow.make_borrow (let RedBlackTree_Tree_Type.C_Tree a = * tree in RedBlackTree_Tree_Type.C_Tree ( ^ _23)) ( ^ tree); assume { Inv3.inv ( ^ _23) }; switch ( * _23) | Core_Option_Option_Type.C_Some _ -> goto BB5 @@ -12193,7 +12193,7 @@ module RedBlackTree_Impl15_GetMut } BB6 { node <- Borrow.borrow_mut (Core_Option_Option_Type.some_0 ( * _23)); - _23 <- { _23 with current = (let Core_Option_Option_Type.C_Some a = * _23 in Core_Option_Option_Type.C_Some ( ^ node)) }; + _23 <- Borrow.make_borrow (let Core_Option_Option_Type.C_Some a = * _23 in Core_Option_Option_Type.C_Some ( ^ node)) ( ^ _23); assume { Inv4.inv ( ^ node) }; _29 <- RedBlackTree_Node_Type.node_key ( * node); assert { [@expl:type invariant] Inv5.inv _29 }; @@ -12216,10 +12216,10 @@ module RedBlackTree_Impl15_GetMut } BB10 { _37 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_right ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _37)) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c d ( ^ _37)) ( ^ node); assume { Inv6.inv ( ^ _37) }; _36 <- Borrow.borrow_mut ( * _37); - _37 <- { _37 with current = ( ^ _36) }; + _37 <- Borrow.make_borrow ( ^ _36) ( ^ _37); assume { Inv6.inv ( ^ _36) }; assert { [@expl:type invariant] Inv7.inv tree }; assume { Resolve3.resolve tree }; @@ -12243,10 +12243,10 @@ module RedBlackTree_Impl15_GetMut } BB12 { _32 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_left ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node ( ^ _32) b c d e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node ( ^ _32) b c d e) ( ^ node); assume { Inv6.inv ( ^ _32) }; _31 <- Borrow.borrow_mut ( * _32); - _32 <- { _32 with current = ( ^ _31) }; + _32 <- Borrow.make_borrow ( ^ _31) ( ^ _32); assume { Inv6.inv ( ^ _31) }; assert { [@expl:type invariant] Inv7.inv tree }; assume { Resolve3.resolve tree }; @@ -12261,10 +12261,10 @@ module RedBlackTree_Impl15_GetMut assert { [@expl:type invariant] Inv5.inv key }; assume { Resolve2.resolve key }; _35 <- Borrow.borrow_mut (RedBlackTree_Node_Type.node_val ( * node)); - node <- { node with current = (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c ( ^ _35) e) }; + node <- Borrow.make_borrow (let RedBlackTree_Node_Type.C_Node a b c d e = * node in RedBlackTree_Node_Type.C_Node a b c ( ^ _35) e) ( ^ node); assume { Inv1.inv ( ^ _35) }; _34 <- Borrow.borrow_mut ( * _35); - _35 <- { _35 with current = ( ^ _34) }; + _35 <- Borrow.make_borrow ( ^ _34) ( ^ _35); assume { Inv1.inv ( ^ _34) }; _0 <- Core_Option_Option_Type.C_Some _34; _34 <- any borrowed v; diff --git a/creusot/tests/should_succeed/resolve_uninit.mlcfg b/creusot/tests/should_succeed/resolve_uninit.mlcfg index 38b2e25cbe..dc846be80e 100644 --- a/creusot/tests/should_succeed/resolve_uninit.mlcfg +++ b/creusot/tests/should_succeed/resolve_uninit.mlcfg @@ -220,14 +220,14 @@ module ResolveUninit_InitJoin _8 <- Borrow.borrow_mut x; x <- ^ _8; _7 <- Borrow.borrow_mut ( * _8); - _8 <- { _8 with current = ( ^ _7) }; + _8 <- Borrow.make_borrow ( ^ _7) ( ^ _8); z <- _7; _7 <- any borrowed int32; assume { Resolve0.resolve _8 }; _10 <- Borrow.borrow_mut ( * z); - z <- { z with current = ( ^ _10) }; + z <- Borrow.make_borrow ( ^ _10) ( ^ z); _9 <- Borrow.borrow_mut ( * _10); - _10 <- { _10 with current = ( ^ _9) }; + _10 <- Borrow.make_borrow ( ^ _9) ( ^ _10); y <- _9; _9 <- any borrowed int32; assume { Resolve0.resolve _10 }; @@ -238,7 +238,7 @@ module ResolveUninit_InitJoin _12 <- Borrow.borrow_mut x; x <- ^ _12; _11 <- Borrow.borrow_mut ( * _12); - _12 <- { _12 with current = ( ^ _11) }; + _12 <- Borrow.make_borrow ( ^ _11) ( ^ _12); y <- _11; _11 <- any borrowed int32; assume { Resolve0.resolve _12 }; @@ -246,7 +246,7 @@ module ResolveUninit_InitJoin goto BB3 } BB3 { - y <- { y with current = ([#"../resolve_uninit.rs" 27 9 27 10] (5 : int32)) }; + y <- Borrow.make_borrow ([#"../resolve_uninit.rs" 27 9 27 10] (5 : int32)) ( ^ y); assume { Resolve0.resolve y }; switch (not ([#"../resolve_uninit.rs" 28 12 28 18] x = ([#"../resolve_uninit.rs" 28 17 28 18] (5 : int32)))) | False -> goto BB5 diff --git a/creusot/tests/should_succeed/result/own.mlcfg b/creusot/tests/should_succeed/result/own.mlcfg index 4a0c7642b5..2c0d6089a3 100644 --- a/creusot/tests/should_succeed/result/own.mlcfg +++ b/creusot/tests/should_succeed/result/own.mlcfg @@ -712,10 +712,10 @@ module Own_Impl0_AsMut } BB2 { x1 <- Borrow.borrow_mut (Own_OwnResult_Type.err_0 ( * self)); - self <- { self with current = (let Own_OwnResult_Type.C_Err a = * self in Own_OwnResult_Type.C_Err ( ^ x1)) }; + self <- Borrow.make_borrow (let Own_OwnResult_Type.C_Err a = * self in Own_OwnResult_Type.C_Err ( ^ x1)) ( ^ self); assume { Inv2.inv ( ^ x1) }; _7 <- Borrow.borrow_mut ( * x1); - x1 <- { x1 with current = ( ^ _7) }; + x1 <- Borrow.make_borrow ( ^ _7) ( ^ x1); assume { Inv2.inv ( ^ _7) }; _0 <- Own_OwnResult_Type.C_Err _7; _7 <- any borrowed e; @@ -730,10 +730,10 @@ module Own_Impl0_AsMut } BB4 { x <- Borrow.borrow_mut (Own_OwnResult_Type.ok_0 ( * self)); - self <- { self with current = (let Own_OwnResult_Type.C_Ok a = * self in Own_OwnResult_Type.C_Ok ( ^ x)) }; + self <- Borrow.make_borrow (let Own_OwnResult_Type.C_Ok a = * self in Own_OwnResult_Type.C_Ok ( ^ x)) ( ^ self); assume { Inv0.inv ( ^ x) }; _5 <- Borrow.borrow_mut ( * x); - x <- { x with current = ( ^ _5) }; + x <- Borrow.make_borrow ( ^ _5) ( ^ x); assume { Inv0.inv ( ^ _5) }; _0 <- Own_OwnResult_Type.C_Ok _5; _5 <- any borrowed t; diff --git a/creusot/tests/should_succeed/result/result.mlcfg b/creusot/tests/should_succeed/result/result.mlcfg index e3af0d18e1..f214ed9172 100644 --- a/creusot/tests/should_succeed/result/result.mlcfg +++ b/creusot/tests/should_succeed/result/result.mlcfg @@ -1002,7 +1002,7 @@ module Result_TestResult goto BB40 } BB40 { - _65 <- { _65 with current = ([#"../result.rs" 23 28 23 29] (0 : int32)) }; + _65 <- Borrow.make_borrow ([#"../result.rs" 23 28 23 29] (0 : int32)) ( ^ _65); assume { Resolve0.resolve _65 }; _71 <- ([#"../result.rs" 24 12 24 23] Unwrap3.unwrap ok); goto BB41 @@ -1029,7 +1029,7 @@ module Result_TestResult goto BB45 } BB45 { - _74 <- { _74 with current = ([#"../result.rs" 25 28 25 29] (1 : int32)) }; + _74 <- Borrow.make_borrow ([#"../result.rs" 25 28 25 29] (1 : int32)) ( ^ _74); assume { Resolve0.resolve _74 }; _80 <- ([#"../result.rs" 26 12 26 23] Unwrap3.unwrap ok); goto BB46 @@ -1056,7 +1056,7 @@ module Result_TestResult goto BB50 } BB50 { - _83 <- { _83 with current = ([#"../result.rs" 27 33 27 34] (0 : int32)) }; + _83 <- Borrow.make_borrow ([#"../result.rs" 27 33 27 34] (0 : int32)) ( ^ _83); assume { Resolve0.resolve _83 }; _89 <- ([#"../result.rs" 28 12 28 28] UnwrapErr2.unwrap_err err); goto BB51 @@ -1083,7 +1083,7 @@ module Result_TestResult goto BB55 } BB55 { - _92 <- { _92 with current = ([#"../result.rs" 29 33 29 35] (-1 : int32)) }; + _92 <- Borrow.make_borrow ([#"../result.rs" 29 33 29 35] (-1 : int32)) ( ^ _92); assume { Resolve0.resolve _92 }; _98 <- ([#"../result.rs" 30 12 30 28] UnwrapErr2.unwrap_err err); goto BB56 diff --git a/creusot/tests/should_succeed/rusthorn/inc_max.mlcfg b/creusot/tests/should_succeed/rusthorn/inc_max.mlcfg index fe1b7f0fdd..c77908e8b5 100644 --- a/creusot/tests/should_succeed/rusthorn/inc_max.mlcfg +++ b/creusot/tests/should_succeed/rusthorn/inc_max.mlcfg @@ -65,23 +65,23 @@ module IncMax_TakeMax BB1 { assume { Resolve0.resolve mb }; _9 <- Borrow.borrow_mut ( * ma); - ma <- { ma with current = ( ^ _9) }; + ma <- Borrow.make_borrow ( ^ _9) ( ^ ma); _5 <- Borrow.borrow_mut ( * _9); - _9 <- { _9 with current = ( ^ _5) }; + _9 <- Borrow.make_borrow ( ^ _5) ( ^ _9); assume { Resolve0.resolve _9 }; goto BB3 } BB2 { assume { Resolve0.resolve ma }; _5 <- Borrow.borrow_mut ( * mb); - mb <- { mb with current = ( ^ _5) }; + mb <- Borrow.make_borrow ( ^ _5) ( ^ mb); goto BB3 } BB3 { _3 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _3) }; + _5 <- Borrow.make_borrow ( ^ _3) ( ^ _5); _0 <- Borrow.borrow_mut ( * _3); - _3 <- { _3 with current = ( ^ _0) }; + _3 <- Borrow.make_borrow ( ^ _0) ( ^ _3); assume { Resolve0.resolve _5 }; assume { Resolve0.resolve _3 }; assume { Resolve0.resolve mb }; @@ -123,11 +123,11 @@ module IncMax_IncMax _6 <- Borrow.borrow_mut a; a <- ^ _6; _5 <- Borrow.borrow_mut ( * _6); - _6 <- { _6 with current = ( ^ _5) }; + _6 <- Borrow.make_borrow ( ^ _5) ( ^ _6); _8 <- Borrow.borrow_mut b; b <- ^ _8; _7 <- Borrow.borrow_mut ( * _8); - _8 <- { _8 with current = ( ^ _7) }; + _8 <- Borrow.make_borrow ( ^ _7) ( ^ _8); mc <- ([#"../inc_max.rs" 16 13 16 37] TakeMax0.take_max _5 _7); _5 <- any borrowed uint32; _7 <- any borrowed uint32; @@ -136,7 +136,7 @@ module IncMax_IncMax BB1 { assume { Resolve0.resolve _8 }; assume { Resolve0.resolve _6 }; - mc <- { mc with current = ([#"../inc_max.rs" 17 4 17 12] * mc + ([#"../inc_max.rs" 17 11 17 12] (1 : uint32))) }; + mc <- Borrow.make_borrow ([#"../inc_max.rs" 17 4 17 12] * mc + ([#"../inc_max.rs" 17 11 17 12] (1 : uint32))) ( ^ mc); assume { Resolve0.resolve mc }; switch (not ([#"../inc_max.rs" 18 12 18 18] a <> b)) | False -> goto BB3 diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_3.mlcfg b/creusot/tests/should_succeed/rusthorn/inc_max_3.mlcfg index 08087cec71..ac2e0c3c07 100644 --- a/creusot/tests/should_succeed/rusthorn/inc_max_3.mlcfg +++ b/creusot/tests/should_succeed/rusthorn/inc_max_3.mlcfg @@ -87,11 +87,11 @@ module IncMax3_IncMax3 _12 <- Borrow.borrow_mut ma; ma <- ^ _12; _11 <- Borrow.borrow_mut ( * _12); - _12 <- { _12 with current = ( ^ _11) }; + _12 <- Borrow.make_borrow ( ^ _11) ( ^ _12); _14 <- Borrow.borrow_mut mb; mb <- ^ _14; _13 <- Borrow.borrow_mut ( * _14); - _14 <- { _14 with current = ( ^ _13) }; + _14 <- Borrow.make_borrow ( ^ _13) ( ^ _14); _10 <- ([#"../inc_max_3.rs" 14 8 14 30] Swap0.swap _11 _13); _11 <- any borrowed (borrowed uint32); _13 <- any borrowed (borrowed uint32); @@ -117,11 +117,11 @@ module IncMax3_IncMax3 _21 <- Borrow.borrow_mut mb; mb <- ^ _21; _20 <- Borrow.borrow_mut ( * _21); - _21 <- { _21 with current = ( ^ _20) }; + _21 <- Borrow.make_borrow ( ^ _20) ( ^ _21); _23 <- Borrow.borrow_mut mc; mc <- ^ _23; _22 <- Borrow.borrow_mut ( * _23); - _23 <- { _23 with current = ( ^ _22) }; + _23 <- Borrow.make_borrow ( ^ _22) ( ^ _23); _19 <- ([#"../inc_max_3.rs" 17 8 17 30] Swap0.swap _20 _22); _20 <- any borrowed (borrowed uint32); _22 <- any borrowed (borrowed uint32); @@ -149,11 +149,11 @@ module IncMax3_IncMax3 _30 <- Borrow.borrow_mut ma; ma <- ^ _30; _29 <- Borrow.borrow_mut ( * _30); - _30 <- { _30 with current = ( ^ _29) }; + _30 <- Borrow.make_borrow ( ^ _29) ( ^ _30); _32 <- Borrow.borrow_mut mb; mb <- ^ _32; _31 <- Borrow.borrow_mut ( * _32); - _32 <- { _32 with current = ( ^ _31) }; + _32 <- Borrow.make_borrow ( ^ _31) ( ^ _32); _28 <- ([#"../inc_max_3.rs" 20 8 20 30] Swap0.swap _29 _31); _29 <- any borrowed (borrowed uint32); _31 <- any borrowed (borrowed uint32); @@ -170,9 +170,9 @@ module IncMax3_IncMax3 goto BB12 } BB12 { - ma <- { ma with current = ([#"../inc_max_3.rs" 22 4 22 12] * ma + ([#"../inc_max_3.rs" 22 11 22 12] (2 : uint32))) }; + ma <- Borrow.make_borrow ([#"../inc_max_3.rs" 22 4 22 12] * ma + ([#"../inc_max_3.rs" 22 11 22 12] (2 : uint32))) ( ^ ma); assume { Resolve1.resolve ma }; - mb <- { mb with current = ([#"../inc_max_3.rs" 23 4 23 12] * mb + ([#"../inc_max_3.rs" 23 11 23 12] (1 : uint32))) }; + mb <- Borrow.make_borrow ([#"../inc_max_3.rs" 23 4 23 12] * mb + ([#"../inc_max_3.rs" 23 11 23 12] (1 : uint32))) ( ^ mb); assume { Resolve1.resolve mb }; _0 <- (); return _0 @@ -217,15 +217,15 @@ module IncMax3_TestIncMax3 _7 <- Borrow.borrow_mut a; a <- ^ _7; _6 <- Borrow.borrow_mut ( * _7); - _7 <- { _7 with current = ( ^ _6) }; + _7 <- Borrow.make_borrow ( ^ _6) ( ^ _7); _9 <- Borrow.borrow_mut b; b <- ^ _9; _8 <- Borrow.borrow_mut ( * _9); - _9 <- { _9 with current = ( ^ _8) }; + _9 <- Borrow.make_borrow ( ^ _8) ( ^ _9); _11 <- Borrow.borrow_mut c; c <- ^ _11; _10 <- Borrow.borrow_mut ( * _11); - _11 <- { _11 with current = ( ^ _10) }; + _11 <- Borrow.make_borrow ( ^ _10) ( ^ _11); _5 <- ([#"../inc_max_3.rs" 28 4 28 37] IncMax30.inc_max_3 _6 _8 _10); _6 <- any borrowed uint32; _8 <- any borrowed uint32; diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_many.mlcfg b/creusot/tests/should_succeed/rusthorn/inc_max_many.mlcfg index e97312d1a1..ccfdb21d0b 100644 --- a/creusot/tests/should_succeed/rusthorn/inc_max_many.mlcfg +++ b/creusot/tests/should_succeed/rusthorn/inc_max_many.mlcfg @@ -65,23 +65,23 @@ module IncMaxMany_TakeMax BB1 { assume { Resolve0.resolve mb }; _9 <- Borrow.borrow_mut ( * ma); - ma <- { ma with current = ( ^ _9) }; + ma <- Borrow.make_borrow ( ^ _9) ( ^ ma); _5 <- Borrow.borrow_mut ( * _9); - _9 <- { _9 with current = ( ^ _5) }; + _9 <- Borrow.make_borrow ( ^ _5) ( ^ _9); assume { Resolve0.resolve _9 }; goto BB3 } BB2 { assume { Resolve0.resolve ma }; _5 <- Borrow.borrow_mut ( * mb); - mb <- { mb with current = ( ^ _5) }; + mb <- Borrow.make_borrow ( ^ _5) ( ^ mb); goto BB3 } BB3 { _3 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _3) }; + _5 <- Borrow.make_borrow ( ^ _3) ( ^ _5); _0 <- Borrow.borrow_mut ( * _3); - _3 <- { _3 with current = ( ^ _0) }; + _3 <- Borrow.make_borrow ( ^ _0) ( ^ _3); assume { Resolve0.resolve _5 }; assume { Resolve0.resolve _3 }; assume { Resolve0.resolve mb }; @@ -125,11 +125,11 @@ module IncMaxMany_IncMaxMany _7 <- Borrow.borrow_mut a; a <- ^ _7; _6 <- Borrow.borrow_mut ( * _7); - _7 <- { _7 with current = ( ^ _6) }; + _7 <- Borrow.make_borrow ( ^ _6) ( ^ _7); _9 <- Borrow.borrow_mut b; b <- ^ _9; _8 <- Borrow.borrow_mut ( * _9); - _9 <- { _9 with current = ( ^ _8) }; + _9 <- Borrow.make_borrow ( ^ _8) ( ^ _9); mc <- ([#"../inc_max_many.rs" 16 13 16 37] TakeMax0.take_max _6 _8); _6 <- any borrowed uint32; _8 <- any borrowed uint32; @@ -138,7 +138,7 @@ module IncMaxMany_IncMaxMany BB1 { assume { Resolve0.resolve _9 }; assume { Resolve0.resolve _7 }; - mc <- { mc with current = ([#"../inc_max_many.rs" 17 4 17 12] * mc + k) }; + mc <- Borrow.make_borrow ([#"../inc_max_many.rs" 17 4 17 12] * mc + k) ( ^ mc); assume { Resolve0.resolve mc }; switch ([#"../inc_max_many.rs" 18 12 18 22] a >= ([#"../inc_max_many.rs" 18 17 18 22] b + k)) | False -> goto BB3 diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_repeat.mlcfg b/creusot/tests/should_succeed/rusthorn/inc_max_repeat.mlcfg index ef303d4713..e5f4b562d1 100644 --- a/creusot/tests/should_succeed/rusthorn/inc_max_repeat.mlcfg +++ b/creusot/tests/should_succeed/rusthorn/inc_max_repeat.mlcfg @@ -65,23 +65,23 @@ module IncMaxRepeat_TakeMax BB1 { assume { Resolve0.resolve mb }; _9 <- Borrow.borrow_mut ( * ma); - ma <- { ma with current = ( ^ _9) }; + ma <- Borrow.make_borrow ( ^ _9) ( ^ ma); _5 <- Borrow.borrow_mut ( * _9); - _9 <- { _9 with current = ( ^ _5) }; + _9 <- Borrow.make_borrow ( ^ _5) ( ^ _9); assume { Resolve0.resolve _9 }; goto BB3 } BB2 { assume { Resolve0.resolve ma }; _5 <- Borrow.borrow_mut ( * mb); - mb <- { mb with current = ( ^ _5) }; + mb <- Borrow.make_borrow ( ^ _5) ( ^ mb); goto BB3 } BB3 { _3 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _3) }; + _5 <- Borrow.make_borrow ( ^ _3) ( ^ _5); _0 <- Borrow.borrow_mut ( * _3); - _3 <- { _3 with current = ( ^ _0) }; + _3 <- Borrow.make_borrow ( ^ _0) ( ^ _3); assume { Resolve0.resolve _5 }; assume { Resolve0.resolve _3 }; assume { Resolve0.resolve mb }; @@ -677,7 +677,7 @@ module IncMaxRepeat_IncMaxRepeat _20 <- Borrow.borrow_mut iter; iter <- ^ _20; _19 <- Borrow.borrow_mut ( * _20); - _20 <- { _20 with current = ( ^ _19) }; + _20 <- Borrow.make_borrow ( ^ _19) ( ^ _20); _18 <- ([#"../inc_max_repeat.rs" 16 4 16 86] Next0.next _19); _19 <- any borrowed (Core_Ops_Range_Range_Type.t_range uint32); goto BB6 @@ -712,11 +712,11 @@ module IncMaxRepeat_IncMaxRepeat _27 <- Borrow.borrow_mut a; a <- ^ _27; _26 <- Borrow.borrow_mut ( * _27); - _27 <- { _27 with current = ( ^ _26) }; + _27 <- Borrow.make_borrow ( ^ _26) ( ^ _27); _29 <- Borrow.borrow_mut b; b <- ^ _29; _28 <- Borrow.borrow_mut ( * _29); - _29 <- { _29 with current = ( ^ _28) }; + _29 <- Borrow.make_borrow ( ^ _28) ( ^ _29); mc <- ([#"../inc_max_repeat.rs" 19 17 19 41] TakeMax0.take_max _26 _28); _26 <- any borrowed uint32; _28 <- any borrowed uint32; @@ -725,7 +725,7 @@ module IncMaxRepeat_IncMaxRepeat BB12 { assume { Resolve1.resolve _29 }; assume { Resolve1.resolve _27 }; - mc <- { mc with current = ([#"../inc_max_repeat.rs" 20 8 20 16] * mc + ([#"../inc_max_repeat.rs" 20 15 20 16] (1 : uint32))) }; + mc <- Borrow.make_borrow ([#"../inc_max_repeat.rs" 20 8 20 16] * mc + ([#"../inc_max_repeat.rs" 20 15 20 16] (1 : uint32))) ( ^ mc); assume { Resolve1.resolve mc }; goto BB4 } diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_2_list.mlcfg b/creusot/tests/should_succeed/rusthorn/inc_some_2_list.mlcfg index e502d44fd0..2bcba61e0e 100644 --- a/creusot/tests/should_succeed/rusthorn/inc_some_2_list.mlcfg +++ b/creusot/tests/should_succeed/rusthorn/inc_some_2_list.mlcfg @@ -337,9 +337,9 @@ module IncSome2List_Impl0_TakeSomeRest } BB4 { ma <- Borrow.borrow_mut (IncSome2List_List_Type.cons_0 ( * self)); - self <- { self with current = (let IncSome2List_List_Type.C_Cons a b = * self in IncSome2List_List_Type.C_Cons ( ^ ma) b) }; + self <- Borrow.make_borrow (let IncSome2List_List_Type.C_Cons a b = * self in IncSome2List_List_Type.C_Cons ( ^ ma) b) ( ^ self); ml <- Borrow.borrow_mut (IncSome2List_List_Type.cons_1 ( * self)); - self <- { self with current = (let IncSome2List_List_Type.C_Cons a b = * self in IncSome2List_List_Type.C_Cons a ( ^ ml)) }; + self <- Borrow.make_borrow (let IncSome2List_List_Type.C_Cons a b = * self in IncSome2List_List_Type.C_Cons a ( ^ ml)) ( ^ self); _8 <- ([#"../inc_some_2_list.rs" 57 16 57 45] Ghost.new (LemmaSumNonneg0.lemma_sum_nonneg ( * ml))); goto BB5 } @@ -355,9 +355,9 @@ module IncSome2List_Impl0_TakeSomeRest } BB7 { _11 <- Borrow.borrow_mut ( * ma); - ma <- { ma with current = ( ^ _11) }; + ma <- Borrow.make_borrow ( ^ _11) ( ^ ma); _12 <- Borrow.borrow_mut ( * ml); - ml <- { ml with current = ( ^ _12) }; + ml <- Borrow.make_borrow ( ^ _12) ( ^ ml); _0 <- (_11, _12); _11 <- any borrowed uint32; _12 <- any borrowed (IncSome2List_List_Type.t_list); @@ -366,7 +366,7 @@ module IncSome2List_Impl0_TakeSomeRest BB8 { assume { Resolve0.resolve ma }; _13 <- Borrow.borrow_mut ( * ml); - ml <- { ml with current = ( ^ _13) }; + ml <- Borrow.make_borrow ( ^ _13) ( ^ ml); _0 <- ([#"../inc_some_2_list.rs" 61 20 61 39] take_some_rest _13); _13 <- any borrowed (IncSome2List_List_Type.t_list); goto BB9 @@ -508,7 +508,7 @@ module IncSome2List_IncSome2List _9 <- (let (a, b) = _9 in (a, any borrowed (IncSome2List_List_Type.t_list))); assume { Resolve0.resolve _9 }; _13 <- Borrow.borrow_mut ( * ml); - ml <- { ml with current = ( ^ _13) }; + ml <- Borrow.make_borrow ( ^ _13) ( ^ ml); _12 <- ([#"../inc_some_2_list.rs" 73 18 73 37] TakeSomeRest0.take_some_rest _13); _13 <- any borrowed (IncSome2List_List_Type.t_list); goto BB4 @@ -517,9 +517,9 @@ module IncSome2List_IncSome2List mb <- (let (a, _) = _12 in a); _12 <- (let (a, b) = _12 in (any borrowed uint32, b)); assume { Resolve0.resolve _12 }; - ma <- { ma with current = ([#"../inc_some_2_list.rs" 74 4 74 12] * ma + j) }; + ma <- Borrow.make_borrow ([#"../inc_some_2_list.rs" 74 4 74 12] * ma + j) ( ^ ma); assume { Resolve1.resolve ma }; - mb <- { mb with current = ([#"../inc_some_2_list.rs" 75 4 75 12] * mb + k) }; + mb <- Borrow.make_borrow ([#"../inc_some_2_list.rs" 75 4 75 12] * mb + k) ( ^ mb); assume { Resolve1.resolve mb }; assume { Resolve2.resolve ml }; _19 <- ([#"../inc_some_2_list.rs" 76 12 76 21] SumX0.sum_x l); diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_2_tree.mlcfg b/creusot/tests/should_succeed/rusthorn/inc_some_2_tree.mlcfg index 492279c45a..28b4956a06 100644 --- a/creusot/tests/should_succeed/rusthorn/inc_some_2_tree.mlcfg +++ b/creusot/tests/should_succeed/rusthorn/inc_some_2_tree.mlcfg @@ -358,11 +358,11 @@ module IncSome2Tree_Impl0_TakeSomeRest } BB4 { mtl <- Borrow.borrow_mut (IncSome2Tree_Tree_Type.node_0 ( * self)); - self <- { self with current = (let IncSome2Tree_Tree_Type.C_Node a b c = * self in IncSome2Tree_Tree_Type.C_Node ( ^ mtl) b c) }; + self <- Borrow.make_borrow (let IncSome2Tree_Tree_Type.C_Node a b c = * self in IncSome2Tree_Tree_Type.C_Node ( ^ mtl) b c) ( ^ self); ma <- Borrow.borrow_mut (IncSome2Tree_Tree_Type.node_1 ( * self)); - self <- { self with current = (let IncSome2Tree_Tree_Type.C_Node a b c = * self in IncSome2Tree_Tree_Type.C_Node a ( ^ ma) c) }; + self <- Borrow.make_borrow (let IncSome2Tree_Tree_Type.C_Node a b c = * self in IncSome2Tree_Tree_Type.C_Node a ( ^ ma) c) ( ^ self); mtr <- Borrow.borrow_mut (IncSome2Tree_Tree_Type.node_2 ( * self)); - self <- { self with current = (let IncSome2Tree_Tree_Type.C_Node a b c = * self in IncSome2Tree_Tree_Type.C_Node a b ( ^ mtr)) }; + self <- Borrow.make_borrow (let IncSome2Tree_Tree_Type.C_Node a b c = * self in IncSome2Tree_Tree_Type.C_Node a b ( ^ mtr)) ( ^ self); assert { [@expl:assertion] [#"../inc_some_2_tree.rs" 67 20 67 42] let _ = LemmaSumNonneg0.lemma_sum_nonneg ( * mtl) in let _ = LemmaSumNonneg0.lemma_sum_nonneg ( * mtr) in true }; _11 <- ([#"../inc_some_2_tree.rs" 71 19 71 27] Random0.random ()); goto BB5 @@ -375,7 +375,7 @@ module IncSome2Tree_Impl0_TakeSomeRest } BB6 { _12 <- Borrow.borrow_mut ( * ma); - ma <- { ma with current = ( ^ _12) }; + ma <- Borrow.make_borrow ( ^ _12) ( ^ ma); _15 <- ([#"../inc_some_2_tree.rs" 72 28 72 36] Random0.random ()); goto BB7 } @@ -388,21 +388,21 @@ module IncSome2Tree_Impl0_TakeSomeRest BB8 { assume { Resolve1.resolve mtr }; _16 <- Borrow.borrow_mut ( * mtl); - mtl <- { mtl with current = ( ^ _16) }; + mtl <- Borrow.make_borrow ( ^ _16) ( ^ mtl); _14 <- Borrow.borrow_mut ( * _16); - _16 <- { _16 with current = ( ^ _14) }; + _16 <- Borrow.make_borrow ( ^ _14) ( ^ _16); assume { Resolve2.resolve _16 }; goto BB10 } BB9 { assume { Resolve1.resolve mtl }; _14 <- Borrow.borrow_mut ( * mtr); - mtr <- { mtr with current = ( ^ _14) }; + mtr <- Borrow.make_borrow ( ^ _14) ( ^ mtr); goto BB10 } BB10 { _13 <- Borrow.borrow_mut ( * _14); - _14 <- { _14 with current = ( ^ _13) }; + _14 <- Borrow.make_borrow ( ^ _13) ( ^ _14); _0 <- (_12, _13); _12 <- any borrowed uint32; _13 <- any borrowed (IncSome2Tree_Tree_Type.t_tree); @@ -423,7 +423,7 @@ module IncSome2Tree_Impl0_TakeSomeRest BB13 { assume { Resolve1.resolve mtr }; _18 <- Borrow.borrow_mut ( * mtl); - mtl <- { mtl with current = ( ^ _18) }; + mtl <- Borrow.make_borrow ( ^ _18) ( ^ mtl); _0 <- ([#"../inc_some_2_tree.rs" 74 20 74 40] take_some_rest _18); _18 <- any borrowed (IncSome2Tree_Tree_Type.t_tree); goto BB14 @@ -434,7 +434,7 @@ module IncSome2Tree_Impl0_TakeSomeRest BB15 { assume { Resolve1.resolve mtl }; _19 <- Borrow.borrow_mut ( * mtr); - mtr <- { mtr with current = ( ^ _19) }; + mtr <- Borrow.make_borrow ( ^ _19) ( ^ mtr); _0 <- ([#"../inc_some_2_tree.rs" 76 20 76 40] take_some_rest _19); _19 <- any borrowed (IncSome2Tree_Tree_Type.t_tree); goto BB16 @@ -580,7 +580,7 @@ module IncSome2Tree_IncSome2Tree _9 <- (let (a, b) = _9 in (a, any borrowed (IncSome2Tree_Tree_Type.t_tree))); assume { Resolve0.resolve _9 }; _13 <- Borrow.borrow_mut ( * mt); - mt <- { mt with current = ( ^ _13) }; + mt <- Borrow.make_borrow ( ^ _13) ( ^ mt); _12 <- ([#"../inc_some_2_tree.rs" 88 18 88 37] TakeSomeRest0.take_some_rest _13); _13 <- any borrowed (IncSome2Tree_Tree_Type.t_tree); goto BB4 @@ -589,9 +589,9 @@ module IncSome2Tree_IncSome2Tree mb <- (let (a, _) = _12 in a); _12 <- (let (a, b) = _12 in (any borrowed uint32, b)); assume { Resolve0.resolve _12 }; - ma <- { ma with current = ([#"../inc_some_2_tree.rs" 89 4 89 12] * ma + j) }; + ma <- Borrow.make_borrow ([#"../inc_some_2_tree.rs" 89 4 89 12] * ma + j) ( ^ ma); assume { Resolve1.resolve ma }; - mb <- { mb with current = ([#"../inc_some_2_tree.rs" 90 4 90 12] * mb + k) }; + mb <- Borrow.make_borrow ([#"../inc_some_2_tree.rs" 90 4 90 12] * mb + k) ( ^ mb); assume { Resolve1.resolve mb }; assume { Resolve2.resolve mt }; _19 <- ([#"../inc_some_2_tree.rs" 91 12 91 21] SumX0.sum_x t); diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_list.mlcfg b/creusot/tests/should_succeed/rusthorn/inc_some_list.mlcfg index 85af7a947c..7e102fbce5 100644 --- a/creusot/tests/should_succeed/rusthorn/inc_some_list.mlcfg +++ b/creusot/tests/should_succeed/rusthorn/inc_some_list.mlcfg @@ -339,9 +339,9 @@ module IncSomeList_Impl0_TakeSome } BB4 { ma <- Borrow.borrow_mut (IncSomeList_List_Type.cons_0 ( * self)); - self <- { self with current = (let IncSomeList_List_Type.C_Cons a b = * self in IncSomeList_List_Type.C_Cons ( ^ ma) b) }; + self <- Borrow.make_borrow (let IncSomeList_List_Type.C_Cons a b = * self in IncSomeList_List_Type.C_Cons ( ^ ma) b) ( ^ self); ml <- Borrow.borrow_mut (IncSomeList_List_Type.cons_1 ( * self)); - self <- { self with current = (let IncSomeList_List_Type.C_Cons a b = * self in IncSomeList_List_Type.C_Cons a ( ^ ml)) }; + self <- Borrow.make_borrow (let IncSomeList_List_Type.C_Cons a b = * self in IncSomeList_List_Type.C_Cons a ( ^ ml)) ( ^ self); _10 <- ([#"../inc_some_list.rs" 54 16 54 45] Ghost.new (LemmaSumNonneg0.lemma_sum_nonneg ( * ml))); goto BB5 } @@ -358,39 +358,39 @@ module IncSomeList_Impl0_TakeSome BB7 { assume { Resolve1.resolve ml }; _14 <- Borrow.borrow_mut ( * ma); - ma <- { ma with current = ( ^ _14) }; + ma <- Borrow.make_borrow ( ^ _14) ( ^ ma); _12 <- Borrow.borrow_mut ( * _14); - _14 <- { _14 with current = ( ^ _12) }; + _14 <- Borrow.make_borrow ( ^ _12) ( ^ _14); assume { Resolve0.resolve _14 }; goto BB10 } BB8 { assume { Resolve0.resolve ma }; _16 <- Borrow.borrow_mut ( * ml); - ml <- { ml with current = ( ^ _16) }; + ml <- Borrow.make_borrow ( ^ _16) ( ^ ml); _15 <- ([#"../inc_some_list.rs" 58 20 58 34] take_some _16); _16 <- any borrowed (IncSomeList_List_Type.t_list); goto BB9 } BB9 { _12 <- Borrow.borrow_mut ( * _15); - _15 <- { _15 with current = ( ^ _12) }; + _15 <- Borrow.make_borrow ( ^ _12) ( ^ _15); assume { Resolve0.resolve _15 }; goto BB10 } BB10 { _9 <- Borrow.borrow_mut ( * _12); - _12 <- { _12 with current = ( ^ _9) }; + _12 <- Borrow.make_borrow ( ^ _9) ( ^ _12); _5 <- Borrow.borrow_mut ( * _9); - _9 <- { _9 with current = ( ^ _5) }; + _9 <- Borrow.make_borrow ( ^ _5) ( ^ _9); assume { Resolve0.resolve _12 }; assume { Resolve0.resolve _9 }; assume { Resolve1.resolve ml }; assume { Resolve0.resolve ma }; _2 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _2) }; + _5 <- Borrow.make_borrow ( ^ _2) ( ^ _5); _0 <- Borrow.borrow_mut ( * _2); - _2 <- { _2 with current = ( ^ _0) }; + _2 <- Borrow.make_borrow ( ^ _0) ( ^ _2); assume { Resolve0.resolve _5 }; assume { Resolve0.resolve _2 }; assume { Resolve2.resolve self }; @@ -461,7 +461,7 @@ module IncSomeList_IncSomeList goto BB3 } BB3 { - ma <- { ma with current = ([#"../inc_some_list.rs" 70 4 70 12] * ma + k) }; + ma <- Borrow.make_borrow ([#"../inc_some_list.rs" 70 4 70 12] * ma + k) ( ^ ma); assume { Resolve0.resolve ma }; _12 <- ([#"../inc_some_list.rs" 71 12 71 21] SumX0.sum_x l); goto BB4 diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_tree.mlcfg b/creusot/tests/should_succeed/rusthorn/inc_some_tree.mlcfg index e10bcc1eaa..65ffe5fbae 100644 --- a/creusot/tests/should_succeed/rusthorn/inc_some_tree.mlcfg +++ b/creusot/tests/should_succeed/rusthorn/inc_some_tree.mlcfg @@ -359,11 +359,11 @@ module IncSomeTree_Impl0_TakeSome } BB4 { mtl <- Borrow.borrow_mut (IncSomeTree_Tree_Type.node_0 ( * self)); - self <- { self with current = (let IncSomeTree_Tree_Type.C_Node a b c = * self in IncSomeTree_Tree_Type.C_Node ( ^ mtl) b c) }; + self <- Borrow.make_borrow (let IncSomeTree_Tree_Type.C_Node a b c = * self in IncSomeTree_Tree_Type.C_Node ( ^ mtl) b c) ( ^ self); ma <- Borrow.borrow_mut (IncSomeTree_Tree_Type.node_1 ( * self)); - self <- { self with current = (let IncSomeTree_Tree_Type.C_Node a b c = * self in IncSomeTree_Tree_Type.C_Node a ( ^ ma) c) }; + self <- Borrow.make_borrow (let IncSomeTree_Tree_Type.C_Node a b c = * self in IncSomeTree_Tree_Type.C_Node a ( ^ ma) c) ( ^ self); mtr <- Borrow.borrow_mut (IncSomeTree_Tree_Type.node_2 ( * self)); - self <- { self with current = (let IncSomeTree_Tree_Type.C_Node a b c = * self in IncSomeTree_Tree_Type.C_Node a b ( ^ mtr)) }; + self <- Borrow.make_borrow (let IncSomeTree_Tree_Type.C_Node a b c = * self in IncSomeTree_Tree_Type.C_Node a b ( ^ mtr)) ( ^ self); assert { [@expl:assertion] [#"../inc_some_tree.rs" 65 20 65 42] let _ = LemmaSumNonneg0.lemma_sum_nonneg ( * mtl) in let _ = LemmaSumNonneg0.lemma_sum_nonneg ( * mtr) in true }; _14 <- ([#"../inc_some_tree.rs" 69 19 69 27] Random0.random ()); goto BB5 @@ -378,9 +378,9 @@ module IncSomeTree_Impl0_TakeSome assume { Resolve1.resolve mtr }; assume { Resolve1.resolve mtl }; _15 <- Borrow.borrow_mut ( * ma); - ma <- { ma with current = ( ^ _15) }; + ma <- Borrow.make_borrow ( ^ _15) ( ^ ma); _13 <- Borrow.borrow_mut ( * _15); - _15 <- { _15 with current = ( ^ _13) }; + _15 <- Borrow.make_borrow ( ^ _13) ( ^ _15); assume { Resolve0.resolve _15 }; goto BB14 } @@ -398,16 +398,16 @@ module IncSomeTree_Impl0_TakeSome BB9 { assume { Resolve1.resolve mtr }; _19 <- Borrow.borrow_mut ( * mtl); - mtl <- { mtl with current = ( ^ _19) }; + mtl <- Borrow.make_borrow ( ^ _19) ( ^ mtl); _18 <- ([#"../inc_some_tree.rs" 72 20 72 35] take_some _19); _19 <- any borrowed (IncSomeTree_Tree_Type.t_tree); goto BB10 } BB10 { _17 <- Borrow.borrow_mut ( * _18); - _18 <- { _18 with current = ( ^ _17) }; + _18 <- Borrow.make_borrow ( ^ _17) ( ^ _18); _13 <- Borrow.borrow_mut ( * _17); - _17 <- { _17 with current = ( ^ _13) }; + _17 <- Borrow.make_borrow ( ^ _13) ( ^ _17); assume { Resolve0.resolve _18 }; assume { Resolve0.resolve _17 }; goto BB13 @@ -415,14 +415,14 @@ module IncSomeTree_Impl0_TakeSome BB11 { assume { Resolve1.resolve mtl }; _21 <- Borrow.borrow_mut ( * mtr); - mtr <- { mtr with current = ( ^ _21) }; + mtr <- Borrow.make_borrow ( ^ _21) ( ^ mtr); _20 <- ([#"../inc_some_tree.rs" 74 20 74 35] take_some _21); _21 <- any borrowed (IncSomeTree_Tree_Type.t_tree); goto BB12 } BB12 { _13 <- Borrow.borrow_mut ( * _20); - _20 <- { _20 with current = ( ^ _13) }; + _20 <- Borrow.make_borrow ( ^ _13) ( ^ _20); assume { Resolve0.resolve _20 }; goto BB13 } @@ -431,18 +431,18 @@ module IncSomeTree_Impl0_TakeSome } BB14 { _10 <- Borrow.borrow_mut ( * _13); - _13 <- { _13 with current = ( ^ _10) }; + _13 <- Borrow.make_borrow ( ^ _10) ( ^ _13); _5 <- Borrow.borrow_mut ( * _10); - _10 <- { _10 with current = ( ^ _5) }; + _10 <- Borrow.make_borrow ( ^ _5) ( ^ _10); assume { Resolve0.resolve _13 }; assume { Resolve0.resolve _10 }; assume { Resolve1.resolve mtr }; assume { Resolve0.resolve ma }; assume { Resolve1.resolve mtl }; _2 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _2) }; + _5 <- Borrow.make_borrow ( ^ _2) ( ^ _5); _0 <- Borrow.borrow_mut ( * _2); - _2 <- { _2 with current = ( ^ _0) }; + _2 <- Borrow.make_borrow ( ^ _0) ( ^ _2); assume { Resolve0.resolve _5 }; assume { Resolve0.resolve _2 }; assume { Resolve2.resolve self }; @@ -513,7 +513,7 @@ module IncSomeTree_IncSomeTree goto BB3 } BB3 { - ma <- { ma with current = ([#"../inc_some_tree.rs" 86 4 86 12] * ma + k) }; + ma <- Borrow.make_borrow ([#"../inc_some_tree.rs" 86 4 86 12] * ma + k) ( ^ ma); assume { Resolve0.resolve ma }; _12 <- ([#"../inc_some_tree.rs" 87 12 87 21] SumX0.sum_x t); goto BB4 diff --git a/creusot/tests/should_succeed/selection_sort_generic.mlcfg b/creusot/tests/should_succeed/selection_sort_generic.mlcfg index ea354fd2ae..f70fdde1cb 100644 --- a/creusot/tests/should_succeed/selection_sort_generic.mlcfg +++ b/creusot/tests/should_succeed/selection_sort_generic.mlcfg @@ -2367,7 +2367,7 @@ module SelectionSortGeneric_SelectionSort _22 <- Borrow.borrow_mut iter; iter <- ^ _22; _21 <- Borrow.borrow_mut ( * _22); - _22 <- { _22 with current = ( ^ _21) }; + _22 <- Borrow.make_borrow ( ^ _21) ( ^ _22); _20 <- ([#"../selection_sort_generic.rs" 35 4 35 43] Next0.next _21); _21 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB8 @@ -2431,7 +2431,7 @@ module SelectionSortGeneric_SelectionSort _46 <- Borrow.borrow_mut iter1; iter1 <- ^ _46; _45 <- Borrow.borrow_mut ( * _46); - _46 <- { _46 with current = ( ^ _45) }; + _46 <- Borrow.make_borrow ( ^ _45) ( ^ _46); _44 <- ([#"../selection_sort_generic.rs" 41 8 41 121] Next0.next _45); _45 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB20 @@ -2445,7 +2445,7 @@ module SelectionSortGeneric_SelectionSort } BB21 { _66 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _66) }; + v <- Borrow.make_borrow ( ^ _66) ( ^ v); assume { Inv3.inv ( ^ _66) }; _65 <- ([#"../selection_sort_generic.rs" 48 8 48 22] DerefMut0.deref_mut _66); _66 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -2498,7 +2498,7 @@ module SelectionSortGeneric_SelectionSort } BB31 { _64 <- Borrow.borrow_mut ( * _65); - _65 <- { _65 with current = ( ^ _64) }; + _65 <- Borrow.make_borrow ( ^ _64) ( ^ _65); assume { Inv4.inv ( ^ _64) }; _63 <- ([#"../selection_sort_generic.rs" 48 8 48 22] Swap0.swap _64 i min); _64 <- any borrowed (slice t); diff --git a/creusot/tests/should_succeed/slices/01.mlcfg b/creusot/tests/should_succeed/slices/01.mlcfg index 9cc8170672..42b1d3315f 100644 --- a/creusot/tests/should_succeed/slices/01.mlcfg +++ b/creusot/tests/should_succeed/slices/01.mlcfg @@ -386,7 +386,7 @@ module C01_IndexMutSlice goto BB1 } BB1 { - a <- { a with current = Slice.set ( * a) _4 ([#"../01.rs" 13 11 13 12] (3 : uint32)) }; + a <- Borrow.make_borrow (Slice.set ( * a) _4 ([#"../01.rs" 13 11 13 12] (3 : uint32))) ( ^ a); assume { Resolve0.resolve a }; _0 <- (); return _0 diff --git a/creusot/tests/should_succeed/sparse_array.mlcfg b/creusot/tests/should_succeed/sparse_array.mlcfg index 8d072c1b63..1eb12b1e83 100644 --- a/creusot/tests/should_succeed/sparse_array.mlcfg +++ b/creusot/tests/should_succeed/sparse_array.mlcfg @@ -1524,7 +1524,7 @@ module SparseArray_Impl2_Set } BB1 { _10 <- Borrow.borrow_mut (SparseArray_Sparse_Type.sparse_values ( * self)); - self <- { self with current = (let SparseArray_Sparse_Type.C_Sparse a b c d e = * self in SparseArray_Sparse_Type.C_Sparse a b ( ^ _10) d e) }; + self <- Borrow.make_borrow (let SparseArray_Sparse_Type.C_Sparse a b c d e = * self in SparseArray_Sparse_Type.C_Sparse a b ( ^ _10) d e) ( ^ self); assume { Inv0.inv ( ^ _10) }; _9 <- ([#"../sparse_array.rs" 113 8 113 22] IndexMut0.index_mut _10 i); _10 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -1534,7 +1534,7 @@ module SparseArray_Impl2_Set goto BB3 } BB3 { - _9 <- { _9 with current = v }; + _9 <- Borrow.make_borrow v ( ^ _9); v <- any t; assert { [@expl:type invariant] Inv1.inv ( * _9) }; assume { Resolve0.resolve ( * _9) }; @@ -1579,24 +1579,24 @@ module SparseArray_Impl2_Set assume { Resolve3.resolve _27 }; assert { [@expl:assertion] [#"../sparse_array.rs" 118 26 118 46] UIntSize.to_int (SparseArray_Sparse_Type.sparse_n ( * self)) < UIntSize.to_int (SparseArray_Sparse_Type.sparse_size ( * self)) }; _33 <- Borrow.borrow_mut (SparseArray_Sparse_Type.sparse_idx ( * self)); - self <- { self with current = (let SparseArray_Sparse_Type.C_Sparse a b c d e = * self in SparseArray_Sparse_Type.C_Sparse a b c ( ^ _33) e) }; + self <- Borrow.make_borrow (let SparseArray_Sparse_Type.C_Sparse a b c d e = * self in SparseArray_Sparse_Type.C_Sparse a b c ( ^ _33) e) ( ^ self); _32 <- ([#"../sparse_array.rs" 120 12 120 23] IndexMut1.index_mut _33 i); _33 <- any borrowed (Alloc_Vec_Vec_Type.t_vec usize (Alloc_Alloc_Global_Type.t_global)); goto BB13 } BB13 { - _32 <- { _32 with current = SparseArray_Sparse_Type.sparse_n ( * self) }; + _32 <- Borrow.make_borrow (SparseArray_Sparse_Type.sparse_n ( * self)) ( ^ _32); assume { Resolve4.resolve _32 }; _37 <- Borrow.borrow_mut (SparseArray_Sparse_Type.sparse_back ( * self)); - self <- { self with current = (let SparseArray_Sparse_Type.C_Sparse a b c d e = * self in SparseArray_Sparse_Type.C_Sparse a b c d ( ^ _37)) }; + self <- Borrow.make_borrow (let SparseArray_Sparse_Type.C_Sparse a b c d e = * self in SparseArray_Sparse_Type.C_Sparse a b c d ( ^ _37)) ( ^ self); _36 <- ([#"../sparse_array.rs" 121 12 121 29] IndexMut1.index_mut _37 (SparseArray_Sparse_Type.sparse_n ( * self))); _37 <- any borrowed (Alloc_Vec_Vec_Type.t_vec usize (Alloc_Alloc_Global_Type.t_global)); goto BB14 } BB14 { - _36 <- { _36 with current = i }; + _36 <- Borrow.make_borrow i ( ^ _36); assume { Resolve4.resolve _36 }; - self <- { self with current = (let SparseArray_Sparse_Type.C_Sparse a b c d e = * self in SparseArray_Sparse_Type.C_Sparse a ([#"../sparse_array.rs" 122 12 122 23] SparseArray_Sparse_Type.sparse_n ( * self) + ([#"../sparse_array.rs" 122 22 122 23] (1 : usize))) c d e) }; + self <- Borrow.make_borrow (let SparseArray_Sparse_Type.C_Sparse a b c d e = * self in SparseArray_Sparse_Type.C_Sparse a ([#"../sparse_array.rs" 122 12 122 23] SparseArray_Sparse_Type.sparse_n ( * self) + ([#"../sparse_array.rs" 122 22 122 23] (1 : usize))) c d e) ( ^ self); assert { [@expl:type invariant] Inv3.inv self }; assume { Resolve2.resolve self }; _0 <- (); diff --git a/creusot/tests/should_succeed/split_borrow.mlcfg b/creusot/tests/should_succeed/split_borrow.mlcfg index 9f41d1ed0a..e7e1dae191 100644 --- a/creusot/tests/should_succeed/split_borrow.mlcfg +++ b/creusot/tests/should_succeed/split_borrow.mlcfg @@ -149,12 +149,12 @@ module SplitBorrow_F end } BB2 { - y <- { y with current = (let (a, b) = * y in (a, SplitBorrow_MyInt_Type.C_MyInt ([#"../split_borrow.rs" 14 23 14 24] (4 : usize)))) }; + y <- Borrow.make_borrow (let (a, b) = * y in (a, SplitBorrow_MyInt_Type.C_MyInt ([#"../split_borrow.rs" 14 23 14 24] (4 : usize)))) ( ^ y); _5 <- (); goto BB4 } BB3 { - y <- { y with current = (let (a, b) = * y in (SplitBorrow_MyInt_Type.C_MyInt ([#"../split_borrow.rs" 16 23 16 25] (10 : usize)), b)) }; + y <- Borrow.make_borrow (let (a, b) = * y in (SplitBorrow_MyInt_Type.C_MyInt ([#"../split_borrow.rs" 16 23 16 25] (10 : usize)), b)) ( ^ y); _5 <- (); goto BB4 } @@ -199,9 +199,9 @@ module SplitBorrow_G x <- Borrow.borrow_mut a; a <- ^ x; _z <- Borrow.borrow_mut (let (_, a) = * x in a); - x <- { x with current = (let (a, b) = * x in (a, ^ _z)) }; + x <- Borrow.make_borrow (let (a, b) = * x in (a, ^ _z)) ( ^ x); assume { Resolve0.resolve _z }; - x <- { x with current = (let (a, b) = * x in (SplitBorrow_MyInt_Type.C_MyInt ([#"../split_borrow.rs" 29 19 29 20] (3 : usize)), b)) }; + x <- Borrow.make_borrow (let (a, b) = * x in (SplitBorrow_MyInt_Type.C_MyInt ([#"../split_borrow.rs" 29 19 29 20] (3 : usize)), b)) ( ^ x); assume { Resolve1.resolve x }; assume { Resolve2.resolve a }; _0 <- (); diff --git a/creusot/tests/should_succeed/sum.mlcfg b/creusot/tests/should_succeed/sum.mlcfg index 3d363ceaec..5630b3ab5f 100644 --- a/creusot/tests/should_succeed/sum.mlcfg +++ b/creusot/tests/should_succeed/sum.mlcfg @@ -1180,7 +1180,7 @@ module Sum_SumFirstN _19 <- Borrow.borrow_mut iter; iter <- ^ _19; _18 <- Borrow.borrow_mut ( * _19); - _19 <- { _19 with current = ( ^ _18) }; + _19 <- Borrow.make_borrow ( ^ _18) ( ^ _19); _17 <- ([#"../sum.rs" 8 4 8 67] Next0.next _18); _18 <- any borrowed (Core_Ops_Range_RangeInclusive_Type.t_rangeinclusive uint32); goto BB7 diff --git a/creusot/tests/should_succeed/sum_of_odds.mlcfg b/creusot/tests/should_succeed/sum_of_odds.mlcfg index 43d5124eb0..c10e66fc02 100644 --- a/creusot/tests/should_succeed/sum_of_odds.mlcfg +++ b/creusot/tests/should_succeed/sum_of_odds.mlcfg @@ -731,7 +731,7 @@ module SumOfOdds_ComputeSumOfOdd _20 <- Borrow.borrow_mut iter; iter <- ^ _20; _19 <- Borrow.borrow_mut ( * _20); - _20 <- { _20 with current = ( ^ _19) }; + _20 <- Borrow.make_borrow ( ^ _19) ( ^ _20); _18 <- ([#"../sum_of_odds.rs" 38 4 38 50] Next0.next _19); _19 <- any borrowed (Core_Ops_Range_Range_Type.t_range uint32); goto BB6 diff --git a/creusot/tests/should_succeed/swap_borrows.mlcfg b/creusot/tests/should_succeed/swap_borrows.mlcfg index a69e890a31..45316f8dfd 100644 --- a/creusot/tests/should_succeed/swap_borrows.mlcfg +++ b/creusot/tests/should_succeed/swap_borrows.mlcfg @@ -220,7 +220,7 @@ module SwapBorrows_F _8 <- Borrow.borrow_mut b; b <- ^ _8; _7 <- Borrow.borrow_mut ( * _8); - _8 <- { _8 with current = ( ^ _7) }; + _8 <- Borrow.make_borrow ( ^ _7) ( ^ _8); p <- ([#"../swap_borrows.rs" 12 12 12 34] Swap0.swap (_6, _7)); _6 <- any borrowed uint32; _7 <- any borrowed uint32; @@ -228,7 +228,7 @@ module SwapBorrows_F } BB1 { assume { Resolve1.resolve _8 }; - p <- (let (a, b) = p in ({ (let (a, _) = p in a) with current = ([#"../swap_borrows.rs" 13 11 13 13] (10 : uint32)) }, b)); + p <- (let (a, b) = p in (Borrow.make_borrow ([#"../swap_borrows.rs" 13 11 13 13] (10 : uint32)) ( ^ (let (a, _) = p in a)), b)); assume { Resolve2.resolve p }; assert { [@expl:assertion] [#"../swap_borrows.rs" 15 20 15 30] b = (10 : uint32) }; assert { [@expl:assertion] [#"../swap_borrows.rs" 16 20 16 29] a = (0 : uint32) }; diff --git a/creusot/tests/should_succeed/syntax/05_pearlite.mlcfg b/creusot/tests/should_succeed/syntax/05_pearlite.mlcfg index d8f25e3b3f..1195706111 100644 --- a/creusot/tests/should_succeed/syntax/05_pearlite.mlcfg +++ b/creusot/tests/should_succeed/syntax/05_pearlite.mlcfg @@ -457,7 +457,7 @@ module C05Pearlite_Proj clone C05Pearlite_Impl0_X_Stub as X0 function proj [#"../05_pearlite.rs" 72 0 72 35] (x : borrowed (C05Pearlite_S_Type.t_s, C05Pearlite_S_Type.t_s)) : bool = - [#"../05_pearlite.rs" 71 0 71 8] X0.x {current = let (a, _) = * x in a; final = let (a, _) = ^ x in a} + [#"../05_pearlite.rs" 71 0 71 8] X0.x (Borrow.make_borrow (let (a, _) = * x in a) (let (a, _) = ^ x in a)) val proj [#"../05_pearlite.rs" 72 0 72 35] (x : borrowed (C05Pearlite_S_Type.t_s, C05Pearlite_S_Type.t_s)) : bool ensures { result = proj x } @@ -484,7 +484,7 @@ module C05Pearlite_Proj2 function proj2 [#"../05_pearlite.rs" 78 0 78 41] (x : borrowed (borrowed (C05Pearlite_S_Type.t_s, C05Pearlite_S_Type.t_s))) : bool = - [#"../05_pearlite.rs" 77 0 77 8] X0.x {current = let (a, _) = * * x in a; final = let (a, _) = ^ * x in a} + [#"../05_pearlite.rs" 77 0 77 8] X0.x (Borrow.make_borrow (let (a, _) = * * x in a) (let (a, _) = ^ * x in a)) val proj2 [#"../05_pearlite.rs" 78 0 78 41] (x : borrowed (borrowed (C05Pearlite_S_Type.t_s, C05Pearlite_S_Type.t_s))) : bool ensures { result = proj2 x } diff --git a/creusot/tests/should_succeed/take_first_mut.mlcfg b/creusot/tests/should_succeed/take_first_mut.mlcfg index 5e5d8c48c5..f58df99b79 100644 --- a/creusot/tests/should_succeed/take_first_mut.mlcfg +++ b/creusot/tests/should_succeed/take_first_mut.mlcfg @@ -544,7 +544,7 @@ module TakeFirstMut_TakeFirstMut } BB0 { _6 <- Borrow.borrow_mut ( * self_); - self_ <- { self_ with current = ( ^ _6) }; + self_ <- Borrow.make_borrow ( ^ _6) ( ^ self_); assume { Inv0.inv ( ^ _6) }; _5 <- ([#"../take_first_mut.rs" 15 10 15 26] Take0.take _6); _6 <- any borrowed (borrowed (slice t)); @@ -552,7 +552,7 @@ module TakeFirstMut_TakeFirstMut } BB1 { _4 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _4) }; + _5 <- Borrow.make_borrow ( ^ _4) ( ^ _5); assume { Inv1.inv ( ^ _4) }; _3 <- ([#"../take_first_mut.rs" 15 10 15 44] SplitFirstMut0.split_first_mut _4); _4 <- any borrowed (slice t); @@ -575,16 +575,16 @@ module TakeFirstMut_TakeFirstMut assert { [@expl:type invariant] Inv2.inv _3 }; assume { Resolve0.resolve _3 }; _11 <- Borrow.borrow_mut ( * rem); - rem <- { rem with current = ( ^ _11) }; + rem <- Borrow.make_borrow ( ^ _11) ( ^ rem); assume { Inv1.inv ( ^ _11) }; - self_ <- { self_ with current = _11 }; + self_ <- Borrow.make_borrow _11 ( ^ self_); _11 <- any borrowed (slice t); assert { [@expl:type invariant] Inv0.inv ( * self_) }; assume { Resolve2.resolve ( * self_) }; assert { [@expl:type invariant] Inv3.inv self_ }; assume { Resolve1.resolve self_ }; _12 <- Borrow.borrow_mut ( * first); - first <- { first with current = ( ^ _12) }; + first <- Borrow.make_borrow ( ^ _12) ( ^ first); assume { Inv4.inv ( ^ _12) }; _0 <- Core_Option_Option_Type.C_Some _12; _12 <- any borrowed t; diff --git a/creusot/tests/should_succeed/type_invariants/borrows.mlcfg b/creusot/tests/should_succeed/type_invariants/borrows.mlcfg index 1c95e2bf96..2564e6bf9d 100644 --- a/creusot/tests/should_succeed/type_invariants/borrows.mlcfg +++ b/creusot/tests/should_succeed/type_invariants/borrows.mlcfg @@ -178,11 +178,11 @@ module Borrows_Impl1_InnerMut } BB0 { _5 <- Borrow.borrow_mut (Borrows_NonZero_Type.nonzero_0 ( * self)); - self <- { self with current = (let Borrows_NonZero_Type.C_NonZero a = * self in Borrows_NonZero_Type.C_NonZero ( ^ _5)) }; + self <- Borrow.make_borrow (let Borrows_NonZero_Type.C_NonZero a = * self in Borrows_NonZero_Type.C_NonZero ( ^ _5)) ( ^ self); _2 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _2) }; + _5 <- Borrow.make_borrow ( ^ _2) ( ^ _5); _0 <- Borrow.borrow_mut ( * _2); - _2 <- { _2 with current = ( ^ _0) }; + _2 <- Borrow.make_borrow ( ^ _0) ( ^ _2); assume { Resolve0.resolve _5 }; assume { Resolve0.resolve _2 }; assert { [@expl:type invariant] Inv0.inv self }; @@ -321,7 +321,7 @@ module Borrows_Inc goto BB0 } BB0 { - x <- { x with current = ([#"../borrows.rs" 102 4 102 11] * x + ([#"../borrows.rs" 102 10 102 11] (1 : int32))) }; + x <- Borrow.make_borrow ([#"../borrows.rs" 102 4 102 11] * x + ([#"../borrows.rs" 102 10 102 11] (1 : int32))) ( ^ x); assume { Resolve0.resolve x }; _0 <- (); return _0 @@ -391,9 +391,9 @@ module Borrows_Simple } BB0 { _6 <- Borrow.borrow_mut (Borrows_NonZero_Type.nonzero_0 ( * x)); - x <- { x with current = (let Borrows_NonZero_Type.C_NonZero a = * x in Borrows_NonZero_Type.C_NonZero ( ^ _6)) }; + x <- Borrow.make_borrow (let Borrows_NonZero_Type.C_NonZero a = * x in Borrows_NonZero_Type.C_NonZero ( ^ _6)) ( ^ x); _5 <- Borrow.borrow_mut ( * _6); - _6 <- { _6 with current = ( ^ _5) }; + _6 <- Borrow.make_borrow ( ^ _5) ( ^ _6); _4 <- ([#"../borrows.rs" 32 4 32 17] Inc0.inc _5); _5 <- any borrowed int32; goto BB1 @@ -473,7 +473,7 @@ module Borrows_Hard } BB0 { _7 <- Borrow.borrow_mut ( * x); - x <- { x with current = ( ^ _7) }; + x <- Borrow.make_borrow ( ^ _7) ( ^ x); assume { Inv0.inv ( ^ _7) }; _6 <- ([#"../borrows.rs" 39 8 39 21] InnerMut0.inner_mut _7); _7 <- any borrowed (Borrows_NonZero_Type.t_nonzero); @@ -481,7 +481,7 @@ module Borrows_Hard } BB1 { _5 <- Borrow.borrow_mut ( * _6); - _6 <- { _6 with current = ( ^ _5) }; + _6 <- Borrow.make_borrow ( ^ _5) ( ^ _6); _4 <- ([#"../borrows.rs" 39 4 39 22] Inc0.inc _5); _5 <- any borrowed int32; goto BB2 @@ -649,9 +649,9 @@ module Borrows_Tuple BB0 { x <- (let (a, b) = x in (let Borrows_NonZero_Type.C_NonZero a = let (a, _) = x in a in Borrows_NonZero_Type.C_NonZero ([#"../borrows.rs" 46 13 46 14] (0 : int32)), b)); _6 <- Borrow.borrow_mut (Borrows_NonZero_Type.nonzero_0 ( * (let (_, a) = x in a))); - x <- (let (a, b) = x in (a, { (let (_, a) = x in a) with current = (let Borrows_NonZero_Type.C_NonZero a = * (let (_, a) = x in a) in Borrows_NonZero_Type.C_NonZero ( ^ _6)) })); + x <- (let (a, b) = x in (a, Borrow.make_borrow (let Borrows_NonZero_Type.C_NonZero a = * (let (_, a) = x in a) in Borrows_NonZero_Type.C_NonZero ( ^ _6)) ( ^ (let (_, a) = x in a)))); _5 <- Borrow.borrow_mut ( * _6); - _6 <- { _6 with current = ( ^ _5) }; + _6 <- Borrow.make_borrow ( ^ _5) ( ^ _6); _4 <- ([#"../borrows.rs" 47 4 47 20] Inc0.inc _5); _5 <- any borrowed int32; goto BB1 @@ -747,9 +747,9 @@ module Borrows_PartialMove a <- (let (a, _) = x in a); x <- (let (a, b) = x in (any Borrows_NonZero_Type.t_nonzero, b)); _7 <- Borrow.borrow_mut (Borrows_NonZero_Type.nonzero_0 ( * (let (_, a) = x in a))); - x <- (let (a, b) = x in (a, { (let (_, a) = x in a) with current = (let Borrows_NonZero_Type.C_NonZero a = * (let (_, a) = x in a) in Borrows_NonZero_Type.C_NonZero ( ^ _7)) })); + x <- (let (a, b) = x in (a, Borrow.make_borrow (let Borrows_NonZero_Type.C_NonZero a = * (let (_, a) = x in a) in Borrows_NonZero_Type.C_NonZero ( ^ _7)) ( ^ (let (_, a) = x in a)))); _6 <- Borrow.borrow_mut ( * _7); - _7 <- { _7 with current = ( ^ _6) }; + _7 <- Borrow.make_borrow ( ^ _6) ( ^ _7); _5 <- ([#"../borrows.rs" 55 4 55 20] Inc0.inc _6); _6 <- any borrowed int32; goto BB1 @@ -852,9 +852,9 @@ module Borrows_Destruct assume { Resolve0.resolve x }; a <- (let Borrows_NonZero_Type.C_NonZero a = a in Borrows_NonZero_Type.C_NonZero ([#"../borrows.rs" 63 10 63 11] (0 : int32))); _8 <- Borrow.borrow_mut (Borrows_NonZero_Type.nonzero_0 ( * b)); - b <- { b with current = (let Borrows_NonZero_Type.C_NonZero a = * b in Borrows_NonZero_Type.C_NonZero ( ^ _8)) }; + b <- Borrow.make_borrow (let Borrows_NonZero_Type.C_NonZero a = * b in Borrows_NonZero_Type.C_NonZero ( ^ _8)) ( ^ b); _7 <- Borrow.borrow_mut ( * _8); - _8 <- { _8 with current = ( ^ _7) }; + _8 <- Borrow.make_borrow ( ^ _7) ( ^ _8); _6 <- ([#"../borrows.rs" 64 4 64 17] Inc0.inc _7); _7 <- any borrowed int32; goto BB1 @@ -935,9 +935,9 @@ module Borrows_FrozenDead } BB0 { _a <- Borrow.borrow_mut (Borrows_NonZero_Type.nonzero_0 ( * x)); - x <- { x with current = (let Borrows_NonZero_Type.C_NonZero a = * x in Borrows_NonZero_Type.C_NonZero ( ^ _a)) }; + x <- Borrow.make_borrow (let Borrows_NonZero_Type.C_NonZero a = * x in Borrows_NonZero_Type.C_NonZero ( ^ _a)) ( ^ x); _6 <- Borrow.borrow_mut ( * y); - y <- { y with current = ( ^ _6) }; + y <- Borrow.make_borrow ( ^ _6) ( ^ y); assume { Inv0.inv ( ^ _6) }; assert { [@expl:type invariant] Inv1.inv x }; assume { Resolve0.resolve x }; @@ -946,7 +946,7 @@ module Borrows_FrozenDead assert { [@expl:type invariant] Inv1.inv x }; assume { Resolve0.resolve x }; _8 <- Borrow.borrow_mut ( * _a); - _a <- { _a with current = ( ^ _8) }; + _a <- Borrow.make_borrow ( ^ _8) ( ^ _a); _7 <- ([#"../borrows.rs" 75 4 75 11] Inc0.inc _8); _8 <- any borrowed int32; goto BB1 @@ -1045,7 +1045,7 @@ module Borrows_Dec goto BB0 } BB0 { - x <- { x with current = ([#"../borrows.rs" 108 4 108 11] * x - ([#"../borrows.rs" 108 10 108 11] (1 : int32))) }; + x <- Borrow.make_borrow ([#"../borrows.rs" 108 4 108 11] * x - ([#"../borrows.rs" 108 10 108 11] (1 : int32))) ( ^ x); assume { Resolve0.resolve x }; _0 <- (); return _0 @@ -1127,9 +1127,9 @@ module Borrows_Impl3_Foo } BB0 { _5 <- Borrow.borrow_mut (Borrows_SumTo10_Type.sumto10_a ( * self)); - self <- { self with current = (let Borrows_SumTo10_Type.C_SumTo10 a b = * self in Borrows_SumTo10_Type.C_SumTo10 ( ^ _5) b) }; + self <- Borrow.make_borrow (let Borrows_SumTo10_Type.C_SumTo10 a b = * self in Borrows_SumTo10_Type.C_SumTo10 ( ^ _5) b) ( ^ self); _4 <- Borrow.borrow_mut ( * _5); - _5 <- { _5 with current = ( ^ _4) }; + _5 <- Borrow.make_borrow ( ^ _4) ( ^ _5); _3 <- ([#"../borrows.rs" 94 8 94 24] Inc0.inc _4); _4 <- any borrowed int32; goto BB1 @@ -1137,9 +1137,9 @@ module Borrows_Impl3_Foo BB1 { assume { Resolve0.resolve _5 }; _8 <- Borrow.borrow_mut (Borrows_SumTo10_Type.sumto10_b ( * self)); - self <- { self with current = (let Borrows_SumTo10_Type.C_SumTo10 a b = * self in Borrows_SumTo10_Type.C_SumTo10 a ( ^ _8)) }; + self <- Borrow.make_borrow (let Borrows_SumTo10_Type.C_SumTo10 a b = * self in Borrows_SumTo10_Type.C_SumTo10 a ( ^ _8)) ( ^ self); _7 <- Borrow.borrow_mut ( * _8); - _8 <- { _8 with current = ( ^ _7) }; + _8 <- Borrow.make_borrow ( ^ _7) ( ^ _8); _6 <- ([#"../borrows.rs" 95 8 95 24] Dec0.dec _7); _7 <- any borrowed int32; goto BB2 diff --git a/creusot/tests/should_succeed/unnest.mlcfg b/creusot/tests/should_succeed/unnest.mlcfg index c5833a7a98..765b818a85 100644 --- a/creusot/tests/should_succeed/unnest.mlcfg +++ b/creusot/tests/should_succeed/unnest.mlcfg @@ -53,9 +53,9 @@ module Unnest_Unnest } BB0 { _2 <- Borrow.borrow_mut ( * * x); - x <- { x with current = { ( * x) with current = ( ^ _2) } }; + x <- Borrow.make_borrow (Borrow.make_borrow ( ^ _2) ( ^ * x)) ( ^ x); _0 <- Borrow.borrow_mut ( * _2); - _2 <- { _2 with current = ( ^ _0) }; + _2 <- Borrow.make_borrow ( ^ _0) ( ^ _2); assume { Resolve0.resolve _2 }; assume { Resolve1.resolve x }; return _0 diff --git a/creusot/tests/should_succeed/vector/01.mlcfg b/creusot/tests/should_succeed/vector/01.mlcfg index 646ae58fbc..7fd6c52193 100644 --- a/creusot/tests/should_succeed/vector/01.mlcfg +++ b/creusot/tests/should_succeed/vector/01.mlcfg @@ -1267,7 +1267,7 @@ module C01_AllZero _21 <- Borrow.borrow_mut iter; iter <- ^ _21; _20 <- Borrow.borrow_mut ( * _21); - _21 <- { _21 with current = ( ^ _20) }; + _21 <- Borrow.make_borrow ( ^ _20) ( ^ _21); _19 <- ([#"../01.rs" 9 4 9 42] Next0.next _20); _20 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB8 @@ -1301,13 +1301,13 @@ module C01_AllZero _24 <- any Ghost.ghost_ty (Seq.seq usize); i <- __creusot_proc_iter_elem; _28 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _28) }; + v <- Borrow.make_borrow ( ^ _28) ( ^ v); _27 <- ([#"../01.rs" 12 8 12 12] IndexMut0.index_mut _28 i); _28 <- any borrowed (Alloc_Vec_Vec_Type.t_vec uint32 (Alloc_Alloc_Global_Type.t_global)); goto BB14 } BB14 { - _27 <- { _27 with current = ([#"../01.rs" 12 15 12 16] (0 : uint32)) }; + _27 <- Borrow.make_borrow ([#"../01.rs" 12 15 12 16] (0 : uint32)) ( ^ _27); assume { Resolve1.resolve _27 }; goto BB6 } diff --git a/creusot/tests/should_succeed/vector/02_gnome.mlcfg b/creusot/tests/should_succeed/vector/02_gnome.mlcfg index 2891170c08..5c54bd52f1 100644 --- a/creusot/tests/should_succeed/vector/02_gnome.mlcfg +++ b/creusot/tests/should_succeed/vector/02_gnome.mlcfg @@ -1888,7 +1888,7 @@ module C02Gnome_GnomeSort } BB13 { _31 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _31) }; + v <- Borrow.make_borrow ( ^ _31) ( ^ v); assume { Inv3.inv ( ^ _31) }; _30 <- ([#"../02_gnome.rs" 34 12 34 28] DerefMut0.deref_mut _31); _31 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -1896,7 +1896,7 @@ module C02Gnome_GnomeSort } BB14 { _29 <- Borrow.borrow_mut ( * _30); - _30 <- { _30 with current = ( ^ _29) }; + _30 <- Borrow.make_borrow ( ^ _29) ( ^ _30); assume { Inv4.inv ( ^ _29) }; _28 <- ([#"../02_gnome.rs" 34 12 34 28] Swap0.swap _29 ([#"../02_gnome.rs" 34 19 34 24] i - ([#"../02_gnome.rs" 34 23 34 24] (1 : usize))) i); _29 <- any borrowed (slice t); diff --git a/creusot/tests/should_succeed/vector/03_knuth_shuffle.mlcfg b/creusot/tests/should_succeed/vector/03_knuth_shuffle.mlcfg index d3e09554f2..5c938452ad 100644 --- a/creusot/tests/should_succeed/vector/03_knuth_shuffle.mlcfg +++ b/creusot/tests/should_succeed/vector/03_knuth_shuffle.mlcfg @@ -1191,7 +1191,7 @@ module C03KnuthShuffle_KnuthShuffle _19 <- Borrow.borrow_mut iter; iter <- ^ _19; _18 <- Borrow.borrow_mut ( * _19); - _19 <- { _19 with current = ( ^ _18) }; + _19 <- Borrow.make_borrow ( ^ _18) ( ^ _19); _17 <- ([#"../03_knuth_shuffle.rs" 16 4 16 43] Next0.next _18); _18 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB8 @@ -1237,7 +1237,7 @@ module C03KnuthShuffle_KnuthShuffle } BB15 { _34 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _34) }; + v <- Borrow.make_borrow ( ^ _34) ( ^ v); assume { Inv2.inv ( ^ _34) }; _33 <- ([#"../03_knuth_shuffle.rs" 22 8 22 28] DerefMut0.deref_mut _34); _34 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -1245,7 +1245,7 @@ module C03KnuthShuffle_KnuthShuffle } BB16 { _32 <- Borrow.borrow_mut ( * _33); - _33 <- { _33 with current = ( ^ _32) }; + _33 <- Borrow.make_borrow ( ^ _32) ( ^ _33); assume { Inv3.inv ( ^ _32) }; _31 <- ([#"../03_knuth_shuffle.rs" 22 8 22 28] Swap0.swap _32 i ([#"../03_knuth_shuffle.rs" 22 18 22 27] upper - ([#"../03_knuth_shuffle.rs" 22 26 22 27] (1 : usize)))); _32 <- any borrowed (slice t); diff --git a/creusot/tests/should_succeed/vector/06_knights_tour.mlcfg b/creusot/tests/should_succeed/vector/06_knights_tour.mlcfg index 4a6989b019..d588edb721 100644 --- a/creusot/tests/should_succeed/vector/06_knights_tour.mlcfg +++ b/creusot/tests/should_succeed/vector/06_knights_tour.mlcfg @@ -1267,7 +1267,7 @@ module CreusotContracts_Std1_Iter_MapInv_Impl0_Completed type self = i use CreusotContracts_Std1_Iter_MapInv_MapInv_Type as CreusotContracts_Std1_Iter_MapInv_MapInv_Type predicate completed (self : borrowed (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.t_mapinv i Item0.item f)) = - [#"../../../../../creusot-contracts/src/std/iter/map_inv.rs" 15 8 18 9] Ghost.inner (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_produced ( ^ self)) = Seq.empty /\ Completed0.completed {current = CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_iter ( * self); final = CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_iter ( ^ self)} /\ CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_func ( * self) = CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_func ( ^ self) + [#"../../../../../creusot-contracts/src/std/iter/map_inv.rs" 15 8 18 9] Ghost.inner (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_produced ( ^ self)) = Seq.empty /\ Completed0.completed (Borrow.make_borrow (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_iter ( * self)) (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_iter ( ^ self))) /\ CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_func ( * self) = CreusotContracts_Std1_Iter_MapInv_MapInv_Type.mapinv_func ( ^ self) val completed (self : borrowed (CreusotContracts_Std1_Iter_MapInv_MapInv_Type.t_mapinv i Item0.item f)) : bool ensures { result = completed self } @@ -3259,7 +3259,7 @@ module C06KnightsTour_Impl1_CountDegree _19 <- Borrow.borrow_mut iter; iter <- ^ _19; _18 <- Borrow.borrow_mut ( * _19); - _19 <- { _19 with current = ( ^ _18) }; + _19 <- Borrow.make_borrow ( ^ _18) ( ^ _19); _17 <- ([#"../06_knights_tour.rs" 73 8 73 46] Next0.next _18); _18 <- any borrowed (Alloc_Vec_IntoIter_IntoIter_Type.t_intoiter (isize, isize) (Alloc_Alloc_Global_Type.t_global)); goto BB9 @@ -3624,20 +3624,20 @@ module C06KnightsTour_Impl1_Set } BB0 { _12 <- Borrow.borrow_mut (C06KnightsTour_Board_Type.board_field ( * self)); - self <- { self with current = (let C06KnightsTour_Board_Type.C_Board a b = * self in C06KnightsTour_Board_Type.C_Board a ( ^ _12)) }; + self <- Borrow.make_borrow (let C06KnightsTour_Board_Type.C_Board a b = * self in C06KnightsTour_Board_Type.C_Board a ( ^ _12)) ( ^ self); _11 <- ([#"../06_knights_tour.rs" 88 8 88 32] IndexMut0.index_mut _12 (UIntSize.of_int (IntSize.to_int (C06KnightsTour_Point_Type.point_x p)))); _12 <- any borrowed (Alloc_Vec_Vec_Type.t_vec (Alloc_Vec_Vec_Type.t_vec usize (Alloc_Alloc_Global_Type.t_global)) (Alloc_Alloc_Global_Type.t_global)); goto BB1 } BB1 { _10 <- Borrow.borrow_mut ( * _11); - _11 <- { _11 with current = ( ^ _10) }; + _11 <- Borrow.make_borrow ( ^ _10) ( ^ _11); _9 <- ([#"../06_knights_tour.rs" 88 8 88 46] IndexMut1.index_mut _10 (UIntSize.of_int (IntSize.to_int (C06KnightsTour_Point_Type.point_y p)))); _10 <- any borrowed (Alloc_Vec_Vec_Type.t_vec usize (Alloc_Alloc_Global_Type.t_global)); goto BB2 } BB2 { - _9 <- { _9 with current = v }; + _9 <- Borrow.make_borrow v ( ^ _9); assume { Resolve0.resolve _9 }; _0 <- (); assume { Resolve1.resolve _11 }; @@ -4374,7 +4374,7 @@ module C06KnightsTour_Min _17 <- Borrow.borrow_mut iter; iter <- ^ _17; _16 <- Borrow.borrow_mut ( * _17); - _17 <- { _17 with current = ( ^ _16) }; + _17 <- Borrow.make_borrow ( ^ _16) ( ^ _17); _15 <- ([#"../06_knights_tour.rs" 113 4 114 74] Next0.next _16); _16 <- any borrowed (Core_Slice_Iter_Iter_Type.t_iter (usize, C06KnightsTour_Point_Type.t_point)); goto BB6 @@ -5165,7 +5165,7 @@ module C06KnightsTour_KnightsTour _37 <- Borrow.borrow_mut iter; iter <- ^ _37; _36 <- Borrow.borrow_mut ( * _37); - _37 <- { _37 with current = ( ^ _36) }; + _37 <- Borrow.make_borrow ( ^ _36) ( ^ _37); _35 <- ([#"../06_knights_tour.rs" 142 4 142 36] Next0.next _36); _36 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB11 @@ -5239,7 +5239,7 @@ module C06KnightsTour_KnightsTour _56 <- Borrow.borrow_mut iter1; iter1 <- ^ _56; _55 <- Borrow.borrow_mut ( * _56); - _56 <- { _56 with current = ( ^ _55) }; + _56 <- Borrow.make_borrow ( ^ _55) ( ^ _56); _54 <- ([#"../06_knights_tour.rs" 148 8 149 54] Next1.next _55); _55 <- any borrowed (Alloc_Vec_IntoIter_IntoIter_Type.t_intoiter (isize, isize) (Alloc_Alloc_Global_Type.t_global)); goto BB27 diff --git a/creusot/tests/should_succeed/vector/07_read_write.mlcfg b/creusot/tests/should_succeed/vector/07_read_write.mlcfg index c89786099b..4090a2cab4 100644 --- a/creusot/tests/should_succeed/vector/07_read_write.mlcfg +++ b/creusot/tests/should_succeed/vector/07_read_write.mlcfg @@ -793,14 +793,14 @@ module C07ReadWrite_ReadWrite } BB0 { _7 <- Borrow.borrow_mut ( * a); - a <- { a with current = ( ^ _7) }; + a <- Borrow.make_borrow ( ^ _7) ( ^ a); assume { Inv0.inv ( ^ _7) }; _6 <- ([#"../07_read_write.rs" 7 4 7 8] IndexMut0.index_mut _7 i); _7 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); goto BB1 } BB1 { - _6 <- { _6 with current = x }; + _6 <- Borrow.make_borrow x ( ^ _6); assert { [@expl:type invariant] Inv1.inv ( * _6) }; assume { Resolve0.resolve ( * _6) }; assert { [@expl:type invariant] Inv2.inv _6 }; diff --git a/creusot/tests/should_succeed/vector/08_haystack.mlcfg b/creusot/tests/should_succeed/vector/08_haystack.mlcfg index 8a016502aa..4eb5b8807c 100644 --- a/creusot/tests/should_succeed/vector/08_haystack.mlcfg +++ b/creusot/tests/should_succeed/vector/08_haystack.mlcfg @@ -1985,7 +1985,7 @@ module C08Haystack_Search _26 <- Borrow.borrow_mut iter; iter <- ^ _26; _25 <- Borrow.borrow_mut ( * _26); - _26 <- { _26 with current = ( ^ _25) }; + _26 <- Borrow.make_borrow ( ^ _25) ( ^ _26); _24 <- ([#"../08_haystack.rs" 22 4 22 112] Next0.next _25); _25 <- any borrowed (Core_Ops_Range_RangeInclusive_Type.t_rangeinclusive usize); goto BB9 @@ -2045,7 +2045,7 @@ module C08Haystack_Search _47 <- Borrow.borrow_mut iter1; iter1 <- ^ _47; _46 <- Borrow.borrow_mut ( * _47); - _47 <- { _47 with current = ( ^ _46) }; + _47 <- Borrow.make_borrow ( ^ _46) ( ^ _47); _45 <- ([#"../08_haystack.rs" 24 8 24 68] Next1.next _46); _46 <- any borrowed (Core_Ops_Range_Range_Type.t_range usize); goto BB21 diff --git a/creusot/tests/should_succeed/vector/09_capacity.mlcfg b/creusot/tests/should_succeed/vector/09_capacity.mlcfg index 746c929b58..5a62a0ca8b 100644 --- a/creusot/tests/should_succeed/vector/09_capacity.mlcfg +++ b/creusot/tests/should_succeed/vector/09_capacity.mlcfg @@ -517,7 +517,7 @@ module C09Capacity_ChangeCapacity } BB0 { _5 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _5) }; + v <- Borrow.make_borrow ( ^ _5) ( ^ v); assume { Inv0.inv ( ^ _5) }; _4 <- ([#"../09_capacity.rs" 7 4 7 18] Reserve0.reserve _5 ([#"../09_capacity.rs" 7 14 7 17] (100 : usize))); _5 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -525,7 +525,7 @@ module C09Capacity_ChangeCapacity } BB1 { _7 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _7) }; + v <- Borrow.make_borrow ( ^ _7) ( ^ v); assume { Inv0.inv ( ^ _7) }; _6 <- ([#"../09_capacity.rs" 8 4 8 24] ReserveExact0.reserve_exact _7 ([#"../09_capacity.rs" 8 20 8 23] (200 : usize))); _7 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -533,7 +533,7 @@ module C09Capacity_ChangeCapacity } BB2 { _9 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _9) }; + v <- Borrow.make_borrow ( ^ _9) ( ^ v); assume { Inv0.inv ( ^ _9) }; _8 <- ([#"../09_capacity.rs" 9 4 9 21] ShrinkToFit0.shrink_to_fit _9); _9 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -541,7 +541,7 @@ module C09Capacity_ChangeCapacity } BB3 { _11 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _11) }; + v <- Borrow.make_borrow ( ^ _11) ( ^ v); assume { Inv0.inv ( ^ _11) }; _10 <- ([#"../09_capacity.rs" 10 4 10 18] ShrinkTo0.shrink_to _11 ([#"../09_capacity.rs" 10 16 10 17] (1 : usize))); _11 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global)); @@ -664,7 +664,7 @@ module C09Capacity_ClearVec } BB0 { _4 <- Borrow.borrow_mut ( * v); - v <- { v with current = ( ^ _4) }; + v <- Borrow.make_borrow ( ^ _4) ( ^ v); assume { Inv0.inv ( ^ _4) }; _3 <- ([#"../09_capacity.rs" 15 4 15 13] Clear0.clear _4); _4 <- any borrowed (Alloc_Vec_Vec_Type.t_vec t (Alloc_Alloc_Global_Type.t_global));