diff --git a/Cargo.lock b/Cargo.lock index 146c60e6ff..9dc4ba654a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2427,6 +2427,7 @@ dependencies = [ "creusot-dev-config", "git2", "glob", + "regex", "roxmltree", "termcolor", ] diff --git a/creusot-dev-config/src/lib.rs b/creusot-dev-config/src/lib.rs index 896a8c70cf..1a983f0cfe 100644 --- a/creusot-dev-config/src/lib.rs +++ b/creusot-dev-config/src/lib.rs @@ -6,13 +6,18 @@ use std::{path::PathBuf, process::Command}; pub struct Paths { pub why3: PathBuf, + pub why3find: PathBuf, pub why3_config: PathBuf, } /// Fails if the config could not be loaded pub fn paths() -> anyhow::Result { let paths = creusot_setup::status_for_creusot()?; - Ok(Paths { why3: paths.why3_path, why3_config: paths.why3_config }) + Ok(Paths { + why3: paths.why3_path, + why3find: paths.why3find_path, + why3_config: paths.why3_config, + }) } /// Returns a command to invoke why3 (passing it the path to its configuration @@ -20,7 +25,14 @@ pub fn paths() -> anyhow::Result { /// Fails if the config could not be loaded pub fn why3_command() -> anyhow::Result { let p = paths()?; - let mut cmd = Command::new(p.why3.clone()); + let mut cmd = Command::new(p.why3); cmd.arg("-C").arg(p.why3_config); Ok(cmd) } + +pub fn why3find_command() -> anyhow::Result { + let p = paths()?; + let mut cmd = Command::new(p.why3find); + cmd.env("WHY3CONFIG", p.why3_config); + Ok(cmd) +} diff --git a/creusot-setup/src/lib.rs b/creusot-setup/src/lib.rs index a9fc43d4a6..331b1914ca 100644 --- a/creusot-setup/src/lib.rs +++ b/creusot-setup/src/lib.rs @@ -157,6 +157,7 @@ pub fn status() -> anyhow::Result<()> { pub struct CreusotFlags { pub why3_path: PathBuf, + pub why3find_path: PathBuf, pub why3_config: PathBuf, } @@ -187,6 +188,7 @@ pub fn status_for_creusot() -> anyhow::Result { } Ok(CreusotFlags { why3_path: cfg.why3.path.to_path_buf(), + why3find_path: cfg.why3find.path.to_path_buf(), why3_config: paths.why3_config_file, }) } diff --git a/creusot/tests/should_fail/bug/01_resolve_unsoundness.coma b/creusot/tests/should_fail/bug/01_resolve_unsoundness.coma index b6019f34ea..48c99aab8b 100644 --- a/creusot/tests/should_fail/bug/01_resolve_unsoundness.coma +++ b/creusot/tests/should_fail/bug/01_resolve_unsoundness.coma @@ -1,10 +1,10 @@ -module M_01_resolve_unsoundness__make_vec_of_size [#"01_resolve_unsoundness.rs" 9 0 9 46] - let%span s01_resolve_unsoundness0 = "01_resolve_unsoundness.rs" 10 29 10 39 - let%span s01_resolve_unsoundness1 = "01_resolve_unsoundness.rs" 11 16 11 17 - let%span s01_resolve_unsoundness2 = "01_resolve_unsoundness.rs" 12 16 12 37 - let%span s01_resolve_unsoundness3 = "01_resolve_unsoundness.rs" 14 17 14 22 - let%span s01_resolve_unsoundness4 = "01_resolve_unsoundness.rs" 15 13 15 14 - let%span s01_resolve_unsoundness5 = "01_resolve_unsoundness.rs" 8 10 8 29 +module M_01_resolve_unsoundness__make_vec_of_size [#"01_resolve_unsoundness.rs" 10 0 10 46] + let%span s01_resolve_unsoundness0 = "01_resolve_unsoundness.rs" 11 29 11 39 + let%span s01_resolve_unsoundness1 = "01_resolve_unsoundness.rs" 12 16 12 17 + let%span s01_resolve_unsoundness2 = "01_resolve_unsoundness.rs" 13 16 13 37 + let%span s01_resolve_unsoundness3 = "01_resolve_unsoundness.rs" 15 17 15 22 + let%span s01_resolve_unsoundness4 = "01_resolve_unsoundness.rs" 16 13 16 14 + let%span s01_resolve_unsoundness5 = "01_resolve_unsoundness.rs" 9 10 9 29 let%span svec6 = "../../../../creusot-contracts/src/std/vec.rs" 74 26 74 44 let%span svec7 = "../../../../creusot-contracts/src/std/vec.rs" 87 26 87 56 let%span svec8 = "../../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 diff --git a/creusot/tests/should_fail/bug/01_resolve_unsoundness.rs b/creusot/tests/should_fail/bug/01_resolve_unsoundness.rs index 127232c8e9..f882a0f740 100644 --- a/creusot/tests/should_fail/bug/01_resolve_unsoundness.rs +++ b/creusot/tests/should_fail/bug/01_resolve_unsoundness.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/bug/1204.coma b/creusot/tests/should_fail/bug/1204.coma index 9fa4e8d791..85686dfb2a 100644 --- a/creusot/tests/should_fail/bug/1204.coma +++ b/creusot/tests/should_fail/bug/1204.coma @@ -1,33 +1,33 @@ -module M_1204__evil [#"1204.rs" 7 0 7 22] - let%span s12040 = "1204.rs" 5 11 5 16 - let%span s12041 = "1204.rs" 6 10 6 11 - let%span s12042 = "1204.rs" 8 4 8 16 +module M_1204__evil [#"1204.rs" 8 0 8 22] + let%span s12040 = "1204.rs" 6 11 6 16 + let%span s12041 = "1204.rs" 7 10 7 11 + let%span s12042 = "1204.rs" 9 4 9 16 use prelude.prelude.Int constant x : int - function evil'0 [#"1204.rs" 7 0 7 22] (x : int) : int + function evil'0 [#"1204.rs" 8 0 8 22] (x : int) : int goal vc_evil'0 : ([%#s12040] false) -> ([@expl:evil requires] [%#s12040] false) /\ 0 <= ([%#s12041] x) /\ ([%#s12041] - x) < ([%#s12041] x) end -module M_1204__wrong [#"1204.rs" 13 0 13 10] - let%span s12040 = "1204.rs" 12 10 12 15 - let%span s12041 = "1204.rs" 5 11 5 16 - let%span s12042 = "1204.rs" 6 10 6 11 - let%span s12043 = "1204.rs" 14 4 14 43 - let%span s12044 = "1204.rs" 8 4 8 16 +module M_1204__wrong [#"1204.rs" 14 0 14 10] + let%span s12040 = "1204.rs" 13 10 13 15 + let%span s12041 = "1204.rs" 6 11 6 16 + let%span s12042 = "1204.rs" 7 10 7 11 + let%span s12043 = "1204.rs" 15 4 15 43 + let%span s12044 = "1204.rs" 9 4 9 16 use prelude.prelude.Int - function evil'0 [#"1204.rs" 7 0 7 22] (x : int) : int + function evil'0 [#"1204.rs" 8 0 8 22] (x : int) : int axiom evil'0_def : forall x : int . ([%#s12041] false) -> evil'0 x = ([%#s12044] evil'0 (- x) + 1) constant _1 : () - function wrong'0 [#"1204.rs" 13 0 13 10] (_1 : ()) : () + function wrong'0 [#"1204.rs" 14 0 14 10] (_1 : ()) : () goal vc_wrong'0 : ([@expl:evil requires] [%#s12041] false) /\ ([@expl:evil requires] [%#s12041] false) diff --git a/creusot/tests/should_fail/bug/1204.rs b/creusot/tests/should_fail/bug/1204.rs index a658d2b528..46558a1055 100644 --- a/creusot/tests/should_fail/bug/1204.rs +++ b/creusot/tests/should_fail/bug/1204.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/bug/1204.stderr b/creusot/tests/should_fail/bug/1204.stderr index c645a036c3..2654e0e417 100644 --- a/creusot/tests/should_fail/bug/1204.stderr +++ b/creusot/tests/should_fail/bug/1204.stderr @@ -1,26 +1,26 @@ warning: function cannot return without recursing - --> 1204.rs:7:1 + --> 1204.rs:8:1 | -7 | fn evil(x: Int) -> Int { +8 | fn evil(x: Int) -> Int { | ^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing -8 | evil(-x) + 1 +9 | evil(-x) + 1 | -------- recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default warning: function `evil` is never used - --> 1204.rs:7:4 + --> 1204.rs:8:4 | -7 | fn evil(x: Int) -> Int { +8 | fn evil(x: Int) -> Int { | ^^^^ | = note: `#[warn(dead_code)]` on by default warning: function `wrong` is never used - --> 1204.rs:13:4 + --> 1204.rs:14:4 | -13 | fn wrong() { +14 | fn wrong() { | ^^^^^ warning: 3 warnings emitted diff --git a/creusot/tests/should_fail/bug/222.rs b/creusot/tests/should_fail/bug/222.rs index 09688138ff..8aed9d91bd 100644 --- a/creusot/tests/should_fail/bug/222.rs +++ b/creusot/tests/should_fail/bug/222.rs @@ -1,4 +1,4 @@ -// SHOULD_PROVE Z3 NO_SPLIT +// WHY3PROVE SHOULD_PROVE Z3 NO_SPLIT extern crate creusot_contracts; use creusot_contracts::{logic::Int, *}; diff --git a/creusot/tests/should_fail/bug/492.coma b/creusot/tests/should_fail/bug/492.coma index aa43ba2c79..469b054daf 100644 --- a/creusot/tests/should_fail/bug/492.coma +++ b/creusot/tests/should_fail/bug/492.coma @@ -1,8 +1,8 @@ -module M_492__reborrow_tuple [#"492.rs" 5 0 5 52] - let%span s4920 = "492.rs" 6 8 6 10 - let%span s4921 = "492.rs" 5 25 5 26 - let%span s4922 = "492.rs" 5 39 5 52 - let%span s4923 = "492.rs" 4 10 4 27 +module M_492__reborrow_tuple [#"492.rs" 6 0 6 52] + let%span s4920 = "492.rs" 7 8 7 10 + let%span s4921 = "492.rs" 6 25 6 26 + let%span s4922 = "492.rs" 6 39 6 52 + let%span s4923 = "492.rs" 5 10 5 27 let%span sresolve4 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant5 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -57,14 +57,14 @@ module M_492__reborrow_tuple [#"492.rs" 5 0 5 52] (! return' {result}) ] end -module M_492__test [#"492.rs" 10 0 10 13] - let%span s4920 = "492.rs" 11 16 11 17 - let%span s4921 = "492.rs" 13 18 13 30 - let%span s4922 = "492.rs" 14 11 14 13 - let%span s4923 = "492.rs" 9 10 9 15 - let%span s4924 = "492.rs" 5 25 5 26 - let%span s4925 = "492.rs" 5 39 5 52 - let%span s4926 = "492.rs" 4 10 4 27 +module M_492__test [#"492.rs" 11 0 11 13] + let%span s4920 = "492.rs" 12 16 12 17 + let%span s4921 = "492.rs" 14 18 14 30 + let%span s4922 = "492.rs" 15 11 15 13 + let%span s4923 = "492.rs" 10 10 10 15 + let%span s4924 = "492.rs" 6 25 6 26 + let%span s4925 = "492.rs" 6 39 6 52 + let%span s4926 = "492.rs" 5 10 5 27 let%span sresolve7 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 use prelude.prelude.Int32 diff --git a/creusot/tests/should_fail/bug/492.rs b/creusot/tests/should_fail/bug/492.rs index a86c7505b5..ad91b40f3f 100644 --- a/creusot/tests/should_fail/bug/492.rs +++ b/creusot/tests/should_fail/bug/492.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/bug/692.coma b/creusot/tests/should_fail/bug/692.coma index d994e1399d..b1178127c0 100644 --- a/creusot/tests/should_fail/bug/692.coma +++ b/creusot/tests/should_fail/bug/692.coma @@ -1,8 +1,8 @@ -module M_692__incorrect [#"692.rs" 8 0 8 76] - let%span s6920 = "692.rs" 8 57 8 61 - let%span s6921 = "692.rs" 8 66 8 72 - let%span s6922 = "692.rs" 5 11 6 84 - let%span s6923 = "692.rs" 7 10 7 15 +module M_692__incorrect [#"692.rs" 9 0 9 76] + let%span s6920 = "692.rs" 9 57 9 61 + let%span s6921 = "692.rs" 9 66 9 72 + let%span s6922 = "692.rs" 6 11 7 84 + let%span s6923 = "692.rs" 8 10 8 15 let%span sops4 = "../../../../creusot-contracts/src/std/ops.rs" 139 14 139 114 let%span sops5 = "../../../../creusot-contracts/src/std/ops.rs" 144 14 144 101 let%span sops6 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 @@ -92,18 +92,18 @@ module M_692__incorrect [#"692.rs" 8 0 8 76] [ return' (result:())-> {[@expl:incorrect ensures] [%#s6923] false} (! return' {result}) ] end -module M_692__valid_normal [#"692.rs" 11 0 11 34] - let%span s6920 = "692.rs" 12 16 12 20 - let%span s6921 = "692.rs" 10 10 10 15 - let%span s6922 = "692.rs" 14 11 14 15 - let%span s6923 = "692.rs" 13 25 13 45 - let%span s6924 = "692.rs" 16 25 16 26 - let%span s6925 = "692.rs" 16 36 16 37 - let%span s6926 = "692.rs" 15 27 15 62 - let%span s6927 = "692.rs" 8 57 8 61 - let%span s6928 = "692.rs" 8 66 8 72 - let%span s6929 = "692.rs" 5 11 6 84 - let%span s69210 = "692.rs" 7 10 7 15 +module M_692__valid_normal [#"692.rs" 12 0 12 34] + let%span s6920 = "692.rs" 13 16 13 20 + let%span s6921 = "692.rs" 11 10 11 15 + let%span s6922 = "692.rs" 15 11 15 15 + let%span s6923 = "692.rs" 14 25 14 45 + let%span s6924 = "692.rs" 17 25 17 26 + let%span s6925 = "692.rs" 17 36 17 37 + let%span s6926 = "692.rs" 16 27 16 62 + let%span s6927 = "692.rs" 9 57 9 61 + let%span s6928 = "692.rs" 9 66 9 72 + let%span s6929 = "692.rs" 6 11 7 84 + let%span s69210 = "692.rs" 8 10 8 15 let%span sresolve11 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sops12 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops13 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 diff --git a/creusot/tests/should_fail/bug/692.rs b/creusot/tests/should_fail/bug/692.rs index f3150c2ad1..48d4b6f07d 100644 --- a/creusot/tests/should_fail/bug/692.rs +++ b/creusot/tests/should_fail/bug/692.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/bug/695.coma b/creusot/tests/should_fail/bug/695.coma index 9fdd0ef179..fd0c16f989 100644 --- a/creusot/tests/should_fail/bug/695.coma +++ b/creusot/tests/should_fail/bug/695.coma @@ -1,10 +1,10 @@ -module M_695__inversed_if [#"695.rs" 6 0 6 78] - let%span s6950 = "695.rs" 10 15 10 20 - let%span s6951 = "695.rs" 8 15 8 19 - let%span s6952 = "695.rs" 6 59 6 63 - let%span s6953 = "695.rs" 6 68 6 74 - let%span s6954 = "695.rs" 4 11 4 77 - let%span s6955 = "695.rs" 5 10 5 89 +module M_695__inversed_if [#"695.rs" 7 0 7 78] + let%span s6950 = "695.rs" 11 15 11 20 + let%span s6951 = "695.rs" 9 15 9 19 + let%span s6952 = "695.rs" 7 59 7 63 + let%span s6953 = "695.rs" 7 68 7 74 + let%span s6954 = "695.rs" 5 11 5 77 + let%span s6955 = "695.rs" 6 10 6 89 let%span sops6 = "../../../../creusot-contracts/src/std/ops.rs" 164 27 164 52 let%span sops7 = "../../../../creusot-contracts/src/std/ops.rs" 165 26 165 60 let%span sops8 = "../../../../creusot-contracts/src/std/ops.rs" 148 0 170 1 @@ -148,19 +148,19 @@ module M_695__inversed_if [#"695.rs" 6 0 6 78] (! return' {result}) ] end -module M_695__valid [#"695.rs" 15 0 15 27] - let%span s6950 = "695.rs" 16 16 16 20 - let%span s6951 = "695.rs" 22 20 22 25 - let%span s6952 = "695.rs" 14 10 14 71 - let%span s6953 = "695.rs" 18 11 18 15 - let%span s6954 = "695.rs" 17 25 17 45 - let%span s6955 = "695.rs" 20 25 20 26 - let%span s6956 = "695.rs" 20 36 20 37 - let%span s6957 = "695.rs" 19 27 19 62 - let%span s6958 = "695.rs" 6 59 6 63 - let%span s6959 = "695.rs" 6 68 6 74 - let%span s69510 = "695.rs" 4 11 4 77 - let%span s69511 = "695.rs" 5 10 5 89 +module M_695__valid [#"695.rs" 16 0 16 27] + let%span s6950 = "695.rs" 17 16 17 20 + let%span s6951 = "695.rs" 23 20 23 25 + let%span s6952 = "695.rs" 15 10 15 71 + let%span s6953 = "695.rs" 19 11 19 15 + let%span s6954 = "695.rs" 18 25 18 45 + let%span s6955 = "695.rs" 21 25 21 26 + let%span s6956 = "695.rs" 21 36 21 37 + let%span s6957 = "695.rs" 20 27 20 62 + let%span s6958 = "695.rs" 7 59 7 63 + let%span s6959 = "695.rs" 7 68 7 74 + let%span s69510 = "695.rs" 5 11 5 77 + let%span s69511 = "695.rs" 6 10 6 89 let%span sresolve12 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sops13 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops14 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 diff --git a/creusot/tests/should_fail/bug/695.rs b/creusot/tests/should_fail/bug/695.rs index 3006eba58d..d6f730ec08 100644 --- a/creusot/tests/should_fail/bug/695.rs +++ b/creusot/tests/should_fail/bug/695.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/bug/869.coma b/creusot/tests/should_fail/bug/869.coma index 49893f77df..ba511e7cec 100644 --- a/creusot/tests/should_fail/bug/869.coma +++ b/creusot/tests/should_fail/bug/869.coma @@ -1,11 +1,11 @@ -module M_869__unsound [#"869.rs" 4 0 4 16] - let%span s8690 = "869.rs" 5 32 5 50 - let%span s8691 = "869.rs" 10 44 10 59 - let%span s8692 = "869.rs" 11 20 11 50 - let%span s8693 = "869.rs" 17 20 17 53 - let%span s8694 = "869.rs" 18 12 18 64 - let%span s8695 = "869.rs" 19 20 19 37 - let%span s8696 = "869.rs" 20 20 20 37 +module M_869__unsound [#"869.rs" 5 0 5 16] + let%span s8690 = "869.rs" 6 32 6 50 + let%span s8691 = "869.rs" 11 44 11 59 + let%span s8692 = "869.rs" 12 20 12 50 + let%span s8693 = "869.rs" 18 20 18 53 + let%span s8694 = "869.rs" 19 12 19 64 + let%span s8695 = "869.rs" 20 20 20 37 + let%span s8696 = "869.rs" 21 20 21 37 let%span sresolve7 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 use prelude.prelude.Snapshot diff --git a/creusot/tests/should_fail/bug/869.rs b/creusot/tests/should_fail/bug/869.rs index 1c03245f58..a3ecc58b64 100644 --- a/creusot/tests/should_fail/bug/869.rs +++ b/creusot/tests/should_fail/bug/869.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/bug/878.coma b/creusot/tests/should_fail/bug/878.coma index b55d15cbc4..f8e722ea01 100644 --- a/creusot/tests/should_fail/bug/878.coma +++ b/creusot/tests/should_fail/bug/878.coma @@ -1,9 +1,9 @@ -module M_878__test [#"878.rs" 4 0 4 13] - let%span s8780 = "878.rs" 5 21 5 22 - let%span s8781 = "878.rs" 5 24 5 25 - let%span s8782 = "878.rs" 5 27 5 28 - let%span s8783 = "878.rs" 5 30 5 31 - let%span s8784 = "878.rs" 6 4 6 13 +module M_878__test [#"878.rs" 5 0 5 13] + let%span s8780 = "878.rs" 6 21 6 22 + let%span s8781 = "878.rs" 6 24 6 25 + let%span s8782 = "878.rs" 6 27 6 28 + let%span s8783 = "878.rs" 6 30 6 31 + let%span s8784 = "878.rs" 7 4 7 13 let%span sslice5 = "../../../../creusot-contracts/src/std/slice.rs" 332 18 332 35 let%span svec6 = "../../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sboxed7 = "../../../../creusot-contracts/src/std/boxed.rs" 18 8 18 22 @@ -101,9 +101,9 @@ module M_878__test [#"878.rs" 4 0 4 13] | & _6 : borrowed (t_Vec'0) = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_878__test2 [#"878.rs" 19 0 19 14] - let%span s8780 = "878.rs" 20 19 20 20 - let%span s8781 = "878.rs" 21 13 21 25 +module M_878__test2 [#"878.rs" 20 0 20 14] + let%span s8780 = "878.rs" 21 19 21 20 + let%span s8781 = "878.rs" 22 13 22 25 let%span sslice2 = "../../../../creusot-contracts/src/std/slice.rs" 332 18 332 35 let%span svec3 = "../../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sboxed4 = "../../../../creusot-contracts/src/std/boxed.rs" 18 8 18 22 @@ -113,7 +113,7 @@ module M_878__test2 [#"878.rs" 19 0 19 14] let%span svec8 = "../../../../creusot-contracts/src/std/vec.rs" 65 20 65 41 let%span sslice9 = "../../../../creusot-contracts/src/std/slice.rs" 18 20 18 30 let%span sseq10 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s87811 = "878.rs" 15 8 15 22 + let%span s87811 = "878.rs" 16 8 16 22 use prelude.prelude.UInt32 @@ -144,7 +144,7 @@ module M_878__test2 [#"878.rs" 19 0 19 14] use seq.Seq - predicate invariant'5 [#"878.rs" 14 4 14 30] (self : t_S'0) = + predicate invariant'5 [#"878.rs" 15 4 15 30] (self : t_S'0) = [%#s87811] self.t_S__0'0 = (0 : uint32) predicate inv'5 (_1 : t_S'0) @@ -243,9 +243,9 @@ module M_878__test2 [#"878.rs" 19 0 19 14] | & _7 : bool = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_878__test3 [#"878.rs" 25 0 25 14] - let%span s8780 = "878.rs" 26 19 26 20 - let%span s8781 = "878.rs" 27 20 27 35 +module M_878__test3 [#"878.rs" 26 0 26 14] + let%span s8780 = "878.rs" 27 19 27 20 + let%span s8781 = "878.rs" 28 20 28 35 let%span sslice2 = "../../../../creusot-contracts/src/std/slice.rs" 332 18 332 35 let%span svec3 = "../../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sboxed4 = "../../../../creusot-contracts/src/std/boxed.rs" 18 8 18 22 @@ -255,7 +255,7 @@ module M_878__test3 [#"878.rs" 25 0 25 14] let%span svec8 = "../../../../creusot-contracts/src/std/vec.rs" 65 20 65 41 let%span sslice9 = "../../../../creusot-contracts/src/std/slice.rs" 18 20 18 30 let%span sseq10 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s87811 = "878.rs" 15 8 15 22 + let%span s87811 = "878.rs" 16 8 16 22 use prelude.prelude.UInt32 @@ -286,7 +286,7 @@ module M_878__test3 [#"878.rs" 25 0 25 14] use seq.Seq - predicate invariant'5 [#"878.rs" 14 4 14 30] (self : t_S'0) = + predicate invariant'5 [#"878.rs" 15 4 15 30] (self : t_S'0) = [%#s87811] self.t_S__0'0 = (0 : uint32) predicate inv'5 (_1 : t_S'0) diff --git a/creusot/tests/should_fail/bug/878.rs b/creusot/tests/should_fail/bug/878.rs index 3c98a8121c..f7975b45fa 100644 --- a/creusot/tests/should_fail/bug/878.rs +++ b/creusot/tests/should_fail/bug/878.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::{vec, *}; diff --git a/creusot/tests/should_fail/bug/878.stderr b/creusot/tests/should_fail/bug/878.stderr index 48556c9775..d4211ccdc0 100644 --- a/creusot/tests/should_fail/bug/878.stderr +++ b/creusot/tests/should_fail/bug/878.stderr @@ -1,15 +1,15 @@ warning: calling external function `dedup` with no contract will yield an impossible precondition - --> 878.rs:6:5 + --> 878.rs:7:5 | -6 | v.dedup(); +7 | v.dedup(); | ^^^^^^^^^ function called here | = note: `#[warn(creusot::contractless_external_function)]` on by default warning: calling external function `is_empty` with no contract will yield an impossible precondition - --> 878.rs:21:14 + --> 878.rs:22:14 | -21 | let b = !v.is_empty(); +22 | let b = !v.is_empty(); | ^^^^^^^^^^^^ function called here warning: 2 warnings emitted diff --git a/creusot/tests/should_fail/bug/specialize.coma b/creusot/tests/should_fail/bug/specialize.coma index b8c1d9ca9b..d16e5fb99d 100644 --- a/creusot/tests/should_fail/bug/specialize.coma +++ b/creusot/tests/should_fail/bug/specialize.coma @@ -1,6 +1,6 @@ -module M_specialize__f [#"specialize.rs" 21 0 21 17] - let%span sspecialize0 = "specialize.rs" 24 20 24 25 - let%span sspecialize1 = "specialize.rs" 17 14 17 18 +module M_specialize__f [#"specialize.rs" 22 0 22 17] + let%span sspecialize0 = "specialize.rs" 25 20 25 25 + let%span sspecialize1 = "specialize.rs" 18 14 18 18 use prelude.prelude.Opaque @@ -37,10 +37,10 @@ module M_specialize__f [#"specialize.rs" 21 0 21 17] [ return' (result:())-> (! return' {result}) ] end -module M_specialize__g [#"specialize.rs" 27 0 27 18] - let%span sspecialize0 = "specialize.rs" 31 20 31 25 - let%span sspecialize1 = "specialize.rs" 27 8 27 9 - let%span sspecialize2 = "specialize.rs" 6 9 6 13 +module M_specialize__g [#"specialize.rs" 28 0 28 18] + let%span sspecialize0 = "specialize.rs" 32 20 32 25 + let%span sspecialize1 = "specialize.rs" 28 8 28 9 + let%span sspecialize2 = "specialize.rs" 7 9 7 13 let%span svec3 = "../../../../creusot-contracts/src/std/vec.rs" 65 20 65 41 let%span svec4 = "../../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sseq5 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 @@ -122,10 +122,10 @@ module M_specialize__g [#"specialize.rs" 27 0 27 18] [ return' (result:())-> (! return' {result}) ] end -module M_specialize__h [#"specialize.rs" 34 0 34 17] - let%span sspecialize0 = "specialize.rs" 37 20 37 25 - let%span sspecialize1 = "specialize.rs" 12 17 12 21 - let%span sspecialize2 = "specialize.rs" 11 14 11 19 +module M_specialize__h [#"specialize.rs" 35 0 35 17] + let%span sspecialize0 = "specialize.rs" 38 20 38 25 + let%span sspecialize1 = "specialize.rs" 13 17 13 21 + let%span sspecialize2 = "specialize.rs" 12 14 12 19 use prelude.prelude.Opaque @@ -165,8 +165,8 @@ module M_specialize__h [#"specialize.rs" 34 0 34 17] [ return' (result:())-> (! return' {result}) ] end -module M_specialize__qyi2463200954251793265__x__refines [#"specialize.rs" 12 4 12 22] (* as T> *) - let%span sspecialize0 = "specialize.rs" 12 4 12 22 +module M_specialize__qyi2463200954251793265__x__refines [#"specialize.rs" 13 4 13 22] (* as T> *) + let%span sspecialize0 = "specialize.rs" 13 4 13 22 let%span svec1 = "../../../../creusot-contracts/src/std/vec.rs" 65 20 65 41 let%span svec2 = "../../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sseq3 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 @@ -234,8 +234,8 @@ module M_specialize__qyi2463200954251793265__x__refines [#"specialize.rs" 12 4 1 goal refines : [%#sspecialize0] forall self : t_Vec'0 . inv'0 self -> inv'0 self end -module M_specialize__qyi7277341344010858608__x__refines [#"specialize.rs" 18 4 18 14] (* as T> *) - let%span sspecialize0 = "specialize.rs" 18 4 18 14 +module M_specialize__qyi7277341344010858608__x__refines [#"specialize.rs" 19 4 19 14] (* as T> *) + let%span sspecialize0 = "specialize.rs" 19 4 19 14 goal refines : [%#sspecialize0] true end diff --git a/creusot/tests/should_fail/bug/specialize.rs b/creusot/tests/should_fail/bug/specialize.rs index 9c44139f3d..39f433f02b 100644 --- a/creusot/tests/should_fail/bug/specialize.rs +++ b/creusot/tests/should_fail/bug/specialize.rs @@ -1,3 +1,4 @@ +// WHY3PROVE #![feature(min_specialization)] extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/bug/specialize.stderr b/creusot/tests/should_fail/bug/specialize.stderr index 19ad18b2b7..a8a1fefe44 100644 --- a/creusot/tests/should_fail/bug/specialize.stderr +++ b/creusot/tests/should_fail/bug/specialize.stderr @@ -1,27 +1,27 @@ warning: trait `T` is never used - --> specialize.rs:5:7 + --> specialize.rs:6:7 | -5 | trait T { +6 | trait T { | ^ | = note: `#[warn(dead_code)]` on by default warning: function `f` is never used - --> specialize.rs:21:4 + --> specialize.rs:22:4 | -21 | fn f(v: Vec) { +22 | fn f(v: Vec) { | ^ warning: function `g` is never used - --> specialize.rs:27:4 + --> specialize.rs:28:4 | -27 | fn g(v: Vec) { +28 | fn g(v: Vec) { | ^ warning: function `h` is never used - --> specialize.rs:34:4 + --> specialize.rs:35:4 | -34 | fn h(v: Vec) { +35 | fn h(v: Vec) { | ^ warning: 4 warnings emitted diff --git a/creusot/tests/should_fail/bug/subregion.coma b/creusot/tests/should_fail/bug/subregion.coma index 4e597472cf..59c7146f42 100644 --- a/creusot/tests/should_fail/bug/subregion.coma +++ b/creusot/tests/should_fail/bug/subregion.coma @@ -1,8 +1,8 @@ -module M_subregion__list_reversal_h [#"subregion.rs" 3 0 3 37] - let%span ssubregion0 = "subregion.rs" 4 16 4 17 - let%span ssubregion1 = "subregion.rs" 5 16 5 20 - let%span ssubregion2 = "subregion.rs" 6 15 6 16 - let%span ssubregion3 = "subregion.rs" 7 22 7 27 +module M_subregion__list_reversal_h [#"subregion.rs" 4 0 4 37] + let%span ssubregion0 = "subregion.rs" 5 16 5 17 + let%span ssubregion1 = "subregion.rs" 6 16 6 20 + let%span ssubregion2 = "subregion.rs" 7 15 7 16 + let%span ssubregion3 = "subregion.rs" 8 22 8 27 use prelude.prelude.UIntSize diff --git a/creusot/tests/should_fail/bug/subregion.rs b/creusot/tests/should_fail/bug/subregion.rs index 9e41b0b31e..9b5e54349e 100644 --- a/creusot/tests/should_fail/bug/subregion.rs +++ b/creusot/tests/should_fail/bug/subregion.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; fn list_reversal_h(l: usize) -> usize { diff --git a/creusot/tests/should_fail/bug/subregion.stderr b/creusot/tests/should_fail/bug/subregion.stderr index 50e2bcec1d..66a254c8c3 100644 --- a/creusot/tests/should_fail/bug/subregion.stderr +++ b/creusot/tests/should_fail/bug/subregion.stderr @@ -1,15 +1,15 @@ warning: unused variable: `x` - --> subregion.rs:8:13 + --> subregion.rs:9:13 | -8 | let x = r; +9 | let x = r; | ^ help: if this is intentional, prefix it with an underscore: `_x` | = note: `#[warn(unused_variables)]` on by default warning: function `list_reversal_h` is never used - --> subregion.rs:3:4 + --> subregion.rs:4:4 | -3 | fn list_reversal_h(l: usize) -> usize { +4 | fn list_reversal_h(l: usize) -> usize { | ^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default diff --git a/creusot/tests/should_fail/final_borrows.coma b/creusot/tests/should_fail/final_borrows.coma index 2bef340ec6..c9b78c79e3 100644 --- a/creusot/tests/should_fail/final_borrows.coma +++ b/creusot/tests/should_fail/final_borrows.coma @@ -1,6 +1,6 @@ -module M_final_borrows__not_final_borrow [#"final_borrows.rs" 5 0 5 45] - let%span sfinal_borrows0 = "final_borrows.rs" 8 18 8 27 - let%span sfinal_borrows1 = "final_borrows.rs" 5 33 5 36 +module M_final_borrows__not_final_borrow [#"final_borrows.rs" 6 0 6 45] + let%span sfinal_borrows0 = "final_borrows.rs" 9 18 9 27 + let%span sfinal_borrows1 = "final_borrows.rs" 6 33 6 36 let%span sresolve2 = "../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant3 = "../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -60,9 +60,9 @@ module M_final_borrows__not_final_borrow [#"final_borrows.rs" 5 0 5 45] | & _b2 : borrowed t_T'0 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_final_borrows__store_changes_prophecy [#"final_borrows.rs" 11 0 11 51] - let%span sfinal_borrows0 = "final_borrows.rs" 16 18 16 27 - let%span sfinal_borrows1 = "final_borrows.rs" 11 39 11 42 +module M_final_borrows__store_changes_prophecy [#"final_borrows.rs" 12 0 12 51] + let%span sfinal_borrows0 = "final_borrows.rs" 17 18 17 27 + let%span sfinal_borrows1 = "final_borrows.rs" 12 39 12 42 let%span sresolve2 = "../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant3 = "../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -115,10 +115,10 @@ module M_final_borrows__store_changes_prophecy [#"final_borrows.rs" 11 0 11 51] | & val' : t_T'0 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_final_borrows__store_changes_prophecy_2 [#"final_borrows.rs" 19 0 19 59] - let%span sfinal_borrows0 = "final_borrows.rs" 24 18 24 27 - let%span sfinal_borrows1 = "final_borrows.rs" 19 41 19 44 - let%span sfinal_borrows2 = "final_borrows.rs" 19 54 19 55 +module M_final_borrows__store_changes_prophecy_2 [#"final_borrows.rs" 20 0 20 59] + let%span sfinal_borrows0 = "final_borrows.rs" 25 18 25 27 + let%span sfinal_borrows1 = "final_borrows.rs" 20 41 20 44 + let%span sfinal_borrows2 = "final_borrows.rs" 20 54 20 55 let%span sresolve3 = "../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant4 = "../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -169,13 +169,13 @@ module M_final_borrows__store_changes_prophecy_2 [#"final_borrows.rs" 19 0 19 59 [ return' (result:())-> (! return' {result}) ] end -module M_final_borrows__call_changes_prophecy [#"final_borrows.rs" 27 0 27 43] - let%span sfinal_borrows0 = "final_borrows.rs" 33 19 33 33 - let%span sfinal_borrows1 = "final_borrows.rs" 35 18 35 31 - let%span sfinal_borrows2 = "final_borrows.rs" 36 10 36 17 - let%span sfinal_borrows3 = "final_borrows.rs" 38 11 38 18 - let%span sfinal_borrows4 = "final_borrows.rs" 39 18 39 39 - let%span sfinal_borrows5 = "final_borrows.rs" 29 14 29 26 +module M_final_borrows__call_changes_prophecy [#"final_borrows.rs" 28 0 28 43] + let%span sfinal_borrows0 = "final_borrows.rs" 34 19 34 33 + let%span sfinal_borrows1 = "final_borrows.rs" 36 18 36 31 + let%span sfinal_borrows2 = "final_borrows.rs" 37 10 37 17 + let%span sfinal_borrows3 = "final_borrows.rs" 39 11 39 18 + let%span sfinal_borrows4 = "final_borrows.rs" 40 18 40 39 + let%span sfinal_borrows5 = "final_borrows.rs" 30 14 30 26 let%span sresolve6 = "../../../creusot-contracts/src/resolve.rs" 54 20 54 34 use prelude.prelude.Snapshot @@ -235,9 +235,9 @@ module M_final_borrows__call_changes_prophecy [#"final_borrows.rs" 27 0 27 43] | & _8 : int32 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_final_borrows__unnesting_fails [#"final_borrows.rs" 42 0 42 24] - let%span sfinal_borrows0 = "final_borrows.rs" 43 16 43 17 - let%span sfinal_borrows1 = "final_borrows.rs" 49 18 49 34 +module M_final_borrows__unnesting_fails [#"final_borrows.rs" 43 0 43 24] + let%span sfinal_borrows0 = "final_borrows.rs" 44 16 44 17 + let%span sfinal_borrows1 = "final_borrows.rs" 50 18 50 34 let%span sresolve2 = "../../../creusot-contracts/src/resolve.rs" 54 20 54 34 use prelude.prelude.Int32 @@ -292,11 +292,11 @@ module M_final_borrows__unnesting_fails [#"final_borrows.rs" 42 0 42 24] | & rebor2 : borrowed int32 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_final_borrows__move_place_without_deref [#"final_borrows.rs" 53 0 53 52] - let%span sfinal_borrows0 = "final_borrows.rs" 59 18 59 28 - let%span sfinal_borrows1 = "final_borrows.rs" 53 35 53 38 - let%span sfinal_borrows2 = "final_borrows.rs" 56 16 56 17 - let%span sfinal_borrows3 = "final_borrows.rs" 55 14 55 24 +module M_final_borrows__move_place_without_deref [#"final_borrows.rs" 54 0 54 52] + let%span sfinal_borrows0 = "final_borrows.rs" 60 18 60 28 + let%span sfinal_borrows1 = "final_borrows.rs" 54 35 54 38 + let%span sfinal_borrows2 = "final_borrows.rs" 57 16 57 17 + let%span sfinal_borrows3 = "final_borrows.rs" 56 14 56 24 let%span sresolve4 = "../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant5 = "../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sboxed6 = "../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 diff --git a/creusot/tests/should_fail/final_borrows.rs b/creusot/tests/should_fail/final_borrows.rs index 6d1e38e251..163bd063a6 100644 --- a/creusot/tests/should_fail/final_borrows.rs +++ b/creusot/tests/should_fail/final_borrows.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/opaque_unproveable.coma b/creusot/tests/should_fail/opaque_unproveable.coma index 7e5a4f1cc8..0344b5d711 100644 --- a/creusot/tests/should_fail/opaque_unproveable.coma +++ b/creusot/tests/should_fail/opaque_unproveable.coma @@ -1,7 +1,7 @@ -module M_opaque_unproveable__test [#"opaque_unproveable.rs" 14 0 14 13] - let%span sopaque_unproveable0 = "opaque_unproveable.rs" 16 18 16 29 +module M_opaque_unproveable__test [#"opaque_unproveable.rs" 15 0 15 13] + let%span sopaque_unproveable0 = "opaque_unproveable.rs" 17 18 17 29 - predicate opaque'0 [#"opaque_unproveable.rs" 9 4 9 27] (_1 : ()) + predicate opaque'0 [#"opaque_unproveable.rs" 10 4 10 27] (_1 : ()) use prelude.prelude.Intrinsic diff --git a/creusot/tests/should_fail/opaque_unproveable.rs b/creusot/tests/should_fail/opaque_unproveable.rs index 5a2665ca0c..57cef21bb8 100644 --- a/creusot/tests/should_fail/opaque_unproveable.rs +++ b/creusot/tests/should_fail/opaque_unproveable.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/traits/17_impl_refinement.coma b/creusot/tests/should_fail/traits/17_impl_refinement.coma index f12aed133a..f08ec9410e 100644 --- a/creusot/tests/should_fail/traits/17_impl_refinement.coma +++ b/creusot/tests/should_fail/traits/17_impl_refinement.coma @@ -1,7 +1,7 @@ -module M_17_impl_refinement__qyi14398438181735515246__my_function [#"17_impl_refinement.rs" 14 4 14 34] (* <() as Tr> *) - let%span s17_impl_refinement0 = "17_impl_refinement.rs" 15 8 15 10 - let%span s17_impl_refinement1 = "17_impl_refinement.rs" 12 15 12 19 - let%span s17_impl_refinement2 = "17_impl_refinement.rs" 13 14 13 27 +module M_17_impl_refinement__qyi14398438181735515246__my_function [#"17_impl_refinement.rs" 15 4 15 34] (* <() as Tr> *) + let%span s17_impl_refinement0 = "17_impl_refinement.rs" 16 8 16 10 + let%span s17_impl_refinement1 = "17_impl_refinement.rs" 13 15 13 19 + let%span s17_impl_refinement2 = "17_impl_refinement.rs" 14 14 14 27 use prelude.prelude.UIntSize @@ -23,9 +23,9 @@ module M_17_impl_refinement__qyi14398438181735515246__my_function [#"17_impl_ref (! return' {result}) ] end -module M_17_impl_refinement__qyi15782060473717464421__need_false [#"17_impl_refinement.rs" 29 4 29 25] (* <() as ReqFalse> *) - let%span s17_impl_refinement0 = "17_impl_refinement.rs" 28 15 28 23 - let%span s17_impl_refinement1 = "17_impl_refinement.rs" 27 4 27 12 +module M_17_impl_refinement__qyi15782060473717464421__need_false [#"17_impl_refinement.rs" 30 4 30 25] (* <() as ReqFalse> *) + let%span s17_impl_refinement0 = "17_impl_refinement.rs" 29 15 29 23 + let%span s17_impl_refinement1 = "17_impl_refinement.rs" 28 4 28 12 use prelude.prelude.UInt64 @@ -35,12 +35,12 @@ module M_17_impl_refinement__qyi15782060473717464421__need_false [#"17_impl_refi constant y : uint64 - function need_false'0 [#"17_impl_refinement.rs" 29 4 29 25] (y : uint64) : () + function need_false'0 [#"17_impl_refinement.rs" 30 4 30 25] (y : uint64) : () goal vc_need_false'0 : true end -module M_17_impl_refinement__qyi14398438181735515246__my_function__refines [#"17_impl_refinement.rs" 14 4 14 34] (* <() as Tr> *) - let%span s17_impl_refinement0 = "17_impl_refinement.rs" 14 4 14 34 +module M_17_impl_refinement__qyi14398438181735515246__my_function__refines [#"17_impl_refinement.rs" 15 4 15 34] (* <() as Tr> *) + let%span s17_impl_refinement0 = "17_impl_refinement.rs" 15 4 15 34 use prelude.prelude.Borrow @@ -57,8 +57,8 @@ module M_17_impl_refinement__qyi14398438181735515246__my_function__refines [#"17 goal refines : [%#s17_impl_refinement0] forall self : () . inv'0 self -> (forall result : usize . UIntSize.to_int result >= 15 -> UIntSize.to_int result >= 10) end -module M_17_impl_refinement__qyi15782060473717464421__need_false__refines [#"17_impl_refinement.rs" 29 4 29 25] (* <() as ReqFalse> *) - let%span s17_impl_refinement0 = "17_impl_refinement.rs" 29 4 29 25 +module M_17_impl_refinement__qyi15782060473717464421__need_false__refines [#"17_impl_refinement.rs" 30 4 30 25] (* <() as ReqFalse> *) + let%span s17_impl_refinement0 = "17_impl_refinement.rs" 30 4 30 25 use prelude.prelude.UInt64 diff --git a/creusot/tests/should_fail/traits/17_impl_refinement.rs b/creusot/tests/should_fail/traits/17_impl_refinement.rs index e80c05fb31..178bbdbfed 100644 --- a/creusot/tests/should_fail/traits/17_impl_refinement.rs +++ b/creusot/tests/should_fail/traits/17_impl_refinement.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::*; diff --git a/creusot/tests/should_fail/traits/17_impl_refinement.stderr b/creusot/tests/should_fail/traits/17_impl_refinement.stderr index f7b956d50e..c67111f948 100644 --- a/creusot/tests/should_fail/traits/17_impl_refinement.stderr +++ b/creusot/tests/should_fail/traits/17_impl_refinement.stderr @@ -1,15 +1,15 @@ warning: trait `Tr` is never used - --> 17_impl_refinement.rs:6:7 + --> 17_impl_refinement.rs:7:7 | -6 | trait Tr { +7 | trait Tr { | ^^ | = note: `#[warn(dead_code)]` on by default warning: trait `ReqFalse` is never used - --> 17_impl_refinement.rs:19:7 + --> 17_impl_refinement.rs:20:7 | -19 | trait ReqFalse { +20 | trait ReqFalse { | ^^^^^^^^ warning: 2 warnings emitted diff --git a/creusot/tests/should_fail/type_invariants/borrows.coma b/creusot/tests/should_fail/type_invariants/borrows.coma index 95e4facd66..9fddf7c743 100644 --- a/creusot/tests/should_fail/type_invariants/borrows.coma +++ b/creusot/tests/should_fail/type_invariants/borrows.coma @@ -1,8 +1,8 @@ -module M_borrows__qyi5649894289181344863__new [#"borrows.rs" 17 4 17 30] (* NonZero *) - let%span sborrows0 = "borrows.rs" 15 15 15 22 - let%span sborrows1 = "borrows.rs" 17 26 17 30 - let%span sborrows2 = "borrows.rs" 16 14 16 27 - let%span sborrows3 = "borrows.rs" 10 20 10 32 +module M_borrows__qyi5649894289181344863__new [#"borrows.rs" 18 4 18 30] (* NonZero *) + let%span sborrows0 = "borrows.rs" 16 15 16 22 + let%span sborrows1 = "borrows.rs" 18 26 18 30 + let%span sborrows2 = "borrows.rs" 17 14 17 27 + let%span sborrows3 = "borrows.rs" 11 20 11 32 use prelude.prelude.Int32 @@ -13,7 +13,7 @@ module M_borrows__qyi5649894289181344863__new [#"borrows.rs" 17 4 17 30] (* NonZ use prelude.prelude.Int32 - predicate invariant'0 [#"borrows.rs" 9 4 9 30] (self : t_NonZero'0) = + predicate invariant'0 [#"borrows.rs" 10 4 10 30] (self : t_NonZero'0) = [%#sborrows3] Int32.to_int self.t_NonZero__0'0 <> 0 predicate inv'0 (_1 : t_NonZero'0) @@ -35,13 +35,13 @@ module M_borrows__qyi5649894289181344863__new [#"borrows.rs" 17 4 17 30] (* NonZ (! return' {result}) ] end -module M_borrows__qyi5649894289181344863__inner_mut [#"borrows.rs" 23 4 23 43] (* NonZero *) - let%span sborrows0 = "borrows.rs" 23 26 23 30 - let%span sborrows1 = "borrows.rs" 21 14 21 38 - let%span sborrows2 = "borrows.rs" 22 14 22 38 +module M_borrows__qyi5649894289181344863__inner_mut [#"borrows.rs" 24 4 24 43] (* NonZero *) + let%span sborrows0 = "borrows.rs" 24 26 24 30 + let%span sborrows1 = "borrows.rs" 22 14 22 38 + let%span sborrows2 = "borrows.rs" 23 14 23 38 let%span sresolve3 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant4 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span sborrows5 = "borrows.rs" 10 20 10 32 + let%span sborrows5 = "borrows.rs" 11 20 11 32 use prelude.prelude.Borrow @@ -58,7 +58,7 @@ module M_borrows__qyi5649894289181344863__inner_mut [#"borrows.rs" 23 4 23 43] ( use prelude.prelude.Int32 - predicate invariant'1 [#"borrows.rs" 9 4 9 30] (self : t_NonZero'0) = + predicate invariant'1 [#"borrows.rs" 10 4 10 30] (self : t_NonZero'0) = [%#sborrows5] Int32.to_int self.t_NonZero__0'0 <> 0 predicate inv'1 (_1 : t_NonZero'0) @@ -116,16 +116,16 @@ module M_borrows__qyi5649894289181344863__inner_mut [#"borrows.rs" 23 4 23 43] ( (! return' {result}) ] end -module M_borrows__simple [#"borrows.rs" 31 0 31 30] - let%span sborrows0 = "borrows.rs" 31 14 31 15 - let%span sborrows1 = "borrows.rs" 29 11 29 27 - let%span sborrows2 = "borrows.rs" 30 11 30 21 - let%span sborrows3 = "borrows.rs" 99 11 99 25 - let%span sborrows4 = "borrows.rs" 100 10 100 25 +module M_borrows__simple [#"borrows.rs" 32 0 32 30] + let%span sborrows0 = "borrows.rs" 32 14 32 15 + let%span sborrows1 = "borrows.rs" 30 11 30 27 + let%span sborrows2 = "borrows.rs" 31 11 31 21 + let%span sborrows3 = "borrows.rs" 100 11 100 25 + let%span sborrows4 = "borrows.rs" 101 10 101 25 let%span smodel5 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 let%span sresolve6 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant7 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span sborrows8 = "borrows.rs" 10 20 10 32 + let%span sborrows8 = "borrows.rs" 11 20 11 32 use prelude.prelude.Borrow @@ -153,7 +153,7 @@ module M_borrows__simple [#"borrows.rs" 31 0 31 30] predicate resolve'0 (_1 : borrowed int32) = resolve'2 _1 - predicate invariant'1 [#"borrows.rs" 9 4 9 30] (self : t_NonZero'0) = + predicate invariant'1 [#"borrows.rs" 10 4 10 30] (self : t_NonZero'0) = [%#sborrows8] Int32.to_int self.t_NonZero__0'0 <> 0 predicate inv'1 (_1 : t_NonZero'0) @@ -210,18 +210,18 @@ module M_borrows__simple [#"borrows.rs" 31 0 31 30] | & _6 : borrowed int32 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_borrows__hard [#"borrows.rs" 38 0 38 28] - let%span sborrows0 = "borrows.rs" 38 12 38 13 - let%span sborrows1 = "borrows.rs" 36 11 36 27 - let%span sborrows2 = "borrows.rs" 37 11 37 21 - let%span sborrows3 = "borrows.rs" 23 26 23 30 - let%span sborrows4 = "borrows.rs" 21 14 21 38 - let%span sborrows5 = "borrows.rs" 22 14 22 38 - let%span sborrows6 = "borrows.rs" 99 11 99 25 - let%span sborrows7 = "borrows.rs" 100 10 100 25 +module M_borrows__hard [#"borrows.rs" 39 0 39 28] + let%span sborrows0 = "borrows.rs" 39 12 39 13 + let%span sborrows1 = "borrows.rs" 37 11 37 27 + let%span sborrows2 = "borrows.rs" 38 11 38 21 + let%span sborrows3 = "borrows.rs" 24 26 24 30 + let%span sborrows4 = "borrows.rs" 22 14 22 38 + let%span sborrows5 = "borrows.rs" 23 14 23 38 + let%span sborrows6 = "borrows.rs" 100 11 100 25 + let%span sborrows7 = "borrows.rs" 101 10 101 25 let%span smodel8 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 let%span sresolve9 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 - let%span sborrows10 = "borrows.rs" 10 20 10 32 + let%span sborrows10 = "borrows.rs" 11 20 11 32 let%span sinvariant11 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 use prelude.prelude.Borrow @@ -233,7 +233,7 @@ module M_borrows__hard [#"borrows.rs" 38 0 38 28] use prelude.prelude.Int32 - predicate invariant'0 [#"borrows.rs" 9 4 9 30] (self : t_NonZero'0) = + predicate invariant'0 [#"borrows.rs" 10 4 10 30] (self : t_NonZero'0) = [%#sborrows10] Int32.to_int self.t_NonZero__0'0 <> 0 predicate inv'0 (_1 : t_NonZero'0) @@ -322,17 +322,17 @@ module M_borrows__hard [#"borrows.rs" 38 0 38 28] | & _7 : borrowed (t_NonZero'0) = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_borrows__tuple [#"borrows.rs" 45 0 45 44] - let%span sborrows0 = "borrows.rs" 46 13 46 14 - let%span sborrows1 = "borrows.rs" 45 17 45 18 - let%span sborrows2 = "borrows.rs" 43 11 43 29 - let%span sborrows3 = "borrows.rs" 44 11 44 23 - let%span sborrows4 = "borrows.rs" 99 11 99 25 - let%span sborrows5 = "borrows.rs" 100 10 100 25 +module M_borrows__tuple [#"borrows.rs" 46 0 46 44] + let%span sborrows0 = "borrows.rs" 47 13 47 14 + let%span sborrows1 = "borrows.rs" 46 17 46 18 + let%span sborrows2 = "borrows.rs" 44 11 44 29 + let%span sborrows3 = "borrows.rs" 45 11 45 23 + let%span sborrows4 = "borrows.rs" 100 11 100 25 + let%span sborrows5 = "borrows.rs" 101 10 101 25 let%span smodel6 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 let%span sresolve7 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sresolve8 = "../../../../creusot-contracts/src/resolve.rs" 40 8 40 44 - let%span sborrows9 = "borrows.rs" 10 20 10 32 + let%span sborrows9 = "borrows.rs" 11 20 11 32 let%span sinvariant10 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 use prelude.prelude.Int32 @@ -361,7 +361,7 @@ module M_borrows__tuple [#"borrows.rs" 45 0 45 44] predicate resolve'0 (_1 : borrowed int32) = resolve'2 _1 - predicate invariant'0 [#"borrows.rs" 9 4 9 30] (self : t_NonZero'0) = + predicate invariant'0 [#"borrows.rs" 10 4 10 30] (self : t_NonZero'0) = [%#sborrows9] Int32.to_int self.t_NonZero__0'0 <> 0 predicate inv'1 (_1 : t_NonZero'0) @@ -439,17 +439,17 @@ module M_borrows__tuple [#"borrows.rs" 45 0 45 44] | & _6 : borrowed int32 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_borrows__partial_move [#"borrows.rs" 53 0 53 47] - let%span sborrows0 = "borrows.rs" 56 10 56 11 - let%span sborrows1 = "borrows.rs" 53 20 53 21 - let%span sborrows2 = "borrows.rs" 51 11 51 29 - let%span sborrows3 = "borrows.rs" 52 11 52 23 - let%span sborrows4 = "borrows.rs" 99 11 99 25 - let%span sborrows5 = "borrows.rs" 100 10 100 25 +module M_borrows__partial_move [#"borrows.rs" 54 0 54 47] + let%span sborrows0 = "borrows.rs" 57 10 57 11 + let%span sborrows1 = "borrows.rs" 54 20 54 21 + let%span sborrows2 = "borrows.rs" 52 11 52 29 + let%span sborrows3 = "borrows.rs" 53 11 53 23 + let%span sborrows4 = "borrows.rs" 100 11 100 25 + let%span sborrows5 = "borrows.rs" 101 10 101 25 let%span smodel6 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 let%span sresolve7 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant8 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span sborrows9 = "borrows.rs" 10 20 10 32 + let%span sborrows9 = "borrows.rs" 11 20 11 32 use prelude.prelude.Borrow @@ -477,7 +477,7 @@ module M_borrows__partial_move [#"borrows.rs" 53 0 53 47] predicate resolve'0 (_1 : borrowed int32) = resolve'2 _1 - predicate invariant'1 [#"borrows.rs" 9 4 9 30] (self : t_NonZero'0) = + predicate invariant'1 [#"borrows.rs" 10 4 10 30] (self : t_NonZero'0) = [%#sborrows9] Int32.to_int self.t_NonZero__0'0 <> 0 predicate inv'2 (_1 : t_NonZero'0) @@ -556,17 +556,17 @@ module M_borrows__partial_move [#"borrows.rs" 53 0 53 47] | & _7 : borrowed int32 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_borrows__destruct [#"borrows.rs" 61 0 61 43] - let%span sborrows0 = "borrows.rs" 63 10 63 11 - let%span sborrows1 = "borrows.rs" 61 16 61 17 - let%span sborrows2 = "borrows.rs" 59 11 59 29 - let%span sborrows3 = "borrows.rs" 60 11 60 23 - let%span sborrows4 = "borrows.rs" 99 11 99 25 - let%span sborrows5 = "borrows.rs" 100 10 100 25 +module M_borrows__destruct [#"borrows.rs" 62 0 62 43] + let%span sborrows0 = "borrows.rs" 64 10 64 11 + let%span sborrows1 = "borrows.rs" 62 16 62 17 + let%span sborrows2 = "borrows.rs" 60 11 60 29 + let%span sborrows3 = "borrows.rs" 61 11 61 23 + let%span sborrows4 = "borrows.rs" 100 11 100 25 + let%span sborrows5 = "borrows.rs" 101 10 101 25 let%span smodel6 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 let%span sresolve7 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant8 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span sborrows9 = "borrows.rs" 10 20 10 32 + let%span sborrows9 = "borrows.rs" 11 20 11 32 use prelude.prelude.Int32 @@ -594,7 +594,7 @@ module M_borrows__destruct [#"borrows.rs" 61 0 61 43] predicate resolve'0 (_1 : borrowed int32) = resolve'2 _1 - predicate invariant'1 [#"borrows.rs" 9 4 9 30] (self : t_NonZero'0) = + predicate invariant'1 [#"borrows.rs" 10 4 10 30] (self : t_NonZero'0) = [%#sborrows9] Int32.to_int self.t_NonZero__0'0 <> 0 predicate inv'2 (_1 : t_NonZero'0) @@ -662,16 +662,16 @@ module M_borrows__destruct [#"borrows.rs" 61 0 61 43] | & _8 : borrowed int32 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_borrows__frozen_dead [#"borrows.rs" 69 0 69 66] - let%span sborrows0 = "borrows.rs" 69 27 69 28 - let%span sborrows1 = "borrows.rs" 69 47 69 48 - let%span sborrows2 = "borrows.rs" 67 11 67 27 - let%span sborrows3 = "borrows.rs" 68 11 68 21 - let%span sborrows4 = "borrows.rs" 99 11 99 25 - let%span sborrows5 = "borrows.rs" 100 10 100 25 +module M_borrows__frozen_dead [#"borrows.rs" 70 0 70 66] + let%span sborrows0 = "borrows.rs" 70 27 70 28 + let%span sborrows1 = "borrows.rs" 70 47 70 48 + let%span sborrows2 = "borrows.rs" 68 11 68 27 + let%span sborrows3 = "borrows.rs" 69 11 69 21 + let%span sborrows4 = "borrows.rs" 100 11 100 25 + let%span sborrows5 = "borrows.rs" 101 10 101 25 let%span sresolve6 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span smodel7 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 - let%span sborrows8 = "borrows.rs" 10 20 10 32 + let%span sborrows8 = "borrows.rs" 11 20 11 32 let%span sinvariant9 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 use prelude.prelude.Borrow @@ -683,7 +683,7 @@ module M_borrows__frozen_dead [#"borrows.rs" 69 0 69 66] use prelude.prelude.Int32 - predicate invariant'0 [#"borrows.rs" 9 4 9 30] (self : t_NonZero'0) = + predicate invariant'0 [#"borrows.rs" 10 4 10 30] (self : t_NonZero'0) = [%#sborrows8] Int32.to_int self.t_NonZero__0'0 <> 0 predicate inv'0 (_1 : t_NonZero'0) @@ -773,17 +773,17 @@ module M_borrows__frozen_dead [#"borrows.rs" 69 0 69 66] | & _8 : borrowed int32 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_borrows__qyi5556307355051076399__foo [#"borrows.rs" 93 4 93 25] (* SumTo10 *) - let%span sborrows0 = "borrows.rs" 93 20 93 24 - let%span sborrows1 = "borrows.rs" 92 15 92 34 - let%span sborrows2 = "borrows.rs" 99 11 99 25 - let%span sborrows3 = "borrows.rs" 100 10 100 25 - let%span sborrows4 = "borrows.rs" 105 11 105 25 - let%span sborrows5 = "borrows.rs" 106 10 106 25 +module M_borrows__qyi5556307355051076399__foo [#"borrows.rs" 94 4 94 25] (* SumTo10 *) + let%span sborrows0 = "borrows.rs" 94 20 94 24 + let%span sborrows1 = "borrows.rs" 93 15 93 34 + let%span sborrows2 = "borrows.rs" 100 11 100 25 + let%span sborrows3 = "borrows.rs" 101 10 101 25 + let%span sborrows4 = "borrows.rs" 106 11 106 25 + let%span sborrows5 = "borrows.rs" 107 10 107 25 let%span smodel6 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 let%span sresolve7 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant8 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span sborrows9 = "borrows.rs" 87 20 87 43 + let%span sborrows9 = "borrows.rs" 88 20 88 43 use prelude.prelude.Borrow @@ -817,7 +817,7 @@ module M_borrows__qyi5556307355051076399__foo [#"borrows.rs" 93 4 93 25] (* SumT > Int32.to_int (v_MIN'0 : int32)} any [ return' (result:())-> {[%#sborrows5] Int32.to_int x.final = view'0 x - 1} (! return' {result}) ] - predicate invariant'1 [#"borrows.rs" 86 4 86 30] (self : t_SumTo10'0) = + predicate invariant'1 [#"borrows.rs" 87 4 87 30] (self : t_SumTo10'0) = [%#sborrows9] Int32.to_int self.t_SumTo10__a'0 + Int32.to_int self.t_SumTo10__b'0 = 10 predicate inv'1 (_1 : t_SumTo10'0) @@ -888,10 +888,10 @@ module M_borrows__qyi5556307355051076399__foo [#"borrows.rs" 93 4 93 25] (* SumT | & _8 : borrowed int32 = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_borrows__inc [#"borrows.rs" 101 0 101 23] - let%span sborrows0 = "borrows.rs" 102 10 102 11 - let%span sborrows1 = "borrows.rs" 99 11 99 25 - let%span sborrows2 = "borrows.rs" 100 10 100 25 +module M_borrows__inc [#"borrows.rs" 102 0 102 23] + let%span sborrows0 = "borrows.rs" 103 10 103 11 + let%span sborrows1 = "borrows.rs" 100 11 100 25 + let%span sborrows2 = "borrows.rs" 101 10 101 25 let%span smodel3 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 let%span sresolve4 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 @@ -932,10 +932,10 @@ module M_borrows__inc [#"borrows.rs" 101 0 101 23] (! return' {result}) ] end -module M_borrows__dec [#"borrows.rs" 107 0 107 23] - let%span sborrows0 = "borrows.rs" 108 10 108 11 - let%span sborrows1 = "borrows.rs" 105 11 105 25 - let%span sborrows2 = "borrows.rs" 106 10 106 25 +module M_borrows__dec [#"borrows.rs" 108 0 108 23] + let%span sborrows0 = "borrows.rs" 109 10 109 11 + let%span sborrows1 = "borrows.rs" 106 11 106 25 + let%span sborrows2 = "borrows.rs" 107 10 107 25 let%span smodel3 = "../../../../creusot-contracts/src/model.rs" 106 8 106 22 let%span sresolve4 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 diff --git a/creusot/tests/should_fail/type_invariants/borrows.rs b/creusot/tests/should_fail/type_invariants/borrows.rs index 92ccdafa1f..3ed64076bd 100644 --- a/creusot/tests/should_fail/type_invariants/borrows.rs +++ b/creusot/tests/should_fail/type_invariants/borrows.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::{invariant::Invariant, *}; diff --git a/creusot/tests/should_succeed/100doors/proof.json b/creusot/tests/should_succeed/100doors/proof.json new file mode 100644 index 0000000000..6a383f55e7 --- /dev/null +++ b/creusot/tests/should_succeed/100doors/proof.json @@ -0,0 +1,19 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_100doors__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.084 }, + "vc_from_elem'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/100doors/why3session.xml b/creusot/tests/should_succeed/100doors/why3session.xml deleted file mode 100644 index 3ca0cf89c3..0000000000 --- a/creusot/tests/should_succeed/100doors/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/100doors/why3shapes.gz b/creusot/tests/should_succeed/100doors/why3shapes.gz deleted file mode 100644 index a61fbaff78..0000000000 Binary files a/creusot/tests/should_succeed/100doors/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/all_zero/proof.json b/creusot/tests/should_succeed/all_zero/proof.json new file mode 100644 index 0000000000..09edeba57e --- /dev/null +++ b/creusot/tests/should_succeed/all_zero/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_all_zero__all_zero": { + "vc_all_zero'0": { "prover": "cvc5@1.0.5", "time": 0.054 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/all_zero/why3session.xml b/creusot/tests/should_succeed/all_zero/why3session.xml deleted file mode 100644 index ad7e773d23..0000000000 --- a/creusot/tests/should_succeed/all_zero/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/all_zero/why3shapes.gz b/creusot/tests/should_succeed/all_zero/why3shapes.gz deleted file mode 100644 index 0cf5c3d6c4..0000000000 Binary files a/creusot/tests/should_succeed/all_zero/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bdd/proof.json b/creusot/tests/should_succeed/bdd/proof.json new file mode 100644 index 0000000000..bb6aea978b --- /dev/null +++ b/creusot/tests/should_succeed/bdd/proof.json @@ -0,0 +1,313 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_bdd__hashmap__qyi11648407051195780326__hash": { + "vc_hash'0": { "prover": "cvc5@1.0.5", "time": 0.152 }, + "vc_hash'1": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_hash'2": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_wrapping_mul'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_bdd__hashmap__qyi11648407051195780326__hash__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_bdd__qyi11078426090797403070__and": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_and'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "z3@4.12.4", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.175 }, + { "prover": "z3@4.12.4", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.039 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.01 }, + { "prover": "cvc5@1.0.5", "time": 0.007 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.009 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc5@1.0.5", "time": 0.039 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.082 }, + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.138 }, + { "prover": "cvc5@1.0.5", "time": 0.145 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.048 }, + { "prover": "cvc5@1.0.5", "time": 0.126 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.207 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.09 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.083 }, + { "prover": "cvc5@1.0.5", "time": 0.121 }, + { "prover": "cvc5@1.0.5", "time": 0.123 }, + { "prover": "cvc5@1.0.5", "time": 0.009 }, + { "prover": "cvc5@1.0.5", "time": 0.059 }, + { "prover": "cvc5@1.0.5", "time": 0.064 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.176 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.083 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.102 }, + { "prover": "cvc5@1.0.5", "time": 0.078 }, + { "prover": "cvc5@1.0.5", "time": 0.009 }, + { "prover": "cvc5@1.0.5", "time": 0.075 }, + { "prover": "cvc5@1.0.5", "time": 0.118 }, + { "prover": "cvc5@1.0.5", "time": 0.015 }, + { "prover": "cvc5@1.0.5", "time": 0.212 }, + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.229 }, + { "prover": "cvc5@1.0.5", "time": 0.212 }, + { "prover": "cvc5@1.0.5", "time": 0.844 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.72 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 1.2 }, + { "prover": "cvc5@1.0.5", "time": 1.2 }, + { "prover": "cvc5@1.0.5", "time": 1.2 } + ] + } + ] + } + ] + }, + { "prover": "z3@4.12.4", "time": 0.29 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.251 }, + { "prover": "cvc5@1.0.5", "time": 0.04 } + ] + }, + "vc_cmp'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_falseqy95z'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_node'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_v_If'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_bdd__qyi11078426090797403070__bdd_canonical": { + "vc_bdd_canonical'0": { "prover": "cvc5@1.0.5", "time": 0.079 } + }, + "M_bdd__qyi11078426090797403070__discr_valuation": { + "vc_discr_valuation'0": { "prover": "alt-ergo@2.6.0", "time": 1.3 } + }, + "M_bdd__qyi11078426090797403070__falseqy95z": { + "vc_falseqy95z'0": { "prover": "cvc5@1.0.5", "time": 0.037 }, + "vc_hashcons'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_bdd__qyi11078426090797403070__grows_is_valid_bdd": { + "vc_grows_is_valid_bdd'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_bdd__qyi11078426090797403070__grows_trans": { + "vc_grows_trans'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_bdd__qyi11078426090797403070__hashcons": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_alloc'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_hashcons'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "z3@4.12.4", "time": 0.156 }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.174 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.014 } + ] + }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_bdd__qyi11078426090797403070__new": { + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_new'1": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_new'2": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_new'3": { "prover": "cvc5@1.0.5", "time": 0.004 }, + "vc_promoted0__new'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_bdd__qyi11078426090797403070__node": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_hashcons'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_node'0": { "prover": "cvc5@1.0.5", "time": 0.04 } + }, + "M_bdd__qyi11078426090797403070__not": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_falseqy95z'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_node'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_not'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.013 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.11 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.039 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.014 }, + { "prover": "cvc5@1.0.5", "time": 0.141 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.014 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "z3@4.12.4", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "z3@4.12.4", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.32 }, + { "prover": "cvc5@1.0.5", "time": 0.25 }, + { "prover": "cvc5@1.0.5", "time": 1.1 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.164 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.113 }, + { "prover": "cvc5@1.0.5", "time": 0.02 } + ] + }, + "vc_trueqy95z'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_v_If'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_bdd__qyi11078426090797403070__set_irrelevent_var": { + "vc_set_irrelevent_var'0": { "prover": "cvc5@1.0.5", "time": 0.032 } + }, + "M_bdd__qyi11078426090797403070__trueqy95z": { + "vc_hashcons'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_trueqy95z'0": { "prover": "cvc5@1.0.5", "time": 0.033 } + }, + "M_bdd__qyi11078426090797403070__v": { + "vc_falseqy95z'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_node'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_trueqy95z'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_v'0": { "prover": "cvc5@1.0.5", "time": 0.054 } + }, + "M_bdd__qyi1284786238026687571__assert_receiver_is_total_eq": { + "vc_assert_receiver_is_total_eq'0": { + "prover": "cvc5@1.0.5", + "time": 0.009 + } + }, + "M_bdd__qyi1284786238026687571__assert_receiver_is_total_eq__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_bdd__qyi13535665294507397779__size": { + "vc_size'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_bdd__qyi14323183011761258016__hash": { + "vc_hash'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_bdd__qyi14323183011761258016__hash__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_bdd__qyi17981791245757283426__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_clone'1": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_clone'2": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_v_If'0": { "prover": "cvc5@1.0.5", "time": 0.023 } + }, + "M_bdd__qyi17981791245757283426__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_bdd__qyi2024536649982164874__assert_receiver_is_total_eq": { + "vc_assert_receiver_is_total_eq'0": { + "prover": "cvc5@1.0.5", + "time": 0.008 + } + }, + "M_bdd__qyi2024536649982164874__assert_receiver_is_total_eq__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.026 } + }, + "M_bdd__qyi2581120635339165136__eq": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_bdd__qyi2581120635339165136__eq__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_bdd__qyi2820858787824331484__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_bdd__qyi2820858787824331484__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_bdd__qyi4854841669736991510__eq": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_eq'1": { "prover": "cvc5@1.0.5", "time": 0.023 }, + "vc_eq'2": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_v_If'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_bdd__qyi4854841669736991510__eq__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.0009 } + }, + "M_bdd__qyi699402059438633899__hash": { + "vc_hash'0": { "prover": "cvc5@1.0.5", "time": 0.288 }, + "vc_v_If'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_wrapping_mul'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_bdd__qyi699402059438633899__hash__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/bdd/why3session.xml b/creusot/tests/should_succeed/bdd/why3session.xml deleted file mode 100644 index 156e797b2b..0000000000 --- a/creusot/tests/should_succeed/bdd/why3session.xml +++ /dev/null @@ -1,693 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bdd/why3shapes.gz b/creusot/tests/should_succeed/bdd/why3shapes.gz deleted file mode 100644 index 62ad599c45..0000000000 Binary files a/creusot/tests/should_succeed/bdd/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/binary_search/proof.json b/creusot/tests/should_succeed/binary_search/proof.json new file mode 100644 index 0000000000..3d2c279d15 --- /dev/null +++ b/creusot/tests/should_succeed/binary_search/proof.json @@ -0,0 +1,26 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_binary_search__binary_search": { + "vc_binary_search'0": { "prover": "z3@4.12.4", "time": 0.032 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_binary_search__qyi13868011053250380720__index": { + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.034 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_binary_search__qyi13868011053250380720__len": { + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.004 } + }, + "M_binary_search__qyi13868011053250380720__len_logic": { + "vc_len_logic'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/binary_search/why3session.xml b/creusot/tests/should_succeed/binary_search/why3session.xml deleted file mode 100644 index 270d839c99..0000000000 --- a/creusot/tests/should_succeed/binary_search/why3session.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/binary_search/why3shapes.gz b/creusot/tests/should_succeed/binary_search/why3shapes.gz deleted file mode 100644 index cb7a7e2c77..0000000000 Binary files a/creusot/tests/should_succeed/binary_search/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/02_derive/proof.json b/creusot/tests/should_succeed/bug/02_derive/proof.json new file mode 100644 index 0000000000..85eea4a9f4 --- /dev/null +++ b/creusot/tests/should_succeed/bug/02_derive/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02_derive__qyi1286730707956131195__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_02_derive__qyi1286730707956131195__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/02_derive/why3session.xml b/creusot/tests/should_succeed/bug/02_derive/why3session.xml deleted file mode 100644 index bcc6f21329..0000000000 --- a/creusot/tests/should_succeed/bug/02_derive/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/02_derive/why3shapes.gz b/creusot/tests/should_succeed/bug/02_derive/why3shapes.gz deleted file mode 100644 index 0dcd4dd9ba..0000000000 Binary files a/creusot/tests/should_succeed/bug/02_derive/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/1030/proof.json b/creusot/tests/should_succeed/bug/1030/proof.json new file mode 100644 index 0000000000..f41262c97c --- /dev/null +++ b/creusot/tests/should_succeed/bug/1030/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_1030__test": { "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.01 } } + } +} diff --git a/creusot/tests/should_succeed/bug/1030/why3session.xml b/creusot/tests/should_succeed/bug/1030/why3session.xml deleted file mode 100644 index c647c00cdb..0000000000 --- a/creusot/tests/should_succeed/bug/1030/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/1030/why3shapes.gz b/creusot/tests/should_succeed/bug/1030/why3shapes.gz deleted file mode 100644 index 3f70c01dfa..0000000000 Binary files a/creusot/tests/should_succeed/bug/1030/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/168/proof.json b/creusot/tests/should_succeed/bug/168/proof.json new file mode 100644 index 0000000000..7c3617f2f0 --- /dev/null +++ b/creusot/tests/should_succeed/bug/168/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_168__max_int": { + "vc_max_int'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/168/why3session.xml b/creusot/tests/should_succeed/bug/168/why3session.xml deleted file mode 100644 index f2249e9727..0000000000 --- a/creusot/tests/should_succeed/bug/168/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/168/why3shapes.gz b/creusot/tests/should_succeed/bug/168/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/168/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/173/proof.json b/creusot/tests/should_succeed/bug/173/proof.json new file mode 100644 index 0000000000..cd3fc1cdc1 --- /dev/null +++ b/creusot/tests/should_succeed/bug/173/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_173__test_233": { + "vc_test_233'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/173/why3session.xml b/creusot/tests/should_succeed/bug/173/why3session.xml deleted file mode 100644 index 3ef2d8c45b..0000000000 --- a/creusot/tests/should_succeed/bug/173/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/173/why3shapes.gz b/creusot/tests/should_succeed/bug/173/why3shapes.gz deleted file mode 100644 index 0b857ea887..0000000000 Binary files a/creusot/tests/should_succeed/bug/173/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/181_ident/proof.json b/creusot/tests/should_succeed/bug/181_ident/proof.json new file mode 100644 index 0000000000..74f6c9480b --- /dev/null +++ b/creusot/tests/should_succeed/bug/181_ident/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_181_ident__max_usize": { + "vc_max_usize'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/181_ident/why3session.xml b/creusot/tests/should_succeed/bug/181_ident/why3session.xml deleted file mode 100644 index 63b8c90bb4..0000000000 --- a/creusot/tests/should_succeed/bug/181_ident/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/181_ident/why3shapes.gz b/creusot/tests/should_succeed/bug/181_ident/why3shapes.gz deleted file mode 100644 index 3e67eefbdd..0000000000 Binary files a/creusot/tests/should_succeed/bug/181_ident/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/195/proof.json b/creusot/tests/should_succeed/bug/195/proof.json new file mode 100644 index 0000000000..31cfb417c7 --- /dev/null +++ b/creusot/tests/should_succeed/bug/195/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_195__example": { + "vc_example'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/195/why3session.xml b/creusot/tests/should_succeed/bug/195/why3session.xml deleted file mode 100644 index f2f2ad24c8..0000000000 --- a/creusot/tests/should_succeed/bug/195/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/195/why3shapes.gz b/creusot/tests/should_succeed/bug/195/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/195/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/206/proof.json b/creusot/tests/should_succeed/bug/206/proof.json new file mode 100644 index 0000000000..6ef997da1a --- /dev/null +++ b/creusot/tests/should_succeed/bug/206/proof.json @@ -0,0 +1,12 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_206__ex": { "vc_ex'0": { "prover": "cvc5@1.0.5", "time": 0.009 } }, + "M_206__u2": { "vc_u2'0": { "prover": "cvc5@1.0.5", "time": 0.011 } } + } +} diff --git a/creusot/tests/should_succeed/bug/206/why3session.xml b/creusot/tests/should_succeed/bug/206/why3session.xml deleted file mode 100644 index 751f7aa0f9..0000000000 --- a/creusot/tests/should_succeed/bug/206/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/206/why3shapes.gz b/creusot/tests/should_succeed/bug/206/why3shapes.gz deleted file mode 100644 index 8a98a64aaf..0000000000 Binary files a/creusot/tests/should_succeed/bug/206/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/217/proof.json b/creusot/tests/should_succeed/bug/217/proof.json new file mode 100644 index 0000000000..219ec2ca02 --- /dev/null +++ b/creusot/tests/should_succeed/bug/217/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_217__ex": { "vc_ex'0": { "prover": "cvc5@1.0.5", "time": 0.02 } } + } +} diff --git a/creusot/tests/should_succeed/bug/217/why3session.xml b/creusot/tests/should_succeed/bug/217/why3session.xml deleted file mode 100644 index 2717577fc0..0000000000 --- a/creusot/tests/should_succeed/bug/217/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/217/why3shapes.gz b/creusot/tests/should_succeed/bug/217/why3shapes.gz deleted file mode 100644 index a0b233ba10..0000000000 Binary files a/creusot/tests/should_succeed/bug/217/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/235/proof.json b/creusot/tests/should_succeed/bug/235/proof.json new file mode 100644 index 0000000000..c005a9617f --- /dev/null +++ b/creusot/tests/should_succeed/bug/235/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_235__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.009 } } + } +} diff --git a/creusot/tests/should_succeed/bug/235/why3session.xml b/creusot/tests/should_succeed/bug/235/why3session.xml deleted file mode 100644 index 5943b085e8..0000000000 --- a/creusot/tests/should_succeed/bug/235/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/235/why3shapes.gz b/creusot/tests/should_succeed/bug/235/why3shapes.gz deleted file mode 100644 index 15feb061af..0000000000 Binary files a/creusot/tests/should_succeed/bug/235/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/256/proof.json b/creusot/tests/should_succeed/bug/256/proof.json new file mode 100644 index 0000000000..fb81976a91 --- /dev/null +++ b/creusot/tests/should_succeed/bug/256/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_256__bug_256": { + "vc_bug_256'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_256__u8_safe": { + "vc_u8_safe'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/256/why3session.xml b/creusot/tests/should_succeed/bug/256/why3session.xml deleted file mode 100644 index 64fd309aeb..0000000000 --- a/creusot/tests/should_succeed/bug/256/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/256/why3shapes.gz b/creusot/tests/should_succeed/bug/256/why3shapes.gz deleted file mode 100644 index 35b8f2c4a6..0000000000 Binary files a/creusot/tests/should_succeed/bug/256/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/258/proof.json b/creusot/tests/should_succeed/bug/258/proof.json new file mode 100644 index 0000000000..4d403575e5 --- /dev/null +++ b/creusot/tests/should_succeed/bug/258/proof.json @@ -0,0 +1,12 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_258__err": { "vc_err'0": { "prover": "cvc5@1.0.5", "time": 0.002 } }, + "M_258__err2": { "vc_err2'0": { "prover": "cvc5@1.0.5", "time": 0 } } + } +} diff --git a/creusot/tests/should_succeed/bug/258/why3session.xml b/creusot/tests/should_succeed/bug/258/why3session.xml deleted file mode 100644 index 01994db865..0000000000 --- a/creusot/tests/should_succeed/bug/258/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/258/why3shapes.gz b/creusot/tests/should_succeed/bug/258/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/258/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/271/proof.json b/creusot/tests/should_succeed/bug/271/proof.json new file mode 100644 index 0000000000..a91147fbe8 --- /dev/null +++ b/creusot/tests/should_succeed/bug/271/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_271__ex": { "vc_ex'0": { "prover": "cvc5@1.0.5", "time": 0.011 } }, + "M_271__ex2": { "vc_ex2'0": { "prover": "cvc5@1.0.5", "time": 0.009 } }, + "M_271__ex3": { "vc_ex3'0": { "prover": "cvc5@1.0.5", "time": 0.009 } } + } +} diff --git a/creusot/tests/should_succeed/bug/271/why3session.xml b/creusot/tests/should_succeed/bug/271/why3session.xml deleted file mode 100644 index 1158ec4d96..0000000000 --- a/creusot/tests/should_succeed/bug/271/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/271/why3shapes.gz b/creusot/tests/should_succeed/bug/271/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/271/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/273/proof.json b/creusot/tests/should_succeed/bug/273/proof.json new file mode 100644 index 0000000000..2b72fe6703 --- /dev/null +++ b/creusot/tests/should_succeed/bug/273/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_273__ex": { + "vc_ex'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/273/why3session.xml b/creusot/tests/should_succeed/bug/273/why3session.xml deleted file mode 100644 index 56d9e2e3fd..0000000000 --- a/creusot/tests/should_succeed/bug/273/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/273/why3shapes.gz b/creusot/tests/should_succeed/bug/273/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/273/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/395/proof.json b/creusot/tests/should_succeed/bug/395/proof.json new file mode 100644 index 0000000000..a8535bce41 --- /dev/null +++ b/creusot/tests/should_succeed/bug/395/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_395__signed_division": { + "vc_signed_division'0": { "prover": "cvc5@1.0.5", "time": 0.018 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/395/why3session.xml b/creusot/tests/should_succeed/bug/395/why3session.xml deleted file mode 100644 index 408baaa3f5..0000000000 --- a/creusot/tests/should_succeed/bug/395/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/395/why3shapes.gz b/creusot/tests/should_succeed/bug/395/why3shapes.gz deleted file mode 100644 index 935ebbd4e5..0000000000 Binary files a/creusot/tests/should_succeed/bug/395/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/463/proof.json b/creusot/tests/should_succeed/bug/463/proof.json new file mode 100644 index 0000000000..9e772b43af --- /dev/null +++ b/creusot/tests/should_succeed/bug/463/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_463__test": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/463/why3session.xml b/creusot/tests/should_succeed/bug/463/why3session.xml deleted file mode 100644 index b68077ed87..0000000000 --- a/creusot/tests/should_succeed/bug/463/why3session.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/463/why3shapes.gz b/creusot/tests/should_succeed/bug/463/why3shapes.gz deleted file mode 100644 index 7c98187325..0000000000 Binary files a/creusot/tests/should_succeed/bug/463/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/464/proof.json b/creusot/tests/should_succeed/bug/464/proof.json new file mode 100644 index 0000000000..62ab0c1700 --- /dev/null +++ b/creusot/tests/should_succeed/bug/464/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_464__qyi16740062280416359814__invariant": { + "vc_invariant'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_464__qyi16740062280416359814__invariant__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/464/why3session.xml b/creusot/tests/should_succeed/bug/464/why3session.xml deleted file mode 100644 index b56cfadcec..0000000000 --- a/creusot/tests/should_succeed/bug/464/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/464/why3shapes.gz b/creusot/tests/should_succeed/bug/464/why3shapes.gz deleted file mode 100644 index b9e78b2323..0000000000 Binary files a/creusot/tests/should_succeed/bug/464/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/486/proof.json b/creusot/tests/should_succeed/bug/486/proof.json new file mode 100644 index 0000000000..5d19c84212 --- /dev/null +++ b/creusot/tests/should_succeed/bug/486/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_486__test": { "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.002 } } + } +} diff --git a/creusot/tests/should_succeed/bug/486/why3session.xml b/creusot/tests/should_succeed/bug/486/why3session.xml deleted file mode 100644 index b365ba0f8b..0000000000 --- a/creusot/tests/should_succeed/bug/486/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/486/why3shapes.gz b/creusot/tests/should_succeed/bug/486/why3shapes.gz deleted file mode 100644 index a65d7a7fd0..0000000000 Binary files a/creusot/tests/should_succeed/bug/486/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/510/proof.json b/creusot/tests/should_succeed/bug/510/proof.json new file mode 100644 index 0000000000..760ec7b4f5 --- /dev/null +++ b/creusot/tests/should_succeed/bug/510/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_510__test_bool": { + "vc_test_bool'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_510__test_char": { + "vc_test_char'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/510/why3session.xml b/creusot/tests/should_succeed/bug/510/why3session.xml deleted file mode 100644 index 2c502d396f..0000000000 --- a/creusot/tests/should_succeed/bug/510/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/510/why3shapes.gz b/creusot/tests/should_succeed/bug/510/why3shapes.gz deleted file mode 100644 index 7ed3ab31ff..0000000000 Binary files a/creusot/tests/should_succeed/bug/510/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/528/proof.json b/creusot/tests/should_succeed/bug/528/proof.json new file mode 100644 index 0000000000..89c793b449 --- /dev/null +++ b/creusot/tests/should_succeed/bug/528/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_528__neq": { "vc_neq'0": { "prover": "cvc5@1.0.5", "time": 0.009 } } + } +} diff --git a/creusot/tests/should_succeed/bug/528/why3session.xml b/creusot/tests/should_succeed/bug/528/why3session.xml deleted file mode 100644 index 9a72ba2dd2..0000000000 --- a/creusot/tests/should_succeed/bug/528/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/528/why3shapes.gz b/creusot/tests/should_succeed/bug/528/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/528/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/545/proof.json b/creusot/tests/should_succeed/bug/545/proof.json new file mode 100644 index 0000000000..4c09e74aad --- /dev/null +++ b/creusot/tests/should_succeed/bug/545/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_545__negative_is_negative": { + "vc_negative_is_negative'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/545/why3session.xml b/creusot/tests/should_succeed/bug/545/why3session.xml deleted file mode 100644 index 3da0b4cb10..0000000000 --- a/creusot/tests/should_succeed/bug/545/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/545/why3shapes.gz b/creusot/tests/should_succeed/bug/545/why3shapes.gz deleted file mode 100644 index aa29824d32..0000000000 Binary files a/creusot/tests/should_succeed/bug/545/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/552/proof.json b/creusot/tests/should_succeed/bug/552/proof.json new file mode 100644 index 0000000000..0521b7f579 --- /dev/null +++ b/creusot/tests/should_succeed/bug/552/proof.json @@ -0,0 +1,20 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_552__qyi3871915588092409085__step": { + "vc_step'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_transition'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_552__qyi3871915588092409085__step__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_552__qyi8357961562374244852__transition": { + "vc_transition'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/552/why3session.xml b/creusot/tests/should_succeed/bug/552/why3session.xml deleted file mode 100644 index 20fcd7fa82..0000000000 --- a/creusot/tests/should_succeed/bug/552/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/552/why3shapes.gz b/creusot/tests/should_succeed/bug/552/why3shapes.gz deleted file mode 100644 index 435fede91b..0000000000 Binary files a/creusot/tests/should_succeed/bug/552/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/564/proof.json b/creusot/tests/should_succeed/bug/564/proof.json new file mode 100644 index 0000000000..ec60e7516f --- /dev/null +++ b/creusot/tests/should_succeed/bug/564/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_564__emits_pure_eq": { + "vc_emits_pure_eq'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_564__emits_pure_implies": { + "vc_emits_pure_implies'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/564/why3session.xml b/creusot/tests/should_succeed/bug/564/why3session.xml deleted file mode 100644 index e3da7a307f..0000000000 --- a/creusot/tests/should_succeed/bug/564/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/564/why3shapes.gz b/creusot/tests/should_succeed/bug/564/why3shapes.gz deleted file mode 100644 index 02c6a744d4..0000000000 Binary files a/creusot/tests/should_succeed/bug/564/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/570/proof.json b/creusot/tests/should_succeed/bug/570/proof.json new file mode 100644 index 0000000000..7080824b15 --- /dev/null +++ b/creusot/tests/should_succeed/bug/570/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_570__test_assign": { + "vc_test_assign'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_570__test_program": { + "vc_test_program'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/570/why3session.xml b/creusot/tests/should_succeed/bug/570/why3session.xml deleted file mode 100644 index 4dddf8060b..0000000000 --- a/creusot/tests/should_succeed/bug/570/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/570/why3shapes.gz b/creusot/tests/should_succeed/bug/570/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/570/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/594/proof.json b/creusot/tests/should_succeed/bug/594/proof.json new file mode 100644 index 0000000000..2b6eff6c62 --- /dev/null +++ b/creusot/tests/should_succeed/bug/594/proof.json @@ -0,0 +1,21 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_594__qyi1704796797730763899__test_method": { + "vc_test_method'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_594__test_closure": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_test_closure'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_594__test_program": { + "vc_test_program'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/594/why3session.xml b/creusot/tests/should_succeed/bug/594/why3session.xml deleted file mode 100644 index 6ed713abb9..0000000000 --- a/creusot/tests/should_succeed/bug/594/why3session.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/594/why3shapes.gz b/creusot/tests/should_succeed/bug/594/why3shapes.gz deleted file mode 100644 index fd8081d94f..0000000000 Binary files a/creusot/tests/should_succeed/bug/594/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/641/proof.json b/creusot/tests/should_succeed/bug/641/proof.json new file mode 100644 index 0000000000..342b679ee8 --- /dev/null +++ b/creusot/tests/should_succeed/bug/641/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_641__test_maintains": { + "vc_test_maintains'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/641/why3session.xml b/creusot/tests/should_succeed/bug/641/why3session.xml deleted file mode 100644 index 571de3d337..0000000000 --- a/creusot/tests/should_succeed/bug/641/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/641/why3shapes.gz b/creusot/tests/should_succeed/bug/641/why3shapes.gz deleted file mode 100644 index 580bae543f..0000000000 Binary files a/creusot/tests/should_succeed/bug/641/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/682/proof.json b/creusot/tests/should_succeed/bug/682/proof.json new file mode 100644 index 0000000000..ffb33b3b7d --- /dev/null +++ b/creusot/tests/should_succeed/bug/682/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_682__add_some": { + "vc_add_some'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_682__foo": { + "vc_add_some'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_foo'0": { "prover": "cvc5@1.0.5", "time": 0.023 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/682/why3session.xml b/creusot/tests/should_succeed/bug/682/why3session.xml deleted file mode 100644 index f21977ed1c..0000000000 --- a/creusot/tests/should_succeed/bug/682/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/682/why3shapes.gz b/creusot/tests/should_succeed/bug/682/why3shapes.gz deleted file mode 100644 index 2821fcbf16..0000000000 Binary files a/creusot/tests/should_succeed/bug/682/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/691/proof.json b/creusot/tests/should_succeed/bug/691/proof.json new file mode 100644 index 0000000000..3820c9101c --- /dev/null +++ b/creusot/tests/should_succeed/bug/691/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_691__example": { + "vc_example'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/691/why3session.xml b/creusot/tests/should_succeed/bug/691/why3session.xml deleted file mode 100644 index 0d424259b2..0000000000 --- a/creusot/tests/should_succeed/bug/691/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/691/why3shapes.gz b/creusot/tests/should_succeed/bug/691/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/691/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/693/proof.json b/creusot/tests/should_succeed/bug/693/proof.json new file mode 100644 index 0000000000..a327816c3f --- /dev/null +++ b/creusot/tests/should_succeed/bug/693/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_693__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 } }, + "M_693__g": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_g'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/693/why3session.xml b/creusot/tests/should_succeed/bug/693/why3session.xml deleted file mode 100644 index 9dbc9e9414..0000000000 --- a/creusot/tests/should_succeed/bug/693/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/693/why3shapes.gz b/creusot/tests/should_succeed/bug/693/why3shapes.gz deleted file mode 100644 index 2384825ce7..0000000000 Binary files a/creusot/tests/should_succeed/bug/693/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/766/proof.json b/creusot/tests/should_succeed/bug/766/proof.json new file mode 100644 index 0000000000..049861bc27 --- /dev/null +++ b/creusot/tests/should_succeed/bug/766/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_766__Trait__goo": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_goo'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/766/why3session.xml b/creusot/tests/should_succeed/bug/766/why3session.xml deleted file mode 100644 index 1072b4c993..0000000000 --- a/creusot/tests/should_succeed/bug/766/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/766/why3shapes.gz b/creusot/tests/should_succeed/bug/766/why3shapes.gz deleted file mode 100644 index 935f312988..0000000000 Binary files a/creusot/tests/should_succeed/bug/766/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/789/proof.json b/creusot/tests/should_succeed/bug/789/proof.json new file mode 100644 index 0000000000..9b3bfe1f1a --- /dev/null +++ b/creusot/tests/should_succeed/bug/789/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_789__meta": { "vc_meta'0": { "prover": "cvc5@1.0.5", "time": 0 } } + } +} diff --git a/creusot/tests/should_succeed/bug/789/why3session.xml b/creusot/tests/should_succeed/bug/789/why3session.xml deleted file mode 100644 index 4015baa0b4..0000000000 --- a/creusot/tests/should_succeed/bug/789/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/789/why3shapes.gz b/creusot/tests/should_succeed/bug/789/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/789/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/791/proof.json b/creusot/tests/should_succeed/bug/791/proof.json new file mode 100644 index 0000000000..1b39cb72e2 --- /dev/null +++ b/creusot/tests/should_succeed/bug/791/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_791__i_love_floats": { + "vc_i_love_floats'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/791/why3session.xml b/creusot/tests/should_succeed/bug/791/why3session.xml deleted file mode 100644 index be7e414bc6..0000000000 --- a/creusot/tests/should_succeed/bug/791/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/791/why3shapes.gz b/creusot/tests/should_succeed/bug/791/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/791/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/874/proof.json b/creusot/tests/should_succeed/bug/874/proof.json new file mode 100644 index 0000000000..34f812e4e0 --- /dev/null +++ b/creusot/tests/should_succeed/bug/874/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_874__can_extend": { + "vc_can_extend'0": { "prover": "cvc5@1.0.5", "time": 0.18 }, + "vc_extend'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_into_vec'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/874/why3session.xml b/creusot/tests/should_succeed/bug/874/why3session.xml deleted file mode 100644 index 25610764e1..0000000000 --- a/creusot/tests/should_succeed/bug/874/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/874/why3shapes.gz b/creusot/tests/should_succeed/bug/874/why3shapes.gz deleted file mode 100644 index fd298a922b..0000000000 Binary files a/creusot/tests/should_succeed/bug/874/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/922/proof.json b/creusot/tests/should_succeed/bug/922/proof.json new file mode 100644 index 0000000000..e5e6275f1c --- /dev/null +++ b/creusot/tests/should_succeed/bug/922/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_922__f1": { "vc_f1'0": { "prover": "cvc5@1.0.5", "time": 0.015 } }, + "M_922__f2": { "vc_f2'0": { "prover": "cvc5@1.0.5", "time": 0.017 } }, + "M_922__f3": { "vc_f3'0": { "prover": "cvc5@1.0.5", "time": 0.007 } }, + "M_922__f4": { "vc_f4'0": { "prover": "cvc5@1.0.5", "time": 0.012 } }, + "M_922__g": { "vc_g'0": { "prover": "cvc5@1.0.5", "time": 0.017 } } + } +} diff --git a/creusot/tests/should_succeed/bug/922/why3session.xml b/creusot/tests/should_succeed/bug/922/why3session.xml deleted file mode 100644 index 8458e1db03..0000000000 --- a/creusot/tests/should_succeed/bug/922/why3session.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/922/why3shapes.gz b/creusot/tests/should_succeed/bug/922/why3shapes.gz deleted file mode 100644 index b140e29b3c..0000000000 Binary files a/creusot/tests/should_succeed/bug/922/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/949/proof.json b/creusot/tests/should_succeed/bug/949/proof.json new file mode 100644 index 0000000000..63455bf017 --- /dev/null +++ b/creusot/tests/should_succeed/bug/949/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_949__main": { + "vc_main'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.005 }, + "vc_ptr_from_box'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_ptr_to_box'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/949/why3session.xml b/creusot/tests/should_succeed/bug/949/why3session.xml deleted file mode 100644 index 5930be4fbe..0000000000 --- a/creusot/tests/should_succeed/bug/949/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/949/why3shapes.gz b/creusot/tests/should_succeed/bug/949/why3shapes.gz deleted file mode 100644 index 3a1327cc5d..0000000000 Binary files a/creusot/tests/should_succeed/bug/949/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/991/proof.json b/creusot/tests/should_succeed/bug/991/proof.json new file mode 100644 index 0000000000..aa08d69eb8 --- /dev/null +++ b/creusot/tests/should_succeed/bug/991/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_991__qyi6256438357931963096__love_and_hope": { + "vc_love_and_hope'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/991/why3session.xml b/creusot/tests/should_succeed/bug/991/why3session.xml deleted file mode 100644 index e1d66d19e3..0000000000 --- a/creusot/tests/should_succeed/bug/991/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/bug/991/why3shapes.gz b/creusot/tests/should_succeed/bug/991/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/bug/991/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/box_borrow_resolve/proof.json b/creusot/tests/should_succeed/bug/box_borrow_resolve/proof.json new file mode 100644 index 0000000000..866fa8ffbb --- /dev/null +++ b/creusot/tests/should_succeed/bug/box_borrow_resolve/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_box_borrow_resolve__borrow_in_box": { + "vc_borrow_in_box'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/box_borrow_resolve/why3session.xml b/creusot/tests/should_succeed/bug/box_borrow_resolve/why3session.xml deleted file mode 100644 index e928d0206a..0000000000 --- a/creusot/tests/should_succeed/bug/box_borrow_resolve/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/box_borrow_resolve/why3shapes.gz b/creusot/tests/should_succeed/bug/box_borrow_resolve/why3shapes.gz deleted file mode 100644 index 29921c08a3..0000000000 Binary files a/creusot/tests/should_succeed/bug/box_borrow_resolve/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/eq_panic/proof.json b/creusot/tests/should_succeed/bug/eq_panic/proof.json new file mode 100644 index 0000000000..2eaf8d2df5 --- /dev/null +++ b/creusot/tests/should_succeed/bug/eq_panic/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_eq_panic__omg": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.003 }, + "vc_omg'0": { "prover": "cvc5@1.0.5", "time": 0 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/eq_panic/why3session.xml b/creusot/tests/should_succeed/bug/eq_panic/why3session.xml deleted file mode 100644 index 323d73b7f6..0000000000 --- a/creusot/tests/should_succeed/bug/eq_panic/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/eq_panic/why3shapes.gz b/creusot/tests/should_succeed/bug/eq_panic/why3shapes.gz deleted file mode 100644 index 0fb256a970..0000000000 Binary files a/creusot/tests/should_succeed/bug/eq_panic/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/final_borrows/proof.json b/creusot/tests/should_succeed/bug/final_borrows/proof.json new file mode 100644 index 0000000000..b6d93d0d4a --- /dev/null +++ b/creusot/tests/should_succeed/bug/final_borrows/proof.json @@ -0,0 +1,97 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_final_borrows__borrow_in_box": { + "vc_borrow_in_box'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_final_borrows__borrow_in_box_tuple_1": { + "vc_borrow_in_box_tuple_1'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_final_borrows__borrow_in_box_tuple_2": { + "vc_borrow_in_box_tuple_2'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_final_borrows__box_deref": { + "vc_box_deref'0": { "prover": "cvc5@1.0.5", "time": 0.001 } + }, + "M_final_borrows__box_reborrow_direct": { + "vc_box_reborrow_direct'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_final_borrows__box_reborrow_in_struct": { + "vc_box_reborrow_in_struct'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_final_borrows__box_reborrow_indirect": { + "vc_box_reborrow_indirect'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_final_borrows__branching": { + "vc_branching'0": { "prover": "cvc5@1.0.5", "time": 0.018 } + }, + "M_final_borrows__disjoint_fields": { + "vc_disjoint_fields'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_final_borrows__index_mut_array": { + "vc_index_mut_array'0": { "prover": "cvc5@1.0.5", "time": 0.028 } + }, + "M_final_borrows__index_mut_slice": { + "vc_index_mut_slice'0": { "prover": "cvc5@1.0.5", "time": 0.035 } + }, + "M_final_borrows__inspect_no_gen": { + "vc_inspect_no_gen'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_final_borrows__nested_fields": { + "vc_nested_fields'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_final_borrows__not_final_borrow_works": { + "vc_not_final_borrow_works'0": { + "prover": "cvc5@1.0.5", + "time": 0.005 + }, + "vc_set_7'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_final_borrows__place_mention_no_gen": { + "vc_place_mention_no_gen'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_final_borrows__really_nested_fields": { + "vc_really_nested_fields'0": { "prover": "cvc5@1.0.5", "time": 0.025 } + }, + "M_final_borrows__reborrow_field": { + "vc_reborrow_field'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_final_borrows__reborrow_id": { + "vc_reborrow_id'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_final_borrows__reborrow_in_box": { + "vc_reborrow_in_box'0": { "prover": "cvc5@1.0.5", "time": 0.018 } + }, + "M_final_borrows__select": { + "vc_select'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_final_borrows__select_field": { + "vc_select_field'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_final_borrows__set_7": { + "vc_set_7'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_final_borrows__shallow_borrow_no_gen": { + "vc_shallow_borrow_no_gen'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_final_borrows__shared_borrow_no_gen": { + "vc_shared_borrow_no_gen'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_final_borrows__unnesting_non_extensional": { + "vc_unnesting_non_extensional'0": { + "prover": "cvc5@1.0.5", + "time": 0.015 + } + }, + "M_final_borrows__write_inner_borrow": { + "vc_write_inner_borrow'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/final_borrows/why3session.xml b/creusot/tests/should_succeed/bug/final_borrows/why3session.xml deleted file mode 100644 index 184ee3d2d7..0000000000 --- a/creusot/tests/should_succeed/bug/final_borrows/why3session.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/final_borrows/why3shapes.gz b/creusot/tests/should_succeed/bug/final_borrows/why3shapes.gz deleted file mode 100644 index d985948513..0000000000 Binary files a/creusot/tests/should_succeed/bug/final_borrows/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/minus_assoc/proof.json b/creusot/tests/should_succeed/bug/minus_assoc/proof.json new file mode 100644 index 0000000000..c789eaa436 --- /dev/null +++ b/creusot/tests/should_succeed/bug/minus_assoc/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_minus_assoc__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/minus_assoc/why3session.xml b/creusot/tests/should_succeed/bug/minus_assoc/why3session.xml deleted file mode 100644 index b955aff1d0..0000000000 --- a/creusot/tests/should_succeed/bug/minus_assoc/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/minus_assoc/why3shapes.gz b/creusot/tests/should_succeed/bug/minus_assoc/why3shapes.gz deleted file mode 100644 index dbbe75318b..0000000000 Binary files a/creusot/tests/should_succeed/bug/minus_assoc/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/nonreturning/proof.json b/creusot/tests/should_succeed/bug/nonreturning/proof.json new file mode 100644 index 0000000000..e5c95b7963 --- /dev/null +++ b/creusot/tests/should_succeed/bug/nonreturning/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_nonreturning__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_nonreturning__g": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_g'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/nonreturning/why3session.xml b/creusot/tests/should_succeed/bug/nonreturning/why3session.xml deleted file mode 100644 index a356add664..0000000000 --- a/creusot/tests/should_succeed/bug/nonreturning/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/nonreturning/why3shapes.gz b/creusot/tests/should_succeed/bug/nonreturning/why3shapes.gz deleted file mode 100644 index 8a6ffba997..0000000000 Binary files a/creusot/tests/should_succeed/bug/nonreturning/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/pure_neq/proof.json b/creusot/tests/should_succeed/bug/pure_neq/proof.json new file mode 100644 index 0000000000..887760ccdc --- /dev/null +++ b/creusot/tests/should_succeed/bug/pure_neq/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_pure_neq__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.009 } } + } +} diff --git a/creusot/tests/should_succeed/bug/pure_neq/why3session.xml b/creusot/tests/should_succeed/bug/pure_neq/why3session.xml deleted file mode 100644 index 1cc7a3258e..0000000000 --- a/creusot/tests/should_succeed/bug/pure_neq/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/pure_neq/why3shapes.gz b/creusot/tests/should_succeed/bug/pure_neq/why3shapes.gz deleted file mode 100644 index 64704b617a..0000000000 Binary files a/creusot/tests/should_succeed/bug/pure_neq/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/two_phase/proof.json b/creusot/tests/should_succeed/bug/two_phase/proof.json new file mode 100644 index 0000000000..f9b814369d --- /dev/null +++ b/creusot/tests/should_succeed/bug/two_phase/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_two_phase__test": { + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/two_phase/why3session.xml b/creusot/tests/should_succeed/bug/two_phase/why3session.xml deleted file mode 100644 index 29335bb5e3..0000000000 --- a/creusot/tests/should_succeed/bug/two_phase/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/two_phase/why3shapes.gz b/creusot/tests/should_succeed/bug/two_phase/why3shapes.gz deleted file mode 100644 index e2ba279646..0000000000 Binary files a/creusot/tests/should_succeed/bug/two_phase/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/bug/vcgen/proof.json b/creusot/tests/should_succeed/bug/vcgen/proof.json new file mode 100644 index 0000000000..ef4f17da8a --- /dev/null +++ b/creusot/tests/should_succeed/bug/vcgen/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_vcgen__set_max": { + "vc_set_max'0": { "prover": "alt-ergo@2.6.0", "time": 0.02 } + } + } +} diff --git a/creusot/tests/should_succeed/bug/vcgen/why3session.xml b/creusot/tests/should_succeed/bug/vcgen/why3session.xml deleted file mode 100644 index 29f9f2d9d4..0000000000 --- a/creusot/tests/should_succeed/bug/vcgen/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/bug/vcgen/why3shapes.gz b/creusot/tests/should_succeed/bug/vcgen/why3shapes.gz deleted file mode 100644 index a7c60fe0f9..0000000000 Binary files a/creusot/tests/should_succeed/bug/vcgen/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/cell/01/proof.json b/creusot/tests/should_succeed/cell/01/proof.json new file mode 100644 index 0000000000..035dd88e23 --- /dev/null +++ b/creusot/tests/should_succeed/cell/01/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_01__adds_two": { + "vc_adds_two'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_set'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/cell/01/why3session.xml b/creusot/tests/should_succeed/cell/01/why3session.xml deleted file mode 100644 index 48b96b12e9..0000000000 --- a/creusot/tests/should_succeed/cell/01/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/cell/01/why3shapes.gz b/creusot/tests/should_succeed/cell/01/why3shapes.gz deleted file mode 100644 index 99b9bee660..0000000000 Binary files a/creusot/tests/should_succeed/cell/01/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/cell/02/proof.json b/creusot/tests/should_succeed/cell/02/proof.json new file mode 100644 index 0000000000..974e346846 --- /dev/null +++ b/creusot/tests/should_succeed/cell/02/proof.json @@ -0,0 +1,54 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02__fib": { "vc_fib'0": { "prover": "cvc5@1.0.5", "time": 0.01 } }, + "M_02__fib_memo": { + "vc_fib_memo'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.014 }, + { "prover": "cvc5@1.0.5", "time": 0.014 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.014 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.011 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.013 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.093 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.009 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "alt-ergo@2.6.0", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.017 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.015 }, + { "prover": "cvc5@1.0.5", "time": 0.009 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.014 } + ] + }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_set'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_02__lemma_fib_bound": { + "vc_lemma_fib_bound'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + } + } +} diff --git a/creusot/tests/should_succeed/cell/02/why3session.xml b/creusot/tests/should_succeed/cell/02/why3session.xml deleted file mode 100644 index a5081d987f..0000000000 --- a/creusot/tests/should_succeed/cell/02/why3session.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/cell/02/why3shapes.gz b/creusot/tests/should_succeed/cell/02/why3shapes.gz deleted file mode 100644 index 9413f1e741..0000000000 Binary files a/creusot/tests/should_succeed/cell/02/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/checked_ops/proof.json b/creusot/tests/should_succeed/checked_ops/proof.json new file mode 100644 index 0000000000..effc638d66 --- /dev/null +++ b/creusot/tests/should_succeed/checked_ops/proof.json @@ -0,0 +1,266 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_checked_ops__test_i8_add_example": { + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_overflowing_add'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_saturating_add'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_test_i8_add_example'0": { "prover": "cvc5@1.0.5", "time": 0.115 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_checked_ops__test_i8_add_overflow_neg": { + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_overflowing_add'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_saturating_add'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_test_i8_add_overflow_neg'0": { + "prover": "cvc5@1.0.5", + "time": 0.057 + }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_checked_ops__test_i8_add_overflow_pos": { + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_overflowing_add'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_saturating_add'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_test_i8_add_overflow_pos'0": { + "prover": "cvc5@1.0.5", + "time": 0.068 + }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_checked_ops__test_i8_div_example": { + "vc_checked_div'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_overflowing_div'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_saturating_div'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_test_i8_div_example'0": { "prover": "cvc5@1.0.5", "time": 0.064 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_wrapping_div'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_checked_ops__test_i8_div_no_overflow": { + "vc_checked_div'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_overflowing_div'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_saturating_div'0": { "prover": "cvc5@1.0.5", "time": 0.005 }, + "vc_test_i8_div_no_overflow'0": { + "prover": "cvc5@1.0.5", + "time": 0.054 + }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_wrapping_div'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_checked_ops__test_i8_div_zero": { + "vc_checked_div'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_test_i8_div_zero'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_checked_ops__test_i8_mul_example": { + "vc_checked_mul'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_overflowing_mul'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_saturating_mul'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_test_i8_mul_example'0": { "prover": "cvc5@1.0.5", "time": 0.121 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_wrapping_mul'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_checked_ops__test_i8_mul_zero": { + "vc_checked_mul'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_overflowing_mul'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_saturating_mul'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_test_i8_mul_zero'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_wrapping_mul'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_checked_ops__test_i8_overflowing_add": { + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_overflowing_add'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_test_i8_overflowing_add'0": { + "prover": "cvc5@1.0.5", + "time": 0.039 + }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_checked_ops__test_i8_overflowing_mul": { + "vc_checked_mul'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_overflowing_mul'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_test_i8_overflowing_mul'0": { + "prover": "cvc5@1.0.5", + "time": 0.038 + }, + "vc_wrapping_mul'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_checked_ops__test_i8_overflowing_sub": { + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_overflowing_sub'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_test_i8_overflowing_sub'0": { + "prover": "cvc5@1.0.5", + "time": 0.028 + }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_checked_ops__test_i8_sub_example": { + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_overflowing_sub'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_saturating_sub'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_test_i8_sub_example'0": { "prover": "cvc5@1.0.5", "time": 0.096 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_checked_ops__test_i8_sub_overflow_neg": { + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_overflowing_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_saturating_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_test_i8_sub_overflow_neg'0": { + "prover": "cvc5@1.0.5", + "time": 0.087 + }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_checked_ops__test_i8_sub_overflow_pos": { + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_overflowing_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_saturating_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_test_i8_sub_overflow_pos'0": { + "prover": "cvc5@1.0.5", + "time": 0.068 + }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_checked_ops__test_i8_wrapping_add": { + "vc_test_i8_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.05 }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_checked_ops__test_i8_wrapping_sub": { + "vc_test_i8_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.042 }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_checked_ops__test_u8_add_example": { + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_overflowing_add'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_saturating_add'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_test_u8_add_example'0": { "prover": "cvc5@1.0.5", "time": 0.046 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_checked_ops__test_u8_add_overflow": { + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_overflowing_add'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_saturating_add'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_test_u8_add_overflow'0": { "prover": "cvc5@1.0.5", "time": 0.056 }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.001 } + }, + "M_checked_ops__test_u8_div_example": { + "vc_checked_div'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_overflowing_div'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_saturating_div'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_test_u8_div_example'0": { "prover": "cvc5@1.0.5", "time": 0.048 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_wrapping_div'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_checked_ops__test_u8_div_no_overflow": { + "vc_checked_div'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_overflowing_div'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_saturating_div'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_test_u8_div_no_overflow'0": { + "prover": "cvc5@1.0.5", + "time": 0.029 + }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_wrapping_div'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_checked_ops__test_u8_div_zero": { + "vc_checked_div'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_test_u8_div_zero'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_checked_ops__test_u8_mul_example": { + "vc_checked_mul'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_overflowing_mul'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_saturating_mul'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_test_u8_mul_example'0": { "prover": "cvc5@1.0.5", "time": 0.069 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_wrapping_mul'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_checked_ops__test_u8_mul_zero": { + "vc_checked_mul'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_overflowing_mul'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_saturating_mul'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_test_u8_mul_zero'0": { "prover": "cvc5@1.0.5", "time": 0.037 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_wrapping_mul'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_checked_ops__test_u8_overflowing_add": { + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_overflowing_add'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_test_u8_overflowing_add'0": { + "prover": "cvc5@1.0.5", + "time": 0.037 + }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_checked_ops__test_u8_overflowing_mul": { + "vc_checked_mul'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_overflowing_mul'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_test_u8_overflowing_mul'0": { + "prover": "cvc5@1.0.5", + "time": 0.033 + }, + "vc_wrapping_mul'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_checked_ops__test_u8_overflowing_sub": { + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_overflowing_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_test_u8_overflowing_sub'0": { + "prover": "cvc5@1.0.5", + "time": 0.032 + }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_checked_ops__test_u8_sub_example": { + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_overflowing_sub'0": { "prover": "cvc5@1.0.5", "time": 0.032 }, + "vc_saturating_sub'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_test_u8_sub_example'0": { "prover": "cvc5@1.0.5", "time": 0.074 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.032 } + }, + "M_checked_ops__test_u8_sub_overflow": { + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_overflowing_sub'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_saturating_sub'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_test_u8_sub_overflow'0": { "prover": "cvc5@1.0.5", "time": 0.074 }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_checked_ops__test_u8_wrapping_add": { + "vc_test_u8_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.061 }, + "vc_wrapping_add'0": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_checked_ops__test_u8_wrapping_sub": { + "vc_test_u8_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.03 }, + "vc_wrapping_sub'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + } + } +} diff --git a/creusot/tests/should_succeed/checked_ops/why3session.xml b/creusot/tests/should_succeed/checked_ops/why3session.xml deleted file mode 100644 index 3ed404b96b..0000000000 --- a/creusot/tests/should_succeed/checked_ops/why3session.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/checked_ops/why3shapes.gz b/creusot/tests/should_succeed/checked_ops/why3shapes.gz deleted file mode 100644 index da02581068..0000000000 Binary files a/creusot/tests/should_succeed/checked_ops/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/clones/01/proof.json b/creusot/tests/should_succeed/clones/01/proof.json new file mode 100644 index 0000000000..4f433ff285 --- /dev/null +++ b/creusot/tests/should_succeed/clones/01/proof.json @@ -0,0 +1,19 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_01__func1": { "vc_func1'0": { "prover": "cvc5@1.0.5", "time": 0.01 } }, + "M_01__func2": { + "vc_func1'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_func2'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_01__func3": { + "vc_func2'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_func3'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/clones/01/why3session.xml b/creusot/tests/should_succeed/clones/01/why3session.xml deleted file mode 100644 index d50199914c..0000000000 --- a/creusot/tests/should_succeed/clones/01/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/clones/01/why3shapes.gz b/creusot/tests/should_succeed/clones/01/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/clones/01/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/clones/02/proof.json b/creusot/tests/should_succeed/clones/02/proof.json new file mode 100644 index 0000000000..1f4a5eda56 --- /dev/null +++ b/creusot/tests/should_succeed/clones/02/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02__program": { + "vc_program'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/clones/02/why3session.xml b/creusot/tests/should_succeed/clones/02/why3session.xml deleted file mode 100644 index 7a9914752f..0000000000 --- a/creusot/tests/should_succeed/clones/02/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/clones/02/why3shapes.gz b/creusot/tests/should_succeed/clones/02/why3shapes.gz deleted file mode 100644 index 137177d2cb..0000000000 Binary files a/creusot/tests/should_succeed/clones/02/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/clones/03/proof.json b/creusot/tests/should_succeed/clones/03/proof.json new file mode 100644 index 0000000000..276420455e --- /dev/null +++ b/creusot/tests/should_succeed/clones/03/proof.json @@ -0,0 +1,18 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_03__prog": { "vc_prog'0": { "prover": "cvc5@1.0.5", "time": 0.01 } }, + "M_03__prog2": { + "vc_prog'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_prog2'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_03__prog3": { + "vc_prog3'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/clones/03/why3session.xml b/creusot/tests/should_succeed/clones/03/why3session.xml deleted file mode 100644 index c37eba58a7..0000000000 --- a/creusot/tests/should_succeed/clones/03/why3session.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/clones/03/why3shapes.gz b/creusot/tests/should_succeed/clones/03/why3shapes.gz deleted file mode 100644 index c8f6f1fb49..0000000000 Binary files a/creusot/tests/should_succeed/clones/03/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/clones/04/proof.json b/creusot/tests/should_succeed/clones/04/proof.json new file mode 100644 index 0000000000..616c3affdc --- /dev/null +++ b/creusot/tests/should_succeed/clones/04/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_04__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.003 } } + } +} diff --git a/creusot/tests/should_succeed/clones/04/why3session.xml b/creusot/tests/should_succeed/clones/04/why3session.xml deleted file mode 100644 index 35b394a2c3..0000000000 --- a/creusot/tests/should_succeed/clones/04/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/clones/04/why3shapes.gz b/creusot/tests/should_succeed/clones/04/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/clones/04/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/closures/02_nested/proof.json b/creusot/tests/should_succeed/closures/02_nested/proof.json new file mode 100644 index 0000000000..720681de3a --- /dev/null +++ b/creusot/tests/should_succeed/closures/02_nested/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02_nested__nested_closure": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_closure0'2": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_nested_closure'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/closures/02_nested/why3session.xml b/creusot/tests/should_succeed/closures/02_nested/why3session.xml deleted file mode 100644 index fb435a58e3..0000000000 --- a/creusot/tests/should_succeed/closures/02_nested/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/closures/02_nested/why3shapes.gz b/creusot/tests/should_succeed/closures/02_nested/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/closures/02_nested/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/closures/06_fn_specs/proof.json b/creusot/tests/should_succeed/closures/06_fn_specs/proof.json new file mode 100644 index 0000000000..42def53ea7 --- /dev/null +++ b/creusot/tests/should_succeed/closures/06_fn_specs/proof.json @@ -0,0 +1,31 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_06_fn_specs__caller": { + "vc_caller'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_fn_once_user'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_06_fn_specs__fn_once_user": { + "vc_call_once'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_fn_once_user'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_06_fn_specs__weaken_2_std": { + "vc_weaken_2_std'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_weaken_3_std'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_06_fn_specs__weaken_3_std": { + "vc_call_once'0": { "prover": "cvc5@1.0.5", "time": 0.003 }, + "vc_weaken_3_std'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_06_fn_specs__weaken_std": { + "vc_weaken_2_std'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_weaken_std'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/closures/06_fn_specs/why3session.xml b/creusot/tests/should_succeed/closures/06_fn_specs/why3session.xml deleted file mode 100644 index 5a7e0690a3..0000000000 --- a/creusot/tests/should_succeed/closures/06_fn_specs/why3session.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/closures/06_fn_specs/why3shapes.gz b/creusot/tests/should_succeed/closures/06_fn_specs/why3shapes.gz deleted file mode 100644 index d2a2a5b82b..0000000000 Binary files a/creusot/tests/should_succeed/closures/06_fn_specs/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/closures/07_mutable_capture/proof.json b/creusot/tests/should_succeed/closures/07_mutable_capture/proof.json new file mode 100644 index 0000000000..2c30114cce --- /dev/null +++ b/creusot/tests/should_succeed/closures/07_mutable_capture/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_07_mutable_capture__test_fnmut": { + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_test_fnmut'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + } + } +} diff --git a/creusot/tests/should_succeed/closures/07_mutable_capture/why3session.xml b/creusot/tests/should_succeed/closures/07_mutable_capture/why3session.xml deleted file mode 100644 index d0063ee730..0000000000 --- a/creusot/tests/should_succeed/closures/07_mutable_capture/why3session.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/closures/07_mutable_capture/why3shapes.gz b/creusot/tests/should_succeed/closures/07_mutable_capture/why3shapes.gz deleted file mode 100644 index 4561528457..0000000000 Binary files a/creusot/tests/should_succeed/closures/07_mutable_capture/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/closures/08_multiple_calls/proof.json b/creusot/tests/should_succeed/closures/08_multiple_calls/proof.json new file mode 100644 index 0000000000..bd8c77e2e1 --- /dev/null +++ b/creusot/tests/should_succeed/closures/08_multiple_calls/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_08_multiple_calls__multi_use": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_multi_use'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_uses_fn'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/closures/08_multiple_calls/why3session.xml b/creusot/tests/should_succeed/closures/08_multiple_calls/why3session.xml deleted file mode 100644 index 08385e9b1c..0000000000 --- a/creusot/tests/should_succeed/closures/08_multiple_calls/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/closures/08_multiple_calls/why3shapes.gz b/creusot/tests/should_succeed/closures/08_multiple_calls/why3shapes.gz deleted file mode 100644 index c408d076a9..0000000000 Binary files a/creusot/tests/should_succeed/closures/08_multiple_calls/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/closures/09_fnonce_resolve/proof.json b/creusot/tests/should_succeed/closures/09_fnonce_resolve/proof.json new file mode 100644 index 0000000000..7261e38d71 --- /dev/null +++ b/creusot/tests/should_succeed/closures/09_fnonce_resolve/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_09_fnonce_resolve__f": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0 } + } + } +} diff --git a/creusot/tests/should_succeed/closures/09_fnonce_resolve/why3session.xml b/creusot/tests/should_succeed/closures/09_fnonce_resolve/why3session.xml deleted file mode 100644 index 0f98a459c7..0000000000 --- a/creusot/tests/should_succeed/closures/09_fnonce_resolve/why3session.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/closures/09_fnonce_resolve/why3shapes.gz b/creusot/tests/should_succeed/closures/09_fnonce_resolve/why3shapes.gz deleted file mode 100644 index 2a806edcab..0000000000 Binary files a/creusot/tests/should_succeed/closures/09_fnonce_resolve/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/closures/10_tyinv/proof.json b/creusot/tests/should_succeed/closures/10_tyinv/proof.json new file mode 100644 index 0000000000..7cd5f06b8d --- /dev/null +++ b/creusot/tests/should_succeed/closures/10_tyinv/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_10_tyinv__f": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/closures/10_tyinv/why3session.xml b/creusot/tests/should_succeed/closures/10_tyinv/why3session.xml deleted file mode 100644 index 252096eccc..0000000000 --- a/creusot/tests/should_succeed/closures/10_tyinv/why3session.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/closures/10_tyinv/why3shapes.gz b/creusot/tests/should_succeed/closures/10_tyinv/why3shapes.gz deleted file mode 100644 index e45961fda2..0000000000 Binary files a/creusot/tests/should_succeed/closures/10_tyinv/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/proof.json b/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/proof.json new file mode 100644 index 0000000000..8daa21afb8 --- /dev/null +++ b/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/proof.json @@ -0,0 +1,23 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_11_proof_assert_in_closure__captures_and_call": { + "vc_calls_closure'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_captures_and_call'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_11_proof_assert_in_closure__immutable_capture": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_immutable_capture'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_11_proof_assert_in_closure__mutable_capture": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_mutable_capture'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/why3session.xml b/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/why3session.xml deleted file mode 100644 index 96ccc50383..0000000000 --- a/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/why3session.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/why3shapes.gz b/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/why3shapes.gz deleted file mode 100644 index 9308e9f6c7..0000000000 Binary files a/creusot/tests/should_succeed/closures/11_proof_assert_in_closure/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/closures/12_borrow_instances/proof.json b/creusot/tests/should_succeed/closures/12_borrow_instances/proof.json new file mode 100644 index 0000000000..528fae6e53 --- /dev/null +++ b/creusot/tests/should_succeed/closures/12_borrow_instances/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_12_borrow_instances__test1": { + "vc_test1'0": { "prover": "cvc5@1.0.5", "time": 0.003 } + }, + "M_12_borrow_instances__test2": { + "vc_test2'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + } + } +} diff --git a/creusot/tests/should_succeed/closures/12_borrow_instances/why3session.xml b/creusot/tests/should_succeed/closures/12_borrow_instances/why3session.xml deleted file mode 100644 index ef1b77ee05..0000000000 --- a/creusot/tests/should_succeed/closures/12_borrow_instances/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/closures/12_borrow_instances/why3shapes.gz b/creusot/tests/should_succeed/closures/12_borrow_instances/why3shapes.gz deleted file mode 100644 index ef1eebec5c..0000000000 Binary files a/creusot/tests/should_succeed/closures/12_borrow_instances/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/constrained_types/proof.json b/creusot/tests/should_succeed/constrained_types/proof.json new file mode 100644 index 0000000000..8e2b6a3e9e --- /dev/null +++ b/creusot/tests/should_succeed/constrained_types/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_constrained_types__uses_concrete_instance": { + "vc_lt'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_uses_concrete_instance'0": { + "prover": "cvc5@1.0.5", + "time": 0.007 + } + } + } +} diff --git a/creusot/tests/should_succeed/constrained_types/why3session.xml b/creusot/tests/should_succeed/constrained_types/why3session.xml deleted file mode 100644 index bf06988e89..0000000000 --- a/creusot/tests/should_succeed/constrained_types/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/constrained_types/why3shapes.gz b/creusot/tests/should_succeed/constrained_types/why3shapes.gz deleted file mode 100644 index bf8464ecee..0000000000 Binary files a/creusot/tests/should_succeed/constrained_types/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/drop_pair/proof.json b/creusot/tests/should_succeed/drop_pair/proof.json new file mode 100644 index 0000000000..f0edc79d9e --- /dev/null +++ b/creusot/tests/should_succeed/drop_pair/proof.json @@ -0,0 +1,19 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_drop_pair__drop": { + "vc_drop'0": { "prover": "cvc5@1.0.5", "time": 0.001 } + }, + "M_drop_pair__drop_pair": { + "vc_drop_pair'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_drop_pair__drop_pair2": { + "vc_drop_pair2'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + } + } +} diff --git a/creusot/tests/should_succeed/drop_pair/why3session.xml b/creusot/tests/should_succeed/drop_pair/why3session.xml deleted file mode 100644 index 5ee43475d4..0000000000 --- a/creusot/tests/should_succeed/drop_pair/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/drop_pair/why3shapes.gz b/creusot/tests/should_succeed/drop_pair/why3shapes.gz deleted file mode 100644 index 66afd032d3..0000000000 Binary files a/creusot/tests/should_succeed/drop_pair/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/duration/proof.json b/creusot/tests/should_succeed/duration/proof.json new file mode 100644 index 0000000000..5cb1db2d6d --- /dev/null +++ b/creusot/tests/should_succeed/duration/proof.json @@ -0,0 +1,34 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_duration__test_duration": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_as_micros'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_as_millis'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_as_nanos'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_as_secs'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_checked_div'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_checked_mul'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_from_micros'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_from_millis'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_from_nanos'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_from_secs'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_is_some'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_is_zero'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_sub'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_subsec_micros'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_subsec_millis'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_subsec_nanos'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_test_duration'0": { "prover": "cvc5@1.0.5", "time": 0.142 } + } + } +} diff --git a/creusot/tests/should_succeed/duration/why3session.xml b/creusot/tests/should_succeed/duration/why3session.xml deleted file mode 100644 index 95d0c43240..0000000000 --- a/creusot/tests/should_succeed/duration/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/duration/why3shapes.gz b/creusot/tests/should_succeed/duration/why3shapes.gz deleted file mode 100644 index def8723000..0000000000 Binary files a/creusot/tests/should_succeed/duration/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/filter_positive/proof.json b/creusot/tests/should_succeed/filter_positive/proof.json new file mode 100644 index 0000000000..ae07476de6 --- /dev/null +++ b/creusot/tests/should_succeed/filter_positive/proof.json @@ -0,0 +1,32 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_filter_positive__lemma_num_of_pos_increasing": { + "vc_lemma_num_of_pos_increasing'0": { + "prover": "cvc5@1.0.5", + "time": 0.018 + } + }, + "M_filter_positive__lemma_num_of_pos_strictly_increasing": { + "vc_lemma_num_of_pos_strictly_increasing'0": { + "prover": "cvc5@1.0.5", + "time": 0.012 + } + }, + "M_filter_positive__m": { + "vc_from_elem'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_m'0": { "prover": "z3@4.12.4", "time": 0.019 } + }, + "M_filter_positive__num_of_pos": { + "vc_num_of_pos'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/filter_positive/why3session.xml b/creusot/tests/should_succeed/filter_positive/why3session.xml deleted file mode 100644 index b4d4ff651e..0000000000 --- a/creusot/tests/should_succeed/filter_positive/why3session.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/filter_positive/why3shapes.gz b/creusot/tests/should_succeed/filter_positive/why3shapes.gz deleted file mode 100644 index 39e34fd5f1..0000000000 Binary files a/creusot/tests/should_succeed/filter_positive/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/ghost/assert_in_ghost/proof.json b/creusot/tests/should_succeed/ghost/assert_in_ghost/proof.json new file mode 100644 index 0000000000..f0683aa112 --- /dev/null +++ b/creusot/tests/should_succeed/ghost/assert_in_ghost/proof.json @@ -0,0 +1,29 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_assert_in_ghost__ghost_capture": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_ghost_capture'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_assert_in_ghost__ghost_mutate": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_ghost_mutate'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_new'1": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_assert_in_ghost__ghost_only": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_ghost_only'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.005 } + } + } +} diff --git a/creusot/tests/should_succeed/ghost/assert_in_ghost/why3session.xml b/creusot/tests/should_succeed/ghost/assert_in_ghost/why3session.xml deleted file mode 100644 index e4fceec135..0000000000 --- a/creusot/tests/should_succeed/ghost/assert_in_ghost/why3session.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/ghost/assert_in_ghost/why3shapes.gz b/creusot/tests/should_succeed/ghost/assert_in_ghost/why3shapes.gz deleted file mode 100644 index b3be12f836..0000000000 Binary files a/creusot/tests/should_succeed/ghost/assert_in_ghost/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/ghost/ghost_map/proof.json b/creusot/tests/should_succeed/ghost/ghost_map/proof.json new file mode 100644 index 0000000000..1a5ebd856f --- /dev/null +++ b/creusot/tests/should_succeed/ghost/ghost_map/proof.json @@ -0,0 +1,25 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_ghost_map__ghost_map": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_contains_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_get_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_get_mut_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_ghost_map'0": { "prover": "cvc5@1.0.5", "time": 0.502 }, + "vc_insert_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.003 }, + "vc_len_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_new'1": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_remove_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/ghost/ghost_map/why3session.xml b/creusot/tests/should_succeed/ghost/ghost_map/why3session.xml deleted file mode 100644 index 0d1c83d176..0000000000 --- a/creusot/tests/should_succeed/ghost/ghost_map/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/ghost/ghost_map/why3shapes.gz b/creusot/tests/should_succeed/ghost/ghost_map/why3shapes.gz deleted file mode 100644 index 1c3d87bd87..0000000000 Binary files a/creusot/tests/should_succeed/ghost/ghost_map/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/ghost/ghost_set/proof.json b/creusot/tests/should_succeed/ghost/ghost_set/proof.json new file mode 100644 index 0000000000..4f7d5b7014 --- /dev/null +++ b/creusot/tests/should_succeed/ghost/ghost_set/proof.json @@ -0,0 +1,22 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_ghost_set__ghost_map": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_contains_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_ghost_map'0": { "prover": "cvc5@1.0.5", "time": 0.07 }, + "vc_insert_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_len_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_new'1": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_remove_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + } + } +} diff --git a/creusot/tests/should_succeed/ghost/ghost_set/why3session.xml b/creusot/tests/should_succeed/ghost/ghost_set/why3session.xml deleted file mode 100644 index cbca4290d7..0000000000 --- a/creusot/tests/should_succeed/ghost/ghost_set/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/ghost/ghost_set/why3shapes.gz b/creusot/tests/should_succeed/ghost/ghost_set/why3shapes.gz deleted file mode 100644 index ee3c4c000c..0000000000 Binary files a/creusot/tests/should_succeed/ghost/ghost_set/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/ghost/ghost_vec/proof.json b/creusot/tests/should_succeed/ghost/ghost_vec/proof.json new file mode 100644 index 0000000000..ee53413c11 --- /dev/null +++ b/creusot/tests/should_succeed/ghost/ghost_vec/proof.json @@ -0,0 +1,29 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_ghost_vec__ghost_vec": { + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.004 }, + "vc_deref'1": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_get_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_get_mut_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_ghost_vec'0": { "prover": "cvc4@1.8", "time": 0.513 }, + "vc_len_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_new'1": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_new'2": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_pop_back_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_pop_front_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_push_back_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_push_front_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.0009 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/ghost/ghost_vec/why3session.xml b/creusot/tests/should_succeed/ghost/ghost_vec/why3session.xml deleted file mode 100644 index f9ae7ff181..0000000000 --- a/creusot/tests/should_succeed/ghost/ghost_vec/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/ghost/ghost_vec/why3shapes.gz b/creusot/tests/should_succeed/ghost/ghost_vec/why3shapes.gz deleted file mode 100644 index 8e88337fd9..0000000000 Binary files a/creusot/tests/should_succeed/ghost/ghost_vec/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/ghost/typing/proof.json b/creusot/tests/should_succeed/ghost/typing/proof.json new file mode 100644 index 0000000000..415f3d72cc --- /dev/null +++ b/creusot/tests/should_succeed/ghost/typing/proof.json @@ -0,0 +1,26 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_typing__copy_enter_ghost": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_copy_enter_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_typing__ghost_enter_ghost": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_closure3'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_ghost_enter_ghost'0": { "prover": "cvc5@1.0.5", "time": 0.023 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_new'1": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/ghost/typing/why3session.xml b/creusot/tests/should_succeed/ghost/typing/why3session.xml deleted file mode 100644 index 728d737caa..0000000000 --- a/creusot/tests/should_succeed/ghost/typing/why3session.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/ghost/typing/why3shapes.gz b/creusot/tests/should_succeed/ghost/typing/why3shapes.gz deleted file mode 100644 index 8ec97dfeb8..0000000000 Binary files a/creusot/tests/should_succeed/ghost/typing/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/ghost_ptr_token/proof.json b/creusot/tests/should_succeed/ghost_ptr_token/proof.json new file mode 100644 index 0000000000..0ce6c605b1 --- /dev/null +++ b/creusot/tests/should_succeed/ghost_ptr_token/proof.json @@ -0,0 +1,23 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_ghost_ptr_token__test": { + "vc_borrow_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.005 }, + "vc_promoted0__test'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_promoted1__test'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_promoted2__test'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_promoted3__test'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_ptr_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_ptr_from_box'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_take_mut'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.029 } + } + } +} diff --git a/creusot/tests/should_succeed/ghost_ptr_token/why3session.xml b/creusot/tests/should_succeed/ghost_ptr_token/why3session.xml deleted file mode 100644 index be4711fb71..0000000000 --- a/creusot/tests/should_succeed/ghost_ptr_token/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/ghost_ptr_token/why3shapes.gz b/creusot/tests/should_succeed/ghost_ptr_token/why3shapes.gz deleted file mode 100644 index 87ea041739..0000000000 Binary files a/creusot/tests/should_succeed/ghost_ptr_token/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/hashmap/proof.json b/creusot/tests/should_succeed/hashmap/proof.json new file mode 100644 index 0000000000..354395870b --- /dev/null +++ b/creusot/tests/should_succeed/hashmap/proof.json @@ -0,0 +1,172 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_hashmap__main": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_main'0": { "prover": "cvc5@1.0.5", "time": 0.105 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_hashmap__qyi11479661188956547742__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_hashmap__qyi7664122466964245986__add": { + "vc_add'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.081 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.104 }, + { "prover": "cvc5@1.0.5", "time": 0.08 }, + { "prover": "cvc5@1.0.5", "time": 0.002 }, + { "prover": "cvc5@1.0.5", "time": 0.137 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.082 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.101 }, + { "prover": "cvc5@1.0.5", "time": 0.144 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.127 }, + { "prover": "cvc5@1.0.5", "time": 0.149 }, + { "prover": "cvc5@1.0.5", "time": 0.148 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.242 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.206 }, + { "prover": "cvc5@1.0.5", "time": 0.136 }, + { "prover": "alt-ergo@2.6.0", "time": 0.833 }, + { "prover": "z3@4.12.4", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.198 }, + { "prover": "cvc5@1.0.5", "time": 0.246 }, + { "prover": "cvc5@1.0.5", "time": 0.229 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.15 }, + { "prover": "cvc5@1.0.5", "time": 0.161 }, + { "prover": "cvc5@1.0.5", "time": 0.064 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.236 }, + { "prover": "cvc5@1.0.5", "time": 0.181 }, + { "prover": "cvc5@1.0.5", "time": 0.195 }, + { "prover": "cvc5@1.0.5", "time": 0.16 }, + { "prover": "cvc5@1.0.5", "time": 0.26 }, + { "prover": "cvc5@1.0.5", "time": 0.259 }, + { "prover": "cvc5@1.0.5", "time": 0.209 }, + { "prover": "cvc5@1.0.5", "time": 0.224 }, + { "prover": "cvc5@1.0.5", "time": 0.118 }, + { "prover": "cvc5@1.0.5", "time": 0.247 }, + { "prover": "cvc5@1.0.5", "time": 0.208 }, + { "prover": "cvc5@1.0.5", "time": 0.193 }, + { "prover": "cvc5@1.0.5", "time": 0.181 }, + { "prover": "cvc5@1.0.5", "time": 0.142 }, + { "prover": "cvc4@1.8", "time": 1.4 }, + { "prover": "z3@4.12.4", "time": 0.18 }, + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.018 } + ] + }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_hash'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_hashmap__qyi7664122466964245986__get": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_get'0": { "prover": "alt-ergo@2.6.0", "time": 0.409 }, + "vc_hash'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_hashmap__qyi7664122466964245986__new": { + "vc_from_elem'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.069 } + }, + "M_hashmap__qyi7664122466964245986__resize": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_replace'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_resize'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.151 }, + { "prover": "cvc5@1.0.5", "time": 0.111 }, + { "prover": "cvc5@1.0.5", "time": 0.158 }, + { "prover": "cvc5@1.0.5", "time": 0.059 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.201 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.065 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.166 }, + { "prover": "cvc5@1.0.5", "time": 0.229 }, + { "prover": "cvc5@1.0.5", "time": 0.158 }, + { "prover": "cvc5@1.0.5", "time": 0.194 }, + { "prover": "cvc4@1.8", "time": 0.093 }, + { "prover": "cvc5@1.0.5", "time": 0.174 }, + { "prover": "cvc5@1.0.5", "time": 0.174 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.174 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.177 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.142 }, + { "prover": "cvc5@1.0.5", "time": 0.182 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.179 }, + { "prover": "cvc5@1.0.5", "time": 0.154 }, + { "prover": "cvc5@1.0.5", "time": 0.216 }, + { "prover": "cvc5@1.0.5", "time": 0.207 }, + { "prover": "cvc5@1.0.5", "time": 0.223 }, + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.221 }, + { "prover": "cvc5@1.0.5", "time": 0.201 }, + { "prover": "cvc5@1.0.5", "time": 0.188 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.18 }, + { "prover": "cvc4@1.8", "time": 0.11 }, + { "prover": "cvc4@1.8", "time": 0.105 }, + { "prover": "cvc5@1.0.5", "time": 0.329 }, + { "prover": "cvc5@1.0.5", "time": 0.186 }, + { "prover": "z3@4.12.4", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.156 }, + { "prover": "cvc5@1.0.5", "time": 0.14 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "z3@4.12.4", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.171 }, + { "prover": "cvc5@1.0.5", "time": 0.15 }, + { "prover": "cvc5@1.0.5", "time": 0.112 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.028 } + ] + }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_hashmap__qyi9060063638777358169__hash": { + "vc_hash'0": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_hashmap__qyi9060063638777358169__hash__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/hashmap/why3session.xml b/creusot/tests/should_succeed/hashmap/why3session.xml deleted file mode 100644 index 37da032436..0000000000 --- a/creusot/tests/should_succeed/hashmap/why3session.xml +++ /dev/null @@ -1,383 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/hashmap/why3shapes.gz b/creusot/tests/should_succeed/hashmap/why3shapes.gz deleted file mode 100644 index 253d1a8751..0000000000 Binary files a/creusot/tests/should_succeed/hashmap/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/heapsort_generic/proof.json b/creusot/tests/should_succeed/heapsort_generic/proof.json new file mode 100644 index 0000000000..a66bb8a421 --- /dev/null +++ b/creusot/tests/should_succeed/heapsort_generic/proof.json @@ -0,0 +1,158 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_heapsort_generic__heap_frag_max": { + "vc_heap_frag_max'0": { "prover": "cvc5@1.0.5", "time": 0.029 } + }, + "M_heapsort_generic__heap_sort": { + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_heap_sort'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.134 }, + { "prover": "cvc5@1.0.5", "time": 0.08 }, + { "prover": "cvc5@1.0.5", "time": 0.093 }, + { "prover": "cvc5@1.0.5", "time": 0.168 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.179 }, + { "prover": "cvc5@1.0.5", "time": 0.334 }, + { "prover": "cvc5@1.0.5", "time": 0.091 }, + { "prover": "cvc5@1.0.5", "time": 0.242 }, + { "prover": "z3@4.12.4", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.189 }, + { "prover": "cvc5@1.0.5", "time": 0.192 }, + { "prover": "cvc5@1.0.5", "time": 0.272 }, + { "prover": "cvc5@1.0.5", "time": 0.083 }, + { "prover": "cvc5@1.0.5", "time": 0.082 }, + { "prover": "cvc5@1.0.5", "time": 0.248 }, + { "prover": "cvc5@1.0.5", "time": 0.271 }, + { "prover": "cvc5@1.0.5", "time": 0.283 }, + { "prover": "z3@4.12.4", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "z3@4.12.4", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.086 }, + { "prover": "cvc5@1.0.5", "time": 0.14 }, + { "prover": "cvc5@1.0.5", "time": 0.139 }, + { "prover": "cvc5@1.0.5", "time": 0.115 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.266 }, + { "prover": "cvc5@1.0.5", "time": 0.09 }, + { "prover": "cvc5@1.0.5", "time": 0.177 }, + { "prover": "cvc5@1.0.5", "time": 0.199 }, + { "prover": "cvc5@1.0.5", "time": 0.186 }, + { "prover": "cvc5@1.0.5", "time": 0.222 }, + { "prover": "cvc5@1.0.5", "time": 0.259 }, + { "prover": "cvc5@1.0.5", "time": 0.268 }, + { "prover": "cvc5@1.0.5", "time": 0.3 }, + { "prover": "cvc5@1.0.5", "time": 0.312 }, + { "prover": "cvc4@1.8", "time": 0.529 }, + { "prover": "cvc5@1.0.5", "time": 0.135 }, + { "prover": "cvc4@1.8", "time": 0.183 }, + { "prover": "cvc4@1.8", "time": 0.284 }, + { "prover": "cvc5@1.0.5", "time": 0.15 }, + { "prover": "cvc5@1.0.5", "time": 0.415 }, + { "prover": "cvc5@1.0.5", "time": 0.141 }, + { "prover": "cvc4@1.8", "time": 0.228 }, + { "prover": "cvc4@1.8", "time": 0.192 }, + { "prover": "cvc4@1.8", "time": 0.346 }, + { "prover": "cvc5@1.0.5", "time": 0.171 }, + { "prover": "cvc4@1.8", "time": 0.733 }, + { "prover": "cvc5@1.0.5", "time": 0.93 } + ] + }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_sift_down'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.032 } + }, + "M_heapsort_generic__sift_down": { + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_le'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_lt'0": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_sift_down'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.07 }, + { "prover": "cvc5@1.0.5", "time": 0.059 }, + { "prover": "cvc5@1.0.5", "time": 0.118 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.087 }, + { "prover": "cvc5@1.0.5", "time": 0.172 }, + { "prover": "cvc5@1.0.5", "time": 0.211 }, + { "prover": "cvc5@1.0.5", "time": 0.21 }, + { "prover": "cvc5@1.0.5", "time": 0.248 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.11 }, + { "prover": "cvc5@1.0.5", "time": 0.208 }, + { "prover": "cvc5@1.0.5", "time": 0.271 }, + { "prover": "cvc5@1.0.5", "time": 0.176 }, + { "prover": "cvc5@1.0.5", "time": 0.275 }, + { "prover": "cvc5@1.0.5", "time": 0.235 }, + { "prover": "cvc5@1.0.5", "time": 0.092 }, + { "prover": "cvc5@1.0.5", "time": 0.285 }, + { "prover": "cvc5@1.0.5", "time": 0.21 }, + { "prover": "cvc5@1.0.5", "time": 0.198 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "cvc5@1.0.5", "time": 0.296 }, + { "prover": "cvc5@1.0.5", "time": 0.07 }, + { "prover": "cvc5@1.0.5", "time": 0.075 }, + { "prover": "cvc5@1.0.5", "time": 0.175 }, + { "prover": "cvc5@1.0.5", "time": 0.065 }, + { "prover": "cvc4@1.8", "time": 0.284 }, + { "prover": "cvc5@1.0.5", "time": 0.07 }, + { "prover": "cvc5@1.0.5", "time": 0.312 }, + { "prover": "cvc5@1.0.5", "time": 0.305 }, + { "prover": "cvc5@1.0.5", "time": 0.2 }, + { "prover": "cvc5@1.0.5", "time": 0.108 }, + { "prover": "cvc5@1.0.5", "time": 0.279 }, + { "prover": "cvc5@1.0.5", "time": 0.194 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "cvc5@1.0.5", "time": 0.274 }, + { "prover": "cvc5@1.0.5", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.219 }, + { "prover": "cvc5@1.0.5", "time": 0.24 }, + { "prover": "cvc5@1.0.5", "time": 0.177 }, + { "prover": "cvc5@1.0.5", "time": 0.184 }, + { "prover": "cvc5@1.0.5", "time": 0.268 }, + { "prover": "cvc5@1.0.5", "time": 0.247 }, + { "prover": "cvc5@1.0.5", "time": 0.22 }, + { "prover": "cvc5@1.0.5", "time": 0.113 }, + { "prover": "cvc5@1.0.5", "time": 0.254 }, + { "prover": "cvc5@1.0.5", "time": 0.348 }, + { "prover": "cvc5@1.0.5", "time": 0.32 }, + { "prover": "cvc4@1.8", "time": 0.111 }, + { "prover": "cvc4@1.8", "time": 1.4 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.208 }, + { "prover": "cvc4@1.8", "time": 0.663 } + ] + }, + { "prover": "cvc4@1.8", "time": 1.1 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc4@1.8", "time": 0.683 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc4@1.8", "time": 0.415 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.184 }, + { "prover": "cvc5@1.0.5", "time": 0.201 } + ] + }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.031 } + } + } +} diff --git a/creusot/tests/should_succeed/heapsort_generic/why3session.xml b/creusot/tests/should_succeed/heapsort_generic/why3session.xml deleted file mode 100644 index 8f81dbcab6..0000000000 --- a/creusot/tests/should_succeed/heapsort_generic/why3session.xml +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/heapsort_generic/why3shapes.gz b/creusot/tests/should_succeed/heapsort_generic/why3shapes.gz deleted file mode 100644 index f5d022adfd..0000000000 Binary files a/creusot/tests/should_succeed/heapsort_generic/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/hillel/proof.json b/creusot/tests/should_succeed/hillel/proof.json new file mode 100644 index 0000000000..834dbf61f6 --- /dev/null +++ b/creusot/tests/should_succeed/hillel/proof.json @@ -0,0 +1,100 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_hillel__fulcrum": { + "vc_abs_diff'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_fulcrum'0": { "prover": "z3@4.12.4", "time": 1.2 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_into_iter'1": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_v_Some'1": { "prover": "cvc5@1.0.5", "time": 0.024 } + }, + "M_hillel__insert_unique": { + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_insert_unique'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.074 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.233 }, + { "prover": "cvc5@1.0.5", "time": 0.099 }, + { "prover": "cvc5@1.0.5", "time": 0.117 }, + { "prover": "cvc5@1.0.5", "time": 0.187 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.048 }, + { "prover": "cvc5@1.0.5", "time": 0.129 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.171 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.192 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc4@1.8", "time": 0.116 }, + { "prover": "cvc5@1.0.5", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.085 }, + { "prover": "cvc4@1.8", "time": 0.109 }, + { "prover": "z3@4.12.4", "time": 0.18 }, + { "prover": "cvc4@1.8", "time": 0.078 }, + { "prover": "cvc5@1.0.5", "time": 0.128 } + ] + }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_iter'0": { "prover": "cvc5@1.0.5", "time": 0.005 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_hillel__left_pad": { + "vc_insert'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_left_pad'0": { "prover": "cvc4@1.8", "time": 0.06 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_hillel__right_pad": { + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_right_pad'0": { "prover": "cvc4@1.8", "time": 0.056 } + }, + "M_hillel__score": { + "vc_score'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_hillel__subset_push": { + "vc_subset_push'0": { "prover": "cvc5@1.0.5", "time": 0.041 } + }, + "M_hillel__sum_range": { + "vc_sum_range'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_hillel__sum_range_split": { + "vc_sum_range_split'0": { "prover": "cvc5@1.0.5", "time": 0.027 } + }, + "M_hillel__unique": { + "vc_insert_unique'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_unique'0": { "prover": "z3@4.12.4", "time": 0.646 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/hillel/why3session.xml b/creusot/tests/should_succeed/hillel/why3session.xml deleted file mode 100644 index d62bc526f7..0000000000 --- a/creusot/tests/should_succeed/hillel/why3session.xml +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/hillel/why3shapes.gz b/creusot/tests/should_succeed/hillel/why3shapes.gz deleted file mode 100644 index 33656edb72..0000000000 Binary files a/creusot/tests/should_succeed/hillel/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/immut/proof.json b/creusot/tests/should_succeed/immut/proof.json new file mode 100644 index 0000000000..b5d9736c3c --- /dev/null +++ b/creusot/tests/should_succeed/immut/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_immut__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.009 } } + } +} diff --git a/creusot/tests/should_succeed/immut/why3session.xml b/creusot/tests/should_succeed/immut/why3session.xml deleted file mode 100644 index ef3b70b0e4..0000000000 --- a/creusot/tests/should_succeed/immut/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/immut/why3shapes.gz b/creusot/tests/should_succeed/immut/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/immut/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/index_range/proof.json b/creusot/tests/should_succeed/index_range/proof.json new file mode 100644 index 0000000000..f0e9dd1156 --- /dev/null +++ b/creusot/tests/should_succeed/index_range/proof.json @@ -0,0 +1,75 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_index_range__create_arr": { + "vc_create_arr'0": { "prover": "cvc5@1.0.5", "time": 0.144 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_index_range__test_range": { + "vc_create_arr'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_len'1": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_test_range'0": { "prover": "z3@4.12.4", "time": 0.037 } + }, + "M_index_range__test_range_from": { + "vc_create_arr'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_len'1": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_test_range_from'0": { "prover": "cvc4@1.8", "time": 0.174 } + }, + "M_index_range__test_range_full": { + "vc_create_arr'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_len'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_test_range_full'0": { "prover": "cvc5@1.0.5", "time": 0.188 } + }, + "M_index_range__test_range_to": { + "vc_create_arr'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.004 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_len'1": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_test_range_to'0": { "prover": "cvc5@1.0.5", "time": 0.237 } + }, + "M_index_range__test_range_to_inclusive": { + "vc_create_arr'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_len'1": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_test_range_to_inclusive'0": { + "prover": "cvc5@1.0.5", + "time": 0.173 + } + } + } +} diff --git a/creusot/tests/should_succeed/index_range/why3session.xml b/creusot/tests/should_succeed/index_range/why3session.xml deleted file mode 100644 index b85549b4d9..0000000000 --- a/creusot/tests/should_succeed/index_range/why3session.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/index_range/why3shapes.gz b/creusot/tests/should_succeed/index_range/why3shapes.gz deleted file mode 100644 index 5536c8a193..0000000000 Binary files a/creusot/tests/should_succeed/index_range/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/inferred_invariants/proof.json b/creusot/tests/should_succeed/inferred_invariants/proof.json new file mode 100644 index 0000000000..e96cc4253e --- /dev/null +++ b/creusot/tests/should_succeed/inferred_invariants/proof.json @@ -0,0 +1,38 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inferred_invariants__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_inferred_invariants__nested_borrows": { + "vc_nested_borrows'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_replace'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_inferred_invariants__nested_loops": { + "vc_nested_loops'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_inferred_invariants__simple": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_simple'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_inferred_invariants__swapper": { + "vc_swapper'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_inferred_invariants__temp_move": { + "vc_temp_move'0": { "prover": "cvc5@1.0.5", "time": 0.001 } + }, + "M_inferred_invariants__tuple": { + "vc_tuple'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_inferred_invariants__y": { + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_y'0": { "prover": "cvc5@1.0.5", "time": 0.268 } + } + } +} diff --git a/creusot/tests/should_succeed/inferred_invariants/why3session.xml b/creusot/tests/should_succeed/inferred_invariants/why3session.xml deleted file mode 100644 index 276e2fec33..0000000000 --- a/creusot/tests/should_succeed/inferred_invariants/why3session.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/inferred_invariants/why3shapes.gz b/creusot/tests/should_succeed/inferred_invariants/why3shapes.gz deleted file mode 100644 index b07e632f6f..0000000000 Binary files a/creusot/tests/should_succeed/inferred_invariants/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/inplace_list_reversal/proof.json b/creusot/tests/should_succeed/inplace_list_reversal/proof.json new file mode 100644 index 0000000000..c399b4631b --- /dev/null +++ b/creusot/tests/should_succeed/inplace_list_reversal/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inplace_list_reversal__rev": { + "vc_replace'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_rev'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/inplace_list_reversal/why3session.xml b/creusot/tests/should_succeed/inplace_list_reversal/why3session.xml deleted file mode 100644 index d19edc0e49..0000000000 --- a/creusot/tests/should_succeed/inplace_list_reversal/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/inplace_list_reversal/why3shapes.gz b/creusot/tests/should_succeed/inplace_list_reversal/why3shapes.gz deleted file mode 100644 index 9f4c39c1d6..0000000000 Binary files a/creusot/tests/should_succeed/inplace_list_reversal/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/insertion_sort/proof.json b/creusot/tests/should_succeed/insertion_sort/proof.json new file mode 100644 index 0000000000..c0ea8e36ab --- /dev/null +++ b/creusot/tests/should_succeed/insertion_sort/proof.json @@ -0,0 +1,73 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_insertion_sort__insertion_sort": { + "vc_insertion_sort'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.048 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.072 }, + { "prover": "cvc5@1.0.5", "time": 0.062 }, + { "prover": "cvc5@1.0.5", "time": 0.087 }, + { "prover": "cvc5@1.0.5", "time": 0.097 }, + { "prover": "cvc5@1.0.5", "time": 0.087 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.07 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.145 }, + { "prover": "cvc5@1.0.5", "time": 0.108 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.101 }, + { "prover": "cvc5@1.0.5", "time": 0.183 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.101 }, + { "prover": "cvc5@1.0.5", "time": 0.095 }, + { "prover": "cvc5@1.0.5", "time": 0.106 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.077 }, + { "prover": "cvc5@1.0.5", "time": 0.093 }, + { "prover": "cvc5@1.0.5", "time": 0.065 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.21 }, + { "prover": "cvc5@1.0.5", "time": 0.102 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.107 }, + { "prover": "cvc5@1.0.5", "time": 0.097 }, + { "prover": "cvc5@1.0.5", "time": 0.102 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "cvc5@1.0.5", "time": 0.114 }, + { "prover": "cvc4@1.8", "time": 0.226 }, + { "prover": "cvc5@1.0.5", "time": 0.132 }, + { "prover": "cvc5@1.0.5", "time": 0.055 } + ] + }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.024 } + } + } +} diff --git a/creusot/tests/should_succeed/insertion_sort/why3session.xml b/creusot/tests/should_succeed/insertion_sort/why3session.xml deleted file mode 100644 index 2d6fe93227..0000000000 --- a/creusot/tests/should_succeed/insertion_sort/why3session.xml +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/insertion_sort/why3shapes.gz b/creusot/tests/should_succeed/insertion_sort/why3shapes.gz deleted file mode 100644 index e8cf922ab0..0000000000 Binary files a/creusot/tests/should_succeed/insertion_sort/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/instant/proof.json b/creusot/tests/should_succeed/instant/proof.json new file mode 100644 index 0000000000..51bf0d3df4 --- /dev/null +++ b/creusot/tests/should_succeed/instant/proof.json @@ -0,0 +1,37 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_instant__test_instant": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_checked_add'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_checked_duration_since'0": { + "prover": "cvc5@1.0.5", + "time": 0.014 + }, + "vc_checked_sub'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_duration_since'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_elapsed'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_eq'1": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_from_secs'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_ge'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_gt'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_is_some'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_now'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_saturating_duration_since'0": { + "prover": "cvc5@1.0.5", + "time": 0.009 + }, + "vc_sub'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_sub'1": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_test_instant'0": { "prover": "cvc5@1.0.5", "time": 0.09 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + } + } +} diff --git a/creusot/tests/should_succeed/instant/why3session.xml b/creusot/tests/should_succeed/instant/why3session.xml deleted file mode 100644 index 8d531227d9..0000000000 --- a/creusot/tests/should_succeed/instant/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/instant/why3shapes.gz b/creusot/tests/should_succeed/instant/why3shapes.gz deleted file mode 100644 index 0446c7e244..0000000000 Binary files a/creusot/tests/should_succeed/instant/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/invariant_moves/proof.json b/creusot/tests/should_succeed/invariant_moves/proof.json new file mode 100644 index 0000000000..67975ebb86 --- /dev/null +++ b/creusot/tests/should_succeed/invariant_moves/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_invariant_moves__test_invariant_move": { + "vc_pop'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_test_invariant_move'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/invariant_moves/why3session.xml b/creusot/tests/should_succeed/invariant_moves/why3session.xml deleted file mode 100644 index c70ef8eeb6..0000000000 --- a/creusot/tests/should_succeed/invariant_moves/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/invariant_moves/why3shapes.gz b/creusot/tests/should_succeed/invariant_moves/why3shapes.gz deleted file mode 100644 index dde3d49ed5..0000000000 Binary files a/creusot/tests/should_succeed/invariant_moves/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/ite_normalize/proof.json b/creusot/tests/should_succeed/ite_normalize/proof.json new file mode 100644 index 0000000000..8f2f50345b --- /dev/null +++ b/creusot/tests/should_succeed/ite_normalize/proof.json @@ -0,0 +1,67 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_ite_normalize__qyi12210208226808281580__from": { + "vc_from'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_variable'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_ite_normalize__qyi12210208226808281580__from__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_ite_normalize__qyi15119799284333837974__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_clone'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_clone'2": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_v_IfThenElse'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_v_Var'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_ite_normalize__qyi15119799284333837974__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_ite_normalize__qyi17570407315987535457__ite": { + "vc_ite'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_ite_normalize__qyi17570407315987535457__normalize": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_normalize'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_transpose'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_v_IfThenElse'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_ite_normalize__qyi17570407315987535457__simplify": { + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_simplify'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_simplify_helper'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_ite_normalize__qyi17570407315987535457__simplify_helper": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_get'0": { "prover": "cvc5@1.0.5", "time": 0.005 }, + "vc_insert'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_simplify_helper'0": { "prover": "cvc5@1.0.5", "time": 0.155 }, + "vc_v_IfThenElse'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_v_Var'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_ite_normalize__qyi17570407315987535457__transpose": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_transpose'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_v_IfThenElse'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_ite_normalize__qyi17570407315987535457__variable": { + "vc_variable'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_ite_normalize__qyi1874907776010341903__from": { + "vc_from'0": { "prover": "cvc5@1.0.5", "time": 0.005 } + }, + "M_ite_normalize__qyi1874907776010341903__from__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_ite_normalize__qyi5188891200283381660__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/ite_normalize/why3session.xml b/creusot/tests/should_succeed/ite_normalize/why3session.xml deleted file mode 100644 index 01e4bbe517..0000000000 --- a/creusot/tests/should_succeed/ite_normalize/why3session.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/ite_normalize/why3shapes.gz b/creusot/tests/should_succeed/ite_normalize/why3shapes.gz deleted file mode 100644 index ed4d54cbef..0000000000 Binary files a/creusot/tests/should_succeed/ite_normalize/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/01_range/proof.json b/creusot/tests/should_succeed/iterators/01_range/proof.json new file mode 100644 index 0000000000..5624b9a0d3 --- /dev/null +++ b/creusot/tests/should_succeed/iterators/01_range/proof.json @@ -0,0 +1,37 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_01_range__qyi16572111325853806140__next": { + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.03 } + }, + "M_01_range__qyi16572111325853806140__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_01_range__qyi16572111325853806140__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_01_range__qyi16572111325853806140__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_01_range__qyi16572111325853806140__produces_trans": { + "vc_produces_trans'0": { "prover": "cvc5@1.0.5", "time": 0.03 } + }, + "M_01_range__qyi16572111325853806140__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_01_range__qyi2180657552132013455__into_iter": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_01_range__sum_range": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_sum_range'0": { "prover": "cvc5@1.0.5", "time": 0.055 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/01_range/why3session.xml b/creusot/tests/should_succeed/iterators/01_range/why3session.xml deleted file mode 100644 index 388cf5e18d..0000000000 --- a/creusot/tests/should_succeed/iterators/01_range/why3session.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/01_range/why3shapes.gz b/creusot/tests/should_succeed/iterators/01_range/why3shapes.gz deleted file mode 100644 index 71731c2abc..0000000000 Binary files a/creusot/tests/should_succeed/iterators/01_range/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/02_iter_mut/proof.json b/creusot/tests/should_succeed/iterators/02_iter_mut/proof.json new file mode 100644 index 0000000000..a027c8385f --- /dev/null +++ b/creusot/tests/should_succeed/iterators/02_iter_mut/proof.json @@ -0,0 +1,43 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02_iter_mut__all_zero": { + "vc_all_zero'0": { "prover": "z3@4.12.4", "time": 0.774 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_iter_mut'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_02_iter_mut__iter_mut": { + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_iter_mut'0": { "prover": "cvc5@1.0.5", "time": 0.048 } + }, + "M_02_iter_mut__qyi4305820612590367313__next": { + "vc_next'0": { "prover": "alt-ergo@2.6.0", "time": 0.248 }, + "vc_take_first_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_02_iter_mut__qyi4305820612590367313__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_02_iter_mut__qyi4305820612590367313__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.033 } + }, + "M_02_iter_mut__qyi4305820612590367313__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_02_iter_mut__qyi4305820612590367313__produces_trans": { + "vc_produces_trans'0": { "prover": "cvc4@1.8", "time": 0.085 } + }, + "M_02_iter_mut__qyi4305820612590367313__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_02_iter_mut__qyi7060081090368749043__into_iter": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/02_iter_mut/why3session.xml b/creusot/tests/should_succeed/iterators/02_iter_mut/why3session.xml deleted file mode 100644 index 4e6502ebb0..0000000000 --- a/creusot/tests/should_succeed/iterators/02_iter_mut/why3session.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/02_iter_mut/why3shapes.gz b/creusot/tests/should_succeed/iterators/02_iter_mut/why3shapes.gz deleted file mode 100644 index ac58188b8b..0000000000 Binary files a/creusot/tests/should_succeed/iterators/02_iter_mut/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/03_std_iterators/proof.json b/creusot/tests/should_succeed/iterators/03_std_iterators/proof.json new file mode 100644 index 0000000000..fb2dc5ce6e --- /dev/null +++ b/creusot/tests/should_succeed/iterators/03_std_iterators/proof.json @@ -0,0 +1,125 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_03_std_iterators__all_zero": { + "vc_all_zero'0": { "prover": "cvc4@1.8", "time": 0.201 }, + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_iter_mut'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_03_std_iterators__counter": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.028 }, + "vc_collect'0": { "prover": "cvc5@1.0.5", "time": 0.031 }, + "vc_counter'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.062 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.196 }, + { "prover": "cvc4@1.8", "time": 0.114 }, + { "prover": "alt-ergo@2.6.0", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc4@1.8", "time": 0.182 }, + { "prover": "z3@4.12.4", "time": 0.085 }, + { "prover": "cvc5@1.0.5", "time": 0.318 } + ] + }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_iter'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_map_inv'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_03_std_iterators__enumerate_range": { + "vc_enumerate'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_enumerate_range'0": { "prover": "z3@4.12.4", "time": 1.3 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_03_std_iterators__my_reverse": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_my_reverse'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.062 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.118 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.095 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.062 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.075 }, + { "prover": "cvc5@1.0.5", "time": 0.077 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.07 }, + { "prover": "cvc5@1.0.5", "time": 0.104 }, + { "prover": "cvc5@1.0.5", "time": 0.144 }, + { "prover": "cvc5@1.0.5", "time": 0.164 }, + { "prover": "cvc5@1.0.5", "time": 0.154 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "z3@4.12.4", "time": 0.184 }, + { "prover": "alt-ergo@2.6.0", "time": 0.308 }, + { "prover": "alt-ergo@2.6.0", "time": 0.29 }, + { "prover": "cvc4@1.8", "time": 0.27 }, + { "prover": "cvc4@1.8", "time": 0.295 }, + { "prover": "cvc5@1.0.5", "time": 0.182 }, + { "prover": "cvc4@1.8", "time": 0.269 }, + { "prover": "cvc5@1.0.5", "time": 0.164 }, + { "prover": "cvc4@1.8", "time": 0.341 }, + { "prover": "cvc5@1.0.5", "time": 0.093 }, + { "prover": "cvc5@1.0.5", "time": 0.111 }, + { "prover": "cvc5@1.0.5", "time": 0.074 }, + { "prover": "cvc5@1.0.5", "time": 0.122 }, + { "prover": "cvc5@1.0.5", "time": 0.223 }, + { "prover": "cvc4@1.8", "time": 0.416 }, + { "prover": "cvc4@1.8", "time": 1.5 }, + { "prover": "cvc4@1.8", "time": 1.1 }, + { "prover": "cvc5@1.0.5", "time": 0.069 } + ] + }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_zip'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_03_std_iterators__skip_take": { + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_skip'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_skip_take'0": { "prover": "cvc5@1.0.5", "time": 0.065 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0.02 } + }, + "M_03_std_iterators__slice_iter": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_iter'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_slice_iter'0": { "prover": "cvc4@1.8", "time": 0.077 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_03_std_iterators__sum_range": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_sum_range'0": { "prover": "cvc5@1.0.5", "time": 0.076 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_03_std_iterators__vec_iter": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_vec_iter'0": { "prover": "cvc4@1.8", "time": 0.079 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/03_std_iterators/why3session.xml b/creusot/tests/should_succeed/iterators/03_std_iterators/why3session.xml deleted file mode 100644 index 0b1ae587af..0000000000 --- a/creusot/tests/should_succeed/iterators/03_std_iterators/why3session.xml +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/03_std_iterators/why3shapes.gz b/creusot/tests/should_succeed/iterators/03_std_iterators/why3shapes.gz deleted file mode 100644 index e9e18e4a98..0000000000 Binary files a/creusot/tests/should_succeed/iterators/03_std_iterators/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/04_skip.coma b/creusot/tests/should_succeed/iterators/04_skip.coma index 635d71006f..debbe968e6 100644 --- a/creusot/tests/should_succeed/iterators/04_skip.coma +++ b/creusot/tests/should_succeed/iterators/04_skip.coma @@ -1,8 +1,8 @@ -module M_04_skip__qyi17349041008065389927__produces_refl [#"04_skip.rs" 51 4 51 26] (* as common::Iterator> *) - let%span s04_skip0 = "04_skip.rs" 49 15 49 24 - let%span s04_skip1 = "04_skip.rs" 50 14 50 45 - let%span s04_skip2 = "04_skip.rs" 47 4 47 10 - let%span s04_skip3 = "04_skip.rs" 38 12 43 74 +module M_04_skip__qyi17349041008065389927__produces_refl [#"04_skip.rs" 52 4 52 26] (* as common::Iterator> *) + let%span s04_skip0 = "04_skip.rs" 50 15 50 24 + let%span s04_skip1 = "04_skip.rs" 51 14 51 45 + let%span s04_skip2 = "04_skip.rs" 48 4 48 10 + let%span s04_skip3 = "04_skip.rs" 39 12 44 74 let%span scommon4 = "common.rs" 14 15 14 24 let%span scommon5 = "common.rs" 15 14 15 45 let%span scommon6 = "common.rs" 19 15 19 21 @@ -84,7 +84,7 @@ module M_04_skip__qyi17349041008065389927__produces_refl [#"04_skip.rs" 51 4 51 predicate resolve'0 (_1 : t_Item'0) - predicate produces'0 [#"04_skip.rs" 36 4 36 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = + predicate produces'0 [#"04_skip.rs" 37 4 37 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = [%#s04_skip3] visited = (Seq.empty : Seq.seq t_Item'0) /\ self = o \/ UIntSize.to_int o.t_Skip__n'0 = 0 /\ Seq.length visited > 0 @@ -95,20 +95,20 @@ module M_04_skip__qyi17349041008065389927__produces_refl [#"04_skip.rs" 51 4 51 constant self : t_Skip'0 - function produces_refl'0 [#"04_skip.rs" 51 4 51 26] (self : t_Skip'0) : () + function produces_refl'0 [#"04_skip.rs" 52 4 52 26] (self : t_Skip'0) : () goal vc_produces_refl'0 : ([%#s04_skip0] inv'0 self) -> ([%#s04_skip1] produces'0 self (Seq.empty : Seq.seq t_Item'0) self) end -module M_04_skip__qyi17349041008065389927__produces_trans [#"04_skip.rs" 61 4 61 90] (* as common::Iterator> *) - let%span s04_skip0 = "04_skip.rs" 55 15 55 21 - let%span s04_skip1 = "04_skip.rs" 56 15 56 21 - let%span s04_skip2 = "04_skip.rs" 57 15 57 21 - let%span s04_skip3 = "04_skip.rs" 58 15 58 32 - let%span s04_skip4 = "04_skip.rs" 59 15 59 32 - let%span s04_skip5 = "04_skip.rs" 60 14 60 42 - let%span s04_skip6 = "04_skip.rs" 53 4 53 10 - let%span s04_skip7 = "04_skip.rs" 38 12 43 74 +module M_04_skip__qyi17349041008065389927__produces_trans [#"04_skip.rs" 62 4 62 90] (* as common::Iterator> *) + let%span s04_skip0 = "04_skip.rs" 56 15 56 21 + let%span s04_skip1 = "04_skip.rs" 57 15 57 21 + let%span s04_skip2 = "04_skip.rs" 58 15 58 21 + let%span s04_skip3 = "04_skip.rs" 59 15 59 32 + let%span s04_skip4 = "04_skip.rs" 60 15 60 32 + let%span s04_skip5 = "04_skip.rs" 61 14 61 42 + let%span s04_skip6 = "04_skip.rs" 54 4 54 10 + let%span s04_skip7 = "04_skip.rs" 39 12 44 74 let%span scommon8 = "common.rs" 14 15 14 24 let%span scommon9 = "common.rs" 15 14 15 45 let%span scommon10 = "common.rs" 19 15 19 21 @@ -190,7 +190,7 @@ module M_04_skip__qyi17349041008065389927__produces_trans [#"04_skip.rs" 61 4 61 predicate resolve'0 (_1 : t_Item'0) - predicate produces'0 [#"04_skip.rs" 36 4 36 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = + predicate produces'0 [#"04_skip.rs" 37 4 37 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = [%#s04_skip7] visited = (Seq.empty : Seq.seq t_Item'0) /\ self = o \/ UIntSize.to_int o.t_Skip__n'0 = 0 /\ Seq.length visited > 0 @@ -209,7 +209,7 @@ module M_04_skip__qyi17349041008065389927__produces_trans [#"04_skip.rs" 61 4 61 constant c : t_Skip'0 - function produces_trans'0 [#"04_skip.rs" 61 4 61 90] (a : t_Skip'0) (ab : Seq.seq t_Item'0) (b : t_Skip'0) (bc : Seq.seq t_Item'0) (c : t_Skip'0) : () + function produces_trans'0 [#"04_skip.rs" 62 4 62 90] (a : t_Skip'0) (ab : Seq.seq t_Item'0) (b : t_Skip'0) (bc : Seq.seq t_Item'0) (c : t_Skip'0) : () goal vc_produces_trans'0 : ([%#s04_skip4] produces'0 b bc c) @@ -217,29 +217,29 @@ module M_04_skip__qyi17349041008065389927__produces_trans [#"04_skip.rs" 61 4 61 -> ([%#s04_skip2] inv'0 c) -> ([%#s04_skip1] inv'0 b) -> ([%#s04_skip0] inv'0 a) -> ([%#s04_skip5] produces'0 a (Seq.(++) ab bc) c) end -module M_04_skip__qyi17349041008065389927__next [#"04_skip.rs" 67 4 67 41] (* as common::Iterator> *) - let%span s04_skip0 = "04_skip.rs" 68 23 68 41 - let%span s04_skip1 = "04_skip.rs" 70 26 70 50 - let%span s04_skip2 = "04_skip.rs" 77 20 77 35 - let%span s04_skip3 = "04_skip.rs" 76 20 76 87 - let%span s04_skip4 = "04_skip.rs" 72 8 72 31 - let%span s04_skip5 = "04_skip.rs" 74 20 74 53 - let%span s04_skip6 = "04_skip.rs" 73 20 73 33 - let%span s04_skip7 = "04_skip.rs" 72 20 72 29 - let%span s04_skip8 = "04_skip.rs" 80 20 80 21 - let%span s04_skip9 = "04_skip.rs" 84 26 84 73 - let%span s04_skip10 = "04_skip.rs" 85 21 85 22 - let%span s04_skip11 = "04_skip.rs" 67 17 67 21 - let%span s04_skip12 = "04_skip.rs" 67 26 67 41 - let%span s04_skip13 = "04_skip.rs" 63 14 66 5 +module M_04_skip__qyi17349041008065389927__next [#"04_skip.rs" 68 4 68 41] (* as common::Iterator> *) + let%span s04_skip0 = "04_skip.rs" 69 23 69 41 + let%span s04_skip1 = "04_skip.rs" 71 26 71 50 + let%span s04_skip2 = "04_skip.rs" 78 20 78 35 + let%span s04_skip3 = "04_skip.rs" 77 20 77 87 + let%span s04_skip4 = "04_skip.rs" 73 8 73 31 + let%span s04_skip5 = "04_skip.rs" 75 20 75 53 + let%span s04_skip6 = "04_skip.rs" 74 20 74 33 + let%span s04_skip7 = "04_skip.rs" 73 20 73 29 + let%span s04_skip8 = "04_skip.rs" 81 20 81 21 + let%span s04_skip9 = "04_skip.rs" 85 26 85 73 + let%span s04_skip10 = "04_skip.rs" 86 21 86 22 + let%span s04_skip11 = "04_skip.rs" 68 17 68 21 + let%span s04_skip12 = "04_skip.rs" 68 26 68 41 + let%span s04_skip13 = "04_skip.rs" 64 14 67 5 let%span smem14 = "../../../../creusot-contracts/src/std/mem.rs" 17 22 17 37 let%span smem15 = "../../../../creusot-contracts/src/std/mem.rs" 18 22 18 42 let%span sops16 = "../../../../creusot-contracts/src/logic/ops.rs" 86 8 86 33 let%span scommon17 = "common.rs" 31 17 31 21 let%span scommon18 = "common.rs" 31 26 31 44 let%span scommon19 = "common.rs" 27 14 30 5 - let%span s04_skip20 = "04_skip.rs" 24 12 30 37 - let%span s04_skip21 = "04_skip.rs" 38 12 43 74 + let%span s04_skip20 = "04_skip.rs" 25 12 31 37 + let%span s04_skip21 = "04_skip.rs" 39 12 44 74 let%span snum22 = "../../../../creusot-contracts/src/std/num.rs" 29 28 29 32 let%span sresolve23 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span scommon24 = "common.rs" 14 15 14 24 @@ -419,7 +419,7 @@ module M_04_skip__qyi17349041008065389927__next [#"04_skip.rs" 67 4 67 41] (* resolve'1 (Seq.get s i)) /\ completed'1 i /\ i.final = (self.final).t_Skip__iter'0) - predicate produces'1 [#"04_skip.rs" 36 4 36 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = + predicate produces'1 [#"04_skip.rs" 37 4 37 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = [%#s04_skip21] visited = (Seq.empty : Seq.seq t_Item'0) /\ self = o \/ UIntSize.to_int o.t_Skip__n'0 = 0 /\ Seq.length visited > 0 @@ -534,10 +534,10 @@ module M_04_skip__qyi17349041008065389927__next [#"04_skip.rs" 67 4 67 41] (* as common::Iterator> *) - let%span s04_skip0 = "04_skip.rs" 67 4 67 41 - let%span s04_skip1 = "04_skip.rs" 24 12 30 37 - let%span s04_skip2 = "04_skip.rs" 38 12 43 74 +module M_04_skip__qyi17349041008065389927__next__refines [#"04_skip.rs" 68 4 68 41] (* as common::Iterator> *) + let%span s04_skip0 = "04_skip.rs" 68 4 68 41 + let%span s04_skip1 = "04_skip.rs" 25 12 31 37 + let%span s04_skip2 = "04_skip.rs" 39 12 44 74 let%span sinvariant3 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span scommon4 = "common.rs" 14 15 14 24 let%span scommon5 = "common.rs" 15 14 15 45 @@ -640,7 +640,7 @@ module M_04_skip__qyi17349041008065389927__next__refines [#"04_skip.rs" 67 4 67 predicate completed'1 [#"common.rs" 11 4 11 36] (self : borrowed t_I'0) - predicate completed'0 [#"04_skip.rs" 22 4 22 35] (self : borrowed (t_Skip'0)) = + predicate completed'0 [#"04_skip.rs" 23 4 23 35] (self : borrowed (t_Skip'0)) = [%#s04_skip1] UIntSize.to_int (self.final).t_Skip__n'0 = 0 /\ (exists s : Seq.seq t_Item'0, i : borrowed t_I'0 . inv'2 s /\ inv'3 i @@ -651,7 +651,7 @@ module M_04_skip__qyi17349041008065389927__next__refines [#"04_skip.rs" 67 4 67 use seq.Seq - predicate produces'0 [#"04_skip.rs" 36 4 36 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = + predicate produces'0 [#"04_skip.rs" 37 4 37 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = [%#s04_skip2] visited = (Seq.empty : Seq.seq t_Item'0) /\ self = o \/ UIntSize.to_int o.t_Skip__n'0 = 0 /\ Seq.length visited > 0 @@ -681,9 +681,9 @@ module M_04_skip__qyi17349041008065389927__next__refines [#"04_skip.rs" 67 4 67 end /\ inv'1 result) end -module M_04_skip__qyi17349041008065389927__produces_refl__refines [#"04_skip.rs" 51 4 51 26] (* as common::Iterator> *) - let%span s04_skip0 = "04_skip.rs" 51 4 51 26 - let%span s04_skip1 = "04_skip.rs" 38 12 43 74 +module M_04_skip__qyi17349041008065389927__produces_refl__refines [#"04_skip.rs" 52 4 52 26] (* as common::Iterator> *) + let%span s04_skip0 = "04_skip.rs" 52 4 52 26 + let%span s04_skip1 = "04_skip.rs" 39 12 44 74 let%span scommon2 = "common.rs" 14 15 14 24 let%span scommon3 = "common.rs" 15 14 15 45 let%span scommon4 = "common.rs" 19 15 19 21 @@ -765,7 +765,7 @@ module M_04_skip__qyi17349041008065389927__produces_refl__refines [#"04_skip.rs" predicate resolve'0 (_1 : t_Item'0) - predicate produces'0 [#"04_skip.rs" 36 4 36 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = + predicate produces'0 [#"04_skip.rs" 37 4 37 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = [%#s04_skip1] visited = (Seq.empty : Seq.seq t_Item'0) /\ self = o \/ UIntSize.to_int o.t_Skip__n'0 = 0 /\ Seq.length visited > 0 @@ -779,9 +779,9 @@ module M_04_skip__qyi17349041008065389927__produces_refl__refines [#"04_skip.rs" /\ (forall result : () . produces'0 self (Seq.empty : Seq.seq t_Item'0) self -> produces'0 self (Seq.empty : Seq.seq t_Item'0) self) end -module M_04_skip__qyi17349041008065389927__produces_trans__refines [#"04_skip.rs" 61 4 61 90] (* as common::Iterator> *) - let%span s04_skip0 = "04_skip.rs" 61 4 61 90 - let%span s04_skip1 = "04_skip.rs" 38 12 43 74 +module M_04_skip__qyi17349041008065389927__produces_trans__refines [#"04_skip.rs" 62 4 62 90] (* as common::Iterator> *) + let%span s04_skip0 = "04_skip.rs" 62 4 62 90 + let%span s04_skip1 = "04_skip.rs" 39 12 44 74 let%span scommon2 = "common.rs" 14 15 14 24 let%span scommon3 = "common.rs" 15 14 15 45 let%span scommon4 = "common.rs" 19 15 19 21 @@ -856,7 +856,7 @@ module M_04_skip__qyi17349041008065389927__produces_trans__refines [#"04_skip.rs predicate resolve'0 (_1 : t_Item'0) - predicate produces'0 [#"04_skip.rs" 36 4 36 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = + predicate produces'0 [#"04_skip.rs" 37 4 37 64] (self : t_Skip'0) (visited : Seq.seq t_Item'0) (o : t_Skip'0) = [%#s04_skip1] visited = (Seq.empty : Seq.seq t_Item'0) /\ self = o \/ UIntSize.to_int o.t_Skip__n'0 = 0 /\ Seq.length visited > 0 diff --git a/creusot/tests/should_succeed/iterators/04_skip.rs b/creusot/tests/should_succeed/iterators/04_skip.rs index 30da3c8eb3..ac6e74543b 100644 --- a/creusot/tests/should_succeed/iterators/04_skip.rs +++ b/creusot/tests/should_succeed/iterators/04_skip.rs @@ -1,3 +1,4 @@ +// WHY3PROVE #![feature(slice_take)] extern crate creusot_contracts; diff --git a/creusot/tests/should_succeed/iterators/05_map.coma b/creusot/tests/should_succeed/iterators/05_map.coma index 44236c4a99..7bd8312ec4 100644 --- a/creusot/tests/should_succeed/iterators/05_map.coma +++ b/creusot/tests/should_succeed/iterators/05_map.coma @@ -1,9 +1,9 @@ -module M_05_map__qyi14910388998417814812__produces_refl [#"05_map.rs" 33 4 33 26] (* as common::Iterator> *) - let%span s05_map0 = "05_map.rs" 31 15 31 24 - let%span s05_map1 = "05_map.rs" 32 14 32 45 - let%span s05_map2 = "05_map.rs" 29 4 29 10 - let%span s05_map3 = "05_map.rs" 49 8 62 9 - let%span s05_map4 = "05_map.rs" 155 12 157 57 +module M_05_map__qyi14910388998417814812__produces_refl [#"05_map.rs" 34 4 34 26] (* as common::Iterator> *) + let%span s05_map0 = "05_map.rs" 32 15 32 24 + let%span s05_map1 = "05_map.rs" 33 14 33 45 + let%span s05_map2 = "05_map.rs" 30 4 30 10 + let%span s05_map3 = "05_map.rs" 50 8 63 9 + let%span s05_map4 = "05_map.rs" 156 12 158 57 let%span sops5 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops6 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops7 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -19,9 +19,9 @@ module M_05_map__qyi14910388998417814812__produces_refl [#"05_map.rs" 33 4 33 26 let%span scommon17 = "common.rs" 22 15 22 32 let%span scommon18 = "common.rs" 23 15 23 32 let%span scommon19 = "common.rs" 24 14 24 42 - let%span s05_map20 = "05_map.rs" 109 12 112 87 - let%span s05_map21 = "05_map.rs" 96 12 102 41 - let%span s05_map22 = "05_map.rs" 85 12 89 39 + let%span s05_map20 = "05_map.rs" 110 12 113 87 + let%span s05_map21 = "05_map.rs" 97 12 103 41 + let%span s05_map22 = "05_map.rs" 86 12 90 39 let%span sseq23 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sinvariant24 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sboxed25 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -78,7 +78,7 @@ module M_05_map__qyi14910388998417814812__produces_refl [#"05_map.rs" 33 4 33 26 predicate precondition'0 (self : t_F'0) (args : t_Item'0) - predicate next_precondition'0 [#"05_map.rs" 83 4 83 50] (iter : t_I'0) (func : t_F'0) = + predicate next_precondition'0 [#"05_map.rs" 84 4 84 50] (iter : t_I'0) (func : t_F'0) = [%#s05_map22] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'6 e /\ inv'3 i -> produces'1 iter (Seq.singleton e) i -> precondition'0 func (e) @@ -140,17 +140,17 @@ module M_05_map__qyi14910388998417814812__produces_refl [#"05_map.rs" 33 4 33 26 use seq.Seq - predicate preservation'0 [#"05_map.rs" 94 4 94 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"05_map.rs" 95 4 95 45] (iter : t_I'0) (func : t_F'0) = [%#s05_map21] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1) f.final b] . inv'2 s /\ inv'6 e1 /\ inv'6 e2 /\ inv'7 f /\ inv'3 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map20] forall iter : borrowed t_I'0, func : t_F'0 . inv'5 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'0 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'0 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map4] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 @@ -194,7 +194,7 @@ module M_05_map__qyi14910388998417814812__produces_refl [#"05_map.rs" 33 4 33 26 use seq.Seq - predicate produces'0 [@inline:trivial] [#"05_map.rs" 48 4 48 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"05_map.rs" 49 4 49 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s05_map3] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -216,21 +216,21 @@ module M_05_map__qyi14910388998417814812__produces_refl [#"05_map.rs" 33 4 33 26 constant self : t_Map'0 - function produces_refl'0 [#"05_map.rs" 33 4 33 26] (self : t_Map'0) : () + function produces_refl'0 [#"05_map.rs" 34 4 34 26] (self : t_Map'0) : () goal vc_produces_refl'0 : ([%#s05_map0] inv'0 self) -> ([%#s05_map1] produces'0 self (Seq.empty : Seq.seq t_B'0) self) end -module M_05_map__qyi14910388998417814812__produces_trans [#"05_map.rs" 43 4 43 90] (* as common::Iterator> *) - let%span s05_map0 = "05_map.rs" 37 15 37 21 - let%span s05_map1 = "05_map.rs" 38 15 38 21 - let%span s05_map2 = "05_map.rs" 39 15 39 21 - let%span s05_map3 = "05_map.rs" 40 15 40 32 - let%span s05_map4 = "05_map.rs" 41 15 41 32 - let%span s05_map5 = "05_map.rs" 42 14 42 42 - let%span s05_map6 = "05_map.rs" 35 4 35 10 - let%span s05_map7 = "05_map.rs" 49 8 62 9 - let%span s05_map8 = "05_map.rs" 155 12 157 57 +module M_05_map__qyi14910388998417814812__produces_trans [#"05_map.rs" 44 4 44 90] (* as common::Iterator> *) + let%span s05_map0 = "05_map.rs" 38 15 38 21 + let%span s05_map1 = "05_map.rs" 39 15 39 21 + let%span s05_map2 = "05_map.rs" 40 15 40 21 + let%span s05_map3 = "05_map.rs" 41 15 41 32 + let%span s05_map4 = "05_map.rs" 42 15 42 32 + let%span s05_map5 = "05_map.rs" 43 14 43 42 + let%span s05_map6 = "05_map.rs" 36 4 36 10 + let%span s05_map7 = "05_map.rs" 50 8 63 9 + let%span s05_map8 = "05_map.rs" 156 12 158 57 let%span sops9 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops10 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops11 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -246,9 +246,9 @@ module M_05_map__qyi14910388998417814812__produces_trans [#"05_map.rs" 43 4 43 9 let%span scommon21 = "common.rs" 22 15 22 32 let%span scommon22 = "common.rs" 23 15 23 32 let%span scommon23 = "common.rs" 24 14 24 42 - let%span s05_map24 = "05_map.rs" 109 12 112 87 - let%span s05_map25 = "05_map.rs" 96 12 102 41 - let%span s05_map26 = "05_map.rs" 85 12 89 39 + let%span s05_map24 = "05_map.rs" 110 12 113 87 + let%span s05_map25 = "05_map.rs" 97 12 103 41 + let%span s05_map26 = "05_map.rs" 86 12 90 39 let%span sseq27 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sinvariant28 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sboxed29 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -305,7 +305,7 @@ module M_05_map__qyi14910388998417814812__produces_trans [#"05_map.rs" 43 4 43 9 predicate precondition'0 (self : t_F'0) (args : t_Item'0) - predicate next_precondition'0 [#"05_map.rs" 83 4 83 50] (iter : t_I'0) (func : t_F'0) = + predicate next_precondition'0 [#"05_map.rs" 84 4 84 50] (iter : t_I'0) (func : t_F'0) = [%#s05_map26] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'6 e /\ inv'3 i -> produces'1 iter (Seq.singleton e) i -> precondition'0 func (e) @@ -367,17 +367,17 @@ module M_05_map__qyi14910388998417814812__produces_trans [#"05_map.rs" 43 4 43 9 use seq.Seq - predicate preservation'0 [#"05_map.rs" 94 4 94 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"05_map.rs" 95 4 95 45] (iter : t_I'0) (func : t_F'0) = [%#s05_map25] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1) f.final b] . inv'2 s /\ inv'6 e1 /\ inv'6 e2 /\ inv'7 f /\ inv'3 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map24] forall iter : borrowed t_I'0, func : t_F'0 . inv'5 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'0 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'0 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map8] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 @@ -419,7 +419,7 @@ module M_05_map__qyi14910388998417814812__produces_trans [#"05_map.rs" 43 4 43 9 use seq.Seq - predicate produces'0 [@inline:trivial] [#"05_map.rs" 48 4 48 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"05_map.rs" 49 4 49 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s05_map7] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -451,7 +451,7 @@ module M_05_map__qyi14910388998417814812__produces_trans [#"05_map.rs" 43 4 43 9 constant c : t_Map'0 - function produces_trans'0 [#"05_map.rs" 43 4 43 90] (a : t_Map'0) (ab : Seq.seq t_B'0) (b : t_Map'0) (bc : Seq.seq t_B'0) (c : t_Map'0) : () + function produces_trans'0 [#"05_map.rs" 44 4 44 90] (a : t_Map'0) (ab : Seq.seq t_B'0) (b : t_Map'0) (bc : Seq.seq t_B'0) (c : t_Map'0) : () goal vc_produces_trans'0 : ([%#s05_map4] produces'0 b bc c) @@ -459,31 +459,31 @@ module M_05_map__qyi14910388998417814812__produces_trans [#"05_map.rs" 43 4 43 9 -> ([%#s05_map2] inv'0 c) -> ([%#s05_map1] inv'0 b) -> ([%#s05_map0] inv'0 a) -> ([%#s05_map5] produces'0 a (Seq.(++) ab bc) c) end -module M_05_map__qyi14910388998417814812__next [#"05_map.rs" 69 4 69 44] (* as common::Iterator> *) - let%span s05_map0 = "05_map.rs" 72 16 72 62 - let%span s05_map1 = "05_map.rs" 73 16 73 58 - let%span s05_map2 = "05_map.rs" 69 17 69 21 - let%span s05_map3 = "05_map.rs" 69 26 69 44 - let%span s05_map4 = "05_map.rs" 65 14 68 5 +module M_05_map__qyi14910388998417814812__next [#"05_map.rs" 70 4 70 44] (* as common::Iterator> *) + let%span s05_map0 = "05_map.rs" 73 16 73 62 + let%span s05_map1 = "05_map.rs" 74 16 74 58 + let%span s05_map2 = "05_map.rs" 70 17 70 21 + let%span s05_map3 = "05_map.rs" 70 26 70 44 + let%span s05_map4 = "05_map.rs" 66 14 69 5 let%span scommon5 = "common.rs" 31 17 31 21 let%span scommon6 = "common.rs" 31 26 31 44 let%span scommon7 = "common.rs" 27 14 30 5 - let%span s05_map8 = "05_map.rs" 117 15 117 24 - let%span s05_map9 = "05_map.rs" 118 15 118 21 - let%span s05_map10 = "05_map.rs" 119 15 119 21 - let%span s05_map11 = "05_map.rs" 120 15 120 21 - let%span s05_map12 = "05_map.rs" 121 15 121 24 - let%span s05_map13 = "05_map.rs" 122 4 122 60 - let%span s05_map14 = "05_map.rs" 123 15 123 30 - let%span s05_map15 = "05_map.rs" 124 15 124 50 - let%span s05_map16 = "05_map.rs" 125 14 125 42 - let%span s05_map17 = "05_map.rs" 126 14 126 47 - let%span s05_map18 = "05_map.rs" 128 8 133 9 + let%span s05_map8 = "05_map.rs" 118 15 118 24 + let%span s05_map9 = "05_map.rs" 119 15 119 21 + let%span s05_map10 = "05_map.rs" 120 15 120 21 + let%span s05_map11 = "05_map.rs" 121 15 121 21 + let%span s05_map12 = "05_map.rs" 122 15 122 24 + let%span s05_map13 = "05_map.rs" 123 4 123 60 + let%span s05_map14 = "05_map.rs" 124 15 124 30 + let%span s05_map15 = "05_map.rs" 125 15 125 50 + let%span s05_map16 = "05_map.rs" 126 14 126 42 + let%span s05_map17 = "05_map.rs" 127 14 127 47 + let%span s05_map18 = "05_map.rs" 129 8 134 9 let%span sops19 = "../../../../creusot-contracts/src/std/ops.rs" 158 27 158 52 let%span sops20 = "../../../../creusot-contracts/src/std/ops.rs" 159 26 159 71 - let%span s05_map21 = "05_map.rs" 26 8 26 75 - let%span s05_map22 = "05_map.rs" 137 14 137 68 - let%span s05_map23 = "05_map.rs" 140 12 145 60 + let%span s05_map21 = "05_map.rs" 27 8 27 75 + let%span s05_map22 = "05_map.rs" 138 14 138 68 + let%span s05_map23 = "05_map.rs" 141 12 146 60 let%span scommon24 = "common.rs" 14 15 14 24 let%span scommon25 = "common.rs" 15 14 15 45 let%span scommon26 = "common.rs" 19 15 19 21 @@ -492,10 +492,10 @@ module M_05_map__qyi14910388998417814812__next [#"05_map.rs" 69 4 69 44] (* produces'0 iter (Seq.singleton e) i -> precondition'0 func (e) @@ -650,17 +650,17 @@ module M_05_map__qyi14910388998417814812__next [#"05_map.rs" 69 4 69 44] (* produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map45] forall iter : borrowed t_I'0, func : t_F'0 . inv'4 iter /\ inv'1 func -> completed'1 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'2 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'2 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map44] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 @@ -674,7 +674,7 @@ module M_05_map__qyi14910388998417814812__next [#"05_map.rs" 69 4 69 44] (* inv'8 a_0 end - predicate completed'0 [#"05_map.rs" 25 4 25 35] (self : borrowed (t_Map'0)) = + predicate completed'0 [#"05_map.rs" 26 4 26 35] (self : borrowed (t_Map'0)) = [%#s05_map21] completed'1 (Borrow.borrow_logic (self.current).t_Map__iter'0 (self.final).t_Map__iter'0 (Borrow.inherit_id (Borrow.get_id self) 1)) /\ (self.current).t_Map__func'0 = (self.final).t_Map__func'0 @@ -769,7 +769,7 @@ module M_05_map__qyi14910388998417814812__next [#"05_map.rs" 69 4 69 44] (* *) - let%span s05_map0 = "05_map.rs" 117 15 117 24 - let%span s05_map1 = "05_map.rs" 118 15 118 21 - let%span s05_map2 = "05_map.rs" 119 15 119 21 - let%span s05_map3 = "05_map.rs" 120 15 120 21 - let%span s05_map4 = "05_map.rs" 121 15 121 24 - let%span s05_map5 = "05_map.rs" 122 4 122 60 - let%span s05_map6 = "05_map.rs" 123 15 123 30 - let%span s05_map7 = "05_map.rs" 124 15 124 50 - let%span s05_map8 = "05_map.rs" 125 14 125 42 - let%span s05_map9 = "05_map.rs" 126 14 126 47 - let%span s05_map10 = "05_map.rs" 129 12 132 94 - let%span s05_map11 = "05_map.rs" 128 8 133 9 - let%span s05_map12 = "05_map.rs" 96 12 102 41 - let%span s05_map13 = "05_map.rs" 85 12 89 39 +module M_05_map__qyi9543869049664362474__produces_one_invariant [#"05_map.rs" 128 4 128 73] (* Map *) + let%span s05_map0 = "05_map.rs" 118 15 118 24 + let%span s05_map1 = "05_map.rs" 119 15 119 21 + let%span s05_map2 = "05_map.rs" 120 15 120 21 + let%span s05_map3 = "05_map.rs" 121 15 121 21 + let%span s05_map4 = "05_map.rs" 122 15 122 24 + let%span s05_map5 = "05_map.rs" 123 4 123 60 + let%span s05_map6 = "05_map.rs" 124 15 124 30 + let%span s05_map7 = "05_map.rs" 125 15 125 50 + let%span s05_map8 = "05_map.rs" 126 14 126 42 + let%span s05_map9 = "05_map.rs" 127 14 127 47 + let%span s05_map10 = "05_map.rs" 130 12 133 94 + let%span s05_map11 = "05_map.rs" 129 8 134 9 + let%span s05_map12 = "05_map.rs" 97 12 103 41 + let%span s05_map13 = "05_map.rs" 86 12 90 39 let%span scommon14 = "common.rs" 14 15 14 24 let%span scommon15 = "common.rs" 15 14 15 45 let%span scommon16 = "common.rs" 19 15 19 21 @@ -896,10 +896,10 @@ module M_05_map__qyi9543869049664362474__produces_one_invariant [#"05_map.rs" 12 let%span sops26 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops27 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops28 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s05_map29 = "05_map.rs" 155 12 157 57 + let%span s05_map29 = "05_map.rs" 156 12 158 57 let%span sinvariant30 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sseq31 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s05_map32 = "05_map.rs" 109 12 112 87 + let%span s05_map32 = "05_map.rs" 110 12 113 87 let%span sboxed33 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 type t_I'0 @@ -954,7 +954,7 @@ module M_05_map__qyi9543869049664362474__produces_one_invariant [#"05_map.rs" 12 predicate precondition'0 (self : t_F'0) (args : t_Item'0) - predicate next_precondition'0 [#"05_map.rs" 83 4 83 50] (iter : t_I'0) (func : t_F'0) = + predicate next_precondition'0 [#"05_map.rs" 84 4 84 50] (iter : t_I'0) (func : t_F'0) = [%#s05_map13] forall e : t_Item'0, i : t_I'0 [produces'0 iter (Seq.singleton e) i] . inv'1 e /\ inv'4 i -> produces'0 iter (Seq.singleton e) i -> precondition'0 func (e) @@ -1016,17 +1016,17 @@ module M_05_map__qyi9543869049664362474__produces_one_invariant [#"05_map.rs" 12 use seq.Seq - predicate preservation'0 [#"05_map.rs" 94 4 94 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"05_map.rs" 95 4 95 45] (iter : t_I'0) (func : t_F'0) = [%#s05_map12] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1) f.final b] . inv'5 s /\ inv'1 e1 /\ inv'1 e2 /\ inv'3 f /\ inv'4 i /\ unnest'0 func f.current -> produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map32] forall iter : borrowed t_I'0, func : t_F'0 . inv'8 iter /\ inv'6 func -> completed'0 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'0 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'0 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map29] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 @@ -1050,7 +1050,7 @@ module M_05_map__qyi9543869049664362474__produces_one_invariant [#"05_map.rs" 12 constant iter : t_I'0 - function produces_one_invariant'0 [#"05_map.rs" 127 4 127 73] (self : t_Map'0) (e : t_Item'0) (r : t_B'0) (f : borrowed t_F'0) (iter : t_I'0) : () + function produces_one_invariant'0 [#"05_map.rs" 128 4 128 73] (self : t_Map'0) (e : t_Item'0) (r : t_B'0) (f : borrowed t_F'0) (iter : t_I'0) : () goal vc_produces_one_invariant'0 : ([%#s05_map7] postcondition_mut'0 f.current (e) f.final r) @@ -1067,20 +1067,20 @@ module M_05_map__qyi9543869049664362474__produces_one_invariant [#"05_map.rs" 12 -> produces'0 self.t_Map__iter'0 (Seq.snoc (Seq.snoc (Seq.(++) (Seq.singleton e) s) e1) e2) i) && (let _ = () in ([%#s05_map8] preservation'0 iter f.final) && ([%#s05_map9] next_precondition'0 iter f.final)) end -module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57] (* Map *) - let%span s05_map0 = "05_map.rs" 137 14 137 68 - let%span s05_map1 = "05_map.rs" 140 12 145 60 - let%span s05_map2 = "05_map.rs" 49 8 62 9 - let%span s05_map3 = "05_map.rs" 31 15 31 24 - let%span s05_map4 = "05_map.rs" 32 14 32 45 - let%span s05_map5 = "05_map.rs" 29 4 29 10 - let%span s05_map6 = "05_map.rs" 37 15 37 21 - let%span s05_map7 = "05_map.rs" 38 15 38 21 - let%span s05_map8 = "05_map.rs" 39 15 39 21 - let%span s05_map9 = "05_map.rs" 40 15 40 32 - let%span s05_map10 = "05_map.rs" 41 15 41 32 - let%span s05_map11 = "05_map.rs" 42 14 42 42 - let%span s05_map12 = "05_map.rs" 35 4 35 10 +module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 139 4 139 57] (* Map *) + let%span s05_map0 = "05_map.rs" 138 14 138 68 + let%span s05_map1 = "05_map.rs" 141 12 146 60 + let%span s05_map2 = "05_map.rs" 50 8 63 9 + let%span s05_map3 = "05_map.rs" 32 15 32 24 + let%span s05_map4 = "05_map.rs" 33 14 33 45 + let%span s05_map5 = "05_map.rs" 30 4 30 10 + let%span s05_map6 = "05_map.rs" 38 15 38 21 + let%span s05_map7 = "05_map.rs" 39 15 39 21 + let%span s05_map8 = "05_map.rs" 40 15 40 21 + let%span s05_map9 = "05_map.rs" 41 15 41 32 + let%span s05_map10 = "05_map.rs" 42 15 42 32 + let%span s05_map11 = "05_map.rs" 43 14 43 42 + let%span s05_map12 = "05_map.rs" 36 4 36 10 let%span scommon13 = "common.rs" 14 15 14 24 let%span scommon14 = "common.rs" 15 14 15 45 let%span scommon15 = "common.rs" 19 15 19 21 @@ -1098,10 +1098,10 @@ module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57 let%span sops27 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 let%span sinvariant28 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sseq29 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s05_map30 = "05_map.rs" 155 12 157 57 - let%span s05_map31 = "05_map.rs" 109 12 112 87 - let%span s05_map32 = "05_map.rs" 96 12 102 41 - let%span s05_map33 = "05_map.rs" 85 12 89 39 + let%span s05_map30 = "05_map.rs" 156 12 158 57 + let%span s05_map31 = "05_map.rs" 110 12 113 87 + let%span s05_map32 = "05_map.rs" 97 12 103 41 + let%span s05_map33 = "05_map.rs" 86 12 90 39 let%span sboxed34 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 use seq.Seq @@ -1158,7 +1158,7 @@ module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57 predicate precondition'0 (self : t_F'0) (args : t_Item'0) - predicate next_precondition'0 [#"05_map.rs" 83 4 83 50] (iter : t_I'0) (func : t_F'0) = + predicate next_precondition'0 [#"05_map.rs" 84 4 84 50] (iter : t_I'0) (func : t_F'0) = [%#s05_map33] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'1 e /\ inv'5 i -> produces'1 iter (Seq.singleton e) i -> precondition'0 func (e) @@ -1220,17 +1220,17 @@ module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57 use seq.Seq - predicate preservation'0 [#"05_map.rs" 94 4 94 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"05_map.rs" 95 4 95 45] (iter : t_I'0) (func : t_F'0) = [%#s05_map32] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1) f.final b] . inv'3 s /\ inv'1 e1 /\ inv'1 e2 /\ inv'0 f /\ inv'5 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map31] forall iter : borrowed t_I'0, func : t_F'0 . inv'9 iter /\ inv'6 func -> completed'0 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'3 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'3 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map30] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 @@ -1276,7 +1276,7 @@ module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57 use seq.Seq - predicate produces'0 [@inline:trivial] [#"05_map.rs" 48 4 48 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"05_map.rs" 49 4 49 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s05_map2] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -1296,7 +1296,7 @@ module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57 /\ precondition'0 (Seq.get fs i).current (Seq.get s i) /\ postcondition_mut'0 (Seq.get fs i).current (Seq.get s i) (Seq.get fs i).final (Seq.get visited i)))) - function produces_trans'0 [#"05_map.rs" 43 4 43 90] (a : t_Map'0) (ab : Seq.seq t_B'0) (b : t_Map'0) (bc : Seq.seq t_B'0) (c : t_Map'0) : () + function produces_trans'0 [#"05_map.rs" 44 4 44 90] (a : t_Map'0) (ab : Seq.seq t_B'0) (b : t_Map'0) (bc : Seq.seq t_B'0) (c : t_Map'0) : () = [%#s05_map12] () @@ -1307,7 +1307,7 @@ module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57 -> ([%#s05_map9] produces'0 a ab b) -> ([%#s05_map10] produces'0 b bc c) -> ([%#s05_map11] produces'0 a (Seq.(++) ab bc) c) - function produces_refl'0 [#"05_map.rs" 33 4 33 26] (self : t_Map'0) : () = + function produces_refl'0 [#"05_map.rs" 34 4 34 26] (self : t_Map'0) : () = [%#s05_map5] () axiom produces_refl'0_spec : forall self : t_Map'0 . ([%#s05_map3] inv'4 self) @@ -1319,7 +1319,7 @@ module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57 constant succ : t_Map'0 - predicate produces_one'0 [#"05_map.rs" 138 4 138 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) + predicate produces_one'0 [#"05_map.rs" 139 4 139 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) goal vc_produces_one'0 : [%#s05_map0] ([%#s05_map1] exists f : borrowed t_F'0, e : t_Item'0 [postcondition_mut'0 f.current (e) f.final visited] . inv'0 f /\ inv'1 e @@ -1329,16 +1329,16 @@ module M_05_map__qyi9543869049664362474__produces_one [#"05_map.rs" 138 4 138 57 /\ precondition'0 f.current (e) /\ postcondition_mut'0 f.current (e) f.final visited) = produces'0 self (Seq.singleton visited) succ end -module M_05_map__map [#"05_map.rs" 168 0 168 84] - let%span s05_map0 = "05_map.rs" 168 51 168 55 - let%span s05_map1 = "05_map.rs" 168 60 168 64 - let%span s05_map2 = "05_map.rs" 162 11 164 39 - let%span s05_map3 = "05_map.rs" 165 11 165 41 - let%span s05_map4 = "05_map.rs" 166 11 166 51 - let%span s05_map5 = "05_map.rs" 168 72 168 84 - let%span s05_map6 = "05_map.rs" 167 10 167 38 - let%span s05_map7 = "05_map.rs" 109 12 112 87 - let%span s05_map8 = "05_map.rs" 96 12 102 41 +module M_05_map__map [#"05_map.rs" 169 0 169 84] + let%span s05_map0 = "05_map.rs" 169 51 169 55 + let%span s05_map1 = "05_map.rs" 169 60 169 64 + let%span s05_map2 = "05_map.rs" 163 11 165 39 + let%span s05_map3 = "05_map.rs" 166 11 166 41 + let%span s05_map4 = "05_map.rs" 167 11 167 51 + let%span s05_map5 = "05_map.rs" 169 72 169 84 + let%span s05_map6 = "05_map.rs" 168 10 168 38 + let%span s05_map7 = "05_map.rs" 110 12 113 87 + let%span s05_map8 = "05_map.rs" 97 12 103 41 let%span scommon9 = "common.rs" 14 15 14 24 let%span scommon10 = "common.rs" 15 14 15 45 let%span scommon11 = "common.rs" 19 15 19 21 @@ -1347,7 +1347,7 @@ module M_05_map__map [#"05_map.rs" 168 0 168 84] let%span scommon14 = "common.rs" 22 15 22 32 let%span scommon15 = "common.rs" 23 15 23 32 let%span scommon16 = "common.rs" 24 14 24 42 - let%span s05_map17 = "05_map.rs" 85 12 89 39 + let%span s05_map17 = "05_map.rs" 86 12 90 39 let%span sops18 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops19 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops20 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -1355,7 +1355,7 @@ module M_05_map__map [#"05_map.rs" 168 0 168 84] let%span sops22 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops23 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops24 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s05_map25 = "05_map.rs" 155 12 157 57 + let%span s05_map25 = "05_map.rs" 156 12 158 57 let%span sinvariant26 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sseq27 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sboxed28 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -1414,7 +1414,7 @@ module M_05_map__map [#"05_map.rs" 168 0 168 84] predicate completed'0 [#"common.rs" 11 4 11 36] (self : borrowed t_I'0) - predicate next_precondition'0 [#"05_map.rs" 83 4 83 50] (iter : t_I'0) (func : t_F'0) = + predicate next_precondition'0 [#"05_map.rs" 84 4 84 50] (iter : t_I'0) (func : t_F'0) = [%#s05_map17] forall e : t_Item'0, i : t_I'0 [produces'0 iter (Seq.singleton e) i] . inv'2 e /\ inv'0 i -> produces'0 iter (Seq.singleton e) i -> precondition'0 func (e) @@ -1476,17 +1476,17 @@ module M_05_map__map [#"05_map.rs" 168 0 168 84] use seq.Seq - predicate preservation'0 [#"05_map.rs" 94 4 94 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"05_map.rs" 95 4 95 45] (iter : t_I'0) (func : t_F'0) = [%#s05_map8] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1) f.final b] . inv'5 s /\ inv'2 e1 /\ inv'2 e2 /\ inv'6 f /\ inv'0 i /\ unnest'0 func f.current -> produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map7] forall iter : borrowed t_I'0, func : t_F'0 . inv'4 iter /\ inv'1 func -> completed'0 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'0 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'0 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map25] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 @@ -1521,12 +1521,12 @@ module M_05_map__map [#"05_map.rs" 168 0 168 84] (! return' {result}) ] end -module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 69 4 69 44] (* as common::Iterator> *) - let%span s05_map0 = "05_map.rs" 69 4 69 44 - let%span s05_map1 = "05_map.rs" 26 8 26 75 - let%span s05_map2 = "05_map.rs" 137 14 137 68 - let%span s05_map3 = "05_map.rs" 140 12 145 60 - let%span s05_map4 = "05_map.rs" 49 8 62 9 +module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 70 4 70 44] (* as common::Iterator> *) + let%span s05_map0 = "05_map.rs" 70 4 70 44 + let%span s05_map1 = "05_map.rs" 27 8 27 75 + let%span s05_map2 = "05_map.rs" 138 14 138 68 + let%span s05_map3 = "05_map.rs" 141 12 146 60 + let%span s05_map4 = "05_map.rs" 50 8 63 9 let%span sinvariant5 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span scommon6 = "common.rs" 14 15 14 24 let%span scommon7 = "common.rs" 15 14 15 45 @@ -1544,10 +1544,10 @@ module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 69 4 69 44 let%span sops19 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops20 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 let%span sseq21 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s05_map22 = "05_map.rs" 155 12 157 57 - let%span s05_map23 = "05_map.rs" 109 12 112 87 - let%span s05_map24 = "05_map.rs" 96 12 102 41 - let%span s05_map25 = "05_map.rs" 85 12 89 39 + let%span s05_map22 = "05_map.rs" 156 12 158 57 + let%span s05_map23 = "05_map.rs" 110 12 113 87 + let%span s05_map24 = "05_map.rs" 97 12 103 41 + let%span s05_map25 = "05_map.rs" 86 12 90 39 let%span sboxed26 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 use prelude.prelude.Borrow @@ -1602,7 +1602,7 @@ module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 69 4 69 44 predicate precondition'0 (self : t_F'0) (args : t_Item'0) - predicate next_precondition'0 [#"05_map.rs" 83 4 83 50] (iter : t_I'0) (func : t_F'0) = + predicate next_precondition'0 [#"05_map.rs" 84 4 84 50] (iter : t_I'0) (func : t_F'0) = [%#s05_map25] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'3 e /\ inv'8 i -> produces'1 iter (Seq.singleton e) i -> precondition'0 func (e) @@ -1664,17 +1664,17 @@ module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 69 4 69 44 use seq.Seq - predicate preservation'0 [#"05_map.rs" 94 4 94 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"05_map.rs" 95 4 95 45] (iter : t_I'0) (func : t_F'0) = [%#s05_map24] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1) f.final b] . inv'5 s /\ inv'3 e1 /\ inv'3 e2 /\ inv'2 f /\ inv'8 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map23] forall iter : borrowed t_I'0, func : t_F'0 . inv'12 iter /\ inv'9 func -> completed'1 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'4 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'4 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map22] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 @@ -1697,7 +1697,7 @@ module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 69 4 69 44 | C_None'0 | C_Some'0 t_B'0 - predicate completed'0 [#"05_map.rs" 25 4 25 35] (self : borrowed (t_Map'0)) = + predicate completed'0 [#"05_map.rs" 26 4 26 35] (self : borrowed (t_Map'0)) = [%#s05_map1] completed'1 (Borrow.borrow_logic (self.current).t_Map__iter'0 (self.final).t_Map__iter'0 (Borrow.inherit_id (Borrow.get_id self) 1)) /\ (self.current).t_Map__func'0 = (self.final).t_Map__func'0 @@ -1733,7 +1733,7 @@ module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 69 4 69 44 use seq.Seq - predicate produces'0 [@inline:trivial] [#"05_map.rs" 48 4 48 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"05_map.rs" 49 4 49 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s05_map4] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -1753,7 +1753,7 @@ module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 69 4 69 44 /\ precondition'0 (Seq.get fs i).current (Seq.get s i) /\ postcondition_mut'0 (Seq.get fs i).current (Seq.get s i) (Seq.get fs i).final (Seq.get visited i)))) - predicate produces_one'0 [#"05_map.rs" 138 4 138 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) = + predicate produces_one'0 [#"05_map.rs" 139 4 139 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) = [%#s05_map3] exists f : borrowed t_F'0, e : t_Item'0 [postcondition_mut'0 f.current (e) f.final visited] . inv'2 f /\ inv'3 e /\ f.current = self.t_Map__func'0 @@ -1787,10 +1787,10 @@ module M_05_map__qyi14910388998417814812__next__refines [#"05_map.rs" 69 4 69 44 end /\ inv'1 result) end -module M_05_map__qyi14910388998417814812__produces_refl__refines [#"05_map.rs" 33 4 33 26] (* as common::Iterator> *) - let%span s05_map0 = "05_map.rs" 33 4 33 26 - let%span s05_map1 = "05_map.rs" 49 8 62 9 - let%span s05_map2 = "05_map.rs" 155 12 157 57 +module M_05_map__qyi14910388998417814812__produces_refl__refines [#"05_map.rs" 34 4 34 26] (* as common::Iterator> *) + let%span s05_map0 = "05_map.rs" 34 4 34 26 + let%span s05_map1 = "05_map.rs" 50 8 63 9 + let%span s05_map2 = "05_map.rs" 156 12 158 57 let%span sops3 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops4 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops5 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -1806,9 +1806,9 @@ module M_05_map__qyi14910388998417814812__produces_refl__refines [#"05_map.rs" 3 let%span scommon15 = "common.rs" 22 15 22 32 let%span scommon16 = "common.rs" 23 15 23 32 let%span scommon17 = "common.rs" 24 14 24 42 - let%span s05_map18 = "05_map.rs" 109 12 112 87 - let%span s05_map19 = "05_map.rs" 96 12 102 41 - let%span s05_map20 = "05_map.rs" 85 12 89 39 + let%span s05_map18 = "05_map.rs" 110 12 113 87 + let%span s05_map19 = "05_map.rs" 97 12 103 41 + let%span s05_map20 = "05_map.rs" 86 12 90 39 let%span sseq21 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sinvariant22 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sboxed23 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -1865,7 +1865,7 @@ module M_05_map__qyi14910388998417814812__produces_refl__refines [#"05_map.rs" 3 predicate precondition'0 (self : t_F'0) (args : t_Item'0) - predicate next_precondition'0 [#"05_map.rs" 83 4 83 50] (iter : t_I'0) (func : t_F'0) = + predicate next_precondition'0 [#"05_map.rs" 84 4 84 50] (iter : t_I'0) (func : t_F'0) = [%#s05_map20] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'6 e /\ inv'3 i -> produces'1 iter (Seq.singleton e) i -> precondition'0 func (e) @@ -1927,17 +1927,17 @@ module M_05_map__qyi14910388998417814812__produces_refl__refines [#"05_map.rs" 3 use seq.Seq - predicate preservation'0 [#"05_map.rs" 94 4 94 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"05_map.rs" 95 4 95 45] (iter : t_I'0) (func : t_F'0) = [%#s05_map19] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1) f.final b] . inv'2 s /\ inv'6 e1 /\ inv'6 e2 /\ inv'7 f /\ inv'3 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map18] forall iter : borrowed t_I'0, func : t_F'0 . inv'5 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'0 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'0 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map2] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 @@ -1981,7 +1981,7 @@ module M_05_map__qyi14910388998417814812__produces_refl__refines [#"05_map.rs" 3 use seq.Seq - predicate produces'0 [@inline:trivial] [#"05_map.rs" 48 4 48 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"05_map.rs" 49 4 49 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s05_map1] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -2006,9 +2006,9 @@ module M_05_map__qyi14910388998417814812__produces_refl__refines [#"05_map.rs" 3 /\ (forall result : () . produces'0 self (Seq.empty : Seq.seq t_B'0) self -> produces'0 self (Seq.empty : Seq.seq t_B'0) self) end -module M_05_map__qyi14910388998417814812__produces_trans__refines [#"05_map.rs" 43 4 43 90] (* as common::Iterator> *) - let%span s05_map0 = "05_map.rs" 43 4 43 90 - let%span s05_map1 = "05_map.rs" 49 8 62 9 +module M_05_map__qyi14910388998417814812__produces_trans__refines [#"05_map.rs" 44 4 44 90] (* as common::Iterator> *) + let%span s05_map0 = "05_map.rs" 44 4 44 90 + let%span s05_map1 = "05_map.rs" 50 8 63 9 let%span sops2 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops3 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops4 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -2024,11 +2024,11 @@ module M_05_map__qyi14910388998417814812__produces_trans__refines [#"05_map.rs" let%span scommon14 = "common.rs" 22 15 22 32 let%span scommon15 = "common.rs" 23 15 23 32 let%span scommon16 = "common.rs" 24 14 24 42 - let%span s05_map17 = "05_map.rs" 155 12 157 57 + let%span s05_map17 = "05_map.rs" 156 12 158 57 let%span sseq18 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s05_map19 = "05_map.rs" 109 12 112 87 - let%span s05_map20 = "05_map.rs" 96 12 102 41 - let%span s05_map21 = "05_map.rs" 85 12 89 39 + let%span s05_map19 = "05_map.rs" 110 12 113 87 + let%span s05_map20 = "05_map.rs" 97 12 103 41 + let%span s05_map21 = "05_map.rs" 86 12 90 39 let%span sboxed22 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 let%span sinvariant23 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -2159,7 +2159,7 @@ module M_05_map__qyi14910388998417814812__produces_trans__refines [#"05_map.rs" use seq.Seq - predicate produces'0 [@inline:trivial] [#"05_map.rs" 48 4 48 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"05_map.rs" 49 4 49 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s05_map1] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -2190,23 +2190,23 @@ module M_05_map__qyi14910388998417814812__produces_trans__refines [#"05_map.rs" use seq.Seq - predicate next_precondition'0 [#"05_map.rs" 83 4 83 50] (iter : t_I'0) (func : t_F'0) = + predicate next_precondition'0 [#"05_map.rs" 84 4 84 50] (iter : t_I'0) (func : t_F'0) = [%#s05_map21] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'8 e /\ inv'3 i -> produces'1 iter (Seq.singleton e) i -> precondition'0 func (e) use seq.Seq - predicate preservation'0 [#"05_map.rs" 94 4 94 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"05_map.rs" 95 4 95 45] (iter : t_I'0) (func : t_F'0) = [%#s05_map20] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1) f.final b] . inv'2 s /\ inv'8 e1 /\ inv'8 e2 /\ inv'9 f /\ inv'3 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i -> precondition'0 f.current (e1) -> postcondition_mut'0 f.current (e1) f.final b -> precondition'0 f.final (e2) - predicate reinitialize'0 [#"05_map.rs" 107 4 107 29] (_1 : ()) = + predicate reinitialize'0 [#"05_map.rs" 108 4 108 29] (_1 : ()) = [%#s05_map19] forall iter : borrowed t_I'0, func : t_F'0 . inv'7 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func /\ preservation'0 iter.final func - predicate invariant'0 [#"05_map.rs" 153 4 153 30] (self : t_Map'0) = + predicate invariant'0 [#"05_map.rs" 154 4 154 30] (self : t_Map'0) = [%#s05_map17] reinitialize'0 () /\ preservation'0 self.t_Map__iter'0 self.t_Map__func'0 /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 diff --git a/creusot/tests/should_succeed/iterators/05_map.rs b/creusot/tests/should_succeed/iterators/05_map.rs index 3c081e25aa..4f26fc312d 100644 --- a/creusot/tests/should_succeed/iterators/05_map.rs +++ b/creusot/tests/should_succeed/iterators/05_map.rs @@ -1,3 +1,4 @@ +// WHY3PROVE #![feature(unboxed_closures)] extern crate creusot_contracts; diff --git a/creusot/tests/should_succeed/iterators/06_map_precond.coma b/creusot/tests/should_succeed/iterators/06_map_precond.coma index 743825c09e..392e3718ae 100644 --- a/creusot/tests/should_succeed/iterators/06_map_precond.coma +++ b/creusot/tests/should_succeed/iterators/06_map_precond.coma @@ -1,9 +1,9 @@ -module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precond.rs" 35 4 35 26] (* as common::Iterator> *) - let%span s06_map_precond0 = "06_map_precond.rs" 33 15 33 24 - let%span s06_map_precond1 = "06_map_precond.rs" 34 14 34 45 - let%span s06_map_precond2 = "06_map_precond.rs" 31 4 31 10 - let%span s06_map_precond3 = "06_map_precond.rs" 51 8 65 9 - let%span s06_map_precond4 = "06_map_precond.rs" 178 12 180 73 +module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precond.rs" 36 4 36 26] (* as common::Iterator> *) + let%span s06_map_precond0 = "06_map_precond.rs" 34 15 34 24 + let%span s06_map_precond1 = "06_map_precond.rs" 35 14 35 45 + let%span s06_map_precond2 = "06_map_precond.rs" 32 4 32 10 + let%span s06_map_precond3 = "06_map_precond.rs" 52 8 66 9 + let%span s06_map_precond4 = "06_map_precond.rs" 179 12 181 73 let%span sops5 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops6 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops7 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -19,12 +19,12 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precon let%span scommon17 = "common.rs" 22 15 22 32 let%span scommon18 = "common.rs" 23 15 23 32 let%span scommon19 = "common.rs" 24 14 24 42 - let%span s06_map_precond20 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond21 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond22 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond23 = "06_map_precond.rs" 94 12 97 63 + let%span s06_map_precond20 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond21 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond22 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond23 = "06_map_precond.rs" 95 12 98 63 let%span sseq24 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s06_map_precond25 = "06_map_precond.rs" 118 12 123 71 + let%span s06_map_precond25 = "06_map_precond.rs" 119 12 124 71 let%span sinvariant26 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sboxed27 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -84,7 +84,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precon predicate precondition'0 (self : t_F'0) (args : (t_Item'0, Snapshot.snap_ty (Seq.seq t_Item'0))) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond23] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'6 e @@ -153,7 +153,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precon use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond25] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'2 s /\ inv'6 e1 /\ inv'6 e2 /\ inv'7 f /\ inv'8 b /\ inv'3 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -161,14 +161,14 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precon -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond20] forall iter : borrowed t_I'0, func : t_F'0 . inv'5 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond22] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'2 s @@ -181,7 +181,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precon axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond21] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond4] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -230,7 +230,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precon use seq.Seq - predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 50 4 50 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 51 4 51 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s06_map_precond3] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -253,21 +253,21 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl [#"06_map_precon constant self : t_Map'0 - function produces_refl'0 [#"06_map_precond.rs" 35 4 35 26] (self : t_Map'0) : () + function produces_refl'0 [#"06_map_precond.rs" 36 4 36 26] (self : t_Map'0) : () goal vc_produces_refl'0 : ([%#s06_map_precond0] inv'0 self) -> ([%#s06_map_precond1] produces'0 self (Seq.empty : Seq.seq t_B'0) self) end -module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_precond.rs" 45 4 45 90] (* as common::Iterator> *) - let%span s06_map_precond0 = "06_map_precond.rs" 39 15 39 21 - let%span s06_map_precond1 = "06_map_precond.rs" 40 15 40 21 - let%span s06_map_precond2 = "06_map_precond.rs" 41 15 41 21 - let%span s06_map_precond3 = "06_map_precond.rs" 42 15 42 32 - let%span s06_map_precond4 = "06_map_precond.rs" 43 15 43 32 - let%span s06_map_precond5 = "06_map_precond.rs" 44 14 44 42 - let%span s06_map_precond6 = "06_map_precond.rs" 37 4 37 10 - let%span s06_map_precond7 = "06_map_precond.rs" 51 8 65 9 - let%span s06_map_precond8 = "06_map_precond.rs" 178 12 180 73 +module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_precond.rs" 46 4 46 90] (* as common::Iterator> *) + let%span s06_map_precond0 = "06_map_precond.rs" 40 15 40 21 + let%span s06_map_precond1 = "06_map_precond.rs" 41 15 41 21 + let%span s06_map_precond2 = "06_map_precond.rs" 42 15 42 21 + let%span s06_map_precond3 = "06_map_precond.rs" 43 15 43 32 + let%span s06_map_precond4 = "06_map_precond.rs" 44 15 44 32 + let%span s06_map_precond5 = "06_map_precond.rs" 45 14 45 42 + let%span s06_map_precond6 = "06_map_precond.rs" 38 4 38 10 + let%span s06_map_precond7 = "06_map_precond.rs" 52 8 66 9 + let%span s06_map_precond8 = "06_map_precond.rs" 179 12 181 73 let%span sops9 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops10 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops11 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -283,12 +283,12 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_preco let%span scommon21 = "common.rs" 22 15 22 32 let%span scommon22 = "common.rs" 23 15 23 32 let%span scommon23 = "common.rs" 24 14 24 42 - let%span s06_map_precond24 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond25 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond26 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond27 = "06_map_precond.rs" 94 12 97 63 + let%span s06_map_precond24 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond25 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond26 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond27 = "06_map_precond.rs" 95 12 98 63 let%span sseq28 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s06_map_precond29 = "06_map_precond.rs" 118 12 123 71 + let%span s06_map_precond29 = "06_map_precond.rs" 119 12 124 71 let%span sinvariant30 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sboxed31 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -348,7 +348,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_preco predicate precondition'0 (self : t_F'0) (args : (t_Item'0, Snapshot.snap_ty (Seq.seq t_Item'0))) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond27] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'6 e @@ -417,7 +417,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_preco use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond29] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'2 s /\ inv'6 e1 /\ inv'6 e2 /\ inv'7 f /\ inv'8 b /\ inv'3 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -425,14 +425,14 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_preco -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond24] forall iter : borrowed t_I'0, func : t_F'0 . inv'5 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond26] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'2 s @@ -445,7 +445,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_preco axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond25] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond8] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -492,7 +492,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_preco use seq.Seq - predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 50 4 50 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 51 4 51 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s06_map_precond7] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -525,7 +525,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_preco constant c : t_Map'0 - function produces_trans'0 [#"06_map_precond.rs" 45 4 45 90] (a : t_Map'0) (ab : Seq.seq t_B'0) (b : t_Map'0) (bc : Seq.seq t_B'0) (c : t_Map'0) : () + function produces_trans'0 [#"06_map_precond.rs" 46 4 46 90] (a : t_Map'0) (ab : Seq.seq t_B'0) (b : t_Map'0) (bc : Seq.seq t_B'0) (c : t_Map'0) : () goal vc_produces_trans'0 : ([%#s06_map_precond4] produces'0 b bc c) @@ -534,33 +534,33 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans [#"06_map_preco -> ([%#s06_map_precond1] inv'0 b) -> ([%#s06_map_precond0] inv'0 a) -> ([%#s06_map_precond5] produces'0 a (Seq.(++) ab bc) c) end -module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 4 72 44] (* as common::Iterator> *) - let%span s06_map_precond0 = "06_map_precond.rs" 75 16 75 76 - let%span s06_map_precond1 = "06_map_precond.rs" 76 31 76 71 - let%span s06_map_precond2 = "06_map_precond.rs" 79 16 79 58 - let%span s06_map_precond3 = "06_map_precond.rs" 83 32 83 56 - let%span s06_map_precond4 = "06_map_precond.rs" 72 17 72 21 - let%span s06_map_precond5 = "06_map_precond.rs" 72 26 72 44 - let%span s06_map_precond6 = "06_map_precond.rs" 68 14 71 5 +module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 73 4 73 44] (* as common::Iterator> *) + let%span s06_map_precond0 = "06_map_precond.rs" 76 16 76 76 + let%span s06_map_precond1 = "06_map_precond.rs" 77 31 77 71 + let%span s06_map_precond2 = "06_map_precond.rs" 80 16 80 58 + let%span s06_map_precond3 = "06_map_precond.rs" 84 32 84 56 + let%span s06_map_precond4 = "06_map_precond.rs" 73 17 73 21 + let%span s06_map_precond5 = "06_map_precond.rs" 73 26 73 44 + let%span s06_map_precond6 = "06_map_precond.rs" 69 14 72 5 let%span scommon7 = "common.rs" 31 17 31 21 let%span scommon8 = "common.rs" 31 26 31 44 let%span scommon9 = "common.rs" 27 14 30 5 let%span sops10 = "../../../../creusot-contracts/src/std/ops.rs" 158 27 158 52 let%span sops11 = "../../../../creusot-contracts/src/std/ops.rs" 159 26 159 71 - let%span s06_map_precond12 = "06_map_precond.rs" 139 15 139 24 - let%span s06_map_precond13 = "06_map_precond.rs" 140 15 140 21 - let%span s06_map_precond14 = "06_map_precond.rs" 141 15 141 21 - let%span s06_map_precond15 = "06_map_precond.rs" 142 15 142 21 - let%span s06_map_precond16 = "06_map_precond.rs" 143 15 143 24 - let%span s06_map_precond17 = "06_map_precond.rs" 144 4 144 60 - let%span s06_map_precond18 = "06_map_precond.rs" 145 15 145 30 - let%span s06_map_precond19 = "06_map_precond.rs" 146 15 146 64 - let%span s06_map_precond20 = "06_map_precond.rs" 147 14 147 74 - let%span s06_map_precond21 = "06_map_precond.rs" 148 14 148 75 - let%span s06_map_precond22 = "06_map_precond.rs" 150 8 155 9 - let%span s06_map_precond23 = "06_map_precond.rs" 25 8 28 9 - let%span s06_map_precond24 = "06_map_precond.rs" 159 14 159 68 - let%span s06_map_precond25 = "06_map_precond.rs" 162 12 168 74 + let%span s06_map_precond12 = "06_map_precond.rs" 140 15 140 24 + let%span s06_map_precond13 = "06_map_precond.rs" 141 15 141 21 + let%span s06_map_precond14 = "06_map_precond.rs" 142 15 142 21 + let%span s06_map_precond15 = "06_map_precond.rs" 143 15 143 21 + let%span s06_map_precond16 = "06_map_precond.rs" 144 15 144 24 + let%span s06_map_precond17 = "06_map_precond.rs" 145 4 145 60 + let%span s06_map_precond18 = "06_map_precond.rs" 146 15 146 30 + let%span s06_map_precond19 = "06_map_precond.rs" 147 15 147 64 + let%span s06_map_precond20 = "06_map_precond.rs" 148 14 148 74 + let%span s06_map_precond21 = "06_map_precond.rs" 149 14 149 75 + let%span s06_map_precond22 = "06_map_precond.rs" 151 8 156 9 + let%span s06_map_precond23 = "06_map_precond.rs" 26 8 29 9 + let%span s06_map_precond24 = "06_map_precond.rs" 160 14 160 68 + let%span s06_map_precond25 = "06_map_precond.rs" 163 12 169 74 let%span scommon26 = "common.rs" 14 15 14 24 let%span scommon27 = "common.rs" 15 14 15 45 let%span scommon28 = "common.rs" 19 15 19 21 @@ -570,10 +570,10 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 let%span scommon32 = "common.rs" 23 15 23 32 let%span scommon33 = "common.rs" 24 14 24 42 let%span sresolve34 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 - let%span s06_map_precond35 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond36 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond37 = "06_map_precond.rs" 94 12 97 63 - let%span s06_map_precond38 = "06_map_precond.rs" 51 8 65 9 + let%span s06_map_precond35 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond36 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond37 = "06_map_precond.rs" 95 12 98 63 + let%span s06_map_precond38 = "06_map_precond.rs" 52 8 66 9 let%span sops39 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops40 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops41 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -582,9 +582,9 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 let%span sops44 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops45 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 let%span sinvariant46 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span s06_map_precond47 = "06_map_precond.rs" 118 12 123 71 - let%span s06_map_precond48 = "06_map_precond.rs" 178 12 180 73 - let%span s06_map_precond49 = "06_map_precond.rs" 130 12 134 47 + let%span s06_map_precond47 = "06_map_precond.rs" 119 12 124 71 + let%span s06_map_precond48 = "06_map_precond.rs" 179 12 181 73 + let%span s06_map_precond49 = "06_map_precond.rs" 131 12 135 47 let%span sseq50 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sboxed51 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -730,7 +730,7 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 (! return' {result}) ] - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond37] forall e : t_Item'0, i : t_I'0 [produces'0 iter (Seq.singleton e) i] . inv'10 e @@ -756,7 +756,7 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 axiom inv_axiom'7 [@rewrite] : forall x : Seq.seq t_Item'0 [inv'11 x] . inv'11 x = invariant'4 x - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond47] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'11 s /\ inv'10 e1 /\ inv'10 e2 /\ inv'6 f /\ inv'8 b /\ inv'0 i /\ unnest'0 func f.current -> produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -764,12 +764,12 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond49] forall iter : borrowed t_I'0, func : t_F'0 . inv'4 iter /\ inv'1 func -> completed'1 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond36] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'11 s @@ -782,7 +782,7 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond35] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'3 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'3 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond48] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -808,7 +808,7 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 predicate resolve'0 (_1 : borrowed (t_Map'0)) = resolve'1 _1 - function produces_one_invariant'0 [#"06_map_precond.rs" 149 4 149 73] (self : t_Map'0) (e : t_Item'0) (r : t_B'0) (f : borrowed t_F'0) (iter : t_I'0) : () + function produces_one_invariant'0 [#"06_map_precond.rs" 150 4 150 73] (self : t_Map'0) (e : t_Item'0) (r : t_B'0) (f : borrowed t_F'0) (iter : t_I'0) : () = [%#s06_map_precond22] let _ = () in () @@ -842,7 +842,7 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 | C_Some'1 a_0 -> inv'8 a_0 end - predicate completed'0 [#"06_map_precond.rs" 24 4 24 35] (self : borrowed (t_Map'0)) = + predicate completed'0 [#"06_map_precond.rs" 25 4 25 35] (self : borrowed (t_Map'0)) = [%#s06_map_precond23] Snapshot.inner (self.final).t_Map__produced'0 = (Seq.empty : Seq.seq t_Item'0) /\ completed'1 (Borrow.borrow_logic (self.current).t_Map__iter'0 (self.final).t_Map__iter'0 (Borrow.inherit_id (Borrow.get_id self) 1)) /\ (self.current).t_Map__func'0 = (self.final).t_Map__func'0 @@ -883,7 +883,7 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 use seq.Seq - predicate produces'1 [@inline:trivial] [#"06_map_precond.rs" 50 4 50 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'1 [@inline:trivial] [#"06_map_precond.rs" 51 4 51 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s06_map_precond38] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -904,7 +904,7 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 /\ precondition'0 (Seq.get fs i).current (Seq.get s i, Snapshot.new (Seq.(++) (Snapshot.inner self.t_Map__produced'0) (Seq.([..]) s 0 i))) /\ postcondition_mut'0 (Seq.get fs i).current (Seq.get s i, Snapshot.new (Seq.(++) (Snapshot.inner self.t_Map__produced'0) (Seq.([..]) s 0 i))) (Seq.get fs i).final (Seq.get visited i)))) - predicate produces_one'0 [#"06_map_precond.rs" 160 4 160 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) = + predicate produces_one'0 [#"06_map_precond.rs" 161 4 161 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) = [%#s06_map_precond25] exists f : borrowed t_F'0, e : t_Item'0 [postcondition_mut'0 f.current (e, self.t_Map__produced'0) f.final visited] . inv'6 f /\ inv'10 e /\ f.current = self.t_Map__func'0 @@ -1002,10 +1002,10 @@ module M_06_map_precond__qyi18374305379273630819__next [#"06_map_precond.rs" 72 (! return' {result}) ] end -module M_06_map_precond__qyi16548623944279504987__preservation_inv [#"06_map_precond.rs" 103 4 103 73] (* Map *) - let%span s06_map_precond0 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond1 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond2 = "06_map_precond.rs" 118 12 123 71 +module M_06_map_precond__qyi16548623944279504987__preservation_inv [#"06_map_precond.rs" 104 4 104 73] (* Map *) + let%span s06_map_precond0 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond1 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond2 = "06_map_precond.rs" 119 12 124 71 let%span scommon3 = "common.rs" 14 15 14 24 let%span scommon4 = "common.rs" 15 14 15 45 let%span scommon5 = "common.rs" 19 15 19 21 @@ -1130,7 +1130,7 @@ module M_06_map_precond__qyi16548623944279504987__preservation_inv [#"06_map_pre predicate precondition'0 (self : t_F'0) (args : (t_Item'0, Snapshot.snap_ty (Seq.seq t_Item'0))) - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond2] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'0 s /\ inv'1 e1 /\ inv'1 e2 /\ inv'2 f /\ inv'3 b /\ inv'4 i /\ unnest'0 func f.current -> produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -1144,7 +1144,7 @@ module M_06_map_precond__qyi16548623944279504987__preservation_inv [#"06_map_pre constant produced : Seq.seq t_Item'0 - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) goal vc_preservation_inv'0 : [%#s06_map_precond0] produced = (Seq.empty : Seq.seq t_Item'0) @@ -1156,22 +1156,22 @@ module M_06_map_precond__qyi16548623944279504987__preservation_inv [#"06_map_pre -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc (Seq.(++) produced s) e1))) = preservation'0 iter func end -module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_map_precond.rs" 149 4 149 73] (* Map *) - let%span s06_map_precond0 = "06_map_precond.rs" 139 15 139 24 - let%span s06_map_precond1 = "06_map_precond.rs" 140 15 140 21 - let%span s06_map_precond2 = "06_map_precond.rs" 141 15 141 21 - let%span s06_map_precond3 = "06_map_precond.rs" 142 15 142 21 - let%span s06_map_precond4 = "06_map_precond.rs" 143 15 143 24 - let%span s06_map_precond5 = "06_map_precond.rs" 144 4 144 60 - let%span s06_map_precond6 = "06_map_precond.rs" 145 15 145 30 - let%span s06_map_precond7 = "06_map_precond.rs" 146 15 146 64 - let%span s06_map_precond8 = "06_map_precond.rs" 147 14 147 74 - let%span s06_map_precond9 = "06_map_precond.rs" 148 14 148 75 - let%span s06_map_precond10 = "06_map_precond.rs" 151 12 154 94 - let%span s06_map_precond11 = "06_map_precond.rs" 150 8 155 9 - let%span s06_map_precond12 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond13 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond14 = "06_map_precond.rs" 94 12 97 63 +module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_map_precond.rs" 150 4 150 73] (* Map *) + let%span s06_map_precond0 = "06_map_precond.rs" 140 15 140 24 + let%span s06_map_precond1 = "06_map_precond.rs" 141 15 141 21 + let%span s06_map_precond2 = "06_map_precond.rs" 142 15 142 21 + let%span s06_map_precond3 = "06_map_precond.rs" 143 15 143 21 + let%span s06_map_precond4 = "06_map_precond.rs" 144 15 144 24 + let%span s06_map_precond5 = "06_map_precond.rs" 145 4 145 60 + let%span s06_map_precond6 = "06_map_precond.rs" 146 15 146 30 + let%span s06_map_precond7 = "06_map_precond.rs" 147 15 147 64 + let%span s06_map_precond8 = "06_map_precond.rs" 148 14 148 74 + let%span s06_map_precond9 = "06_map_precond.rs" 149 14 149 75 + let%span s06_map_precond10 = "06_map_precond.rs" 152 12 155 94 + let%span s06_map_precond11 = "06_map_precond.rs" 151 8 156 9 + let%span s06_map_precond12 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond13 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond14 = "06_map_precond.rs" 95 12 98 63 let%span scommon15 = "common.rs" 14 15 14 24 let%span scommon16 = "common.rs" 15 14 15 45 let%span scommon17 = "common.rs" 19 15 19 21 @@ -1187,11 +1187,11 @@ module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_m let%span sops27 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops28 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops29 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s06_map_precond30 = "06_map_precond.rs" 118 12 123 71 - let%span s06_map_precond31 = "06_map_precond.rs" 178 12 180 73 + let%span s06_map_precond30 = "06_map_precond.rs" 119 12 124 71 + let%span s06_map_precond31 = "06_map_precond.rs" 179 12 181 73 let%span sinvariant32 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sseq33 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s06_map_precond34 = "06_map_precond.rs" 130 12 134 47 + let%span s06_map_precond34 = "06_map_precond.rs" 131 12 135 47 let%span sboxed35 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 type t_I'0 @@ -1250,7 +1250,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_m predicate precondition'0 (self : t_F'0) (args : (t_Item'0, Snapshot.snap_ty (Seq.seq t_Item'0))) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond14] forall e : t_Item'0, i : t_I'0 [produces'0 iter (Seq.singleton e) i] . inv'1 e @@ -1319,7 +1319,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_m use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond30] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'5 s /\ inv'1 e1 /\ inv'1 e2 /\ inv'3 f /\ inv'2 b /\ inv'4 i /\ unnest'0 func f.current -> produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -1327,14 +1327,14 @@ module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_m -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond34] forall iter : borrowed t_I'0, func : t_F'0 . inv'8 iter /\ inv'6 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond13] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'5 s @@ -1347,7 +1347,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_m axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond12] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond31] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -1370,7 +1370,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_m constant iter : t_I'0 - function produces_one_invariant'0 [#"06_map_precond.rs" 149 4 149 73] (self : t_Map'0) (e : t_Item'0) (r : t_B'0) (f : borrowed t_F'0) (iter : t_I'0) : () + function produces_one_invariant'0 [#"06_map_precond.rs" 150 4 150 73] (self : t_Map'0) (e : t_Item'0) (r : t_B'0) (f : borrowed t_F'0) (iter : t_I'0) : () goal vc_produces_one_invariant'0 : ([%#s06_map_precond7] postcondition_mut'0 f.current (e, self.t_Map__produced'0) f.final r) @@ -1388,20 +1388,20 @@ module M_06_map_precond__qyi16548623944279504987__produces_one_invariant [#"06_m && (let _ = () in ([%#s06_map_precond8] preservation_inv'0 iter f.final (Seq.snoc (Snapshot.inner self.t_Map__produced'0) e)) && ([%#s06_map_precond9] next_precondition'0 iter f.final (Seq.snoc (Snapshot.inner self.t_Map__produced'0) e))) end -module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond.rs" 160 4 160 57] (* Map *) - let%span s06_map_precond0 = "06_map_precond.rs" 159 14 159 68 - let%span s06_map_precond1 = "06_map_precond.rs" 162 12 168 74 - let%span s06_map_precond2 = "06_map_precond.rs" 51 8 65 9 - let%span s06_map_precond3 = "06_map_precond.rs" 33 15 33 24 - let%span s06_map_precond4 = "06_map_precond.rs" 34 14 34 45 - let%span s06_map_precond5 = "06_map_precond.rs" 31 4 31 10 - let%span s06_map_precond6 = "06_map_precond.rs" 39 15 39 21 - let%span s06_map_precond7 = "06_map_precond.rs" 40 15 40 21 - let%span s06_map_precond8 = "06_map_precond.rs" 41 15 41 21 - let%span s06_map_precond9 = "06_map_precond.rs" 42 15 42 32 - let%span s06_map_precond10 = "06_map_precond.rs" 43 15 43 32 - let%span s06_map_precond11 = "06_map_precond.rs" 44 14 44 42 - let%span s06_map_precond12 = "06_map_precond.rs" 37 4 37 10 +module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond.rs" 161 4 161 57] (* Map *) + let%span s06_map_precond0 = "06_map_precond.rs" 160 14 160 68 + let%span s06_map_precond1 = "06_map_precond.rs" 163 12 169 74 + let%span s06_map_precond2 = "06_map_precond.rs" 52 8 66 9 + let%span s06_map_precond3 = "06_map_precond.rs" 34 15 34 24 + let%span s06_map_precond4 = "06_map_precond.rs" 35 14 35 45 + let%span s06_map_precond5 = "06_map_precond.rs" 32 4 32 10 + let%span s06_map_precond6 = "06_map_precond.rs" 40 15 40 21 + let%span s06_map_precond7 = "06_map_precond.rs" 41 15 41 21 + let%span s06_map_precond8 = "06_map_precond.rs" 42 15 42 21 + let%span s06_map_precond9 = "06_map_precond.rs" 43 15 43 32 + let%span s06_map_precond10 = "06_map_precond.rs" 44 15 44 32 + let%span s06_map_precond11 = "06_map_precond.rs" 45 14 45 42 + let%span s06_map_precond12 = "06_map_precond.rs" 38 4 38 10 let%span scommon13 = "common.rs" 14 15 14 24 let%span scommon14 = "common.rs" 15 14 15 45 let%span scommon15 = "common.rs" 19 15 19 21 @@ -1419,12 +1419,12 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond let%span sops27 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 let%span sinvariant28 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sseq29 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s06_map_precond30 = "06_map_precond.rs" 178 12 180 73 - let%span s06_map_precond31 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond32 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond33 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond34 = "06_map_precond.rs" 94 12 97 63 - let%span s06_map_precond35 = "06_map_precond.rs" 118 12 123 71 + let%span s06_map_precond30 = "06_map_precond.rs" 179 12 181 73 + let%span s06_map_precond31 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond32 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond33 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond34 = "06_map_precond.rs" 95 12 98 63 + let%span s06_map_precond35 = "06_map_precond.rs" 119 12 124 71 let%span sboxed36 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 use seq.Seq @@ -1485,7 +1485,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond predicate precondition'0 (self : t_F'0) (args : (t_Item'0, Snapshot.snap_ty (Seq.seq t_Item'0))) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond34] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'1 e @@ -1554,7 +1554,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond35] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'3 s /\ inv'1 e1 /\ inv'1 e2 /\ inv'0 f /\ inv'10 b /\ inv'5 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -1562,14 +1562,14 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond31] forall iter : borrowed t_I'0, func : t_F'0 . inv'9 iter /\ inv'6 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond33] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'3 s @@ -1582,7 +1582,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond32] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'3 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'3 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond30] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -1633,7 +1633,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond use seq.Seq - predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 50 4 50 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 51 4 51 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s06_map_precond2] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -1654,7 +1654,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond /\ precondition'0 (Seq.get fs i).current (Seq.get s i, Snapshot.new (Seq.(++) (Snapshot.inner self.t_Map__produced'0) (Seq.([..]) s 0 i))) /\ postcondition_mut'0 (Seq.get fs i).current (Seq.get s i, Snapshot.new (Seq.(++) (Snapshot.inner self.t_Map__produced'0) (Seq.([..]) s 0 i))) (Seq.get fs i).final (Seq.get visited i)))) - function produces_trans'0 [#"06_map_precond.rs" 45 4 45 90] (a : t_Map'0) (ab : Seq.seq t_B'0) (b : t_Map'0) (bc : Seq.seq t_B'0) (c : t_Map'0) : () + function produces_trans'0 [#"06_map_precond.rs" 46 4 46 90] (a : t_Map'0) (ab : Seq.seq t_B'0) (b : t_Map'0) (bc : Seq.seq t_B'0) (c : t_Map'0) : () = [%#s06_map_precond12] () @@ -1665,7 +1665,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond -> ([%#s06_map_precond9] produces'0 a ab b) -> ([%#s06_map_precond10] produces'0 b bc c) -> ([%#s06_map_precond11] produces'0 a (Seq.(++) ab bc) c) - function produces_refl'0 [#"06_map_precond.rs" 35 4 35 26] (self : t_Map'0) : () = + function produces_refl'0 [#"06_map_precond.rs" 36 4 36 26] (self : t_Map'0) : () = [%#s06_map_precond5] () axiom produces_refl'0_spec : forall self : t_Map'0 . ([%#s06_map_precond3] inv'4 self) @@ -1677,7 +1677,7 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond constant succ : t_Map'0 - predicate produces_one'0 [#"06_map_precond.rs" 160 4 160 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) + predicate produces_one'0 [#"06_map_precond.rs" 161 4 161 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) goal vc_produces_one'0 : [%#s06_map_precond0] ([%#s06_map_precond1] exists f : borrowed t_F'0, e : t_Item'0 [postcondition_mut'0 f.current (e, self.t_Map__produced'0) f.final visited] . inv'0 f /\ inv'1 e @@ -1689,17 +1689,17 @@ module M_06_map_precond__qyi16548623944279504987__produces_one [#"06_map_precond /\ postcondition_mut'0 f.current (e, self.t_Map__produced'0) f.final visited) = produces'0 self (Seq.singleton visited) succ end -module M_06_map_precond__map [#"06_map_precond.rs" 191 0 194 17] - let%span s06_map_precond0 = "06_map_precond.rs" 195 32 195 54 - let%span s06_map_precond1 = "06_map_precond.rs" 192 4 192 8 - let%span s06_map_precond2 = "06_map_precond.rs" 193 4 193 8 - let%span s06_map_precond3 = "06_map_precond.rs" 185 11 187 65 - let%span s06_map_precond4 = "06_map_precond.rs" 188 11 188 41 - let%span s06_map_precond5 = "06_map_precond.rs" 189 11 189 51 - let%span s06_map_precond6 = "06_map_precond.rs" 194 5 194 17 - let%span s06_map_precond7 = "06_map_precond.rs" 190 10 190 75 - let%span s06_map_precond8 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond9 = "06_map_precond.rs" 118 12 123 71 +module M_06_map_precond__map [#"06_map_precond.rs" 192 0 195 17] + let%span s06_map_precond0 = "06_map_precond.rs" 196 32 196 54 + let%span s06_map_precond1 = "06_map_precond.rs" 193 4 193 8 + let%span s06_map_precond2 = "06_map_precond.rs" 194 4 194 8 + let%span s06_map_precond3 = "06_map_precond.rs" 186 11 188 65 + let%span s06_map_precond4 = "06_map_precond.rs" 189 11 189 41 + let%span s06_map_precond5 = "06_map_precond.rs" 190 11 190 51 + let%span s06_map_precond6 = "06_map_precond.rs" 195 5 195 17 + let%span s06_map_precond7 = "06_map_precond.rs" 191 10 191 75 + let%span s06_map_precond8 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond9 = "06_map_precond.rs" 119 12 124 71 let%span scommon10 = "common.rs" 14 15 14 24 let%span scommon11 = "common.rs" 15 14 15 45 let%span scommon12 = "common.rs" 19 15 19 21 @@ -1708,7 +1708,7 @@ module M_06_map_precond__map [#"06_map_precond.rs" 191 0 194 17] let%span scommon15 = "common.rs" 22 15 22 32 let%span scommon16 = "common.rs" 23 15 23 32 let%span scommon17 = "common.rs" 24 14 24 42 - let%span s06_map_precond18 = "06_map_precond.rs" 94 12 97 63 + let%span s06_map_precond18 = "06_map_precond.rs" 95 12 98 63 let%span sops19 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops20 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops21 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -1716,11 +1716,11 @@ module M_06_map_precond__map [#"06_map_precond.rs" 191 0 194 17] let%span sops23 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops24 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops25 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s06_map_precond26 = "06_map_precond.rs" 178 12 180 73 + let%span s06_map_precond26 = "06_map_precond.rs" 179 12 181 73 let%span sinvariant27 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sseq28 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s06_map_precond29 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond30 = "06_map_precond.rs" 105 12 111 88 + let%span s06_map_precond29 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond30 = "06_map_precond.rs" 106 12 112 88 let%span sboxed31 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 use seq.Seq @@ -1781,7 +1781,7 @@ module M_06_map_precond__map [#"06_map_precond.rs" 191 0 194 17] predicate completed'0 [#"common.rs" 11 4 11 36] (self : borrowed t_I'0) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond18] forall e : t_Item'0, i : t_I'0 [produces'0 iter (Seq.singleton e) i] . inv'2 e @@ -1850,7 +1850,7 @@ module M_06_map_precond__map [#"06_map_precond.rs" 191 0 194 17] use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond9] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'5 s /\ inv'2 e1 /\ inv'2 e2 /\ inv'6 f /\ inv'7 b /\ inv'0 i /\ unnest'0 func f.current -> produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -1858,14 +1858,14 @@ module M_06_map_precond__map [#"06_map_precond.rs" 191 0 194 17] -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond8] forall iter : borrowed t_I'0, func : t_F'0 . inv'4 iter /\ inv'1 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond30] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'5 s @@ -1878,7 +1878,7 @@ module M_06_map_precond__map [#"06_map_precond.rs" 191 0 194 17] axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond29] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond26] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -1925,19 +1925,19 @@ module M_06_map_precond__map [#"06_map_precond.rs" 191 0 194 17] (! return' {result}) ] end -module M_06_map_precond__identity [#"06_map_precond.rs" 198 0 198 37] - let%span s06_map_precond0 = "06_map_precond.rs" 198 29 198 33 - let%span s06_map_precond1 = "06_map_precond.rs" 199 15 199 16 - let%span s06_map_precond2 = "06_map_precond.rs" 199 14 199 20 - let%span s06_map_precond3 = "06_map_precond.rs" 192 4 192 8 - let%span s06_map_precond4 = "06_map_precond.rs" 193 4 193 8 - let%span s06_map_precond5 = "06_map_precond.rs" 185 11 187 65 - let%span s06_map_precond6 = "06_map_precond.rs" 188 11 188 41 - let%span s06_map_precond7 = "06_map_precond.rs" 189 11 189 51 - let%span s06_map_precond8 = "06_map_precond.rs" 194 5 194 17 - let%span s06_map_precond9 = "06_map_precond.rs" 190 10 190 75 - let%span s06_map_precond10 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond11 = "06_map_precond.rs" 118 12 123 71 +module M_06_map_precond__identity [#"06_map_precond.rs" 199 0 199 37] + let%span s06_map_precond0 = "06_map_precond.rs" 199 29 199 33 + let%span s06_map_precond1 = "06_map_precond.rs" 200 15 200 16 + let%span s06_map_precond2 = "06_map_precond.rs" 200 14 200 20 + let%span s06_map_precond3 = "06_map_precond.rs" 193 4 193 8 + let%span s06_map_precond4 = "06_map_precond.rs" 194 4 194 8 + let%span s06_map_precond5 = "06_map_precond.rs" 186 11 188 65 + let%span s06_map_precond6 = "06_map_precond.rs" 189 11 189 41 + let%span s06_map_precond7 = "06_map_precond.rs" 190 11 190 51 + let%span s06_map_precond8 = "06_map_precond.rs" 195 5 195 17 + let%span s06_map_precond9 = "06_map_precond.rs" 191 10 191 75 + let%span s06_map_precond10 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond11 = "06_map_precond.rs" 119 12 124 71 let%span sresolve12 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span scommon13 = "common.rs" 14 15 14 24 let%span scommon14 = "common.rs" 15 14 15 45 @@ -1954,10 +1954,10 @@ module M_06_map_precond__identity [#"06_map_precond.rs" 198 0 198 37] let%span sops25 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops26 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops27 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s06_map_precond28 = "06_map_precond.rs" 94 12 97 63 - let%span s06_map_precond29 = "06_map_precond.rs" 178 12 180 73 - let%span s06_map_precond30 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond31 = "06_map_precond.rs" 105 12 111 88 + let%span s06_map_precond28 = "06_map_precond.rs" 95 12 98 63 + let%span s06_map_precond29 = "06_map_precond.rs" 179 12 181 73 + let%span s06_map_precond30 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond31 = "06_map_precond.rs" 106 12 112 88 let%span sinvariant32 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sseq33 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sboxed34 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -2069,7 +2069,7 @@ module M_06_map_precond__identity [#"06_map_precond.rs" 198 0 198 37] predicate completed'0 [#"common.rs" 11 4 11 36] (self : borrowed t_I'0) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : ()) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : ()) (produced : Seq.seq t_Item'0) = [%#s06_map_precond28] forall e : t_Item'0, i : t_I'0 [produces'0 iter (Seq.singleton e) i] . inv'2 e @@ -2101,7 +2101,7 @@ module M_06_map_precond__identity [#"06_map_precond.rs" 198 0 198 37] use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : ()) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : ()) = [%#s06_map_precond11] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed (), b : t_Item'0, i : t_I'0 . inv'5 s /\ inv'2 e1 /\ inv'2 e2 /\ inv'6 f /\ inv'2 b /\ inv'1 i /\ unnest'0 func f.current -> produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -2109,7 +2109,7 @@ module M_06_map_precond__identity [#"06_map_precond.rs" 198 0 198 37] -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond10] forall iter : borrowed t_I'0, func : () . inv'4 iter /\ inv'3 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func @@ -2119,7 +2119,7 @@ module M_06_map_precond__identity [#"06_map_precond.rs" 198 0 198 37] use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : ()) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : ()) (produced : Seq.seq t_Item'0) = [%#s06_map_precond31] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed (), b : t_Item'0, i : t_I'0 [produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'5 s @@ -2132,7 +2132,7 @@ module M_06_map_precond__identity [#"06_map_precond.rs" 198 0 198 37] axiom preservation_inv'0_spec : forall iter : t_I'0, func : (), produced : Seq.seq t_Item'0 . [%#s06_map_precond30] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond29] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -2177,34 +2177,34 @@ module M_06_map_precond__identity [#"06_map_precond.rs" 198 0 198 37] [ return' (result:())-> (! return' {result}) ] end -module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] - let%span s06_map_precond0 = "06_map_precond.rs" 215 8 216 71 - let%span s06_map_precond1 = "06_map_precond.rs" 206 42 206 46 - let%span s06_map_precond2 = "06_map_precond.rs" 202 11 202 169 - let%span s06_map_precond3 = "06_map_precond.rs" 203 11 204 63 - let%span s06_map_precond4 = "06_map_precond.rs" 211 24 211 25 - let%span s06_map_precond5 = "06_map_precond.rs" 209 19 209 27 - let%span s06_map_precond6 = "06_map_precond.rs" 210 18 210 33 - let%span s06_map_precond7 = "06_map_precond.rs" 192 4 192 8 - let%span s06_map_precond8 = "06_map_precond.rs" 193 4 193 8 - let%span s06_map_precond9 = "06_map_precond.rs" 185 11 187 65 - let%span s06_map_precond10 = "06_map_precond.rs" 188 11 188 41 - let%span s06_map_precond11 = "06_map_precond.rs" 189 11 189 51 - let%span s06_map_precond12 = "06_map_precond.rs" 194 5 194 17 - let%span s06_map_precond13 = "06_map_precond.rs" 190 10 190 75 - let%span s06_map_precond14 = "06_map_precond.rs" 51 8 65 9 - let%span s06_map_precond15 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond16 = "06_map_precond.rs" 118 12 123 71 - let%span s06_map_precond17 = "06_map_precond.rs" 33 15 33 24 - let%span s06_map_precond18 = "06_map_precond.rs" 34 14 34 45 - let%span s06_map_precond19 = "06_map_precond.rs" 31 4 31 10 - let%span s06_map_precond20 = "06_map_precond.rs" 39 15 39 21 - let%span s06_map_precond21 = "06_map_precond.rs" 40 15 40 21 - let%span s06_map_precond22 = "06_map_precond.rs" 41 15 41 21 - let%span s06_map_precond23 = "06_map_precond.rs" 42 15 42 32 - let%span s06_map_precond24 = "06_map_precond.rs" 43 15 43 32 - let%span s06_map_precond25 = "06_map_precond.rs" 44 14 44 42 - let%span s06_map_precond26 = "06_map_precond.rs" 37 4 37 10 +module M_06_map_precond__increment [#"06_map_precond.rs" 207 0 207 50] + let%span s06_map_precond0 = "06_map_precond.rs" 216 8 217 71 + let%span s06_map_precond1 = "06_map_precond.rs" 207 42 207 46 + let%span s06_map_precond2 = "06_map_precond.rs" 203 11 203 169 + let%span s06_map_precond3 = "06_map_precond.rs" 204 11 205 63 + let%span s06_map_precond4 = "06_map_precond.rs" 212 24 212 25 + let%span s06_map_precond5 = "06_map_precond.rs" 210 19 210 27 + let%span s06_map_precond6 = "06_map_precond.rs" 211 18 211 33 + let%span s06_map_precond7 = "06_map_precond.rs" 193 4 193 8 + let%span s06_map_precond8 = "06_map_precond.rs" 194 4 194 8 + let%span s06_map_precond9 = "06_map_precond.rs" 186 11 188 65 + let%span s06_map_precond10 = "06_map_precond.rs" 189 11 189 41 + let%span s06_map_precond11 = "06_map_precond.rs" 190 11 190 51 + let%span s06_map_precond12 = "06_map_precond.rs" 195 5 195 17 + let%span s06_map_precond13 = "06_map_precond.rs" 191 10 191 75 + let%span s06_map_precond14 = "06_map_precond.rs" 52 8 66 9 + let%span s06_map_precond15 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond16 = "06_map_precond.rs" 119 12 124 71 + let%span s06_map_precond17 = "06_map_precond.rs" 34 15 34 24 + let%span s06_map_precond18 = "06_map_precond.rs" 35 14 35 45 + let%span s06_map_precond19 = "06_map_precond.rs" 32 4 32 10 + let%span s06_map_precond20 = "06_map_precond.rs" 40 15 40 21 + let%span s06_map_precond21 = "06_map_precond.rs" 41 15 41 21 + let%span s06_map_precond22 = "06_map_precond.rs" 42 15 42 21 + let%span s06_map_precond23 = "06_map_precond.rs" 43 15 43 32 + let%span s06_map_precond24 = "06_map_precond.rs" 44 15 44 32 + let%span s06_map_precond25 = "06_map_precond.rs" 45 14 45 42 + let%span s06_map_precond26 = "06_map_precond.rs" 38 4 38 10 let%span scommon27 = "common.rs" 14 15 14 24 let%span scommon28 = "common.rs" 15 14 15 45 let%span scommon29 = "common.rs" 19 15 19 21 @@ -2221,11 +2221,11 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] let%span sops40 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops41 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops42 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s06_map_precond43 = "06_map_precond.rs" 94 12 97 63 - let%span s06_map_precond44 = "06_map_precond.rs" 178 12 180 73 + let%span s06_map_precond43 = "06_map_precond.rs" 95 12 98 63 + let%span s06_map_precond44 = "06_map_precond.rs" 179 12 181 73 let%span sinvariant45 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span s06_map_precond46 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond47 = "06_map_precond.rs" 105 12 111 88 + let%span s06_map_precond46 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond47 = "06_map_precond.rs" 106 12 112 88 use prelude.prelude.Borrow @@ -2352,7 +2352,7 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] predicate completed'0 [#"common.rs" 11 4 11 36] (self : borrowed t_U'0) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_U'0) (func : ()) (produced : Seq.seq uint32) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_U'0) (func : ()) (produced : Seq.seq uint32) = [%#s06_map_precond43] forall e : uint32, i : t_U'0 [produces'1 iter (Seq.singleton e) i] . inv'5 e /\ inv'2 i /\ produces'1 iter (Seq.singleton e) i -> precondition'0 func (e, Snapshot.new produced) @@ -2367,7 +2367,7 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_U'0) (func : ()) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_U'0) (func : ()) = [%#s06_map_precond16] forall s : Seq.seq uint32, e1 : uint32, e2 : uint32, f : borrowed (), b : uint32, i : t_U'0 . inv'1 s /\ inv'5 e1 /\ inv'5 e2 /\ inv'7 f /\ inv'5 b /\ inv'2 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -2375,7 +2375,7 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond15] forall iter : borrowed t_U'0, func : () . inv'3 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq uint32) /\ preservation'0 iter.final func @@ -2385,7 +2385,7 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_U'0) (func : ()) (produced : Seq.seq uint32) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_U'0) (func : ()) (produced : Seq.seq uint32) = [%#s06_map_precond47] forall s : Seq.seq uint32, e1 : uint32, e2 : uint32, f : borrowed (), b : uint32, i : t_U'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'1 s @@ -2398,7 +2398,7 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] axiom preservation_inv'0_spec : forall iter : t_U'0, func : (), produced : Seq.seq uint32 . [%#s06_map_precond46] produced = (Seq.empty : Seq.seq uint32) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond44] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -2442,7 +2442,7 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] use seq.Seq - predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 50 4 50 67] (self : t_Map'0) (visited : Seq.seq uint32) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 51 4 51 67] (self : t_Map'0) (visited : Seq.seq uint32) (succ : t_Map'0) = [%#s06_map_precond14] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -2463,7 +2463,7 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] /\ precondition'0 (Seq.get fs i).current (Seq.get s i, Snapshot.new (Seq.(++) (Snapshot.inner self.t_Map__produced'0) (Seq.([..]) s 0 i))) /\ postcondition_mut'0 (Seq.get fs i).current (Seq.get s i, Snapshot.new (Seq.(++) (Snapshot.inner self.t_Map__produced'0) (Seq.([..]) s 0 i))) (Seq.get fs i).final (Seq.get visited i)))) - function produces_trans'0 [#"06_map_precond.rs" 45 4 45 90] (a : t_Map'0) (ab : Seq.seq uint32) (b : t_Map'0) (bc : Seq.seq uint32) (c : t_Map'0) : () + function produces_trans'0 [#"06_map_precond.rs" 46 4 46 90] (a : t_Map'0) (ab : Seq.seq uint32) (b : t_Map'0) (bc : Seq.seq uint32) (c : t_Map'0) : () = [%#s06_map_precond26] () @@ -2474,7 +2474,7 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] -> ([%#s06_map_precond23] produces'0 a ab b) -> ([%#s06_map_precond24] produces'0 b bc c) -> ([%#s06_map_precond25] produces'0 a (Seq.(++) ab bc) c) - function produces_refl'0 [#"06_map_precond.rs" 35 4 35 26] (self : t_Map'0) : () = + function produces_refl'0 [#"06_map_precond.rs" 36 4 36 26] (self : t_Map'0) : () = [%#s06_map_precond19] () axiom produces_refl'0_spec : forall self : t_Map'0 . ([%#s06_map_precond17] inv'0 self) @@ -2509,23 +2509,23 @@ module M_06_map_precond__increment [#"06_map_precond.rs" 206 0 206 50] [ return' (result:())-> (! return' {result}) ] end -module M_06_map_precond__counter [#"06_map_precond.rs" 222 0 222 48] - let%span s06_map_precond0 = "06_map_precond.rs" 223 18 223 19 - let%span s06_map_precond1 = "06_map_precond.rs" 222 40 222 44 - let%span s06_map_precond2 = "06_map_precond.rs" 220 11 220 169 - let%span s06_map_precond3 = "06_map_precond.rs" 221 11 221 115 - let%span s06_map_precond4 = "06_map_precond.rs" 229 19 229 20 - let%span s06_map_precond5 = "06_map_precond.rs" 226 19 226 61 - let%span s06_map_precond6 = "06_map_precond.rs" 227 18 227 39 - let%span s06_map_precond7 = "06_map_precond.rs" 192 4 192 8 - let%span s06_map_precond8 = "06_map_precond.rs" 193 4 193 8 - let%span s06_map_precond9 = "06_map_precond.rs" 185 11 187 65 - let%span s06_map_precond10 = "06_map_precond.rs" 188 11 188 41 - let%span s06_map_precond11 = "06_map_precond.rs" 189 11 189 51 - let%span s06_map_precond12 = "06_map_precond.rs" 194 5 194 17 - let%span s06_map_precond13 = "06_map_precond.rs" 190 10 190 75 - let%span s06_map_precond14 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond15 = "06_map_precond.rs" 118 12 123 71 +module M_06_map_precond__counter [#"06_map_precond.rs" 223 0 223 48] + let%span s06_map_precond0 = "06_map_precond.rs" 224 18 224 19 + let%span s06_map_precond1 = "06_map_precond.rs" 223 40 223 44 + let%span s06_map_precond2 = "06_map_precond.rs" 221 11 221 169 + let%span s06_map_precond3 = "06_map_precond.rs" 222 11 222 115 + let%span s06_map_precond4 = "06_map_precond.rs" 230 19 230 20 + let%span s06_map_precond5 = "06_map_precond.rs" 227 19 227 61 + let%span s06_map_precond6 = "06_map_precond.rs" 228 18 228 39 + let%span s06_map_precond7 = "06_map_precond.rs" 193 4 193 8 + let%span s06_map_precond8 = "06_map_precond.rs" 194 4 194 8 + let%span s06_map_precond9 = "06_map_precond.rs" 186 11 188 65 + let%span s06_map_precond10 = "06_map_precond.rs" 189 11 189 41 + let%span s06_map_precond11 = "06_map_precond.rs" 190 11 190 51 + let%span s06_map_precond12 = "06_map_precond.rs" 195 5 195 17 + let%span s06_map_precond13 = "06_map_precond.rs" 191 10 191 75 + let%span s06_map_precond14 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond15 = "06_map_precond.rs" 119 12 124 71 let%span scommon16 = "common.rs" 14 15 14 24 let%span scommon17 = "common.rs" 15 14 15 45 let%span scommon18 = "common.rs" 19 15 19 21 @@ -2542,11 +2542,11 @@ module M_06_map_precond__counter [#"06_map_precond.rs" 222 0 222 48] let%span sops29 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops30 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops31 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s06_map_precond32 = "06_map_precond.rs" 94 12 97 63 - let%span s06_map_precond33 = "06_map_precond.rs" 178 12 180 73 + let%span s06_map_precond32 = "06_map_precond.rs" 95 12 98 63 + let%span s06_map_precond33 = "06_map_precond.rs" 179 12 181 73 let%span sinvariant34 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span s06_map_precond35 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond36 = "06_map_precond.rs" 105 12 111 88 + let%span s06_map_precond35 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond36 = "06_map_precond.rs" 106 12 112 88 use prelude.prelude.UIntSize @@ -2702,7 +2702,7 @@ module M_06_map_precond__counter [#"06_map_precond.rs" 222 0 222 48] predicate completed'0 [#"common.rs" 11 4 11 36] (self : borrowed t_I'0) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : closure2'1) (produced : Seq.seq uint32) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : closure2'1) (produced : Seq.seq uint32) = [%#s06_map_precond32] forall e : uint32, i : t_I'0 [produces'0 iter (Seq.singleton e) i] . inv'5 e @@ -2718,7 +2718,7 @@ module M_06_map_precond__counter [#"06_map_precond.rs" 222 0 222 48] use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : closure2'1) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : closure2'1) = [%#s06_map_precond15] forall s : Seq.seq uint32, e1 : uint32, e2 : uint32, f : borrowed closure2'1, b : uint32, i : t_I'0 . inv'3 s /\ inv'5 e1 /\ inv'5 e2 /\ inv'6 f /\ inv'5 b /\ inv'1 i /\ unnest'0 func f.current -> produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -2726,7 +2726,7 @@ module M_06_map_precond__counter [#"06_map_precond.rs" 222 0 222 48] -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond14] forall iter : borrowed t_I'0, func : closure2'1 . inv'2 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq uint32) /\ preservation'0 iter.final func @@ -2734,7 +2734,7 @@ module M_06_map_precond__counter [#"06_map_precond.rs" 222 0 222 48] type t_Map'0 = { t_Map__iter'0: t_I'0; t_Map__func'0: closure2'1; t_Map__produced'0: Snapshot.snap_ty (Seq.seq uint32) } - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : closure2'1) (produced : Seq.seq uint32) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : closure2'1) (produced : Seq.seq uint32) = [%#s06_map_precond36] forall s : Seq.seq uint32, e1 : uint32, e2 : uint32, f : borrowed closure2'1, b : uint32, i : t_I'0 [produces'0 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'3 s @@ -2747,7 +2747,7 @@ module M_06_map_precond__counter [#"06_map_precond.rs" 222 0 222 48] axiom preservation_inv'0_spec : forall iter : t_I'0, func : closure2'1, produced : Seq.seq uint32 . [%#s06_map_precond35] produced = (Seq.empty : Seq.seq uint32) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond33] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -2804,12 +2804,12 @@ module M_06_map_precond__counter [#"06_map_precond.rs" 222 0 222 48] | & _8 : borrowed usize = any_l () ] [ return' (result:())-> (! return' {result}) ] end -module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precond.rs" 72 4 72 44] (* as common::Iterator> *) - let%span s06_map_precond0 = "06_map_precond.rs" 72 4 72 44 - let%span s06_map_precond1 = "06_map_precond.rs" 25 8 28 9 - let%span s06_map_precond2 = "06_map_precond.rs" 159 14 159 68 - let%span s06_map_precond3 = "06_map_precond.rs" 162 12 168 74 - let%span s06_map_precond4 = "06_map_precond.rs" 51 8 65 9 +module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precond.rs" 73 4 73 44] (* as common::Iterator> *) + let%span s06_map_precond0 = "06_map_precond.rs" 73 4 73 44 + let%span s06_map_precond1 = "06_map_precond.rs" 26 8 29 9 + let%span s06_map_precond2 = "06_map_precond.rs" 160 14 160 68 + let%span s06_map_precond3 = "06_map_precond.rs" 163 12 169 74 + let%span s06_map_precond4 = "06_map_precond.rs" 52 8 66 9 let%span scommon5 = "common.rs" 14 15 14 24 let%span scommon6 = "common.rs" 15 14 15 45 let%span scommon7 = "common.rs" 19 15 19 21 @@ -2827,13 +2827,13 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon let%span sops19 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops20 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 let%span sseq21 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s06_map_precond22 = "06_map_precond.rs" 178 12 180 73 - let%span s06_map_precond23 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond24 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond25 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond26 = "06_map_precond.rs" 94 12 97 63 + let%span s06_map_precond22 = "06_map_precond.rs" 179 12 181 73 + let%span s06_map_precond23 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond24 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond25 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond26 = "06_map_precond.rs" 95 12 98 63 let%span sboxed27 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 - let%span s06_map_precond28 = "06_map_precond.rs" 118 12 123 71 + let%span s06_map_precond28 = "06_map_precond.rs" 119 12 124 71 use prelude.prelude.Borrow @@ -2891,7 +2891,7 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon predicate precondition'0 (self : t_F'0) (args : (t_Item'0, Snapshot.snap_ty (Seq.seq t_Item'0))) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond26] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'3 e @@ -2960,7 +2960,7 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond28] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'5 s /\ inv'3 e1 /\ inv'3 e2 /\ inv'2 f /\ inv'6 b /\ inv'7 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -2968,14 +2968,14 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond23] forall iter : borrowed t_I'0, func : t_F'0 . inv'12 iter /\ inv'9 func -> completed'1 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond25] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'5 s @@ -2988,7 +2988,7 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond24] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'4 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'4 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond22] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -3012,7 +3012,7 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon | C_None'0 | C_Some'0 t_B'0 - predicate completed'0 [#"06_map_precond.rs" 24 4 24 35] (self : borrowed (t_Map'0)) = + predicate completed'0 [#"06_map_precond.rs" 25 4 25 35] (self : borrowed (t_Map'0)) = [%#s06_map_precond1] Snapshot.inner (self.final).t_Map__produced'0 = (Seq.empty : Seq.seq t_Item'0) /\ completed'1 (Borrow.borrow_logic (self.current).t_Map__iter'0 (self.final).t_Map__iter'0 (Borrow.inherit_id (Borrow.get_id self) 1)) /\ (self.current).t_Map__func'0 = (self.final).t_Map__func'0 @@ -3053,7 +3053,7 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon use seq.Seq - predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 50 4 50 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 51 4 51 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s06_map_precond4] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -3074,7 +3074,7 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon /\ precondition'0 (Seq.get fs i).current (Seq.get s i, Snapshot.new (Seq.(++) (Snapshot.inner self.t_Map__produced'0) (Seq.([..]) s 0 i))) /\ postcondition_mut'0 (Seq.get fs i).current (Seq.get s i, Snapshot.new (Seq.(++) (Snapshot.inner self.t_Map__produced'0) (Seq.([..]) s 0 i))) (Seq.get fs i).final (Seq.get visited i)))) - predicate produces_one'0 [#"06_map_precond.rs" 160 4 160 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) = + predicate produces_one'0 [#"06_map_precond.rs" 161 4 161 57] (self : t_Map'0) (visited : t_B'0) (succ : t_Map'0) = [%#s06_map_precond3] exists f : borrowed t_F'0, e : t_Item'0 [postcondition_mut'0 f.current (e, self.t_Map__produced'0) f.final visited] . inv'2 f /\ inv'3 e /\ f.current = self.t_Map__func'0 @@ -3108,9 +3108,9 @@ module M_06_map_precond__qyi18374305379273630819__next__refines [#"06_map_precon end /\ inv'1 result) end -module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_map_precond.rs" 35 4 35 26] (* as common::Iterator> *) - let%span s06_map_precond0 = "06_map_precond.rs" 35 4 35 26 - let%span s06_map_precond1 = "06_map_precond.rs" 51 8 65 9 +module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_map_precond.rs" 36 4 36 26] (* as common::Iterator> *) + let%span s06_map_precond0 = "06_map_precond.rs" 36 4 36 26 + let%span s06_map_precond1 = "06_map_precond.rs" 52 8 66 9 let%span scommon2 = "common.rs" 14 15 14 24 let%span scommon3 = "common.rs" 15 14 15 45 let%span scommon4 = "common.rs" 19 15 19 21 @@ -3119,7 +3119,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_m let%span scommon7 = "common.rs" 22 15 22 32 let%span scommon8 = "common.rs" 23 15 23 32 let%span scommon9 = "common.rs" 24 14 24 42 - let%span s06_map_precond10 = "06_map_precond.rs" 178 12 180 73 + let%span s06_map_precond10 = "06_map_precond.rs" 179 12 181 73 let%span sops11 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops12 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops13 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -3127,12 +3127,12 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_m let%span sops15 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops16 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops17 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s06_map_precond18 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond19 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond20 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond21 = "06_map_precond.rs" 94 12 97 63 + let%span s06_map_precond18 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond19 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond20 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond21 = "06_map_precond.rs" 95 12 98 63 let%span sseq22 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s06_map_precond23 = "06_map_precond.rs" 118 12 123 71 + let%span s06_map_precond23 = "06_map_precond.rs" 119 12 124 71 let%span sinvariant24 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sboxed25 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -3192,7 +3192,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_m predicate precondition'0 (self : t_F'0) (args : (t_Item'0, Snapshot.snap_ty (Seq.seq t_Item'0))) - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond21] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'6 e @@ -3261,7 +3261,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_m use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond23] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'2 s /\ inv'6 e1 /\ inv'6 e2 /\ inv'7 f /\ inv'8 b /\ inv'3 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -3269,14 +3269,14 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_m -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond18] forall iter : borrowed t_I'0, func : t_F'0 . inv'5 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func use prelude.prelude.Snapshot - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond20] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'2 s @@ -3289,7 +3289,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_m axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond19] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond10] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) @@ -3338,7 +3338,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_m use seq.Seq - predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 50 4 50 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 51 4 51 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s06_map_precond1] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -3364,9 +3364,9 @@ module M_06_map_precond__qyi18374305379273630819__produces_refl__refines [#"06_m /\ (forall result : () . produces'0 self (Seq.empty : Seq.seq t_B'0) self -> produces'0 self (Seq.empty : Seq.seq t_B'0) self) end -module M_06_map_precond__qyi18374305379273630819__produces_trans__refines [#"06_map_precond.rs" 45 4 45 90] (* as common::Iterator> *) - let%span s06_map_precond0 = "06_map_precond.rs" 45 4 45 90 - let%span s06_map_precond1 = "06_map_precond.rs" 51 8 65 9 +module M_06_map_precond__qyi18374305379273630819__produces_trans__refines [#"06_map_precond.rs" 46 4 46 90] (* as common::Iterator> *) + let%span s06_map_precond0 = "06_map_precond.rs" 46 4 46 90 + let%span s06_map_precond1 = "06_map_precond.rs" 52 8 66 9 let%span scommon2 = "common.rs" 14 15 14 24 let%span scommon3 = "common.rs" 15 14 15 45 let%span scommon4 = "common.rs" 19 15 19 21 @@ -3382,13 +3382,13 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans__refines [#"06_ let%span sops14 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops15 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops16 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s06_map_precond17 = "06_map_precond.rs" 178 12 180 73 + let%span s06_map_precond17 = "06_map_precond.rs" 179 12 181 73 let%span sseq18 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 - let%span s06_map_precond19 = "06_map_precond.rs" 130 12 134 47 - let%span s06_map_precond20 = "06_map_precond.rs" 102 14 102 81 - let%span s06_map_precond21 = "06_map_precond.rs" 105 12 111 88 - let%span s06_map_precond22 = "06_map_precond.rs" 94 12 97 63 - let%span s06_map_precond23 = "06_map_precond.rs" 118 12 123 71 + let%span s06_map_precond19 = "06_map_precond.rs" 131 12 135 47 + let%span s06_map_precond20 = "06_map_precond.rs" 103 14 103 81 + let%span s06_map_precond21 = "06_map_precond.rs" 106 12 112 88 + let%span s06_map_precond22 = "06_map_precond.rs" 95 12 98 63 + let%span s06_map_precond23 = "06_map_precond.rs" 119 12 124 71 let%span sboxed24 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 let%span sinvariant25 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -3532,7 +3532,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans__refines [#"06_ use seq.Seq - predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 50 4 50 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) + predicate produces'0 [@inline:trivial] [#"06_map_precond.rs" 51 4 51 67] (self : t_Map'0) (visited : Seq.seq t_B'0) (succ : t_Map'0) = [%#s06_map_precond1] unnest'0 self.t_Map__func'0 succ.t_Map__func'0 @@ -3564,7 +3564,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans__refines [#"06_ use seq.Seq - predicate next_precondition'0 [#"06_map_precond.rs" 92 4 92 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate next_precondition'0 [#"06_map_precond.rs" 93 4 93 74] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond22] forall e : t_Item'0, i : t_I'0 [produces'1 iter (Seq.singleton e) i] . inv'8 e @@ -3574,7 +3574,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans__refines [#"06_ use seq.Seq - predicate preservation'0 [#"06_map_precond.rs" 116 4 116 45] (iter : t_I'0) (func : t_F'0) = + predicate preservation'0 [#"06_map_precond.rs" 117 4 117 45] (iter : t_I'0) (func : t_F'0) = [%#s06_map_precond23] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 . inv'2 s /\ inv'8 e1 /\ inv'8 e2 /\ inv'9 f /\ inv'10 b /\ inv'3 i /\ unnest'0 func f.current -> produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i @@ -3582,12 +3582,12 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans__refines [#"06_ -> postcondition_mut'0 f.current (e1, Snapshot.new s) f.final b -> precondition'0 f.final (e2, Snapshot.new (Seq.snoc s e1)) - predicate reinitialize'0 [#"06_map_precond.rs" 128 4 128 29] (_1 : ()) = + predicate reinitialize'0 [#"06_map_precond.rs" 129 4 129 29] (_1 : ()) = [%#s06_map_precond19] forall iter : borrowed t_I'0, func : t_F'0 . inv'7 iter /\ inv'4 func -> completed'0 iter -> next_precondition'0 iter.final func (Seq.empty : Seq.seq t_Item'0) /\ preservation'0 iter.final func - predicate preservation_inv'0 [#"06_map_precond.rs" 103 4 103 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) + predicate preservation_inv'0 [#"06_map_precond.rs" 104 4 104 73] (iter : t_I'0) (func : t_F'0) (produced : Seq.seq t_Item'0) = [%#s06_map_precond21] forall s : Seq.seq t_Item'0, e1 : t_Item'0, e2 : t_Item'0, f : borrowed t_F'0, b : t_B'0, i : t_I'0 [produces'1 iter (Seq.snoc (Seq.snoc s e1) e2) i, postcondition_mut'0 f.current (e1, Snapshot.new (Seq.(++) produced s)) f.final b] . inv'2 s @@ -3600,7 +3600,7 @@ module M_06_map_precond__qyi18374305379273630819__produces_trans__refines [#"06_ axiom preservation_inv'0_spec : forall iter : t_I'0, func : t_F'0, produced : Seq.seq t_Item'0 . [%#s06_map_precond20] produced = (Seq.empty : Seq.seq t_Item'0) -> preservation_inv'0 iter func produced = preservation'0 iter func - predicate invariant'0 [#"06_map_precond.rs" 176 4 176 30] (self : t_Map'0) = + predicate invariant'0 [#"06_map_precond.rs" 177 4 177 30] (self : t_Map'0) = [%#s06_map_precond17] reinitialize'0 () /\ preservation_inv'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) /\ next_precondition'0 self.t_Map__iter'0 self.t_Map__func'0 (Snapshot.inner self.t_Map__produced'0) diff --git a/creusot/tests/should_succeed/iterators/06_map_precond.rs b/creusot/tests/should_succeed/iterators/06_map_precond.rs index a7eeb215da..86f4c27ebb 100644 --- a/creusot/tests/should_succeed/iterators/06_map_precond.rs +++ b/creusot/tests/should_succeed/iterators/06_map_precond.rs @@ -1,3 +1,4 @@ +// WHY3PROVE #![feature(unboxed_closures)] extern crate creusot_contracts; diff --git a/creusot/tests/should_succeed/iterators/07_fuse.coma b/creusot/tests/should_succeed/iterators/07_fuse.coma index 3b1a63be5d..849e6df1dc 100644 --- a/creusot/tests/should_succeed/iterators/07_fuse.coma +++ b/creusot/tests/should_succeed/iterators/07_fuse.coma @@ -1,12 +1,12 @@ -module M_07_fuse__qyi2452592938496686347__next [#"07_fuse.rs" 39 4 39 44] (* as common::Iterator> *) - let%span s07_fuse0 = "07_fuse.rs" 39 17 39 21 - let%span s07_fuse1 = "07_fuse.rs" 39 26 39 44 - let%span s07_fuse2 = "07_fuse.rs" 35 14 38 5 +module M_07_fuse__qyi2452592938496686347__next [#"07_fuse.rs" 40 4 40 44] (* as common::Iterator> *) + let%span s07_fuse0 = "07_fuse.rs" 40 17 40 21 + let%span s07_fuse1 = "07_fuse.rs" 40 26 40 44 + let%span s07_fuse2 = "07_fuse.rs" 36 14 39 5 let%span scommon3 = "common.rs" 31 17 31 21 let%span scommon4 = "common.rs" 31 26 31 44 let%span scommon5 = "common.rs" 27 14 30 5 - let%span s07_fuse6 = "07_fuse.rs" 18 12 19 32 - let%span s07_fuse7 = "07_fuse.rs" 26 8 32 9 + let%span s07_fuse6 = "07_fuse.rs" 19 12 20 32 + let%span s07_fuse7 = "07_fuse.rs" 27 8 33 9 let%span scommon8 = "common.rs" 14 15 14 24 let%span scommon9 = "common.rs" 15 14 15 45 let%span scommon10 = "common.rs" 19 15 19 21 @@ -167,13 +167,13 @@ module M_07_fuse__qyi2452592938496686347__next [#"07_fuse.rs" 39 4 39 44] (* prod = (Seq.empty : Seq.seq t_Item'0) /\ other.t_Fuse__iter'0 = self.t_Fuse__iter'0 | C_Some'0 i -> match other.t_Fuse__iter'0 with @@ -278,11 +278,11 @@ module M_07_fuse__qyi2452592938496686347__next [#"07_fuse.rs" 39 4 39 44] (* as common::Iterator> *) - let%span s07_fuse0 = "07_fuse.rs" 54 15 54 24 - let%span s07_fuse1 = "07_fuse.rs" 55 14 55 45 - let%span s07_fuse2 = "07_fuse.rs" 52 4 52 10 - let%span s07_fuse3 = "07_fuse.rs" 26 8 32 9 +module M_07_fuse__qyi2452592938496686347__produces_refl [#"07_fuse.rs" 57 4 57 26] (* as common::Iterator> *) + let%span s07_fuse0 = "07_fuse.rs" 55 15 55 24 + let%span s07_fuse1 = "07_fuse.rs" 56 14 56 45 + let%span s07_fuse2 = "07_fuse.rs" 53 4 53 10 + let%span s07_fuse3 = "07_fuse.rs" 27 8 33 9 let%span scommon4 = "common.rs" 14 15 14 24 let%span scommon5 = "common.rs" 15 14 15 45 let%span scommon6 = "common.rs" 19 15 19 21 @@ -342,7 +342,7 @@ module M_07_fuse__qyi2452592938496686347__produces_refl [#"07_fuse.rs" 56 4 56 2 axiom produces_refl'1_spec : forall self : t_I'0 . ([%#scommon4] inv'2 self) -> ([%#scommon5] produces'1 self (Seq.empty : Seq.seq t_Item'0) self) - predicate produces'0 [#"07_fuse.rs" 25 4 25 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = + predicate produces'0 [#"07_fuse.rs" 26 4 26 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = [%#s07_fuse3] match self.t_Fuse__iter'0 with | C_None'0 -> prod = (Seq.empty : Seq.seq t_Item'0) /\ other.t_Fuse__iter'0 = self.t_Fuse__iter'0 | C_Some'0 i -> match other.t_Fuse__iter'0 with @@ -353,20 +353,20 @@ module M_07_fuse__qyi2452592938496686347__produces_refl [#"07_fuse.rs" 56 4 56 2 constant self : t_Fuse'0 - function produces_refl'0 [#"07_fuse.rs" 56 4 56 26] (self : t_Fuse'0) : () + function produces_refl'0 [#"07_fuse.rs" 57 4 57 26] (self : t_Fuse'0) : () goal vc_produces_refl'0 : ([%#s07_fuse0] inv'0 self) -> ([%#s07_fuse1] produces'0 self (Seq.empty : Seq.seq t_Item'0) self) end -module M_07_fuse__qyi2452592938496686347__produces_trans [#"07_fuse.rs" 66 4 66 90] (* as common::Iterator> *) - let%span s07_fuse0 = "07_fuse.rs" 60 15 60 21 - let%span s07_fuse1 = "07_fuse.rs" 61 15 61 21 - let%span s07_fuse2 = "07_fuse.rs" 62 15 62 21 - let%span s07_fuse3 = "07_fuse.rs" 63 15 63 32 - let%span s07_fuse4 = "07_fuse.rs" 64 15 64 32 - let%span s07_fuse5 = "07_fuse.rs" 65 14 65 42 - let%span s07_fuse6 = "07_fuse.rs" 58 4 58 10 - let%span s07_fuse7 = "07_fuse.rs" 26 8 32 9 +module M_07_fuse__qyi2452592938496686347__produces_trans [#"07_fuse.rs" 67 4 67 90] (* as common::Iterator> *) + let%span s07_fuse0 = "07_fuse.rs" 61 15 61 21 + let%span s07_fuse1 = "07_fuse.rs" 62 15 62 21 + let%span s07_fuse2 = "07_fuse.rs" 63 15 63 21 + let%span s07_fuse3 = "07_fuse.rs" 64 15 64 32 + let%span s07_fuse4 = "07_fuse.rs" 65 15 65 32 + let%span s07_fuse5 = "07_fuse.rs" 66 14 66 42 + let%span s07_fuse6 = "07_fuse.rs" 59 4 59 10 + let%span s07_fuse7 = "07_fuse.rs" 27 8 33 9 let%span scommon8 = "common.rs" 14 15 14 24 let%span scommon9 = "common.rs" 15 14 15 45 let%span scommon10 = "common.rs" 19 15 19 21 @@ -426,7 +426,7 @@ module M_07_fuse__qyi2452592938496686347__produces_trans [#"07_fuse.rs" 66 4 66 axiom produces_refl'0_spec : forall self : t_I'0 . ([%#scommon8] inv'2 self) -> ([%#scommon9] produces'1 self (Seq.empty : Seq.seq t_Item'0) self) - predicate produces'0 [#"07_fuse.rs" 25 4 25 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = + predicate produces'0 [#"07_fuse.rs" 26 4 26 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = [%#s07_fuse7] match self.t_Fuse__iter'0 with | C_None'0 -> prod = (Seq.empty : Seq.seq t_Item'0) /\ other.t_Fuse__iter'0 = self.t_Fuse__iter'0 | C_Some'0 i -> match other.t_Fuse__iter'0 with @@ -445,7 +445,7 @@ module M_07_fuse__qyi2452592938496686347__produces_trans [#"07_fuse.rs" 66 4 66 constant c : t_Fuse'0 - function produces_trans'0 [#"07_fuse.rs" 66 4 66 90] (a : t_Fuse'0) (ab : Seq.seq t_Item'0) (b : t_Fuse'0) (bc : Seq.seq t_Item'0) (c : t_Fuse'0) : () + function produces_trans'0 [#"07_fuse.rs" 67 4 67 90] (a : t_Fuse'0) (ab : Seq.seq t_Item'0) (b : t_Fuse'0) (bc : Seq.seq t_Item'0) (c : t_Fuse'0) : () goal vc_produces_trans'0 : ([%#s07_fuse4] produces'0 b bc c) @@ -453,26 +453,26 @@ module M_07_fuse__qyi2452592938496686347__produces_trans [#"07_fuse.rs" 66 4 66 -> ([%#s07_fuse2] inv'0 c) -> ([%#s07_fuse1] inv'0 b) -> ([%#s07_fuse0] inv'0 a) -> ([%#s07_fuse5] produces'0 a (Seq.(++) ab bc) c) end -module M_07_fuse__qyi3347558734837599430__is_fused [#"07_fuse.rs" 91 4 91 62] (* as FusedIterator> *) - let%span s07_fuse0 = "07_fuse.rs" 85 15 85 24 - let%span s07_fuse1 = "07_fuse.rs" 86 15 86 24 - let%span s07_fuse2 = "07_fuse.rs" 87 15 87 25 - let%span s07_fuse3 = "07_fuse.rs" 88 15 88 31 - let%span s07_fuse4 = "07_fuse.rs" 89 15 89 44 - let%span s07_fuse5 = "07_fuse.rs" 90 14 90 50 - let%span s07_fuse6 = "07_fuse.rs" 83 4 83 10 - let%span s07_fuse7 = "07_fuse.rs" 18 12 19 32 - let%span s07_fuse8 = "07_fuse.rs" 26 8 32 9 - let%span s07_fuse9 = "07_fuse.rs" 54 15 54 24 - let%span s07_fuse10 = "07_fuse.rs" 55 14 55 45 - let%span s07_fuse11 = "07_fuse.rs" 52 4 52 10 - let%span s07_fuse12 = "07_fuse.rs" 60 15 60 21 - let%span s07_fuse13 = "07_fuse.rs" 61 15 61 21 - let%span s07_fuse14 = "07_fuse.rs" 62 15 62 21 - let%span s07_fuse15 = "07_fuse.rs" 63 15 63 32 - let%span s07_fuse16 = "07_fuse.rs" 64 15 64 32 - let%span s07_fuse17 = "07_fuse.rs" 65 14 65 42 - let%span s07_fuse18 = "07_fuse.rs" 58 4 58 10 +module M_07_fuse__qyi3347558734837599430__is_fused [#"07_fuse.rs" 92 4 92 62] (* as FusedIterator> *) + let%span s07_fuse0 = "07_fuse.rs" 86 15 86 24 + let%span s07_fuse1 = "07_fuse.rs" 87 15 87 24 + let%span s07_fuse2 = "07_fuse.rs" 88 15 88 25 + let%span s07_fuse3 = "07_fuse.rs" 89 15 89 31 + let%span s07_fuse4 = "07_fuse.rs" 90 15 90 44 + let%span s07_fuse5 = "07_fuse.rs" 91 14 91 50 + let%span s07_fuse6 = "07_fuse.rs" 84 4 84 10 + let%span s07_fuse7 = "07_fuse.rs" 19 12 20 32 + let%span s07_fuse8 = "07_fuse.rs" 27 8 33 9 + let%span s07_fuse9 = "07_fuse.rs" 55 15 55 24 + let%span s07_fuse10 = "07_fuse.rs" 56 14 56 45 + let%span s07_fuse11 = "07_fuse.rs" 53 4 53 10 + let%span s07_fuse12 = "07_fuse.rs" 61 15 61 21 + let%span s07_fuse13 = "07_fuse.rs" 62 15 62 21 + let%span s07_fuse14 = "07_fuse.rs" 63 15 63 21 + let%span s07_fuse15 = "07_fuse.rs" 64 15 64 32 + let%span s07_fuse16 = "07_fuse.rs" 65 15 65 32 + let%span s07_fuse17 = "07_fuse.rs" 66 14 66 42 + let%span s07_fuse18 = "07_fuse.rs" 59 4 59 10 let%span scommon19 = "common.rs" 14 15 14 24 let%span scommon20 = "common.rs" 15 14 15 45 let%span scommon21 = "common.rs" 19 15 19 21 @@ -566,7 +566,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused [#"07_fuse.rs" 91 4 91 62] (* axiom inv_axiom'2 [@rewrite] : forall x : Seq.seq t_Item'0 [inv'2 x] . inv'2 x = invariant'1 x - predicate produces'0 [#"07_fuse.rs" 25 4 25 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = + predicate produces'0 [#"07_fuse.rs" 26 4 26 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = [%#s07_fuse8] match self.t_Fuse__iter'0 with | C_None'0 -> prod = (Seq.empty : Seq.seq t_Item'0) /\ other.t_Fuse__iter'0 = self.t_Fuse__iter'0 | C_Some'0 i -> match other.t_Fuse__iter'0 with @@ -575,7 +575,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused [#"07_fuse.rs" 91 4 91 62] (* end end - function produces_trans'0 [#"07_fuse.rs" 66 4 66 90] (a : t_Fuse'0) (ab : Seq.seq t_Item'0) (b : t_Fuse'0) (bc : Seq.seq t_Item'0) (c : t_Fuse'0) : () + function produces_trans'0 [#"07_fuse.rs" 67 4 67 90] (a : t_Fuse'0) (ab : Seq.seq t_Item'0) (b : t_Fuse'0) (bc : Seq.seq t_Item'0) (c : t_Fuse'0) : () = [%#s07_fuse18] () @@ -586,7 +586,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused [#"07_fuse.rs" 91 4 91 62] (* -> ([%#s07_fuse15] produces'0 a ab b) -> ([%#s07_fuse16] produces'0 b bc c) -> ([%#s07_fuse17] produces'0 a (Seq.(++) ab bc) c) - function produces_refl'0 [#"07_fuse.rs" 56 4 56 26] (self : t_Fuse'0) : () = + function produces_refl'0 [#"07_fuse.rs" 57 4 57 26] (self : t_Fuse'0) : () = [%#s07_fuse11] () axiom produces_refl'0_spec : forall self : t_Fuse'0 . ([%#s07_fuse9] inv'1 self) @@ -601,7 +601,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused [#"07_fuse.rs" 91 4 91 62] (* predicate completed'1 [#"common.rs" 11 4 11 36] (self : borrowed t_I'0) - predicate completed'0 [#"07_fuse.rs" 16 4 16 35] (self : borrowed (t_Fuse'0)) = + predicate completed'0 [#"07_fuse.rs" 17 4 17 35] (self : borrowed (t_Fuse'0)) = [%#s07_fuse7] ((self.current).t_Fuse__iter'0 = C_None'0 \/ (exists it : borrowed t_I'0 . inv'3 it /\ completed'1 it /\ (self.current).t_Fuse__iter'0 = C_Some'0 (it.current))) @@ -613,7 +613,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused [#"07_fuse.rs" 91 4 91 62] (* constant next : t_Fuse'0 - function is_fused'0 [#"07_fuse.rs" 91 4 91 62] (self : borrowed (t_Fuse'0)) (steps : Seq.seq t_Item'0) (next : t_Fuse'0) : () + function is_fused'0 [#"07_fuse.rs" 92 4 92 62] (self : borrowed (t_Fuse'0)) (steps : Seq.seq t_Item'0) (next : t_Fuse'0) : () goal vc_is_fused'0 : ([%#s07_fuse4] produces'0 self.final steps next) @@ -622,9 +622,9 @@ module M_07_fuse__qyi3347558734837599430__is_fused [#"07_fuse.rs" 91 4 91 62] (* -> ([%#s07_fuse1] inv'1 next) -> ([%#s07_fuse0] inv'0 self) -> ([%#s07_fuse5] steps = (Seq.empty : Seq.seq t_Item'0) /\ self.final = next) end -module M_07_fuse__qyi2452592938496686347__produces_trans__refines [#"07_fuse.rs" 66 4 66 90] (* as common::Iterator> *) - let%span s07_fuse0 = "07_fuse.rs" 66 4 66 90 - let%span s07_fuse1 = "07_fuse.rs" 26 8 32 9 +module M_07_fuse__qyi2452592938496686347__produces_trans__refines [#"07_fuse.rs" 67 4 67 90] (* as common::Iterator> *) + let%span s07_fuse0 = "07_fuse.rs" 67 4 67 90 + let%span s07_fuse1 = "07_fuse.rs" 27 8 33 9 let%span scommon2 = "common.rs" 14 15 14 24 let%span scommon3 = "common.rs" 15 14 15 45 let%span scommon4 = "common.rs" 19 15 19 21 @@ -669,7 +669,7 @@ module M_07_fuse__qyi2452592938496686347__produces_trans__refines [#"07_fuse.rs" axiom produces_refl'0_spec : forall self : t_I'0 . ([%#scommon2] inv'1 self) -> ([%#scommon3] produces'1 self (Seq.empty : Seq.seq t_Item'0) self) - predicate produces'0 [#"07_fuse.rs" 25 4 25 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = + predicate produces'0 [#"07_fuse.rs" 26 4 26 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = [%#s07_fuse1] match self.t_Fuse__iter'0 with | C_None'0 -> prod = (Seq.empty : Seq.seq t_Item'0) /\ other.t_Fuse__iter'0 = self.t_Fuse__iter'0 | C_Some'0 i -> match other.t_Fuse__iter'0 with @@ -700,9 +700,9 @@ module M_07_fuse__qyi2452592938496686347__produces_trans__refines [#"07_fuse.rs" /\ inv'0 c /\ inv'0 b /\ inv'0 a /\ (forall result : () . produces'0 a (Seq.(++) ab bc) c -> produces'0 a (Seq.(++) ab bc) c) end -module M_07_fuse__qyi2452592938496686347__produces_refl__refines [#"07_fuse.rs" 56 4 56 26] (* as common::Iterator> *) - let%span s07_fuse0 = "07_fuse.rs" 56 4 56 26 - let%span s07_fuse1 = "07_fuse.rs" 26 8 32 9 +module M_07_fuse__qyi2452592938496686347__produces_refl__refines [#"07_fuse.rs" 57 4 57 26] (* as common::Iterator> *) + let%span s07_fuse0 = "07_fuse.rs" 57 4 57 26 + let%span s07_fuse1 = "07_fuse.rs" 27 8 33 9 let%span scommon2 = "common.rs" 14 15 14 24 let%span scommon3 = "common.rs" 15 14 15 45 let%span scommon4 = "common.rs" 19 15 19 21 @@ -762,7 +762,7 @@ module M_07_fuse__qyi2452592938496686347__produces_refl__refines [#"07_fuse.rs" axiom produces_refl'1_spec : forall self : t_I'0 . ([%#scommon2] inv'2 self) -> ([%#scommon3] produces'1 self (Seq.empty : Seq.seq t_Item'0) self) - predicate produces'0 [#"07_fuse.rs" 25 4 25 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = + predicate produces'0 [#"07_fuse.rs" 26 4 26 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = [%#s07_fuse1] match self.t_Fuse__iter'0 with | C_None'0 -> prod = (Seq.empty : Seq.seq t_Item'0) /\ other.t_Fuse__iter'0 = self.t_Fuse__iter'0 | C_Some'0 i -> match other.t_Fuse__iter'0 with @@ -776,10 +776,10 @@ module M_07_fuse__qyi2452592938496686347__produces_refl__refines [#"07_fuse.rs" /\ (forall result : () . produces'0 self (Seq.empty : Seq.seq t_Item'0) self -> produces'0 self (Seq.empty : Seq.seq t_Item'0) self) end -module M_07_fuse__qyi2452592938496686347__next__refines [#"07_fuse.rs" 39 4 39 44] (* as common::Iterator> *) - let%span s07_fuse0 = "07_fuse.rs" 39 4 39 44 - let%span s07_fuse1 = "07_fuse.rs" 18 12 19 32 - let%span s07_fuse2 = "07_fuse.rs" 26 8 32 9 +module M_07_fuse__qyi2452592938496686347__next__refines [#"07_fuse.rs" 40 4 40 44] (* as common::Iterator> *) + let%span s07_fuse0 = "07_fuse.rs" 40 4 40 44 + let%span s07_fuse1 = "07_fuse.rs" 19 12 20 32 + let%span s07_fuse2 = "07_fuse.rs" 27 8 33 9 let%span sinvariant3 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span scommon4 = "common.rs" 14 15 14 24 let%span scommon5 = "common.rs" 15 14 15 45 @@ -862,7 +862,7 @@ module M_07_fuse__qyi2452592938496686347__next__refines [#"07_fuse.rs" 39 4 39 4 predicate completed'1 [#"common.rs" 11 4 11 36] (self : borrowed t_I'0) - predicate completed'0 [#"07_fuse.rs" 16 4 16 35] (self : borrowed (t_Fuse'0)) = + predicate completed'0 [#"07_fuse.rs" 17 4 17 35] (self : borrowed (t_Fuse'0)) = [%#s07_fuse1] ((self.current).t_Fuse__iter'0 = C_None'1 \/ (exists it : borrowed t_I'0 . inv'2 it /\ completed'1 it /\ (self.current).t_Fuse__iter'0 = C_Some'1 (it.current))) @@ -870,7 +870,7 @@ module M_07_fuse__qyi2452592938496686347__next__refines [#"07_fuse.rs" 39 4 39 4 use seq.Seq - predicate produces'0 [#"07_fuse.rs" 25 4 25 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = + predicate produces'0 [#"07_fuse.rs" 26 4 26 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = [%#s07_fuse2] match self.t_Fuse__iter'0 with | C_None'1 -> prod = (Seq.empty : Seq.seq t_Item'0) /\ other.t_Fuse__iter'0 = self.t_Fuse__iter'0 | C_Some'1 i -> match other.t_Fuse__iter'0 with @@ -902,10 +902,10 @@ module M_07_fuse__qyi2452592938496686347__next__refines [#"07_fuse.rs" 39 4 39 4 end /\ inv'1 result) end -module M_07_fuse__qyi3347558734837599430__is_fused__refines [#"07_fuse.rs" 91 4 91 62] (* as FusedIterator> *) - let%span s07_fuse0 = "07_fuse.rs" 91 4 91 62 - let%span s07_fuse1 = "07_fuse.rs" 26 8 32 9 - let%span s07_fuse2 = "07_fuse.rs" 18 12 19 32 +module M_07_fuse__qyi3347558734837599430__is_fused__refines [#"07_fuse.rs" 92 4 92 62] (* as FusedIterator> *) + let%span s07_fuse0 = "07_fuse.rs" 92 4 92 62 + let%span s07_fuse1 = "07_fuse.rs" 27 8 33 9 + let%span s07_fuse2 = "07_fuse.rs" 19 12 20 32 let%span scommon3 = "common.rs" 14 15 14 24 let%span scommon4 = "common.rs" 15 14 15 45 let%span scommon5 = "common.rs" 19 15 19 21 @@ -914,16 +914,16 @@ module M_07_fuse__qyi3347558734837599430__is_fused__refines [#"07_fuse.rs" 91 4 let%span scommon8 = "common.rs" 22 15 22 32 let%span scommon9 = "common.rs" 23 15 23 32 let%span scommon10 = "common.rs" 24 14 24 42 - let%span s07_fuse11 = "07_fuse.rs" 54 15 54 24 - let%span s07_fuse12 = "07_fuse.rs" 55 14 55 45 - let%span s07_fuse13 = "07_fuse.rs" 52 4 52 10 - let%span s07_fuse14 = "07_fuse.rs" 60 15 60 21 - let%span s07_fuse15 = "07_fuse.rs" 61 15 61 21 - let%span s07_fuse16 = "07_fuse.rs" 62 15 62 21 - let%span s07_fuse17 = "07_fuse.rs" 63 15 63 32 - let%span s07_fuse18 = "07_fuse.rs" 64 15 64 32 - let%span s07_fuse19 = "07_fuse.rs" 65 14 65 42 - let%span s07_fuse20 = "07_fuse.rs" 58 4 58 10 + let%span s07_fuse11 = "07_fuse.rs" 55 15 55 24 + let%span s07_fuse12 = "07_fuse.rs" 56 14 56 45 + let%span s07_fuse13 = "07_fuse.rs" 53 4 53 10 + let%span s07_fuse14 = "07_fuse.rs" 61 15 61 21 + let%span s07_fuse15 = "07_fuse.rs" 62 15 62 21 + let%span s07_fuse16 = "07_fuse.rs" 63 15 63 21 + let%span s07_fuse17 = "07_fuse.rs" 64 15 64 32 + let%span s07_fuse18 = "07_fuse.rs" 65 15 65 32 + let%span s07_fuse19 = "07_fuse.rs" 66 14 66 42 + let%span s07_fuse20 = "07_fuse.rs" 59 4 59 10 let%span sseq21 = "../../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sinvariant22 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span sboxed23 = "../../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -980,7 +980,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused__refines [#"07_fuse.rs" 91 4 | {t_Fuse__iter'0 = iter} -> inv'5 iter end - predicate produces'0 [#"07_fuse.rs" 25 4 25 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = + predicate produces'0 [#"07_fuse.rs" 26 4 26 65] (self : t_Fuse'0) (prod : Seq.seq t_Item'0) (other : t_Fuse'0) = [%#s07_fuse1] match self.t_Fuse__iter'0 with | C_None'0 -> prod = (Seq.empty : Seq.seq t_Item'0) /\ other.t_Fuse__iter'0 = self.t_Fuse__iter'0 | C_Some'0 i -> match other.t_Fuse__iter'0 with @@ -989,7 +989,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused__refines [#"07_fuse.rs" 91 4 end end - function produces_trans'1 [#"07_fuse.rs" 66 4 66 90] (a : t_Fuse'0) (ab : Seq.seq t_Item'0) (b : t_Fuse'0) (bc : Seq.seq t_Item'0) (c : t_Fuse'0) : () + function produces_trans'1 [#"07_fuse.rs" 67 4 67 90] (a : t_Fuse'0) (ab : Seq.seq t_Item'0) (b : t_Fuse'0) (bc : Seq.seq t_Item'0) (c : t_Fuse'0) : () = [%#s07_fuse20] () @@ -1000,7 +1000,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused__refines [#"07_fuse.rs" 91 4 -> ([%#s07_fuse17] produces'0 a ab b) -> ([%#s07_fuse18] produces'0 b bc c) -> ([%#s07_fuse19] produces'0 a (Seq.(++) ab bc) c) - function produces_refl'1 [#"07_fuse.rs" 56 4 56 26] (self : t_Fuse'0) : () = + function produces_refl'1 [#"07_fuse.rs" 57 4 57 26] (self : t_Fuse'0) : () = [%#s07_fuse13] () axiom produces_refl'1_spec : forall self : t_Fuse'0 . ([%#s07_fuse11] inv'1 self) @@ -1015,7 +1015,7 @@ module M_07_fuse__qyi3347558734837599430__is_fused__refines [#"07_fuse.rs" 91 4 predicate completed'1 [#"common.rs" 11 4 11 36] (self : borrowed t_I'0) - predicate completed'0 [#"07_fuse.rs" 16 4 16 35] (self : borrowed (t_Fuse'0)) = + predicate completed'0 [#"07_fuse.rs" 17 4 17 35] (self : borrowed (t_Fuse'0)) = [%#s07_fuse2] ((self.current).t_Fuse__iter'0 = C_None'0 \/ (exists it : borrowed t_I'0 . inv'3 it /\ completed'1 it /\ (self.current).t_Fuse__iter'0 = C_Some'0 (it.current))) diff --git a/creusot/tests/should_succeed/iterators/07_fuse.rs b/creusot/tests/should_succeed/iterators/07_fuse.rs index ccd8da63c5..b14b07d16f 100644 --- a/creusot/tests/should_succeed/iterators/07_fuse.rs +++ b/creusot/tests/should_succeed/iterators/07_fuse.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::{invariant::inv, logic::Seq, *}; diff --git a/creusot/tests/should_succeed/iterators/08_collect_extend/proof.json b/creusot/tests/should_succeed/iterators/08_collect_extend/proof.json new file mode 100644 index 0000000000..e7836dd434 --- /dev/null +++ b/creusot/tests/should_succeed/iterators/08_collect_extend/proof.json @@ -0,0 +1,34 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_08_collect_extend__collect": { + "vc_collect'0": { "prover": "cvc5@1.0.5", "time": 0.108 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_08_collect_extend__collect_example": { + "vc_collect'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_collect_example'0": { "prover": "cvc5@1.0.5", "time": 0.027 } + }, + "M_08_collect_extend__extend": { + "vc_extend'0": { "prover": "cvc4@1.8", "time": 0.134 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_08_collect_extend__extend_index": { + "vc_extend'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_extend_index'0": { "prover": "cvc4@1.8", "time": 0.045 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/08_collect_extend/why3session.xml b/creusot/tests/should_succeed/iterators/08_collect_extend/why3session.xml deleted file mode 100644 index c7555af89f..0000000000 --- a/creusot/tests/should_succeed/iterators/08_collect_extend/why3session.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/08_collect_extend/why3shapes.gz b/creusot/tests/should_succeed/iterators/08_collect_extend/why3shapes.gz deleted file mode 100644 index 31b3b1f6aa..0000000000 Binary files a/creusot/tests/should_succeed/iterators/08_collect_extend/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/09_empty.coma b/creusot/tests/should_succeed/iterators/09_empty.coma index 2a501fafe0..e246f01557 100644 --- a/creusot/tests/should_succeed/iterators/09_empty.coma +++ b/creusot/tests/should_succeed/iterators/09_empty.coma @@ -1,7 +1,7 @@ -module M_09_empty__qyi9513254493468142860__produces_refl [#"09_empty.rs" 28 4 28 26] (* as common::Iterator> *) - let%span s09_empty0 = "09_empty.rs" 27 14 27 45 - let%span s09_empty1 = "09_empty.rs" 25 4 25 10 - let%span s09_empty2 = "09_empty.rs" 22 20 22 54 +module M_09_empty__qyi9513254493468142860__produces_refl [#"09_empty.rs" 29 4 29 26] (* as common::Iterator> *) + let%span s09_empty0 = "09_empty.rs" 28 14 28 45 + let%span s09_empty1 = "09_empty.rs" 26 4 26 10 + let%span s09_empty2 = "09_empty.rs" 23 20 23 54 use seq.Seq @@ -12,24 +12,24 @@ module M_09_empty__qyi9513254493468142860__produces_refl [#"09_empty.rs" 28 4 28 type t_Empty'0 = { t_Empty__0'0: () } - predicate produces'0 [#"09_empty.rs" 21 4 21 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = + predicate produces'0 [#"09_empty.rs" 22 4 22 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = [%#s09_empty2] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o constant self : t_Empty'0 - function produces_refl'0 [#"09_empty.rs" 28 4 28 26] (self : t_Empty'0) : () + function produces_refl'0 [#"09_empty.rs" 29 4 29 26] (self : t_Empty'0) : () goal vc_produces_refl'0 : [%#s09_empty0] produces'0 self (Seq.empty : Seq.seq t_T'0) self end -module M_09_empty__qyi9513254493468142860__produces_trans [#"09_empty.rs" 38 4 38 90] (* as common::Iterator> *) - let%span s09_empty0 = "09_empty.rs" 32 15 32 21 - let%span s09_empty1 = "09_empty.rs" 33 15 33 21 - let%span s09_empty2 = "09_empty.rs" 34 15 34 21 - let%span s09_empty3 = "09_empty.rs" 35 15 35 32 - let%span s09_empty4 = "09_empty.rs" 36 15 36 32 - let%span s09_empty5 = "09_empty.rs" 37 14 37 42 - let%span s09_empty6 = "09_empty.rs" 30 4 30 10 - let%span s09_empty7 = "09_empty.rs" 22 20 22 54 +module M_09_empty__qyi9513254493468142860__produces_trans [#"09_empty.rs" 39 4 39 90] (* as common::Iterator> *) + let%span s09_empty0 = "09_empty.rs" 33 15 33 21 + let%span s09_empty1 = "09_empty.rs" 34 15 34 21 + let%span s09_empty2 = "09_empty.rs" 35 15 35 21 + let%span s09_empty3 = "09_empty.rs" 36 15 36 32 + let%span s09_empty4 = "09_empty.rs" 37 15 37 32 + let%span s09_empty5 = "09_empty.rs" 38 14 38 42 + let%span s09_empty6 = "09_empty.rs" 31 4 31 10 + let%span s09_empty7 = "09_empty.rs" 23 20 23 54 type t_Empty'0 = { t_Empty__0'0: () } @@ -44,7 +44,7 @@ module M_09_empty__qyi9513254493468142860__produces_trans [#"09_empty.rs" 38 4 3 use seq.Seq - predicate produces'0 [#"09_empty.rs" 21 4 21 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = + predicate produces'0 [#"09_empty.rs" 22 4 22 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = [%#s09_empty7] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o use seq.Seq @@ -59,7 +59,7 @@ module M_09_empty__qyi9513254493468142860__produces_trans [#"09_empty.rs" 38 4 3 constant c : t_Empty'0 - function produces_trans'0 [#"09_empty.rs" 38 4 38 90] (a : t_Empty'0) (ab : Seq.seq t_T'0) (b : t_Empty'0) (bc : Seq.seq t_T'0) (c : t_Empty'0) : () + function produces_trans'0 [#"09_empty.rs" 39 4 39 90] (a : t_Empty'0) (ab : Seq.seq t_T'0) (b : t_Empty'0) (bc : Seq.seq t_T'0) (c : t_Empty'0) : () goal vc_produces_trans'0 : ([%#s09_empty4] produces'0 b bc c) @@ -67,11 +67,11 @@ module M_09_empty__qyi9513254493468142860__produces_trans [#"09_empty.rs" 38 4 3 -> ([%#s09_empty2] inv'0 c) -> ([%#s09_empty1] inv'0 b) -> ([%#s09_empty0] inv'0 a) -> ([%#s09_empty5] produces'0 a (Seq.(++) ab bc) c) end -module M_09_empty__qyi9513254493468142860__next [#"09_empty.rs" 44 4 44 35] (* as common::Iterator> *) - let%span s09_empty0 = "09_empty.rs" 44 26 44 35 - let%span s09_empty1 = "09_empty.rs" 40 14 43 5 - let%span s09_empty2 = "09_empty.rs" 16 20 16 34 - let%span s09_empty3 = "09_empty.rs" 22 20 22 54 +module M_09_empty__qyi9513254493468142860__next [#"09_empty.rs" 45 4 45 35] (* as common::Iterator> *) + let%span s09_empty0 = "09_empty.rs" 45 26 45 35 + let%span s09_empty1 = "09_empty.rs" 41 14 44 5 + let%span s09_empty2 = "09_empty.rs" 17 20 17 34 + let%span s09_empty3 = "09_empty.rs" 23 20 23 54 let%span sresolve4 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 use prelude.prelude.Borrow @@ -103,7 +103,7 @@ module M_09_empty__qyi9513254493468142860__next [#"09_empty.rs" 44 4 44 35] (* < | C_Some'0 a_0 -> inv'1 a_0 end - predicate completed'0 [#"09_empty.rs" 15 4 15 35] (self : borrowed (t_Empty'0)) = + predicate completed'0 [#"09_empty.rs" 16 4 16 35] (self : borrowed (t_Empty'0)) = [%#s09_empty2] resolve'1 self use seq.Seq @@ -112,7 +112,7 @@ module M_09_empty__qyi9513254493468142860__next [#"09_empty.rs" 44 4 44 35] (* < use seq.Seq - predicate produces'0 [#"09_empty.rs" 21 4 21 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = + predicate produces'0 [#"09_empty.rs" 22 4 22 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = [%#s09_empty3] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o meta "compute_max_steps" 1000000 @@ -128,9 +128,9 @@ module M_09_empty__qyi9513254493468142860__next [#"09_empty.rs" 44 4 44 35] (* < (! return' {result}) ] end -module M_09_empty__qyi9513254493468142860__produces_refl__refines [#"09_empty.rs" 28 4 28 26] (* as common::Iterator> *) - let%span s09_empty0 = "09_empty.rs" 28 4 28 26 - let%span s09_empty1 = "09_empty.rs" 22 20 22 54 +module M_09_empty__qyi9513254493468142860__produces_refl__refines [#"09_empty.rs" 29 4 29 26] (* as common::Iterator> *) + let%span s09_empty0 = "09_empty.rs" 29 4 29 26 + let%span s09_empty1 = "09_empty.rs" 23 20 23 54 type t_Empty'0 = { t_Empty__0'0: () } @@ -145,16 +145,16 @@ module M_09_empty__qyi9513254493468142860__produces_refl__refines [#"09_empty.rs use seq.Seq - predicate produces'0 [#"09_empty.rs" 21 4 21 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = + predicate produces'0 [#"09_empty.rs" 22 4 22 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = [%#s09_empty1] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o goal refines : [%#s09_empty0] forall self : t_Empty'0 . inv'0 self -> (forall result : () . produces'0 self (Seq.empty : Seq.seq t_T'0) self -> produces'0 self (Seq.empty : Seq.seq t_T'0) self) end -module M_09_empty__qyi9513254493468142860__produces_trans__refines [#"09_empty.rs" 38 4 38 90] (* as common::Iterator> *) - let%span s09_empty0 = "09_empty.rs" 38 4 38 90 - let%span s09_empty1 = "09_empty.rs" 22 20 22 54 +module M_09_empty__qyi9513254493468142860__produces_trans__refines [#"09_empty.rs" 39 4 39 90] (* as common::Iterator> *) + let%span s09_empty0 = "09_empty.rs" 39 4 39 90 + let%span s09_empty1 = "09_empty.rs" 23 20 23 54 type t_Empty'0 = { t_Empty__0'0: () } @@ -165,7 +165,7 @@ module M_09_empty__qyi9513254493468142860__produces_trans__refines [#"09_empty.r use seq.Seq - predicate produces'0 [#"09_empty.rs" 21 4 21 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = + predicate produces'0 [#"09_empty.rs" 22 4 22 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = [%#s09_empty1] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o predicate inv'0 (_1 : t_Empty'0) @@ -181,10 +181,10 @@ module M_09_empty__qyi9513254493468142860__produces_trans__refines [#"09_empty.r /\ inv'0 c /\ inv'0 b /\ inv'0 a /\ (forall result : () . produces'0 a (Seq.(++) ab bc) c -> produces'0 a (Seq.(++) ab bc) c) end -module M_09_empty__qyi9513254493468142860__next__refines [#"09_empty.rs" 44 4 44 35] (* as common::Iterator> *) - let%span s09_empty0 = "09_empty.rs" 44 4 44 35 - let%span s09_empty1 = "09_empty.rs" 16 20 16 34 - let%span s09_empty2 = "09_empty.rs" 22 20 22 54 +module M_09_empty__qyi9513254493468142860__next__refines [#"09_empty.rs" 45 4 45 35] (* as common::Iterator> *) + let%span s09_empty0 = "09_empty.rs" 45 4 45 35 + let%span s09_empty1 = "09_empty.rs" 17 20 17 34 + let%span s09_empty2 = "09_empty.rs" 23 20 23 54 let%span sresolve3 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 use prelude.prelude.Borrow @@ -205,7 +205,7 @@ module M_09_empty__qyi9513254493468142860__next__refines [#"09_empty.rs" 44 4 44 predicate resolve'0 (self : borrowed (t_Empty'0)) = [%#sresolve3] self.final = self.current - predicate completed'0 [#"09_empty.rs" 15 4 15 35] (self : borrowed (t_Empty'0)) = + predicate completed'0 [#"09_empty.rs" 16 4 16 35] (self : borrowed (t_Empty'0)) = [%#s09_empty1] resolve'0 self use seq.Seq @@ -214,7 +214,7 @@ module M_09_empty__qyi9513254493468142860__next__refines [#"09_empty.rs" 44 4 44 use seq.Seq - predicate produces'0 [#"09_empty.rs" 21 4 21 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = + predicate produces'0 [#"09_empty.rs" 22 4 22 64] (self : t_Empty'0) (visited : Seq.seq t_T'0) (o : t_Empty'0) = [%#s09_empty2] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o predicate inv'2 (_1 : t_T'0) diff --git a/creusot/tests/should_succeed/iterators/09_empty.rs b/creusot/tests/should_succeed/iterators/09_empty.rs index eb12a32773..27c137a508 100644 --- a/creusot/tests/should_succeed/iterators/09_empty.rs +++ b/creusot/tests/should_succeed/iterators/09_empty.rs @@ -1,3 +1,4 @@ +// WHY3PROVE extern crate creusot_contracts; use creusot_contracts::{invariant::inv, *}; diff --git a/creusot/tests/should_succeed/iterators/10_once.coma b/creusot/tests/should_succeed/iterators/10_once.coma index c9597d8872..5228e1de92 100644 --- a/creusot/tests/should_succeed/iterators/10_once.coma +++ b/creusot/tests/should_succeed/iterators/10_once.coma @@ -1,8 +1,8 @@ -module M_10_once__qyi9558967427796228243__produces_refl [#"10_once.rs" 32 4 32 26] (* as common::Iterator> *) - let%span s10_once0 = "10_once.rs" 30 15 30 24 - let%span s10_once1 = "10_once.rs" 31 14 31 45 - let%span s10_once2 = "10_once.rs" 28 4 28 10 - let%span s10_once3 = "10_once.rs" 23 12 24 116 +module M_10_once__qyi9558967427796228243__produces_refl [#"10_once.rs" 33 4 33 26] (* as common::Iterator> *) + let%span s10_once0 = "10_once.rs" 31 15 31 24 + let%span s10_once1 = "10_once.rs" 32 14 32 45 + let%span s10_once2 = "10_once.rs" 29 4 29 10 + let%span s10_once3 = "10_once.rs" 24 12 25 116 type t_T'0 @@ -36,27 +36,27 @@ module M_10_once__qyi9558967427796228243__produces_refl [#"10_once.rs" 32 4 32 2 use seq.Seq - predicate produces'0 [#"10_once.rs" 21 4 21 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = + predicate produces'0 [#"10_once.rs" 22 4 22 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = [%#s10_once3] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o \/ (exists e : t_T'0 . inv'1 e /\ self = { t_Once__0'0 = C_Some'0 e } /\ visited = Seq.singleton e /\ o = { t_Once__0'0 = C_None'0 }) constant self : t_Once'0 - function produces_refl'0 [#"10_once.rs" 32 4 32 26] (self : t_Once'0) : () + function produces_refl'0 [#"10_once.rs" 33 4 33 26] (self : t_Once'0) : () goal vc_produces_refl'0 : ([%#s10_once0] inv'0 self) -> ([%#s10_once1] produces'0 self (Seq.empty : Seq.seq t_T'0) self) end -module M_10_once__qyi9558967427796228243__produces_trans [#"10_once.rs" 42 4 42 90] (* as common::Iterator> *) - let%span s10_once0 = "10_once.rs" 36 15 36 21 - let%span s10_once1 = "10_once.rs" 37 15 37 21 - let%span s10_once2 = "10_once.rs" 38 15 38 21 - let%span s10_once3 = "10_once.rs" 39 15 39 32 - let%span s10_once4 = "10_once.rs" 40 15 40 32 - let%span s10_once5 = "10_once.rs" 41 14 41 42 - let%span s10_once6 = "10_once.rs" 34 4 34 10 - let%span s10_once7 = "10_once.rs" 23 12 24 116 +module M_10_once__qyi9558967427796228243__produces_trans [#"10_once.rs" 43 4 43 90] (* as common::Iterator> *) + let%span s10_once0 = "10_once.rs" 37 15 37 21 + let%span s10_once1 = "10_once.rs" 38 15 38 21 + let%span s10_once2 = "10_once.rs" 39 15 39 21 + let%span s10_once3 = "10_once.rs" 40 15 40 32 + let%span s10_once4 = "10_once.rs" 41 15 41 32 + let%span s10_once5 = "10_once.rs" 42 14 42 42 + let%span s10_once6 = "10_once.rs" 35 4 35 10 + let%span s10_once7 = "10_once.rs" 24 12 25 116 type t_T'0 @@ -90,7 +90,7 @@ module M_10_once__qyi9558967427796228243__produces_trans [#"10_once.rs" 42 4 42 use seq.Seq - predicate produces'0 [#"10_once.rs" 21 4 21 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = + predicate produces'0 [#"10_once.rs" 22 4 22 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = [%#s10_once7] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o \/ (exists e : t_T'0 . inv'1 e /\ self = { t_Once__0'0 = C_Some'0 e } /\ visited = Seq.singleton e /\ o = { t_Once__0'0 = C_None'0 }) @@ -107,7 +107,7 @@ module M_10_once__qyi9558967427796228243__produces_trans [#"10_once.rs" 42 4 42 constant c : t_Once'0 - function produces_trans'0 [#"10_once.rs" 42 4 42 90] (a : t_Once'0) (ab : Seq.seq t_T'0) (b : t_Once'0) (bc : Seq.seq t_T'0) (c : t_Once'0) : () + function produces_trans'0 [#"10_once.rs" 43 4 43 90] (a : t_Once'0) (ab : Seq.seq t_T'0) (b : t_Once'0) (bc : Seq.seq t_T'0) (c : t_Once'0) : () goal vc_produces_trans'0 : ([%#s10_once4] produces'0 b bc c) @@ -115,13 +115,13 @@ module M_10_once__qyi9558967427796228243__produces_trans [#"10_once.rs" 42 4 42 -> ([%#s10_once2] inv'0 c) -> ([%#s10_once1] inv'0 b) -> ([%#s10_once0] inv'0 a) -> ([%#s10_once5] produces'0 a (Seq.(++) ab bc) c) end -module M_10_once__qyi9558967427796228243__next [#"10_once.rs" 48 4 48 35] (* as common::Iterator> *) - let%span s10_once0 = "10_once.rs" 48 17 48 21 - let%span s10_once1 = "10_once.rs" 48 26 48 35 - let%span s10_once2 = "10_once.rs" 44 14 47 5 +module M_10_once__qyi9558967427796228243__next [#"10_once.rs" 49 4 49 35] (* as common::Iterator> *) + let%span s10_once0 = "10_once.rs" 49 17 49 21 + let%span s10_once1 = "10_once.rs" 49 26 49 35 + let%span s10_once2 = "10_once.rs" 45 14 48 5 let%span soption3 = "../../../../creusot-contracts/src/std/option.rs" 31 0 423 1 - let%span s10_once4 = "10_once.rs" 16 20 16 57 - let%span s10_once5 = "10_once.rs" 23 12 24 116 + let%span s10_once4 = "10_once.rs" 17 20 17 57 + let%span s10_once5 = "10_once.rs" 24 12 25 116 let%span sresolve6 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant7 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -182,7 +182,7 @@ module M_10_once__qyi9558967427796228243__next [#"10_once.rs" 48 4 48 35] (* as common::Iterator> *) - let%span s10_once0 = "10_once.rs" 48 4 48 35 - let%span s10_once1 = "10_once.rs" 16 20 16 57 - let%span s10_once2 = "10_once.rs" 23 12 24 116 +module M_10_once__qyi9558967427796228243__next__refines [#"10_once.rs" 49 4 49 35] (* as common::Iterator> *) + let%span s10_once0 = "10_once.rs" 49 4 49 35 + let%span s10_once1 = "10_once.rs" 17 20 17 57 + let%span s10_once2 = "10_once.rs" 24 12 25 116 let%span sresolve3 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant4 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -266,7 +266,7 @@ module M_10_once__qyi9558967427796228243__next__refines [#"10_once.rs" 48 4 48 3 predicate resolve'0 (self : borrowed (t_Once'0)) = [%#sresolve3] self.final = self.current - predicate completed'0 [#"10_once.rs" 15 4 15 35] (self : borrowed (t_Once'0)) = + predicate completed'0 [#"10_once.rs" 16 4 16 35] (self : borrowed (t_Once'0)) = [%#s10_once1] self.current = { t_Once__0'0 = C_None'0 } /\ resolve'0 self use seq.Seq @@ -275,7 +275,7 @@ module M_10_once__qyi9558967427796228243__next__refines [#"10_once.rs" 48 4 48 3 use seq.Seq - predicate produces'0 [#"10_once.rs" 21 4 21 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = + predicate produces'0 [#"10_once.rs" 22 4 22 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = [%#s10_once2] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o \/ (exists e : t_T'0 . inv'2 e /\ self = { t_Once__0'0 = C_Some'0 e } /\ visited = Seq.singleton e /\ o = { t_Once__0'0 = C_None'0 }) @@ -293,9 +293,9 @@ module M_10_once__qyi9558967427796228243__next__refines [#"10_once.rs" 48 4 48 3 end /\ inv'1 result) end -module M_10_once__qyi9558967427796228243__produces_refl__refines [#"10_once.rs" 32 4 32 26] (* as common::Iterator> *) - let%span s10_once0 = "10_once.rs" 32 4 32 26 - let%span s10_once1 = "10_once.rs" 23 12 24 116 +module M_10_once__qyi9558967427796228243__produces_refl__refines [#"10_once.rs" 33 4 33 26] (* as common::Iterator> *) + let%span s10_once0 = "10_once.rs" 33 4 33 26 + let%span s10_once1 = "10_once.rs" 24 12 25 116 type t_T'0 @@ -329,7 +329,7 @@ module M_10_once__qyi9558967427796228243__produces_refl__refines [#"10_once.rs" use seq.Seq - predicate produces'0 [#"10_once.rs" 21 4 21 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = + predicate produces'0 [#"10_once.rs" 22 4 22 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = [%#s10_once1] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o \/ (exists e : t_T'0 . inv'1 e /\ self = { t_Once__0'0 = C_Some'0 e } /\ visited = Seq.singleton e /\ o = { t_Once__0'0 = C_None'0 }) @@ -339,9 +339,9 @@ module M_10_once__qyi9558967427796228243__produces_refl__refines [#"10_once.rs" /\ (forall result : () . produces'0 self (Seq.empty : Seq.seq t_T'0) self -> produces'0 self (Seq.empty : Seq.seq t_T'0) self) end -module M_10_once__qyi9558967427796228243__produces_trans__refines [#"10_once.rs" 42 4 42 90] (* as common::Iterator> *) - let%span s10_once0 = "10_once.rs" 42 4 42 90 - let%span s10_once1 = "10_once.rs" 23 12 24 116 +module M_10_once__qyi9558967427796228243__produces_trans__refines [#"10_once.rs" 43 4 43 90] (* as common::Iterator> *) + let%span s10_once0 = "10_once.rs" 43 4 43 90 + let%span s10_once1 = "10_once.rs" 24 12 25 116 type t_T'0 @@ -360,7 +360,7 @@ module M_10_once__qyi9558967427796228243__produces_trans__refines [#"10_once.rs" use seq.Seq - predicate produces'0 [#"10_once.rs" 21 4 21 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = + predicate produces'0 [#"10_once.rs" 22 4 22 64] (self : t_Once'0) (visited : Seq.seq t_T'0) (o : t_Once'0) = [%#s10_once1] visited = (Seq.empty : Seq.seq t_T'0) /\ self = o \/ (exists e : t_T'0 . inv'1 e /\ self = { t_Once__0'0 = C_Some'0 e } /\ visited = Seq.singleton e /\ o = { t_Once__0'0 = C_None'0 }) diff --git a/creusot/tests/should_succeed/iterators/10_once.rs b/creusot/tests/should_succeed/iterators/10_once.rs index f63ab4b9cd..771855632e 100644 --- a/creusot/tests/should_succeed/iterators/10_once.rs +++ b/creusot/tests/should_succeed/iterators/10_once.rs @@ -1,3 +1,4 @@ +// TACTIC +inline_goal extern crate creusot_contracts; use creusot_contracts::{invariant::inv, *}; diff --git a/creusot/tests/should_succeed/iterators/10_once/proof.json b/creusot/tests/should_succeed/iterators/10_once/proof.json new file mode 100644 index 0000000000..ac19113a77 --- /dev/null +++ b/creusot/tests/should_succeed/iterators/10_once/proof.json @@ -0,0 +1,37 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_10_once__qyi9558967427796228243__next": { + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0.005 } + }, + "M_10_once__qyi9558967427796228243__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_10_once__qyi9558967427796228243__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_10_once__qyi9558967427796228243__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_10_once__qyi9558967427796228243__produces_trans": { + "vc_produces_trans'0": { + "tactic": "split_vc", + "children": [ + { + "tactic": "inline_goal", + "children": [ { "prover": "cvc5@1.0.5", "time": 0.044 } ] + } + ] + } + }, + "M_10_once__qyi9558967427796228243__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/10_once/why3session.xml b/creusot/tests/should_succeed/iterators/10_once/why3session.xml deleted file mode 100644 index 168d31cfe2..0000000000 --- a/creusot/tests/should_succeed/iterators/10_once/why3session.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/10_once/why3shapes.gz b/creusot/tests/should_succeed/iterators/10_once/why3shapes.gz deleted file mode 100644 index b7d3d71a1e..0000000000 Binary files a/creusot/tests/should_succeed/iterators/10_once/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/11_repeat/proof.json b/creusot/tests/should_succeed/iterators/11_repeat/proof.json new file mode 100644 index 0000000000..289c202ec8 --- /dev/null +++ b/creusot/tests/should_succeed/iterators/11_repeat/proof.json @@ -0,0 +1,29 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_11_repeat__qyi12237267952628538149__next": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.021 } + }, + "M_11_repeat__qyi12237267952628538149__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_11_repeat__qyi12237267952628538149__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_11_repeat__qyi12237267952628538149__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_11_repeat__qyi12237267952628538149__produces_trans": { + "vc_produces_trans'0": { "prover": "cvc5@1.0.5", "time": 0.02 } + }, + "M_11_repeat__qyi12237267952628538149__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.014 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/11_repeat/why3session.xml b/creusot/tests/should_succeed/iterators/11_repeat/why3session.xml deleted file mode 100644 index c19851497a..0000000000 --- a/creusot/tests/should_succeed/iterators/11_repeat/why3session.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/11_repeat/why3shapes.gz b/creusot/tests/should_succeed/iterators/11_repeat/why3shapes.gz deleted file mode 100644 index 415841d878..0000000000 Binary files a/creusot/tests/should_succeed/iterators/11_repeat/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/12_zip/proof.json b/creusot/tests/should_succeed/iterators/12_zip/proof.json new file mode 100644 index 0000000000..58fd4b3f0b --- /dev/null +++ b/creusot/tests/should_succeed/iterators/12_zip/proof.json @@ -0,0 +1,51 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_12_zip__qyi1592645166739554830__next": { + "vc_next'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "alt-ergo@2.6.0", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.021 } + ] + }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_next'2": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_v_Some'1": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_12_zip__qyi1592645166739554830__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_12_zip__qyi1592645166739554830__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.029 } + }, + "M_12_zip__qyi1592645166739554830__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_12_zip__qyi1592645166739554830__produces_trans": { + "vc_produces_trans'0": { "prover": "cvc4@1.8", "time": 0.817 } + }, + "M_12_zip__qyi1592645166739554830__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/12_zip/why3session.xml b/creusot/tests/should_succeed/iterators/12_zip/why3session.xml deleted file mode 100644 index 5643e5d69c..0000000000 --- a/creusot/tests/should_succeed/iterators/12_zip/why3session.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/12_zip/why3shapes.gz b/creusot/tests/should_succeed/iterators/12_zip/why3shapes.gz deleted file mode 100644 index 44f171d3ce..0000000000 Binary files a/creusot/tests/should_succeed/iterators/12_zip/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/13_cloned/proof.json b/creusot/tests/should_succeed/iterators/13_cloned/proof.json new file mode 100644 index 0000000000..bf2a32210f --- /dev/null +++ b/creusot/tests/should_succeed/iterators/13_cloned/proof.json @@ -0,0 +1,30 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_13_cloned__qyi7043136317404314719__next": { + "vc_cloned'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.059 }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_13_cloned__qyi7043136317404314719__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_13_cloned__qyi7043136317404314719__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_13_cloned__qyi7043136317404314719__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_13_cloned__qyi7043136317404314719__produces_trans": { + "vc_produces_trans'0": { "prover": "cvc4@1.8", "time": 0.051 } + }, + "M_13_cloned__qyi7043136317404314719__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/13_cloned/why3session.xml b/creusot/tests/should_succeed/iterators/13_cloned/why3session.xml deleted file mode 100644 index 2d9bcfe656..0000000000 --- a/creusot/tests/should_succeed/iterators/13_cloned/why3session.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/13_cloned/why3shapes.gz b/creusot/tests/should_succeed/iterators/13_cloned/why3shapes.gz deleted file mode 100644 index b2338d316d..0000000000 Binary files a/creusot/tests/should_succeed/iterators/13_cloned/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/14_copied/proof.json b/creusot/tests/should_succeed/iterators/14_copied/proof.json new file mode 100644 index 0000000000..578f2a1f7f --- /dev/null +++ b/creusot/tests/should_succeed/iterators/14_copied/proof.json @@ -0,0 +1,30 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_14_copied__qyi6387100604932246480__next": { + "vc_copied'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.059 }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_14_copied__qyi6387100604932246480__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_14_copied__qyi6387100604932246480__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_14_copied__qyi6387100604932246480__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_14_copied__qyi6387100604932246480__produces_trans": { + "vc_produces_trans'0": { "prover": "cvc4@1.8", "time": 0.051 } + }, + "M_14_copied__qyi6387100604932246480__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/14_copied/why3session.xml b/creusot/tests/should_succeed/iterators/14_copied/why3session.xml deleted file mode 100644 index 385654b0b3..0000000000 --- a/creusot/tests/should_succeed/iterators/14_copied/why3session.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/14_copied/why3shapes.gz b/creusot/tests/should_succeed/iterators/14_copied/why3shapes.gz deleted file mode 100644 index bc5af80efc..0000000000 Binary files a/creusot/tests/should_succeed/iterators/14_copied/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/15_enumerate/proof.json b/creusot/tests/should_succeed/iterators/15_enumerate/proof.json new file mode 100644 index 0000000000..2e0c63ace9 --- /dev/null +++ b/creusot/tests/should_succeed/iterators/15_enumerate/proof.json @@ -0,0 +1,47 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_15_enumerate__enumerate": { + "vc_enumerate'0": { "prover": "cvc5@1.0.5", "time": 0.021 } + }, + "M_15_enumerate__qyi17057287782225696128__next": { + "vc_next'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "alt-ergo@2.6.0", "time": 0.064 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "alt-ergo@2.6.0", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.015 } + ] + }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_15_enumerate__qyi17057287782225696128__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_15_enumerate__qyi17057287782225696128__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.029 } + }, + "M_15_enumerate__qyi17057287782225696128__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_15_enumerate__qyi17057287782225696128__produces_trans": { + "vc_produces_trans'0": { "prover": "cvc4@1.8", "time": 0.046 } + }, + "M_15_enumerate__qyi17057287782225696128__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/15_enumerate/why3session.xml b/creusot/tests/should_succeed/iterators/15_enumerate/why3session.xml deleted file mode 100644 index f36d866a1f..0000000000 --- a/creusot/tests/should_succeed/iterators/15_enumerate/why3session.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/15_enumerate/why3shapes.gz b/creusot/tests/should_succeed/iterators/15_enumerate/why3shapes.gz deleted file mode 100644 index bbe05aff76..0000000000 Binary files a/creusot/tests/should_succeed/iterators/15_enumerate/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/16_take/proof.json b/creusot/tests/should_succeed/iterators/16_take/proof.json new file mode 100644 index 0000000000..5b841d27cb --- /dev/null +++ b/creusot/tests/should_succeed/iterators/16_take/proof.json @@ -0,0 +1,29 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_16_take__qyi16574350389265959367__next": { + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.023 }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_16_take__qyi16574350389265959367__next__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_16_take__qyi16574350389265959367__produces_refl": { + "vc_produces_refl'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_16_take__qyi16574350389265959367__produces_refl__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_16_take__qyi16574350389265959367__produces_trans": { + "vc_produces_trans'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_16_take__qyi16574350389265959367__produces_trans__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.013 } + } + } +} diff --git a/creusot/tests/should_succeed/iterators/16_take/why3session.xml b/creusot/tests/should_succeed/iterators/16_take/why3session.xml deleted file mode 100644 index 1a04c880e7..0000000000 --- a/creusot/tests/should_succeed/iterators/16_take/why3session.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/iterators/16_take/why3shapes.gz b/creusot/tests/should_succeed/iterators/16_take/why3shapes.gz deleted file mode 100644 index da89f1c93c..0000000000 Binary files a/creusot/tests/should_succeed/iterators/16_take/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/iterators/17_filter.coma b/creusot/tests/should_succeed/iterators/17_filter.coma index a0353da417..533e6647c1 100644 --- a/creusot/tests/should_succeed/iterators/17_filter.coma +++ b/creusot/tests/should_succeed/iterators/17_filter.coma @@ -1,8 +1,8 @@ -module M_17_filter__qyi17392541228996028033__produces_refl [#"17_filter.rs" 52 4 52 26] (* as common::Iterator> *) - let%span s17_filter0 = "17_filter.rs" 50 15 50 24 - let%span s17_filter1 = "17_filter.rs" 51 14 51 45 - let%span s17_filter2 = "17_filter.rs" 48 4 48 10 - let%span s17_filter3 = "17_filter.rs" 67 8 80 9 +module M_17_filter__qyi17392541228996028033__produces_refl [#"17_filter.rs" 53 4 53 26] (* as common::Iterator> *) + let%span s17_filter0 = "17_filter.rs" 51 15 51 24 + let%span s17_filter1 = "17_filter.rs" 52 14 52 45 + let%span s17_filter2 = "17_filter.rs" 49 4 49 10 + let%span s17_filter3 = "17_filter.rs" 68 8 81 9 let%span scommon4 = "common.rs" 14 15 14 24 let%span scommon5 = "common.rs" 15 14 15 45 let%span scommon6 = "common.rs" 19 15 19 21 @@ -11,7 +11,7 @@ module M_17_filter__qyi17392541228996028033__produces_refl [#"17_filter.rs" 52 4 let%span scommon9 = "common.rs" 22 15 22 32 let%span scommon10 = "common.rs" 23 15 23 32 let%span scommon11 = "common.rs" 24 14 24 42 - let%span s17_filter12 = "17_filter.rs" 24 12 30 122 + let%span s17_filter12 = "17_filter.rs" 25 12 31 122 let%span sops13 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops14 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops15 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -84,7 +84,7 @@ module M_17_filter__qyi17392541228996028033__produces_refl [#"17_filter.rs" 52 4 axiom postcondition_mut_unnest'0_spec : forall self : t_F'0, args : t_Item'0, res_state : t_F'0, res : bool . ([%#sops13] postcondition_mut'0 self args res_state res) -> ([%#sops14] unnest'0 self res_state) - predicate invariant'0 [#"17_filter.rs" 21 4 21 30] (self : t_Filter'0) = + predicate invariant'0 [#"17_filter.rs" 22 4 22 30] (self : t_Filter'0) = [%#s17_filter12] forall f : t_F'0, i : t_Item'0 . precondition'0 f (i) /\ (forall f : t_F'0, g : t_F'0 . unnest'0 f g -> f = g) /\ (forall f1 : t_F'0, f2 : t_F'0, i : t_Item'0 . not (postcondition_mut'0 f1 (i) f2 true @@ -110,7 +110,7 @@ module M_17_filter__qyi17392541228996028033__produces_refl [#"17_filter.rs" 52 4 use seq.Seq - predicate produces'0 [#"17_filter.rs" 66 4 66 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) + predicate produces'0 [#"17_filter.rs" 67 4 67 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) = [%#s17_filter3] unnest'0 self.t_Filter__func'0 succ.t_Filter__func'0 /\ (exists s : Seq.seq t_Item'0, f : Map.map int int . produces'1 self.t_Filter__iter'0 s succ.t_Filter__iter'0 @@ -123,20 +123,20 @@ module M_17_filter__qyi17392541228996028033__produces_refl [#"17_filter.rs" 52 4 constant self : t_Filter'0 - function produces_refl'0 [#"17_filter.rs" 52 4 52 26] (self : t_Filter'0) : () + function produces_refl'0 [#"17_filter.rs" 53 4 53 26] (self : t_Filter'0) : () goal vc_produces_refl'0 : ([%#s17_filter0] inv'0 self) -> ([%#s17_filter1] produces'0 self (Seq.empty : Seq.seq t_Item'0) self) end -module M_17_filter__qyi17392541228996028033__produces_trans [#"17_filter.rs" 62 4 62 90] (* as common::Iterator> *) - let%span s17_filter0 = "17_filter.rs" 56 15 56 21 - let%span s17_filter1 = "17_filter.rs" 57 15 57 21 - let%span s17_filter2 = "17_filter.rs" 58 15 58 21 - let%span s17_filter3 = "17_filter.rs" 59 15 59 32 - let%span s17_filter4 = "17_filter.rs" 60 15 60 32 - let%span s17_filter5 = "17_filter.rs" 61 14 61 42 - let%span s17_filter6 = "17_filter.rs" 54 4 54 10 - let%span s17_filter7 = "17_filter.rs" 67 8 80 9 +module M_17_filter__qyi17392541228996028033__produces_trans [#"17_filter.rs" 63 4 63 90] (* as common::Iterator> *) + let%span s17_filter0 = "17_filter.rs" 57 15 57 21 + let%span s17_filter1 = "17_filter.rs" 58 15 58 21 + let%span s17_filter2 = "17_filter.rs" 59 15 59 21 + let%span s17_filter3 = "17_filter.rs" 60 15 60 32 + let%span s17_filter4 = "17_filter.rs" 61 15 61 32 + let%span s17_filter5 = "17_filter.rs" 62 14 62 42 + let%span s17_filter6 = "17_filter.rs" 55 4 55 10 + let%span s17_filter7 = "17_filter.rs" 68 8 81 9 let%span scommon8 = "common.rs" 14 15 14 24 let%span scommon9 = "common.rs" 15 14 15 45 let%span scommon10 = "common.rs" 19 15 19 21 @@ -145,7 +145,7 @@ module M_17_filter__qyi17392541228996028033__produces_trans [#"17_filter.rs" 62 let%span scommon13 = "common.rs" 22 15 22 32 let%span scommon14 = "common.rs" 23 15 23 32 let%span scommon15 = "common.rs" 24 14 24 42 - let%span s17_filter16 = "17_filter.rs" 24 12 30 122 + let%span s17_filter16 = "17_filter.rs" 25 12 31 122 let%span sops17 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops18 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops19 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -218,7 +218,7 @@ module M_17_filter__qyi17392541228996028033__produces_trans [#"17_filter.rs" 62 axiom postcondition_mut_unnest'0_spec : forall self : t_F'0, args : t_Item'0, res_state : t_F'0, res : bool . ([%#sops17] postcondition_mut'0 self args res_state res) -> ([%#sops18] unnest'0 self res_state) - predicate invariant'0 [#"17_filter.rs" 21 4 21 30] (self : t_Filter'0) = + predicate invariant'0 [#"17_filter.rs" 22 4 22 30] (self : t_Filter'0) = [%#s17_filter16] forall f : t_F'0, i : t_Item'0 . precondition'0 f (i) /\ (forall f : t_F'0, g : t_F'0 . unnest'0 f g -> f = g) /\ (forall f1 : t_F'0, f2 : t_F'0, i : t_Item'0 . not (postcondition_mut'0 f1 (i) f2 true @@ -244,7 +244,7 @@ module M_17_filter__qyi17392541228996028033__produces_trans [#"17_filter.rs" 62 use seq.Seq - predicate produces'0 [#"17_filter.rs" 66 4 66 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) + predicate produces'0 [#"17_filter.rs" 67 4 67 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) = [%#s17_filter7] unnest'0 self.t_Filter__func'0 succ.t_Filter__func'0 /\ (exists s : Seq.seq t_Item'0, f : Map.map int int . produces'1 self.t_Filter__iter'0 s succ.t_Filter__iter'0 @@ -265,7 +265,7 @@ module M_17_filter__qyi17392541228996028033__produces_trans [#"17_filter.rs" 62 constant c : t_Filter'0 - function produces_trans'0 [#"17_filter.rs" 62 4 62 90] (a : t_Filter'0) (ab : Seq.seq t_Item'0) (b : t_Filter'0) (bc : Seq.seq t_Item'0) (c : t_Filter'0) : () + function produces_trans'0 [#"17_filter.rs" 63 4 63 90] (a : t_Filter'0) (ab : Seq.seq t_Item'0) (b : t_Filter'0) (bc : Seq.seq t_Item'0) (c : t_Filter'0) : () goal vc_produces_trans'0 : ([%#s17_filter4] produces'0 b bc c) @@ -273,27 +273,27 @@ module M_17_filter__qyi17392541228996028033__produces_trans [#"17_filter.rs" 62 -> ([%#s17_filter2] inv'0 c) -> ([%#s17_filter1] inv'0 b) -> ([%#s17_filter0] inv'0 a) -> ([%#s17_filter5] produces'0 a (Seq.(++) ab bc) c) end -module M_17_filter__qyi17392541228996028033__next [#"17_filter.rs" 88 4 88 41] (* as common::Iterator> *) - let%span s17_filter0 = "17_filter.rs" 89 23 89 40 - let%span s17_filter1 = "17_filter.rs" 90 27 90 51 - let%span s17_filter2 = "17_filter.rs" 92 8 92 31 - let%span s17_filter3 = "17_filter.rs" 94 20 94 129 - let%span s17_filter4 = "17_filter.rs" 93 20 93 46 - let%span s17_filter5 = "17_filter.rs" 92 20 92 29 - let%span s17_filter6 = "17_filter.rs" 98 23 98 58 - let%span s17_filter7 = "17_filter.rs" 99 12 99 71 - let%span s17_filter8 = "17_filter.rs" 88 17 88 21 - let%span s17_filter9 = "17_filter.rs" 83 15 83 24 - let%span s17_filter10 = "17_filter.rs" 88 26 88 41 - let%span s17_filter11 = "17_filter.rs" 84 14 87 5 +module M_17_filter__qyi17392541228996028033__next [#"17_filter.rs" 89 4 89 41] (* as common::Iterator> *) + let%span s17_filter0 = "17_filter.rs" 90 23 90 40 + let%span s17_filter1 = "17_filter.rs" 91 27 91 51 + let%span s17_filter2 = "17_filter.rs" 93 8 93 31 + let%span s17_filter3 = "17_filter.rs" 95 20 95 129 + let%span s17_filter4 = "17_filter.rs" 94 20 94 46 + let%span s17_filter5 = "17_filter.rs" 93 20 93 29 + let%span s17_filter6 = "17_filter.rs" 99 23 99 58 + let%span s17_filter7 = "17_filter.rs" 100 12 100 71 + let%span s17_filter8 = "17_filter.rs" 89 17 89 21 + let%span s17_filter9 = "17_filter.rs" 84 15 84 24 + let%span s17_filter10 = "17_filter.rs" 89 26 89 41 + let%span s17_filter11 = "17_filter.rs" 85 14 88 5 let%span sops12 = "../../../../creusot-contracts/src/logic/ops.rs" 86 8 86 33 let%span scommon13 = "common.rs" 31 17 31 21 let%span scommon14 = "common.rs" 31 26 31 44 let%span scommon15 = "common.rs" 27 14 30 5 let%span sops16 = "../../../../creusot-contracts/src/std/ops.rs" 158 27 158 52 let%span sops17 = "../../../../creusot-contracts/src/std/ops.rs" 159 26 159 71 - let%span s17_filter18 = "17_filter.rs" 42 12 44 43 - let%span s17_filter19 = "17_filter.rs" 67 8 80 9 + let%span s17_filter18 = "17_filter.rs" 43 12 45 43 + let%span s17_filter19 = "17_filter.rs" 68 8 81 9 let%span scommon20 = "common.rs" 14 15 14 24 let%span scommon21 = "common.rs" 15 14 15 45 let%span scommon22 = "common.rs" 19 15 19 21 @@ -311,7 +311,7 @@ module M_17_filter__qyi17392541228996028033__next [#"17_filter.rs" 88 4 88 41] ( let%span sops34 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 let%span sresolve35 = "../../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span sinvariant36 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span s17_filter37 = "17_filter.rs" 24 12 30 122 + let%span s17_filter37 = "17_filter.rs" 25 12 31 122 let%span sinvariant38 = "../../../../creusot-contracts/src/invariant.rs" 24 8 24 18 use prelude.prelude.Snapshot @@ -397,7 +397,7 @@ module M_17_filter__qyi17392541228996028033__next [#"17_filter.rs" 88 4 88 41] ( predicate precondition'0 (self : t_F'0) (args : t_Item'0) - predicate invariant'3 [#"17_filter.rs" 21 4 21 30] (self : t_Filter'0) = + predicate invariant'3 [#"17_filter.rs" 22 4 22 30] (self : t_Filter'0) = [%#s17_filter37] forall f : t_F'0, i : t_Item'0 . precondition'0 f (i) /\ (forall f : t_F'0, g : t_F'0 . unnest'0 f g -> f = g) /\ (forall f1 : t_F'0, f2 : t_F'0, i : t_Item'0 . not (postcondition_mut'0 f1 (i) f2 true @@ -505,7 +505,7 @@ module M_17_filter__qyi17392541228996028033__next [#"17_filter.rs" 88 4 88 41] ( use prelude.prelude.Snapshot - predicate completed'0 [#"17_filter.rs" 40 4 40 35] (self : borrowed (t_Filter'0)) = + predicate completed'0 [#"17_filter.rs" 41 4 41 35] (self : borrowed (t_Filter'0)) = [%#s17_filter18] (exists s : Seq.seq t_Item'0, e : borrowed t_I'0 . produces'0 (self.current).t_Filter__iter'0 s e.current /\ completed'1 e /\ (forall i : int . 0 <= i /\ i < Seq.length s @@ -516,7 +516,7 @@ module M_17_filter__qyi17392541228996028033__next [#"17_filter.rs" 88 4 88 41] ( use map.Map - predicate produces'1 [#"17_filter.rs" 66 4 66 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) + predicate produces'1 [#"17_filter.rs" 67 4 67 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) = [%#s17_filter19] unnest'0 self.t_Filter__func'0 succ.t_Filter__func'0 /\ (exists s : Seq.seq t_Item'0, f : Map.map int int . produces'0 self.t_Filter__iter'0 s succ.t_Filter__iter'0 @@ -634,17 +634,17 @@ module M_17_filter__qyi17392541228996028033__next [#"17_filter.rs" 88 4 88 41] ( (! return' {result}) ] end -module M_17_filter__filter [#"17_filter.rs" 114 0 116 39] - let%span s17_filter0 = "17_filter.rs" 114 30 114 34 - let%span s17_filter1 = "17_filter.rs" 114 39 114 40 - let%span s17_filter2 = "17_filter.rs" 110 11 110 23 - let%span s17_filter3 = "17_filter.rs" 111 11 111 29 - let%span s17_filter4 = "17_filter.rs" 112 11 112 21 - let%span s17_filter5 = "17_filter.rs" 114 48 114 60 - let%span s17_filter6 = "17_filter.rs" 113 10 113 49 - let%span s17_filter7 = "17_filter.rs" 141 16 141 59 - let%span s17_filter8 = "17_filter.rs" 135 16 135 57 - let%span s17_filter9 = "17_filter.rs" 147 16 147 126 +module M_17_filter__filter [#"17_filter.rs" 115 0 117 39] + let%span s17_filter0 = "17_filter.rs" 115 30 115 34 + let%span s17_filter1 = "17_filter.rs" 115 39 115 40 + let%span s17_filter2 = "17_filter.rs" 111 11 111 23 + let%span s17_filter3 = "17_filter.rs" 112 11 112 29 + let%span s17_filter4 = "17_filter.rs" 113 11 113 21 + let%span s17_filter5 = "17_filter.rs" 115 48 115 60 + let%span s17_filter6 = "17_filter.rs" 114 10 114 49 + let%span s17_filter7 = "17_filter.rs" 142 16 142 59 + let%span s17_filter8 = "17_filter.rs" 136 16 136 57 + let%span s17_filter9 = "17_filter.rs" 148 16 148 126 let%span sops10 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops11 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops12 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -660,7 +660,7 @@ module M_17_filter__filter [#"17_filter.rs" 114 0 116 39] let%span scommon22 = "common.rs" 22 15 22 32 let%span scommon23 = "common.rs" 23 15 23 32 let%span scommon24 = "common.rs" 24 14 24 42 - let%span s17_filter25 = "17_filter.rs" 24 12 30 122 + let%span s17_filter25 = "17_filter.rs" 25 12 31 122 type t_I'0 @@ -728,19 +728,19 @@ module M_17_filter__filter [#"17_filter.rs" 114 0 116 39] axiom postcondition_mut_unnest'0_spec : forall self : t_P'0, args : t_Item'0, res_state : t_P'0, res : bool . ([%#sops10] postcondition_mut'0 self args res_state res) -> ([%#sops11] unnest'0 self res_state) - predicate immutable'0 [#"17_filter.rs" 140 0 140 54] (_1 : t_P'0) = + predicate immutable'0 [#"17_filter.rs" 141 0 141 54] (_1 : t_P'0) = [%#s17_filter7] forall f : t_P'0, g : t_P'0 . unnest'0 f g -> f = g predicate precondition'0 (self : t_P'0) (args : t_Item'0) - predicate no_precondition'0 [#"17_filter.rs" 134 0 134 60] (_1 : t_P'0) = + predicate no_precondition'0 [#"17_filter.rs" 135 0 135 60] (_1 : t_P'0) = [%#s17_filter8] forall f : t_P'0, i : t_Item'0 . precondition'0 f (i) - predicate precise'0 [#"17_filter.rs" 146 0 146 52] (_1 : t_P'0) = + predicate precise'0 [#"17_filter.rs" 147 0 147 52] (_1 : t_P'0) = [%#s17_filter9] forall f1 : t_P'0, f2 : t_P'0, i : t_Item'0 . not (postcondition_mut'0 f1 (i) f2 true /\ postcondition_mut'0 f1 (i) f2 false) - predicate invariant'0 [#"17_filter.rs" 21 4 21 30] (self : t_Filter'0) = + predicate invariant'0 [#"17_filter.rs" 22 4 22 30] (self : t_Filter'0) = [%#s17_filter25] forall f : t_P'0, i : t_Item'0 . precondition'0 f (i) /\ (forall f : t_P'0, g : t_P'0 . unnest'0 f g -> f = g) /\ (forall f1 : t_P'0, f2 : t_P'0, i : t_Item'0 . not (postcondition_mut'0 f1 (i) f2 true @@ -777,11 +777,11 @@ module M_17_filter__filter [#"17_filter.rs" 114 0 116 39] (! return' {result}) ] end -module M_17_filter__less_than [#"17_filter.rs" 123 0 123 49] - let%span s17_filter0 = "17_filter.rs" 121 10 121 70 - let%span s17_filter1 = "17_filter.rs" 122 10 122 79 +module M_17_filter__less_than [#"17_filter.rs" 124 0 124 49] + let%span s17_filter0 = "17_filter.rs" 122 10 122 70 + let%span s17_filter1 = "17_filter.rs" 123 10 123 79 let%span siter2 = "../../../../creusot-contracts/src/std/iter.rs" 101 0 213 1 - let%span s17_filter3 = "17_filter.rs" 126 22 126 40 + let%span s17_filter3 = "17_filter.rs" 127 22 127 40 let%span siter4 = "../../../../creusot-contracts/src/std/iter.rs" 144 27 144 47 let%span siter5 = "../../../../creusot-contracts/src/std/iter.rs" 145 27 145 53 let%span siter6 = "../../../../creusot-contracts/src/std/iter.rs" 146 27 146 45 @@ -1155,10 +1155,10 @@ module M_17_filter__less_than [#"17_filter.rs" 123 0 123 49] (! return' {result}) ] end -module M_17_filter__qyi17392541228996028033__next__refines [#"17_filter.rs" 88 4 88 41] (* as common::Iterator> *) - let%span s17_filter0 = "17_filter.rs" 88 4 88 41 - let%span s17_filter1 = "17_filter.rs" 42 12 44 43 - let%span s17_filter2 = "17_filter.rs" 67 8 80 9 +module M_17_filter__qyi17392541228996028033__next__refines [#"17_filter.rs" 89 4 89 41] (* as common::Iterator> *) + let%span s17_filter0 = "17_filter.rs" 89 4 89 41 + let%span s17_filter1 = "17_filter.rs" 43 12 45 43 + let%span s17_filter2 = "17_filter.rs" 68 8 81 9 let%span sinvariant3 = "../../../../creusot-contracts/src/invariant.rs" 34 20 34 44 let%span scommon4 = "common.rs" 14 15 14 24 let%span scommon5 = "common.rs" 15 14 15 45 @@ -1175,7 +1175,7 @@ module M_17_filter__qyi17392541228996028033__next__refines [#"17_filter.rs" 88 4 let%span sops16 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops17 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops18 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s17_filter19 = "17_filter.rs" 24 12 30 122 + let%span s17_filter19 = "17_filter.rs" 25 12 31 122 use prelude.prelude.Borrow @@ -1241,7 +1241,7 @@ module M_17_filter__qyi17392541228996028033__next__refines [#"17_filter.rs" 88 4 axiom postcondition_mut_unnest'0_spec : forall self : t_F'0, args : t_Item'0, res_state : t_F'0, res : bool . ([%#sops12] postcondition_mut'0 self args res_state res) -> ([%#sops13] unnest'0 self res_state) - predicate invariant'1 [#"17_filter.rs" 21 4 21 30] (self : t_Filter'0) = + predicate invariant'1 [#"17_filter.rs" 22 4 22 30] (self : t_Filter'0) = [%#s17_filter19] forall f : t_F'0, i : t_Item'0 . precondition'0 f (i) /\ (forall f : t_F'0, g : t_F'0 . unnest'0 f g -> f = g) /\ (forall f1 : t_F'0, f2 : t_F'0, i : t_Item'0 . not (postcondition_mut'0 f1 (i) f2 true @@ -1276,7 +1276,7 @@ module M_17_filter__qyi17392541228996028033__next__refines [#"17_filter.rs" 88 4 use seq.Seq - predicate completed'0 [#"17_filter.rs" 40 4 40 35] (self : borrowed (t_Filter'0)) = + predicate completed'0 [#"17_filter.rs" 41 4 41 35] (self : borrowed (t_Filter'0)) = [%#s17_filter1] (exists s : Seq.seq t_Item'0, e : borrowed t_I'0 . produces'1 (self.current).t_Filter__iter'0 s e.current /\ completed'1 e /\ (forall i : int . 0 <= i /\ i < Seq.length s @@ -1289,7 +1289,7 @@ module M_17_filter__qyi17392541228996028033__next__refines [#"17_filter.rs" 88 4 use map.Map - predicate produces'0 [#"17_filter.rs" 66 4 66 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) + predicate produces'0 [#"17_filter.rs" 67 4 67 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) = [%#s17_filter2] unnest'0 self.t_Filter__func'0 succ.t_Filter__func'0 /\ (exists s : Seq.seq t_Item'0, f : Map.map int int . produces'1 self.t_Filter__iter'0 s succ.t_Filter__iter'0 @@ -1324,9 +1324,9 @@ module M_17_filter__qyi17392541228996028033__next__refines [#"17_filter.rs" 88 4 end /\ inv'1 result) end -module M_17_filter__qyi17392541228996028033__produces_refl__refines [#"17_filter.rs" 52 4 52 26] (* as common::Iterator> *) - let%span s17_filter0 = "17_filter.rs" 52 4 52 26 - let%span s17_filter1 = "17_filter.rs" 67 8 80 9 +module M_17_filter__qyi17392541228996028033__produces_refl__refines [#"17_filter.rs" 53 4 53 26] (* as common::Iterator> *) + let%span s17_filter0 = "17_filter.rs" 53 4 53 26 + let%span s17_filter1 = "17_filter.rs" 68 8 81 9 let%span scommon2 = "common.rs" 14 15 14 24 let%span scommon3 = "common.rs" 15 14 15 45 let%span scommon4 = "common.rs" 19 15 19 21 @@ -1335,7 +1335,7 @@ module M_17_filter__qyi17392541228996028033__produces_refl__refines [#"17_filter let%span scommon7 = "common.rs" 22 15 22 32 let%span scommon8 = "common.rs" 23 15 23 32 let%span scommon9 = "common.rs" 24 14 24 42 - let%span s17_filter10 = "17_filter.rs" 24 12 30 122 + let%span s17_filter10 = "17_filter.rs" 25 12 31 122 let%span sops11 = "../../../../creusot-contracts/src/std/ops.rs" 105 15 105 59 let%span sops12 = "../../../../creusot-contracts/src/std/ops.rs" 106 14 106 36 let%span sops13 = "../../../../creusot-contracts/src/std/ops.rs" 111 14 111 31 @@ -1408,7 +1408,7 @@ module M_17_filter__qyi17392541228996028033__produces_refl__refines [#"17_filter axiom postcondition_mut_unnest'0_spec : forall self : t_F'0, args : t_Item'0, res_state : t_F'0, res : bool . ([%#sops11] postcondition_mut'0 self args res_state res) -> ([%#sops12] unnest'0 self res_state) - predicate invariant'0 [#"17_filter.rs" 21 4 21 30] (self : t_Filter'0) = + predicate invariant'0 [#"17_filter.rs" 22 4 22 30] (self : t_Filter'0) = [%#s17_filter10] forall f : t_F'0, i : t_Item'0 . precondition'0 f (i) /\ (forall f : t_F'0, g : t_F'0 . unnest'0 f g -> f = g) /\ (forall f1 : t_F'0, f2 : t_F'0, i : t_Item'0 . not (postcondition_mut'0 f1 (i) f2 true @@ -1434,7 +1434,7 @@ module M_17_filter__qyi17392541228996028033__produces_refl__refines [#"17_filter use seq.Seq - predicate produces'0 [#"17_filter.rs" 66 4 66 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) + predicate produces'0 [#"17_filter.rs" 67 4 67 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) = [%#s17_filter1] unnest'0 self.t_Filter__func'0 succ.t_Filter__func'0 /\ (exists s : Seq.seq t_Item'0, f : Map.map int int . produces'1 self.t_Filter__iter'0 s succ.t_Filter__iter'0 @@ -1450,9 +1450,9 @@ module M_17_filter__qyi17392541228996028033__produces_refl__refines [#"17_filter /\ (forall result : () . produces'0 self (Seq.empty : Seq.seq t_Item'0) self -> produces'0 self (Seq.empty : Seq.seq t_Item'0) self) end -module M_17_filter__qyi17392541228996028033__produces_trans__refines [#"17_filter.rs" 62 4 62 90] (* as common::Iterator> *) - let%span s17_filter0 = "17_filter.rs" 62 4 62 90 - let%span s17_filter1 = "17_filter.rs" 67 8 80 9 +module M_17_filter__qyi17392541228996028033__produces_trans__refines [#"17_filter.rs" 63 4 63 90] (* as common::Iterator> *) + let%span s17_filter0 = "17_filter.rs" 63 4 63 90 + let%span s17_filter1 = "17_filter.rs" 68 8 81 9 let%span scommon2 = "common.rs" 14 15 14 24 let%span scommon3 = "common.rs" 15 14 15 45 let%span scommon4 = "common.rs" 19 15 19 21 @@ -1468,7 +1468,7 @@ module M_17_filter__qyi17392541228996028033__produces_trans__refines [#"17_filte let%span sops14 = "../../../../creusot-contracts/src/std/ops.rs" 117 15 117 26 let%span sops15 = "../../../../creusot-contracts/src/std/ops.rs" 118 14 118 28 let%span sops16 = "../../../../creusot-contracts/src/std/ops.rs" 123 14 124 105 - let%span s17_filter17 = "17_filter.rs" 24 12 30 122 + let%span s17_filter17 = "17_filter.rs" 25 12 31 122 type t_I'0 @@ -1542,7 +1542,7 @@ module M_17_filter__qyi17392541228996028033__produces_trans__refines [#"17_filte use seq.Seq - predicate produces'0 [#"17_filter.rs" 66 4 66 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) + predicate produces'0 [#"17_filter.rs" 67 4 67 67] (self : t_Filter'0) (visited : Seq.seq t_Item'0) (succ : t_Filter'0) = [%#s17_filter1] unnest'0 self.t_Filter__func'0 succ.t_Filter__func'0 /\ (exists s : Seq.seq t_Item'0, f : Map.map int int . produces'1 self.t_Filter__iter'0 s succ.t_Filter__iter'0 @@ -1555,7 +1555,7 @@ module M_17_filter__qyi17392541228996028033__produces_trans__refines [#"17_filte predicate precondition'0 (self : t_F'0) (args : t_Item'0) - predicate invariant'0 [#"17_filter.rs" 21 4 21 30] (self : t_Filter'0) = + predicate invariant'0 [#"17_filter.rs" 22 4 22 30] (self : t_Filter'0) = [%#s17_filter17] forall f : t_F'0, i : t_Item'0 . precondition'0 f (i) /\ (forall f : t_F'0, g : t_F'0 . unnest'0 f g -> f = g) /\ (forall f1 : t_F'0, f2 : t_F'0, i : t_Item'0 . not (postcondition_mut'0 f1 (i) f2 true diff --git a/creusot/tests/should_succeed/iterators/17_filter.rs b/creusot/tests/should_succeed/iterators/17_filter.rs index 432eae12d3..0c32674a29 100644 --- a/creusot/tests/should_succeed/iterators/17_filter.rs +++ b/creusot/tests/should_succeed/iterators/17_filter.rs @@ -1,3 +1,4 @@ +// WHY3PROVE #![feature(unboxed_closures)] extern crate creusot_contracts; diff --git a/creusot/tests/should_succeed/knapsack/proof.json b/creusot/tests/should_succeed/knapsack/proof.json new file mode 100644 index 0000000000..f5e6e217cd --- /dev/null +++ b/creusot/tests/should_succeed/knapsack/proof.json @@ -0,0 +1,28 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_knapsack__knapsack01_dyn": { + "vc_from_elem'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_from_elem'1": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_index'2": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_index_mut'1": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_knapsack01_dyn'0": { "prover": "z3@4.12.4", "time": 0.06 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_max'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_with_capacity'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_knapsack__m": { "vc_m'0": { "prover": "cvc5@1.0.5", "time": 0.019 } }, + "M_knapsack__max": { + "vc_max'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + } + } +} diff --git a/creusot/tests/should_succeed/knapsack/why3session.xml b/creusot/tests/should_succeed/knapsack/why3session.xml deleted file mode 100644 index 64f6f0354b..0000000000 --- a/creusot/tests/should_succeed/knapsack/why3session.xml +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/knapsack/why3shapes.gz b/creusot/tests/should_succeed/knapsack/why3shapes.gz deleted file mode 100644 index ef45bd68de..0000000000 Binary files a/creusot/tests/should_succeed/knapsack/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/knapsack_full/proof.json b/creusot/tests/should_succeed/knapsack_full/proof.json new file mode 100644 index 0000000000..1cab9eef2f --- /dev/null +++ b/creusot/tests/should_succeed/knapsack_full/proof.json @@ -0,0 +1,170 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_knapsack_full__knapsack01_dyn": { + "vc_from_elem'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_from_elem'1": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_index'2": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.031 }, + "vc_index_mut'1": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_into_iter'1": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_knapsack01_dyn'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.039 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.013 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.107 }, + { "prover": "cvc5@1.0.5", "time": 0.08 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.117 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.149 }, + { "prover": "cvc5@1.0.5", "time": 0.181 }, + { "prover": "cvc5@1.0.5", "time": 0.081 }, + { "prover": "cvc5@1.0.5", "time": 0.149 }, + { "prover": "cvc5@1.0.5", "time": 0.054 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.076 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.159 }, + { "prover": "z3@4.12.4", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.161 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.24 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.198 }, + { "prover": "cvc5@1.0.5", "time": 0.061 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.213 }, + { "prover": "cvc5@1.0.5", "time": 0.173 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.091 }, + { "prover": "cvc5@1.0.5", "time": 0.257 }, + { "prover": "cvc4@1.8", "time": 0.182 }, + { "prover": "cvc5@1.0.5", "time": 0.075 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.246 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.253 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.312 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.327 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc4@1.8", "time": 0.23 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.079 }, + { "prover": "cvc5@1.0.5", "time": 0.087 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc4@1.8", "time": 0.243 }, + { "prover": "cvc5@1.0.5", "time": 0.354 }, + { "prover": "z3@4.12.4", "time": 0.097 }, + { "prover": "z3@4.12.4", "time": 0.076 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.052 }, + { "prover": "cvc5@1.0.5", "time": 0.139 }, + { "prover": "cvc5@1.0.5", "time": 0.214 }, + { "prover": "cvc5@1.0.5", "time": 0.176 }, + { "prover": "cvc5@1.0.5", "time": 0.173 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.065 }, + { "prover": "cvc5@1.0.5", "time": 0.071 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.08 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.179 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.071 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.191 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.065 }, + { "prover": "cvc5@1.0.5", "time": 0.078 }, + { "prover": "cvc5@1.0.5", "time": 0.281 }, + { "prover": "cvc5@1.0.5", "time": 0.214 }, + { "prover": "z3@4.12.4", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.172 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.253 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.186 }, + { "prover": "z3@4.12.4", "time": 0.265 }, + { "prover": "z3@4.12.4", "time": 0.133 }, + { "prover": "alt-ergo@2.6.0", "time": 0.193 } + ] + }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_max'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_with_capacity'0": { "prover": "cvc5@1.0.5", "time": 0.025 } + }, + "M_knapsack_full__m": { + "vc_m'0": { "prover": "cvc5@1.0.5", "time": 0.137 } + }, + "M_knapsack_full__max": { + "vc_max'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_knapsack_full__subseq_rev": { + "vc_subseq_rev'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_knapsack_full__sum_values": { + "vc_sum_values'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_knapsack_full__sum_weights": { + "vc_sum_weights'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + } + } +} diff --git a/creusot/tests/should_succeed/knapsack_full/why3session.xml b/creusot/tests/should_succeed/knapsack_full/why3session.xml deleted file mode 100644 index 4c13a4acf3..0000000000 --- a/creusot/tests/should_succeed/knapsack_full/why3session.xml +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/knapsack_full/why3shapes.gz b/creusot/tests/should_succeed/knapsack_full/why3shapes.gz deleted file mode 100644 index 0c1f5572ff..0000000000 Binary files a/creusot/tests/should_succeed/knapsack_full/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/assoc_type/proof.json b/creusot/tests/should_succeed/lang/assoc_type/proof.json new file mode 100644 index 0000000000..f4ae40676f --- /dev/null +++ b/creusot/tests/should_succeed/lang/assoc_type/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_assoc_type__uses3": { + "vc_uses3'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/lang/assoc_type/why3session.xml b/creusot/tests/should_succeed/lang/assoc_type/why3session.xml deleted file mode 100644 index f63dff418b..0000000000 --- a/creusot/tests/should_succeed/lang/assoc_type/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/lang/assoc_type/why3shapes.gz b/creusot/tests/should_succeed/lang/assoc_type/why3shapes.gz deleted file mode 100644 index e734d9553b..0000000000 Binary files a/creusot/tests/should_succeed/lang/assoc_type/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/branch_borrow_2/proof.json b/creusot/tests/should_succeed/lang/branch_borrow_2/proof.json new file mode 100644 index 0000000000..192b323277 --- /dev/null +++ b/creusot/tests/should_succeed/lang/branch_borrow_2/proof.json @@ -0,0 +1,19 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_branch_borrow_2__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_branch_borrow_2__g": { + "vc_g'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_branch_borrow_2__h": { + "vc_h'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/lang/branch_borrow_2/why3session.xml b/creusot/tests/should_succeed/lang/branch_borrow_2/why3session.xml deleted file mode 100644 index ba4c03fe9a..0000000000 --- a/creusot/tests/should_succeed/lang/branch_borrow_2/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/lang/branch_borrow_2/why3shapes.gz b/creusot/tests/should_succeed/lang/branch_borrow_2/why3shapes.gz deleted file mode 100644 index cbe8579329..0000000000 Binary files a/creusot/tests/should_succeed/lang/branch_borrow_2/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/const/proof.json b/creusot/tests/should_succeed/lang/const/proof.json new file mode 100644 index 0000000000..dce1e9d107 --- /dev/null +++ b/creusot/tests/should_succeed/lang/const/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_const__foo": { "vc_foo'0": { "prover": "cvc5@1.0.5", "time": 0.009 } } + } +} diff --git a/creusot/tests/should_succeed/lang/const/why3session.xml b/creusot/tests/should_succeed/lang/const/why3session.xml deleted file mode 100644 index 4d27f00112..0000000000 --- a/creusot/tests/should_succeed/lang/const/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/lang/const/why3shapes.gz b/creusot/tests/should_succeed/lang/const/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/lang/const/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/empty/proof.json b/creusot/tests/should_succeed/lang/empty/proof.json new file mode 100644 index 0000000000..0bb7d49c7e --- /dev/null +++ b/creusot/tests/should_succeed/lang/empty/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_empty__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 } } + } +} diff --git a/creusot/tests/should_succeed/lang/empty/why3session.xml b/creusot/tests/should_succeed/lang/empty/why3session.xml deleted file mode 100644 index 1e0c090524..0000000000 --- a/creusot/tests/should_succeed/lang/empty/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/lang/empty/why3shapes.gz b/creusot/tests/should_succeed/lang/empty/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/lang/empty/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/literals/proof.json b/creusot/tests/should_succeed/lang/literals/proof.json new file mode 100644 index 0000000000..c18e898448 --- /dev/null +++ b/creusot/tests/should_succeed/lang/literals/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_literals__float_operation": { + "vc_float_operation'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/lang/literals/why3session.xml b/creusot/tests/should_succeed/lang/literals/why3session.xml deleted file mode 100644 index 980a424b48..0000000000 --- a/creusot/tests/should_succeed/lang/literals/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/lang/literals/why3shapes.gz b/creusot/tests/should_succeed/lang/literals/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/lang/literals/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/module_paths/proof.json b/creusot/tests/should_succeed/lang/module_paths/proof.json new file mode 100644 index 0000000000..b57603b00d --- /dev/null +++ b/creusot/tests/should_succeed/lang/module_paths/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_module_paths__test": { + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/lang/module_paths/why3session.xml b/creusot/tests/should_succeed/lang/module_paths/why3session.xml deleted file mode 100644 index ccb44f20f6..0000000000 --- a/creusot/tests/should_succeed/lang/module_paths/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/lang/module_paths/why3shapes.gz b/creusot/tests/should_succeed/lang/module_paths/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/lang/module_paths/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/modules/proof.json b/creusot/tests/should_succeed/lang/modules/proof.json new file mode 100644 index 0000000000..757c0dcc32 --- /dev/null +++ b/creusot/tests/should_succeed/lang/modules/proof.json @@ -0,0 +1,27 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_modules__f": { + "vc_another'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_inner_func'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_modules__nested__further__another": { + "vc_another'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_modules__nested__inner_func": { + "vc_inner_func'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_modules__nested__qyi3235025002392720358__resolve_coherence": { + "vc_resolve_coherence'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_modules__nested__qyi3235025002392720358__resolve_coherence__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0 } + } + } +} diff --git a/creusot/tests/should_succeed/lang/modules/why3session.xml b/creusot/tests/should_succeed/lang/modules/why3session.xml deleted file mode 100644 index 4bfa196cca..0000000000 --- a/creusot/tests/should_succeed/lang/modules/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/lang/modules/why3shapes.gz b/creusot/tests/should_succeed/lang/modules/why3shapes.gz deleted file mode 100644 index 9289c82e79..0000000000 Binary files a/creusot/tests/should_succeed/lang/modules/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/move_path/proof.json b/creusot/tests/should_succeed/lang/move_path/proof.json new file mode 100644 index 0000000000..fe03ca8d52 --- /dev/null +++ b/creusot/tests/should_succeed/lang/move_path/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_move_path__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.008 } } + } +} diff --git a/creusot/tests/should_succeed/lang/move_path/why3session.xml b/creusot/tests/should_succeed/lang/move_path/why3session.xml deleted file mode 100644 index fd006b671b..0000000000 --- a/creusot/tests/should_succeed/lang/move_path/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/lang/move_path/why3shapes.gz b/creusot/tests/should_succeed/lang/move_path/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/lang/move_path/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/multiple_scopes/proof.json b/creusot/tests/should_succeed/lang/multiple_scopes/proof.json new file mode 100644 index 0000000000..4b667e9ffe --- /dev/null +++ b/creusot/tests/should_succeed/lang/multiple_scopes/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_multiple_scopes__multiple_scopes": { + "vc_multiple_scopes'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/lang/multiple_scopes/why3session.xml b/creusot/tests/should_succeed/lang/multiple_scopes/why3session.xml deleted file mode 100644 index 36ee785463..0000000000 --- a/creusot/tests/should_succeed/lang/multiple_scopes/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/lang/multiple_scopes/why3shapes.gz b/creusot/tests/should_succeed/lang/multiple_scopes/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/lang/multiple_scopes/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/promoted_constants/proof.json b/creusot/tests/should_succeed/lang/promoted_constants/proof.json new file mode 100644 index 0000000000..2c54100acd --- /dev/null +++ b/creusot/tests/should_succeed/lang/promoted_constants/proof.json @@ -0,0 +1,34 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_promoted_constants__promoted_int": { + "vc_promoted0__promoted_int'0": { + "prover": "cvc5@1.0.5", + "time": 0.009 + }, + "vc_promoted_int'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_promoted_constants__promoted_none": { + "vc_promoted0__promoted_none'0": { + "prover": "cvc5@1.0.5", + "time": 0.01 + }, + "vc_promoted1__promoted_none'0": { + "prover": "cvc5@1.0.5", + "time": 0.01 + }, + "vc_promoted_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_promoted_constants__str": { + "vc_str'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_promoted_constants__string": { + "vc_string'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/lang/promoted_constants/why3session.xml b/creusot/tests/should_succeed/lang/promoted_constants/why3session.xml deleted file mode 100644 index b4453658e5..0000000000 --- a/creusot/tests/should_succeed/lang/promoted_constants/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/lang/promoted_constants/why3shapes.gz b/creusot/tests/should_succeed/lang/promoted_constants/why3shapes.gz deleted file mode 100644 index 99c422913e..0000000000 Binary files a/creusot/tests/should_succeed/lang/promoted_constants/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/unary_op/proof.json b/creusot/tests/should_succeed/lang/unary_op/proof.json new file mode 100644 index 0000000000..5487d9cb9e --- /dev/null +++ b/creusot/tests/should_succeed/lang/unary_op/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_unary_op__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 } } + } +} diff --git a/creusot/tests/should_succeed/lang/unary_op/why3session.xml b/creusot/tests/should_succeed/lang/unary_op/why3session.xml deleted file mode 100644 index 41779e7092..0000000000 --- a/creusot/tests/should_succeed/lang/unary_op/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/lang/unary_op/why3shapes.gz b/creusot/tests/should_succeed/lang/unary_op/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/lang/unary_op/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/unions/proof.json b/creusot/tests/should_succeed/lang/unions/proof.json new file mode 100644 index 0000000000..f52a888349 --- /dev/null +++ b/creusot/tests/should_succeed/lang/unions/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_unions__x": { "vc_x'0": { "prover": "cvc5@1.0.5", "time": 0.012 } } + } +} diff --git a/creusot/tests/should_succeed/lang/unions/why3session.xml b/creusot/tests/should_succeed/lang/unions/why3session.xml deleted file mode 100644 index 3e7ae0c614..0000000000 --- a/creusot/tests/should_succeed/lang/unions/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/lang/unions/why3shapes.gz b/creusot/tests/should_succeed/lang/unions/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/lang/unions/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/lang/while_let/proof.json b/creusot/tests/should_succeed/lang/while_let/proof.json new file mode 100644 index 0000000000..4170c80ded --- /dev/null +++ b/creusot/tests/should_succeed/lang/while_let/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_while_let__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.011 } } + } +} diff --git a/creusot/tests/should_succeed/lang/while_let/why3session.xml b/creusot/tests/should_succeed/lang/while_let/why3session.xml deleted file mode 100644 index 25a259a485..0000000000 --- a/creusot/tests/should_succeed/lang/while_let/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/lang/while_let/why3shapes.gz b/creusot/tests/should_succeed/lang/while_let/why3shapes.gz deleted file mode 100644 index c86b685017..0000000000 Binary files a/creusot/tests/should_succeed/lang/while_let/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/list_index_mut/proof.json b/creusot/tests/should_succeed/list_index_mut/proof.json new file mode 100644 index 0000000000..1550fd22c6 --- /dev/null +++ b/creusot/tests/should_succeed/list_index_mut/proof.json @@ -0,0 +1,23 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_list_index_mut__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_write'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_list_index_mut__index_mut": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_index_mut'0": { "prover": "cvc4@1.8", "time": 0.081 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_list_index_mut__write": { + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_write'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/list_index_mut/why3session.xml b/creusot/tests/should_succeed/list_index_mut/why3session.xml deleted file mode 100644 index 777f9db591..0000000000 --- a/creusot/tests/should_succeed/list_index_mut/why3session.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/list_index_mut/why3shapes.gz b/creusot/tests/should_succeed/list_index_mut/why3shapes.gz deleted file mode 100644 index ee93773c06..0000000000 Binary files a/creusot/tests/should_succeed/list_index_mut/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/list_reversal_lasso/proof.json b/creusot/tests/should_succeed/list_reversal_lasso/proof.json new file mode 100644 index 0000000000..91b5dfbeb5 --- /dev/null +++ b/creusot/tests/should_succeed/list_reversal_lasso/proof.json @@ -0,0 +1,101 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_list_reversal_lasso__qyi13715866738248475091__index": { + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_list_reversal_lasso__qyi13715866738248475091__index__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_list_reversal_lasso__qyi14823043098042356205__index_mut": { + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.049 }, + "vc_index_mut'1": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_list_reversal_lasso__qyi14823043098042356205__index_mut__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_list_reversal_lasso__qyi2644757663130641572__find_lasso": { + "vc_find_lasso'0": { "prover": "cvc5@1.0.5", "time": 0.044 } + }, + "M_list_reversal_lasso__qyi2644757663130641572__find_lasso_aux": { + "vc_find_lasso_aux'0": { "prover": "z3@4.12.4", "time": 0.22 } + }, + "M_list_reversal_lasso__qyi2644757663130641572__find_ptr_in_seq": { + "vc_find_ptr_in_seq'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_list_reversal_lasso__qyi2644757663130641572__list_reversal_lasso": { + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_list_reversal_lasso'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.084 }, + { "prover": "cvc5@1.0.5", "time": 0.095 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "alt-ergo@2.6.0", "time": 0.816 }, + { "prover": "alt-ergo@2.6.0", "time": 0.07 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.134 }, + { "prover": "alt-ergo@2.6.0", "time": 0.576 }, + { "prover": "alt-ergo@2.6.0", "time": 0.701 }, + { "prover": "alt-ergo@2.6.0", "time": 1.1 } + ] + }, + "vc_replace'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_list_reversal_lasso__qyi2644757663130641572__list_reversal_list": { + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_list_reversal_list'0": { + "prover": "alt-ergo@2.6.0", + "time": 0.674 + }, + "vc_replace'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_list_reversal_lasso__qyi2644757663130641572__list_reversal_loop": { + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_list_reversal_loop'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.074 }, + { "prover": "alt-ergo@2.6.0", "time": 0.064 }, + { "prover": "alt-ergo@2.6.0", "time": 0.31 }, + { "prover": "alt-ergo@2.6.0", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.136 }, + { "prover": "cvc5@1.0.5", "time": 0.01 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "alt-ergo@2.6.0", "time": 0.128 }, + { "prover": "z3@4.12.4", "time": 0.046 }, + { "prover": "alt-ergo@2.6.0", "time": 0.247 } + ] + }, + "vc_replace'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_list_reversal_lasso__qyi2644757663130641572__list_reversal_safe": { + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_list_reversal_safe'0": { "prover": "cvc5@1.0.5", "time": 0.2 } + }, + "M_list_reversal_lasso__qyi2644757663130641572__pigeon": { + "vc_pigeon'0": { "prover": "z3@4.12.4", "time": 0.055 } + } + } +} diff --git a/creusot/tests/should_succeed/list_reversal_lasso/why3session.xml b/creusot/tests/should_succeed/list_reversal_lasso/why3session.xml deleted file mode 100644 index 473a9becde..0000000000 --- a/creusot/tests/should_succeed/list_reversal_lasso/why3session.xml +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/list_reversal_lasso/why3shapes.gz b/creusot/tests/should_succeed/list_reversal_lasso/why3shapes.gz deleted file mode 100644 index 2c2552e7e4..0000000000 Binary files a/creusot/tests/should_succeed/list_reversal_lasso/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/loop/proof.json b/creusot/tests/should_succeed/loop/proof.json new file mode 100644 index 0000000000..e50c53d4f2 --- /dev/null +++ b/creusot/tests/should_succeed/loop/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_loop__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.008 } } + } +} diff --git a/creusot/tests/should_succeed/loop/why3session.xml b/creusot/tests/should_succeed/loop/why3session.xml deleted file mode 100644 index 2d877e57ec..0000000000 --- a/creusot/tests/should_succeed/loop/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/loop/why3shapes.gz b/creusot/tests/should_succeed/loop/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/loop/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/mapping_test/proof.json b/creusot/tests/should_succeed/mapping_test/proof.json new file mode 100644 index 0000000000..9847577ddc --- /dev/null +++ b/creusot/tests/should_succeed/mapping_test/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_mapping_test__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_incr'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_mapping_test__incr": { + "vc_incr'0": { "prover": "cvc5@1.0.5", "time": 0.023 } + } + } +} diff --git a/creusot/tests/should_succeed/mapping_test/why3session.xml b/creusot/tests/should_succeed/mapping_test/why3session.xml deleted file mode 100644 index 627820adfb..0000000000 --- a/creusot/tests/should_succeed/mapping_test/why3session.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/mapping_test/why3shapes.gz b/creusot/tests/should_succeed/mapping_test/why3shapes.gz deleted file mode 100644 index e5021a32ce..0000000000 Binary files a/creusot/tests/should_succeed/mapping_test/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/match_int/proof.json b/creusot/tests/should_succeed/match_int/proof.json new file mode 100644 index 0000000000..2f679f607f --- /dev/null +++ b/creusot/tests/should_succeed/match_int/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_match_int__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.011 } } + } +} diff --git a/creusot/tests/should_succeed/match_int/why3session.xml b/creusot/tests/should_succeed/match_int/why3session.xml deleted file mode 100644 index 08eccbea7e..0000000000 --- a/creusot/tests/should_succeed/match_int/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/match_int/why3shapes.gz b/creusot/tests/should_succeed/match_int/why3shapes.gz deleted file mode 100644 index f77fc65464..0000000000 Binary files a/creusot/tests/should_succeed/match_int/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/mc91/proof.json b/creusot/tests/should_succeed/mc91/proof.json new file mode 100644 index 0000000000..9e0748112c --- /dev/null +++ b/creusot/tests/should_succeed/mc91/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_mc91__mc91": { + "vc_mc91'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + } + } +} diff --git a/creusot/tests/should_succeed/mc91/why3session.xml b/creusot/tests/should_succeed/mc91/why3session.xml deleted file mode 100644 index 8ee1f7511e..0000000000 --- a/creusot/tests/should_succeed/mc91/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/mc91/why3shapes.gz b/creusot/tests/should_succeed/mc91/why3shapes.gz deleted file mode 100644 index 5ea964a99a..0000000000 Binary files a/creusot/tests/should_succeed/mc91/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/mutex/proof.json b/creusot/tests/should_succeed/mutex/proof.json new file mode 100644 index 0000000000..0a309a7329 --- /dev/null +++ b/creusot/tests/should_succeed/mutex/proof.json @@ -0,0 +1,26 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_mutex__concurrent": { + "vc_concurrent'0": { "prover": "cvc5@1.0.5", "time": 0.023 }, + "vc_join'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_leak'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_spawn'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_mutex__qyi5425553346843331945__call": { + "vc_call'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_deref'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_lock'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_set'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_mutex__qyi5425553346843331945__call__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/mutex/why3session.xml b/creusot/tests/should_succeed/mutex/why3session.xml deleted file mode 100644 index 7f4e246e33..0000000000 --- a/creusot/tests/should_succeed/mutex/why3session.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/mutex/why3shapes.gz b/creusot/tests/should_succeed/mutex/why3shapes.gz deleted file mode 100644 index 1a899d0378..0000000000 Binary files a/creusot/tests/should_succeed/mutex/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/one_side_update/proof.json b/creusot/tests/should_succeed/one_side_update/proof.json new file mode 100644 index 0000000000..bf7c56cca1 --- /dev/null +++ b/creusot/tests/should_succeed/one_side_update/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_one_side_update__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/one_side_update/why3session.xml b/creusot/tests/should_succeed/one_side_update/why3session.xml deleted file mode 100644 index 65b8a20ba7..0000000000 --- a/creusot/tests/should_succeed/one_side_update/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/one_side_update/why3shapes.gz b/creusot/tests/should_succeed/one_side_update/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/one_side_update/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/open_inv/proof.json b/creusot/tests/should_succeed/open_inv/proof.json new file mode 100644 index 0000000000..0e4d17be99 --- /dev/null +++ b/creusot/tests/should_succeed/open_inv/proof.json @@ -0,0 +1,20 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_open_inv__test_open_inv_param": { + "vc_test_open_inv_param'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_open_inv__test_open_inv_param_call": { + "vc_test_open_inv_param'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_test_open_inv_param_call'0": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_open_inv__test_open_inv_result": { + "vc_test_open_inv_result'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/open_inv/why3session.xml b/creusot/tests/should_succeed/open_inv/why3session.xml deleted file mode 100644 index 5213f46573..0000000000 --- a/creusot/tests/should_succeed/open_inv/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/open_inv/why3shapes.gz b/creusot/tests/should_succeed/open_inv/why3shapes.gz deleted file mode 100644 index b4b4867aed..0000000000 Binary files a/creusot/tests/should_succeed/open_inv/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/option/proof.json b/creusot/tests/should_succeed/option/proof.json new file mode 100644 index 0000000000..a1fe2f78cf --- /dev/null +++ b/creusot/tests/should_succeed/option/proof.json @@ -0,0 +1,274 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_option__and_or_xor": { + "vc_and'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_or'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_promoted0__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_promoted10__and_or_xor'0": { + "prover": "cvc5@1.0.5", + "time": 0.012 + }, + "vc_promoted11__and_or_xor'0": { + "prover": "cvc5@1.0.5", + "time": 0.009 + }, + "vc_promoted1__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_promoted2__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_promoted3__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_promoted4__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_promoted5__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.003 }, + "vc_promoted6__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted7__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted8__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_promoted9__and_or_xor'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_xor'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_option__and_then": { + "vc_and_then'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_and_then'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_and_then'2": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_promoted0__and_then'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_promoted1__and_then'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted2__and_then'0": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_option__as_mut": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_as_mut'1": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'1": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_option__as_ref": { + "vc_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_as_ref'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_option__copied_cloned": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_cloned'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_cloned'1": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_copied'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_copied'1": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_copied_cloned'0": { "prover": "cvc5@1.0.5", "time": 0.068 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_option__filter": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.003 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_filter'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_filter'1": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_filter'2": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_filter'3": { "prover": "cvc5@1.0.5", "time": 0.005 }, + "vc_promoted0__filter'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted1__filter'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_promoted2__filter'0": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_option__flatten": { + "vc_flatten'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_flatten'1": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_option__get_or_insert": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_get_or_insert'0": { "prover": "cvc5@1.0.5", "time": 0.03 }, + "vc_get_or_insert'1": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_get_or_insert_with'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_get_or_insert_with'1": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_promoted0__get_or_insert'0": { + "prover": "cvc5@1.0.5", + "time": 0.013 + }, + "vc_promoted1__get_or_insert'0": { + "prover": "cvc5@1.0.5", + "time": 0.008 + }, + "vc_promoted2__get_or_insert'0": { + "prover": "cvc5@1.0.5", + "time": 0.01 + }, + "vc_promoted3__get_or_insert'0": { + "prover": "cvc5@1.0.5", + "time": 0.001 + } + }, + "M_option__insert": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_insert'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_insert'1": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_promoted0__insert'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_promoted1__insert'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_option__inspect": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_inspect'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_inspect'1": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_inspect'2": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_promoted0__inspect'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_promoted1__inspect'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_option__is_some_and": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_is_some_and'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_is_some_and'1": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_is_some_and'2": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_some_and'3": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_option__is_some_none": { + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_is_some'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_some_none'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_option__map": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_eq'1": { "prover": "cvc5@1.0.5", "time": 0.005 }, + "vc_map'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_map'1": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_map'2": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_map'3": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_promoted0__map'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_promoted1__map'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_promoted2__map'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_option__map_or": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_closure3'0": { "prover": "cvc5@1.0.5", "time": 0.003 }, + "vc_closure4'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_closure5'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_closure6'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_map_or'0": { "prover": "cvc5@1.0.5", "time": 0.028 }, + "vc_map_or'1": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_map_or'2": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_map_or'3": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_map_or_else'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_map_or_else'1": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_option__ok_or": { + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_closure4'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_ok_or'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_ok_or'1": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_ok_or_else'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_ok_or_else'1": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_option__or_else": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_or_else'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_or_else'1": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_or_else'2": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_or_else'3": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_promoted0__or_else'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_promoted1__or_else'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_promoted2__or_else'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_option__replace": { + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_replace'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_replace'1": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_option__resolve": { + "vc_and'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_cloned'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_copied'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_filter'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_get_or_insert'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_insert'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_is_some_and'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_or'0": { "prover": "cvc5@1.0.5", "time": 0.003 }, + "vc_resolve'0": { "prover": "cvc5@1.0.5", "time": 0.099 }, + "vc_xor'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_zip'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_option__take": { + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_take'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_option__take_if": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_closure2'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_promoted0__take_if'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_promoted1__take_if'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_promoted2__take_if'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted3__take_if'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_promoted4__take_if'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_take_if'0": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_take_if'1": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_take_if'2": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_take_if'3": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_option__transpose": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_promoted0__transpose'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_promoted1__transpose'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_transpose'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_transpose'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_unwrap_err'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_option__unwrap": { + "vc_closure0'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_closure1'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_expect'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_unwrap'1": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap_or'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_unwrap_or_default'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_unwrap_or_else'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_unwrap_or_else'1": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap_unchecked'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_option__zip_unzip": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_eq'1": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_eq'2": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted0__zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_promoted1__zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_promoted2__zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_promoted3__zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_promoted4__zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_promoted5__zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_promoted6__zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted7__zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_zip'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_zip_unzip'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/option/why3session.xml b/creusot/tests/should_succeed/option/why3session.xml deleted file mode 100644 index ba7b3ab41f..0000000000 --- a/creusot/tests/should_succeed/option/why3session.xml +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/option/why3shapes.gz b/creusot/tests/should_succeed/option/why3shapes.gz deleted file mode 100644 index c5a24da9f6..0000000000 Binary files a/creusot/tests/should_succeed/option/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/ord_trait/proof.json b/creusot/tests/should_succeed/ord_trait/proof.json new file mode 100644 index 0000000000..b12748807a --- /dev/null +++ b/creusot/tests/should_succeed/ord_trait/proof.json @@ -0,0 +1,21 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_ord_trait__gt_or_le": { + "vc_ge'0": { "prover": "cvc5@1.0.5", "time": 0.0009 }, + "vc_gt_or_le'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_ord_trait__gt_or_le_int": { + "vc_gt_or_le_int'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_ord_trait__x": { + "vc_le'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_x'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/ord_trait/why3session.xml b/creusot/tests/should_succeed/ord_trait/why3session.xml deleted file mode 100644 index c2365dbce3..0000000000 --- a/creusot/tests/should_succeed/ord_trait/why3session.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/ord_trait/why3shapes.gz b/creusot/tests/should_succeed/ord_trait/why3shapes.gz deleted file mode 100644 index 8b245d3dfa..0000000000 Binary files a/creusot/tests/should_succeed/ord_trait/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/printing/proof.json b/creusot/tests/should_succeed/printing/proof.json new file mode 100644 index 0000000000..1bcbd7b625 --- /dev/null +++ b/creusot/tests/should_succeed/printing/proof.json @@ -0,0 +1,20 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_printing__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_new_const'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_promoted0__f'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted1__f'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_promoted2__f'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_promoted3__f'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_qy95zeprint'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_qy95zprint'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + } + } +} diff --git a/creusot/tests/should_succeed/printing/why3session.xml b/creusot/tests/should_succeed/printing/why3session.xml deleted file mode 100644 index 8ca7157cae..0000000000 --- a/creusot/tests/should_succeed/printing/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/printing/why3shapes.gz b/creusot/tests/should_succeed/printing/why3shapes.gz deleted file mode 100644 index ccb5f71f73..0000000000 Binary files a/creusot/tests/should_succeed/printing/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/projection_toggle/proof.json b/creusot/tests/should_succeed/projection_toggle/proof.json new file mode 100644 index 0000000000..ba95fb918c --- /dev/null +++ b/creusot/tests/should_succeed/projection_toggle/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_projection_toggle__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_proj_toggle'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_projection_toggle__proj_toggle": { + "vc_proj_toggle'0": { "prover": "cvc5@1.0.5", "time": 0.018 } + } + } +} diff --git a/creusot/tests/should_succeed/projection_toggle/why3session.xml b/creusot/tests/should_succeed/projection_toggle/why3session.xml deleted file mode 100644 index b26c2d4a74..0000000000 --- a/creusot/tests/should_succeed/projection_toggle/why3session.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/projection_toggle/why3shapes.gz b/creusot/tests/should_succeed/projection_toggle/why3shapes.gz deleted file mode 100644 index ea7ec3a21f..0000000000 Binary files a/creusot/tests/should_succeed/projection_toggle/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/projections/proof.json b/creusot/tests/should_succeed/projections/proof.json new file mode 100644 index 0000000000..7c54cdc888 --- /dev/null +++ b/creusot/tests/should_succeed/projections/proof.json @@ -0,0 +1,26 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_projections__copy_out_of_ref": { + "vc_copy_out_of_ref'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_projections__copy_out_of_sum": { + "vc_copy_out_of_sum'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_projections__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_projections__write_into_sum": { + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_write_into_sum'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/projections/why3session.xml b/creusot/tests/should_succeed/projections/why3session.xml deleted file mode 100644 index 956a7bc07d..0000000000 --- a/creusot/tests/should_succeed/projections/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/projections/why3shapes.gz b/creusot/tests/should_succeed/projections/why3shapes.gz deleted file mode 100644 index da11283e17..0000000000 Binary files a/creusot/tests/should_succeed/projections/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/prophecy/proof.json b/creusot/tests/should_succeed/prophecy/proof.json new file mode 100644 index 0000000000..21467a675d --- /dev/null +++ b/creusot/tests/should_succeed/prophecy/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_prophecy__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.008 } } + } +} diff --git a/creusot/tests/should_succeed/prophecy/why3session.xml b/creusot/tests/should_succeed/prophecy/why3session.xml deleted file mode 100644 index a5faf91c05..0000000000 --- a/creusot/tests/should_succeed/prophecy/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/prophecy/why3shapes.gz b/creusot/tests/should_succeed/prophecy/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/prophecy/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/purity/proof.json b/creusot/tests/should_succeed/purity/proof.json new file mode 100644 index 0000000000..e1fefe1f7f --- /dev/null +++ b/creusot/tests/should_succeed/purity/proof.json @@ -0,0 +1,20 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_purity__calls_f": { + "vc_calls_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_purity__qyi14899607085053415061__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_purity__result": { + "vc_result'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/purity/why3session.xml b/creusot/tests/should_succeed/purity/why3session.xml deleted file mode 100644 index 9f67bad5dc..0000000000 --- a/creusot/tests/should_succeed/purity/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/purity/why3shapes.gz b/creusot/tests/should_succeed/purity/why3shapes.gz deleted file mode 100644 index 7b75e90b6a..0000000000 Binary files a/creusot/tests/should_succeed/purity/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/red_black_tree/proof.json b/creusot/tests/should_succeed/red_black_tree/proof.json new file mode 100644 index 0000000000..486a098fc3 --- /dev/null +++ b/creusot/tests/should_succeed/red_black_tree/proof.json @@ -0,0 +1,1336 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_red_black_tree__qyi10312951825188598006__resolve_coherence": { + "vc_resolve_coherence'0": { "prover": "cvc5@1.0.5", "time": 0.107 } + }, + "M_red_black_tree__qyi10312951825188598006__resolve_coherence__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.02 } + }, + "M_red_black_tree__qyi11959472507597060150__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_red_black_tree__qyi11959472507597060150__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_red_black_tree__qyi14787627995992352676__resolve_coherence": { + "vc_resolve_coherence'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_red_black_tree__qyi14787627995992352676__resolve_coherence__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_red_black_tree__qyi1501420612169366910__delete": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.03 }, + "vc_delete'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.107 }, + { "prover": "cvc5@1.0.5", "time": 0.065 }, + { "prover": "cvc5@1.0.5", "time": 0.088 }, + { "prover": "cvc5@1.0.5", "time": 0.092 }, + { "prover": "cvc5@1.0.5", "time": 0.142 }, + { "prover": "cvc5@1.0.5", "time": 0.114 }, + { "prover": "cvc5@1.0.5", "time": 0.099 }, + { "prover": "cvc5@1.0.5", "time": 0.085 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.139 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.23 }, + { "prover": "cvc5@1.0.5", "time": 0.194 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.127 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc4@1.8", "time": 0.839 }, + { "prover": "cvc4@1.8", "time": 0.654 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.082 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.059 }, + { "prover": "cvc4@1.8", "time": 0.278 }, + { "prover": "cvc5@1.0.5", "time": 0.246 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.447 }, + { "prover": "cvc4@1.8", "time": 0.219 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.4 }, + { "prover": "cvc5@1.0.5", "time": 0.208 } + ] + } + ] + }, + "vc_delete_rec'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.04 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.02 } + }, + "M_red_black_tree__qyi1501420612169366910__delete_max": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_delete_max'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.061 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.059 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.052 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "cvc5@1.0.5", "time": 0.062 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.095 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.178 }, + { "prover": "cvc5@1.0.5", "time": 0.134 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc4@1.8", "time": 0.248 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.05 }, + { "prover": "cvc5@1.0.5", "time": 0.242 }, + { "prover": "cvc5@1.0.5", "time": 0.218 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc4@1.8", "time": 0.8 } + ] + }, + "vc_delete_max_rec'0": { "prover": "cvc5@1.0.5", "time": 0.023 }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.03 } + }, + "M_red_black_tree__qyi1501420612169366910__delete_min": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.023 }, + "vc_delete_min'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.08 }, + { "prover": "cvc5@1.0.5", "time": 0.084 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.054 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.172 }, + { "prover": "cvc5@1.0.5", "time": 0.149 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.099 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc4@1.8", "time": 1.2 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.279 }, + { "prover": "cvc5@1.0.5", "time": 0.181 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.525 }, + { "prover": "cvc4@1.8", "time": 0.262 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.421 }, + { "prover": "cvc5@1.0.5", "time": 0.204 } + ] + } + ] + } + ] + }, + "vc_delete_min_rec'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.04 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.031 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.02 } + }, + "M_red_black_tree__qyi1501420612169366910__get": { + "vc_cmp'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_get'0": { "prover": "alt-ergo@2.6.0", "time": 0.277 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_red_black_tree__qyi1501420612169366910__get_mut": { + "vc_cmp'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_get_mut'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.061 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.061 }, + { "prover": "cvc5@1.0.5", "time": 0.059 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.039 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.054 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc4@1.8", "time": 0.116 }, + { "prover": "cvc5@1.0.5", "time": 0.092 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.092 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.092 }, + { "prover": "cvc5@1.0.5", "time": 0.159 }, + { "prover": "cvc5@1.0.5", "time": 0.102 }, + { "prover": "cvc5@1.0.5", "time": 0.115 }, + { "prover": "cvc5@1.0.5", "time": 0.085 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.086 }, + { "prover": "cvc5@1.0.5", "time": 0.204 }, + { "prover": "cvc5@1.0.5", "time": 0.24 }, + { "prover": "alt-ergo@2.6.0", "time": 0.252 }, + { "prover": "cvc5@1.0.5", "time": 0.099 }, + { "prover": "cvc5@1.0.5", "time": 0.102 }, + { "prover": "cvc5@1.0.5", "time": 0.15 }, + { "prover": "cvc5@1.0.5", "time": 0.072 }, + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.093 }, + { "prover": "cvc5@1.0.5", "time": 0.253 }, + { "prover": "cvc5@1.0.5", "time": 0.182 }, + { "prover": "cvc5@1.0.5", "time": 0.205 }, + { "prover": "cvc5@1.0.5", "time": 0.465 }, + { "prover": "cvc5@1.0.5", "time": 0.21 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "alt-ergo@2.6.0", "time": 0.29 }, + { "prover": "cvc4@1.8", "time": 1.2 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.189 }, + { "prover": "cvc5@1.0.5", "time": 0.039 }, + { "prover": "cvc5@1.0.5", "time": 0.191 }, + { "prover": "cvc5@1.0.5", "time": 0.177 }, + { "prover": "cvc5@1.0.5", "time": 0.337 }, + { "prover": "cvc5@1.0.5", "time": 0.231 }, + { "prover": "cvc5@1.0.5", "time": 0.111 }, + { "prover": "cvc5@1.0.5", "time": 0.19 }, + { "prover": "cvc5@1.0.5", "time": 0.159 }, + { "prover": "cvc5@1.0.5", "time": 0.15 }, + { "prover": "alt-ergo@2.6.0", "time": 0.153 }, + { "prover": "alt-ergo@2.6.0", "time": 0.172 }, + { "prover": "alt-ergo@2.6.0", "time": 0.231 }, + { "prover": "cvc5@1.0.5", "time": 0.199 }, + { "prover": "cvc5@1.0.5", "time": 0.209 }, + { "prover": "cvc5@1.0.5", "time": 0.317 }, + { "prover": "cvc5@1.0.5", "time": 0.029 } + ] + }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.025 } + }, + "M_red_black_tree__qyi1501420612169366910__insert": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.027 }, + "vc_insert'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.039 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.071 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.015 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.146 }, + { "prover": "cvc5@1.0.5", "time": 0.11 }, + { "prover": "cvc4@1.8", "time": 0.249 } + ] + }, + "vc_insert_rec'0": { "prover": "cvc5@1.0.5", "time": 0.036 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.039 } + }, + "M_red_black_tree__qyi1501420612169366910__new": { + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.036 } + }, + "M_red_black_tree__qyi16896830124134315792__resolve_coherence": { + "vc_resolve_coherence'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_red_black_tree__qyi16896830124134315792__resolve_coherence__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_red_black_tree__qyi17561227306860881838__balance": { + "vc_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_balance'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.008 }, + { "prover": "cvc5@1.0.5", "time": 0.014 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.14 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.077 }, + { "prover": "cvc5@1.0.5", "time": 0.078 }, + { "prover": "cvc5@1.0.5", "time": 0.087 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.077 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.101 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.05 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.117 }, + { "prover": "cvc5@1.0.5", "time": 0.095 }, + { "prover": "cvc5@1.0.5", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.134 }, + { "prover": "cvc5@1.0.5", "time": 0.122 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "cvc5@1.0.5", "time": 0.075 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.236 }, + { "prover": "cvc5@1.0.5", "time": 0.137 }, + { "prover": "cvc5@1.0.5", "time": 0.158 }, + { "prover": "cvc5@1.0.5", "time": 0.142 }, + { "prover": "cvc5@1.0.5", "time": 0.13 }, + { "prover": "cvc5@1.0.5", "time": 0.133 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.162 }, + { "prover": "cvc4@1.8", "time": 0.22 }, + { "prover": "cvc5@1.0.5", "time": 0.064 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.16 }, + { "prover": "cvc5@1.0.5", "time": 0.371 }, + { "prover": "cvc5@1.0.5", "time": 0.254 }, + { "prover": "cvc5@1.0.5", "time": 0.196 }, + { "prover": "cvc5@1.0.5", "time": 0.232 } + ] + }, + "vc_flip_colors'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_rotate_left'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_rotate_right'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_red_black_tree__qyi17561227306860881838__flip_colors": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_flip_colors'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.097 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.133 }, + { "prover": "cvc5@1.0.5", "time": 0.115 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.048 }, + { "prover": "cvc5@1.0.5", "time": 0.178 }, + { "prover": "cvc5@1.0.5", "time": 0.203 }, + { "prover": "cvc4@1.8", "time": 0.898 }, + { "prover": "cvc5@1.0.5", "time": 0.152 }, + { "prover": "cvc5@1.0.5", "time": 0.281 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.129 }, + { "prover": "cvc5@1.0.5", "time": 0.141 } + ] + }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_red_black_tree__qyi17561227306860881838__has_mapping": { + "vc_has_mapping'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_red_black_tree__qyi17561227306860881838__height": { + "vc_height'0": { "prover": "cvc5@1.0.5", "time": 0.018 } + }, + "M_red_black_tree__qyi17561227306860881838__move_red_left": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_flip_colors'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_move_red_left'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.093 }, + { "prover": "cvc5@1.0.5", "time": 0.088 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.083 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.148 }, + { "prover": "cvc5@1.0.5", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.127 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.155 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.013 }, + { "prover": "cvc5@1.0.5", "time": 0.101 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.075 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.063 }, + { "prover": "cvc4@1.8", "time": 0.195 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.172 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.217 }, + { "prover": "cvc5@1.0.5", "time": 0.209 }, + { "prover": "cvc5@1.0.5", "time": 0.216 }, + { "prover": "cvc5@1.0.5", "time": 0.061 }, + { "prover": "cvc5@1.0.5", "time": 0.251 }, + { "prover": "cvc5@1.0.5", "time": 0.338 }, + { "prover": "cvc5@1.0.5", "time": 0.226 }, + { "prover": "cvc5@1.0.5", "time": 1.1 }, + { "prover": "cvc5@1.0.5", "time": 0.235 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.22 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "z3@4.12.4", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.251 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.314 }, + { "prover": "cvc5@1.0.5", "time": 0.353 }, + { "prover": "z3@4.12.4", "time": 0.107 }, + { "prover": "cvc5@1.0.5", "time": 0.261 }, + { "prover": "cvc5@1.0.5", "time": 0.282 }, + { + "tactic": "split_vc", + "children": [ { "prover": "cvc4@1.8", "time": 2.2 } ] + }, + { "prover": "cvc5@1.0.5", "time": 0.29 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "z3@4.12.4", "time": 0.646 }, + { + "tactic": "split_vc", + "children": [ { "prover": "cvc4@1.8", "time": 1.8 } ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "z3@4.12.4", "time": 2.3 }, + { "prover": "cvc4@1.8", "time": 1.7 } + ] + }, + { "prover": "cvc4@1.8", "time": 1 }, + { "prover": "cvc5@1.0.5", "time": 0.743 } + ] + }, + "vc_rotate_left'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_rotate_right'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_red_black_tree__qyi17561227306860881838__move_red_right": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_flip_colors'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_move_red_right'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.146 }, + { "prover": "cvc5@1.0.5", "time": 0.147 }, + { "prover": "cvc5@1.0.5", "time": 0.171 }, + { "prover": "cvc5@1.0.5", "time": 0.157 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.185 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.207 }, + { "prover": "cvc5@1.0.5", "time": 0.054 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.11 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.096 }, + { "prover": "cvc5@1.0.5", "time": 0.107 }, + { "prover": "cvc5@1.0.5", "time": 0.097 }, + { "prover": "cvc4@1.8", "time": 0.273 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.199 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.239 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.27 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.081 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.398 }, + { "prover": "cvc5@1.0.5", "time": 0.271 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.389 }, + { "prover": "cvc5@1.0.5", "time": 0.398 }, + { "prover": "z3@4.12.4", "time": 0.129 }, + { "prover": "cvc5@1.0.5", "time": 0.307 }, + { "prover": "cvc5@1.0.5", "time": 0.38 }, + { "prover": "cvc4@1.8", "time": 2.2 }, + { "prover": "cvc5@1.0.5", "time": 0.402 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "z3@4.12.4", "time": 0.151 }, + { "prover": "cvc4@1.8", "time": 0.903 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.4 }, + { "prover": "cvc4@1.8", "time": 1 } + ] + }, + { "prover": "cvc4@1.8", "time": 0.543 }, + { "prover": "cvc5@1.0.5", "time": 0.635 } + ] + }, + "vc_rotate_right'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_red_black_tree__qyi17561227306860881838__rotate_left": { + "vc_rotate_left'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.062 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.075 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.092 }, + { "prover": "cvc5@1.0.5", "time": 0.079 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.088 }, + { "prover": "cvc5@1.0.5", "time": 0.143 }, + { "prover": "cvc5@1.0.5", "time": 0.022 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.082 }, + { "prover": "cvc5@1.0.5", "time": 0.119 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.105 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "alt-ergo@2.6.0", "time": 0.306 }, + { "prover": "cvc5@1.0.5", "time": 0.337 }, + { "prover": "cvc4@1.8", "time": 0.481 }, + { "prover": "cvc5@1.0.5", "time": 0.106 }, + { "prover": "cvc5@1.0.5", "time": 0.146 }, + { "prover": "cvc5@1.0.5", "time": 0.052 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.133 } + ] + }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_swap'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_swap'2": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_red_black_tree__qyi17561227306860881838__rotate_right": { + "vc_rotate_right'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.087 }, + { "prover": "cvc5@1.0.5", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.088 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.091 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "cvc5@1.0.5", "time": 0.093 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.123 }, + { "prover": "cvc5@1.0.5", "time": 0.156 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.114 }, + { "prover": "cvc5@1.0.5", "time": 0.097 }, + { "prover": "cvc5@1.0.5", "time": 0.086 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.152 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc4@1.8", "time": 0.401 }, + { "prover": "cvc5@1.0.5", "time": 0.379 }, + { "prover": "cvc4@1.8", "time": 0.596 }, + { "prover": "cvc5@1.0.5", "time": 0.154 }, + { "prover": "cvc5@1.0.5", "time": 0.187 }, + { "prover": "cvc5@1.0.5", "time": 0.076 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.184 } + ] + }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_swap'1": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_swap'2": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_red_black_tree__qyi2476155906044564626__delete_max_rec": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_as_mut'1": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_balance'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_delete_max_rec'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.136 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.118 }, + { "prover": "cvc5@1.0.5", "time": 0.121 }, + { "prover": "cvc5@1.0.5", "time": 0.11 }, + { "prover": "cvc5@1.0.5", "time": 0.12 }, + { "prover": "cvc5@1.0.5", "time": 0.18 }, + { "prover": "cvc5@1.0.5", "time": 0.048 }, + { "prover": "cvc5@1.0.5", "time": 0.154 }, + { "prover": "cvc5@1.0.5", "time": 0.177 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.08 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.218 }, + { "prover": "cvc5@1.0.5", "time": 0.223 }, + { "prover": "cvc5@1.0.5", "time": 0.259 }, + { "prover": "cvc5@1.0.5", "time": 0.075 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.105 }, + { "prover": "cvc5@1.0.5", "time": 0.108 }, + { "prover": "cvc5@1.0.5", "time": 0.193 }, + { "prover": "cvc5@1.0.5", "time": 0.077 }, + { "prover": "cvc5@1.0.5", "time": 0.235 }, + { "prover": "cvc5@1.0.5", "time": 0.187 }, + { "prover": "cvc5@1.0.5", "time": 0.29 }, + { "prover": "cvc5@1.0.5", "time": 0.332 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.066 }, + { "prover": "cvc5@1.0.5", "time": 0.14 }, + { "prover": "cvc5@1.0.5", "time": 0.16 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.282 }, + { "prover": "cvc5@1.0.5", "time": 0.079 }, + { "prover": "cvc5@1.0.5", "time": 0.163 }, + { "prover": "cvc5@1.0.5", "time": 0.347 }, + { "prover": "cvc5@1.0.5", "time": 0.209 }, + { "prover": "cvc4@1.8", "time": 0.326 }, + { "prover": "cvc5@1.0.5", "time": 0.184 }, + { "prover": "cvc5@1.0.5", "time": 0.223 }, + { "prover": "cvc5@1.0.5", "time": 0.197 }, + { "prover": "cvc5@1.0.5", "time": 0.325 }, + { "prover": "cvc5@1.0.5", "time": 0.224 }, + { "prover": "cvc5@1.0.5", "time": 0.292 }, + { "prover": "cvc4@1.8", "time": 0.698 }, + { "prover": "cvc5@1.0.5", "time": 0.218 }, + { "prover": "cvc5@1.0.5", "time": 0.271 }, + { "prover": "cvc5@1.0.5", "time": 1.2 }, + { "prover": "cvc5@1.0.5", "time": 0.256 }, + { "prover": "cvc5@1.0.5", "time": 0.048 }, + { "prover": "cvc5@1.0.5", "time": 0.231 }, + { "prover": "cvc5@1.0.5", "time": 0.243 }, + { "prover": "cvc5@1.0.5", "time": 0.815 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.729 }, + { "prover": "cvc5@1.0.5", "time": 0.298 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.297 }, + { "prover": "cvc4@1.8", "time": 0.78 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.3 }, + { "prover": "cvc4@1.8", "time": 1.2 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.997 }, + { "prover": "cvc5@1.0.5", "time": 0.062 } + ] + }, + { "prover": "cvc4@1.8", "time": 0.423 } + ] + }, + { "prover": "cvc4@1.8", "time": 0.645 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.4 }, + { "prover": "cvc4@1.8", "time": 0.829 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.4 }, + { "prover": "cvc4@1.8", "time": 0.793 } + ] + } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.381 }, + { "prover": "cvc4@1.8", "time": 0.254 } + ] + }, + { "prover": "cvc4@1.8", "time": 0.728 } + ] + }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_move_red_right'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_rotate_right'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'1": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_unwrap'2": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_red_black_tree__qyi2476155906044564626__delete_min_rec": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_as_mut'1": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_balance'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_delete_min_rec'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.081 }, + { "prover": "cvc5@1.0.5", "time": 0.072 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc5@1.0.5", "time": 0.062 }, + { "prover": "cvc5@1.0.5", "time": 0.061 }, + { "prover": "cvc5@1.0.5", "time": 0.084 }, + { "prover": "cvc5@1.0.5", "time": 0.085 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.048 }, + { "prover": "cvc5@1.0.5", "time": 0.092 }, + { "prover": "cvc5@1.0.5", "time": 0.085 }, + { "prover": "cvc5@1.0.5", "time": 0.016 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.113 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.116 }, + { "prover": "cvc5@1.0.5", "time": 0.223 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.061 }, + { "prover": "cvc5@1.0.5", "time": 0.118 }, + { "prover": "cvc5@1.0.5", "time": 0.179 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.167 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.097 }, + { "prover": "cvc5@1.0.5", "time": 0.19 }, + { "prover": "cvc5@1.0.5", "time": 0.124 }, + { "prover": "cvc5@1.0.5", "time": 0.303 }, + { "prover": "cvc5@1.0.5", "time": 0.129 }, + { "prover": "cvc5@1.0.5", "time": 0.149 }, + { "prover": "cvc5@1.0.5", "time": 0.142 }, + { "prover": "cvc5@1.0.5", "time": 0.077 }, + { "prover": "cvc5@1.0.5", "time": 0.117 }, + { "prover": "cvc5@1.0.5", "time": 0.134 }, + { "prover": "cvc4@1.8", "time": 0.273 }, + { "prover": "cvc5@1.0.5", "time": 0.196 }, + { "prover": "cvc5@1.0.5", "time": 0.197 }, + { "prover": "cvc4@1.8", "time": 0.507 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.207 }, + { "prover": "cvc5@1.0.5", "time": 0.222 }, + { "prover": "cvc5@1.0.5", "time": 0.199 }, + { "prover": "cvc5@1.0.5", "time": 0.286 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc4@1.8", "time": 0.371 }, + { "prover": "cvc5@1.0.5", "time": 0.263 }, + { "prover": "cvc4@1.8", "time": 0.229 }, + { "prover": "cvc4@1.8", "time": 0.849 }, + { "prover": "cvc4@1.8", "time": 1 }, + { "prover": "cvc4@1.8", "time": 0.36 }, + { "prover": "cvc4@1.8", "time": 0.186 } + ] + }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_move_red_left'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0.023 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'1": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_unwrap'2": { "prover": "cvc5@1.0.5", "time": 0.038 } + }, + "M_red_black_tree__qyi2476155906044564626__delete_rec": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_as_mut'1": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_balance'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_cmp'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_delete_min_rec'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_delete_rec'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.065 }, + { "prover": "cvc5@1.0.5", "time": 0.061 }, + { "prover": "cvc5@1.0.5", "time": 0.024 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.078 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.01 }, + { "prover": "cvc5@1.0.5", "time": 0.13 }, + { "prover": "cvc5@1.0.5", "time": 0.165 }, + { "prover": "cvc5@1.0.5", "time": 0.123 }, + { "prover": "cvc5@1.0.5", "time": 0.182 }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.206 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.096 }, + { "prover": "cvc5@1.0.5", "time": 0.217 }, + { "prover": "cvc5@1.0.5", "time": 0.131 }, + { "prover": "cvc5@1.0.5", "time": 0.316 }, + { "prover": "cvc5@1.0.5", "time": 0.142 }, + { "prover": "cvc5@1.0.5", "time": 0.123 }, + { "prover": "cvc5@1.0.5", "time": 0.179 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.17 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.152 }, + { "prover": "cvc5@1.0.5", "time": 0.185 }, + { "prover": "cvc5@1.0.5", "time": 0.121 }, + { "prover": "cvc5@1.0.5", "time": 0.124 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.09 }, + { "prover": "cvc5@1.0.5", "time": 0.204 }, + { "prover": "cvc5@1.0.5", "time": 0.139 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.079 }, + { "prover": "cvc5@1.0.5", "time": 0.096 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.156 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.064 }, + { "prover": "cvc5@1.0.5", "time": 0.15 }, + { "prover": "cvc5@1.0.5", "time": 0.182 }, + { "prover": "cvc5@1.0.5", "time": 0.216 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.03 }, + { "prover": "cvc5@1.0.5", "time": 0.158 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.11 }, + { "prover": "cvc5@1.0.5", "time": 0.192 }, + { "prover": "cvc5@1.0.5", "time": 0.116 }, + { "prover": "cvc4@1.8", "time": 0.192 }, + { "prover": "cvc5@1.0.5", "time": 0.11 }, + { "prover": "cvc5@1.0.5", "time": 0.105 }, + { "prover": "cvc5@1.0.5", "time": 0.107 }, + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.021 }, + { "prover": "cvc5@1.0.5", "time": 0.111 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.117 }, + { "prover": "cvc5@1.0.5", "time": 0.09 }, + { "prover": "cvc5@1.0.5", "time": 0.023 }, + { "prover": "cvc5@1.0.5", "time": 0.008 }, + { "prover": "cvc5@1.0.5", "time": 0.088 }, + { "prover": "cvc5@1.0.5", "time": 0.108 }, + { "prover": "cvc5@1.0.5", "time": 0.088 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.096 }, + { "prover": "cvc5@1.0.5", "time": 0.178 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.157 }, + { "prover": "cvc5@1.0.5", "time": 0.142 }, + { "prover": "alt-ergo@2.6.0", "time": 0.848 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.077 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.308 }, + { "prover": "cvc5@1.0.5", "time": 0.233 }, + { "prover": "cvc5@1.0.5", "time": 0.227 }, + { "prover": "cvc4@1.8", "time": 0.291 }, + { "prover": "cvc5@1.0.5", "time": 0.097 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.084 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.226 }, + { "prover": "cvc5@1.0.5", "time": 0.219 }, + { "prover": "cvc5@1.0.5", "time": 0.257 }, + { "prover": "cvc5@1.0.5", "time": 0.236 }, + { "prover": "cvc5@1.0.5", "time": 0.286 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.286 }, + { "prover": "cvc5@1.0.5", "time": 0.188 }, + { "prover": "cvc5@1.0.5", "time": 0.198 }, + { "prover": "cvc5@1.0.5", "time": 0.193 }, + { "prover": "cvc5@1.0.5", "time": 0.266 }, + { "prover": "cvc5@1.0.5", "time": 0.253 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.158 }, + { "prover": "cvc4@1.8", "time": 0.344 }, + { "prover": "cvc5@1.0.5", "time": 1.2 }, + { "prover": "cvc5@1.0.5", "time": 0.356 }, + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.579 }, + { "prover": "cvc4@1.8", "time": 0.428 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.609 } + ] + }, + { "prover": "cvc4@1.8", "time": 0.339 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.078 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.3 }, + { "prover": "cvc5@1.0.5", "time": 1.3 } + ] + }, + { "prover": "cvc4@1.8", "time": 0.564 } + ] + } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.139 }, + { "prover": "cvc5@1.0.5", "time": 0.391 }, + { "prover": "cvc5@1.0.5", "time": 0.558 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.463 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.564 }, + { "prover": "cvc5@1.0.5", "time": 0.259 }, + { "prover": "cvc5@1.0.5", "time": 0.547 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 1.1 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.628 }, + { "prover": "cvc5@1.0.5", "time": 0.317 }, + { "prover": "cvc5@1.0.5", "time": 0.78 } + ] + }, + { "prover": "z3@4.12.4", "time": 0.11 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.4 }, + { "prover": "cvc5@1.0.5", "time": 0.365 }, + { "prover": "cvc4@1.8", "time": 1.4 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.477 }, + { "prover": "cvc5@1.0.5", "time": 0.35 }, + { "prover": "cvc5@1.0.5", "time": 0.485 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.3 }, + { "prover": "cvc5@1.0.5", "time": 0.34 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.307 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 1.1 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.047 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 1.3 }, + { "prover": "cvc5@1.0.5", "time": 0.317 } + ] + } + ] + } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.239 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.69 }, + { "prover": "cvc5@1.0.5", "time": 0.531 }, + { "prover": "cvc5@1.0.5", "time": 0.926 } + ] + } + ] + }, + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.905 }, + { "prover": "cvc5@1.0.5", "time": 0.421 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.241 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.2 }, + { "prover": "cvc4@1.8", "time": 1.4 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.7 }, + { "prover": "cvc4@1.8", "time": 0.532 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 1.4 }, + { "prover": "cvc5@1.0.5", "time": 0.328 } + ] + } + ] + } + ] + }, + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.573 }, + { "prover": "cvc5@1.0.5", "time": 0.441 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.231 } + ] + }, + { "prover": "z3@4.12.4", "time": 0.154 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.052 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "z3@4.12.4", "time": 0.317 }, + { "prover": "cvc5@1.0.5", "time": 0.445 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "z3@4.12.4", "time": 0.284 }, + { "prover": "cvc5@1.0.5", "time": 0.295 } + ] + } + ] + } + ] + }, + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { + "tactic": "split_vc", + "children": [ + { "prover": "z3@4.12.4", "time": 0.578 }, + { "prover": "cvc5@1.0.5", "time": 0.263 } + ] + }, + { "prover": "cvc5@1.0.5", "time": 0.248 } + ] + }, + { "prover": "z3@4.12.4", "time": 0.241 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 2.3 }, + { "prover": "cvc5@1.0.5", "time": 0.298 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "z3@4.12.4", "time": 0.558 }, + { "prover": "cvc5@1.0.5", "time": 0.347 } + ] + } + ] + } + ] + } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.851 }, + { "prover": "cvc5@1.0.5", "time": 0.467 }, + { "prover": "cvc5@1.0.5", "time": 1.1 } + ] + }, + { + "tactic": "split_vc", + "children": [ + { "prover": "cvc4@1.8", "time": 0.505 }, + { "prover": "cvc5@1.0.5", "time": 0.371 }, + { "prover": "cvc5@1.0.5", "time": 0.561 } + ] + } + ] + }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.028 }, + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_move_red_left'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_move_red_right'0": { "prover": "cvc5@1.0.5", "time": 0.023 }, + "vc_rotate_right'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_swap'1": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'1": { "prover": "cvc5@1.0.5", "time": 0.034 }, + "vc_unwrap'2": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_red_black_tree__qyi2476155906044564626__has_mapping_inj": { + "vc_has_mapping_inj'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_red_black_tree__qyi2476155906044564626__has_mapping_model": { + "vc_has_mapping_model'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_red_black_tree__qyi2476155906044564626__has_mapping_model_acc": { + "vc_has_mapping_model_acc'0": { "prover": "cvc5@1.0.5", "time": 0.289 } + }, + "M_red_black_tree__qyi2476155906044564626__height": { + "vc_height'0": { "prover": "cvc5@1.0.5", "time": 0.018 } + }, + "M_red_black_tree__qyi2476155906044564626__insert_rec": { + "vc_balance'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_cmp'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_insert_rec'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.087 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.157 }, + { "prover": "cvc5@1.0.5", "time": 0.104 }, + { "prover": "cvc5@1.0.5", "time": 0.108 }, + { "prover": "cvc5@1.0.5", "time": 0.113 }, + { "prover": "cvc5@1.0.5", "time": 0.124 }, + { "prover": "cvc5@1.0.5", "time": 0.063 }, + { "prover": "cvc5@1.0.5", "time": 0.101 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.091 }, + { "prover": "cvc5@1.0.5", "time": 0.12 }, + { "prover": "cvc5@1.0.5", "time": 0.144 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.126 }, + { "prover": "cvc5@1.0.5", "time": 0.083 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.123 }, + { "prover": "cvc5@1.0.5", "time": 0.176 }, + { "prover": "cvc5@1.0.5", "time": 0.167 }, + { "prover": "cvc5@1.0.5", "time": 0.169 }, + { "prover": "cvc5@1.0.5", "time": 0.262 }, + { "prover": "cvc5@1.0.5", "time": 0.154 }, + { "prover": "cvc5@1.0.5", "time": 0.161 }, + { "prover": "cvc5@1.0.5", "time": 0.157 }, + { "prover": "cvc5@1.0.5", "time": 0.096 }, + { "prover": "cvc5@1.0.5", "time": 0.143 }, + { "prover": "cvc5@1.0.5", "time": 0.084 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.018 }, + { "prover": "cvc5@1.0.5", "time": 0.117 }, + { "prover": "cvc5@1.0.5", "time": 0.091 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.136 }, + { "prover": "cvc5@1.0.5", "time": 0.131 }, + { "prover": "alt-ergo@2.6.0", "time": 0.546 }, + { "prover": "cvc5@1.0.5", "time": 0.141 }, + { "prover": "cvc5@1.0.5", "time": 0.144 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.164 }, + { "prover": "cvc5@1.0.5", "time": 0.3 }, + { "prover": "cvc5@1.0.5", "time": 0.193 }, + { "prover": "cvc5@1.0.5", "time": 0.244 }, + { "prover": "cvc5@1.0.5", "time": 0.174 }, + { "prover": "cvc5@1.0.5", "time": 0.357 }, + { "prover": "cvc5@1.0.5", "time": 0.295 }, + { "prover": "cvc4@1.8", "time": 0.443 } + ] + }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_red_black_tree__qyi2476155906044564626__is_red": { + "vc_is_red'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_red_black_tree__qyi2476155906044564626__model_acc_has_mapping": { + "vc_model_acc_has_mapping'0": { "prover": "cvc5@1.0.5", "time": 0.163 } + } + } +} diff --git a/creusot/tests/should_succeed/red_black_tree/why3session.xml b/creusot/tests/should_succeed/red_black_tree/why3session.xml deleted file mode 100644 index 58b9812dcf..0000000000 --- a/creusot/tests/should_succeed/red_black_tree/why3session.xml +++ /dev/null @@ -1,2375 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/red_black_tree/why3shapes.gz b/creusot/tests/should_succeed/red_black_tree/why3shapes.gz deleted file mode 100644 index 140ebb723c..0000000000 Binary files a/creusot/tests/should_succeed/red_black_tree/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/replace/proof.json b/creusot/tests/should_succeed/replace/proof.json new file mode 100644 index 0000000000..7a0350298a --- /dev/null +++ b/creusot/tests/should_succeed/replace/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_replace__test": { + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/replace/why3session.xml b/creusot/tests/should_succeed/replace/why3session.xml deleted file mode 100644 index bb00e64a9b..0000000000 --- a/creusot/tests/should_succeed/replace/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/replace/why3shapes.gz b/creusot/tests/should_succeed/replace/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/replace/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/resolve_drop/proof.json b/creusot/tests/should_succeed/resolve_drop/proof.json new file mode 100644 index 0000000000..799f26cd7c --- /dev/null +++ b/creusot/tests/should_succeed/resolve_drop/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_resolve_drop__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + } + } +} diff --git a/creusot/tests/should_succeed/resolve_drop/why3session.xml b/creusot/tests/should_succeed/resolve_drop/why3session.xml deleted file mode 100644 index 37da0b3516..0000000000 --- a/creusot/tests/should_succeed/resolve_drop/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/resolve_drop/why3shapes.gz b/creusot/tests/should_succeed/resolve_drop/why3shapes.gz deleted file mode 100644 index 8e3e383390..0000000000 Binary files a/creusot/tests/should_succeed/resolve_drop/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/resolve_uninit/proof.json b/creusot/tests/should_succeed/resolve_uninit/proof.json new file mode 100644 index 0000000000..e440910c0a --- /dev/null +++ b/creusot/tests/should_succeed/resolve_uninit/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_resolve_uninit__init_join": { + "vc_init_join'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_resolve_uninit__maybe_uninit": { + "vc_default'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_maybe_uninit'0": { "prover": "cvc5@1.0.5", "time": 0.001 } + } + } +} diff --git a/creusot/tests/should_succeed/resolve_uninit/why3session.xml b/creusot/tests/should_succeed/resolve_uninit/why3session.xml deleted file mode 100644 index 0ef4131ba2..0000000000 --- a/creusot/tests/should_succeed/resolve_uninit/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/resolve_uninit/why3shapes.gz b/creusot/tests/should_succeed/resolve_uninit/why3shapes.gz deleted file mode 100644 index 44f4044dd9..0000000000 Binary files a/creusot/tests/should_succeed/resolve_uninit/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/result/own/proof.json b/creusot/tests/should_succeed/result/own/proof.json new file mode 100644 index 0000000000..d060b2ad04 --- /dev/null +++ b/creusot/tests/should_succeed/result/own/proof.json @@ -0,0 +1,106 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_own__qyi10012309719472384256__cloned": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_cloned'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_own__qyi10012309719472384256__copied": { + "vc_copied'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_own__qyi12833551122006947340__transpose": { + "vc_transpose'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_own__qyi13172074075585881807__cloned": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_cloned'0": { "prover": "cvc5@1.0.5", "time": 0.022 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_own__qyi13172074075585881807__copied": { + "vc_copied'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_own__qyi3410529601998764826__resolve_coherence": { + "vc_resolve_coherence'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_own__qyi3410529601998764826__resolve_coherence__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_own__qyi6204940358182728290__and": { + "vc_and'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_own__qyi6204940358182728290__as_mut": { + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_own__qyi6204940358182728290__as_ref": { + "vc_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_own__qyi6204940358182728290__err": { + "vc_err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_own__qyi6204940358182728290__expect": { + "vc_expect'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_own__qyi6204940358182728290__is_err": { + "vc_is_err'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_is_ok'0": { "prover": "cvc5@1.0.5", "time": 0.025 } + }, + "M_own__qyi6204940358182728290__is_ok": { + "vc_is_ok'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_own__qyi6204940358182728290__ok": { + "vc_ok'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.023 } + }, + "M_own__qyi6204940358182728290__or": { + "vc_or'0": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_own__qyi6204940358182728290__unwrap": { + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.004 } + }, + "M_own__qyi6204940358182728290__unwrap_err": { + "vc_unwrap_err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_own__qyi6204940358182728290__unwrap_or": { + "vc_unwrap_or'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_v_Err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_own__qyi6204940358182728290__unwrap_or_default": { + "vc_default'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_unwrap_or_default'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_v_Ok'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + } + } +} diff --git a/creusot/tests/should_succeed/result/own/why3session.xml b/creusot/tests/should_succeed/result/own/why3session.xml deleted file mode 100644 index e45c641c65..0000000000 --- a/creusot/tests/should_succeed/result/own/why3session.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/result/own/why3shapes.gz b/creusot/tests/should_succeed/result/own/why3shapes.gz deleted file mode 100644 index 3ad4f6e1c4..0000000000 Binary files a/creusot/tests/should_succeed/result/own/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/result/result/proof.json b/creusot/tests/should_succeed/result/result/proof.json new file mode 100644 index 0000000000..c360160d5c --- /dev/null +++ b/creusot/tests/should_succeed/result/result/proof.json @@ -0,0 +1,42 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_result__test_result": { + "vc_and'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_as_mut'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_as_ref'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_cloned'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_cloned'1": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_copied'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_copied'1": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_err'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_is_err'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_is_none'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_is_none'1": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_is_ok'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_ok'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_or'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_test_result'0": { "prover": "z3@4.12.4", "time": 0.099 }, + "vc_transpose'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_unwrap'1": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_unwrap'2": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_unwrap'3": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_unwrap'4": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'5": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_unwrap'6": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_unwrap_err'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_unwrap_err'1": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_unwrap_err'2": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_unwrap_err'3": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_unwrap_err'4": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_unwrap_or'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_unwrap_or_default'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + } + } +} diff --git a/creusot/tests/should_succeed/result/result/why3session.xml b/creusot/tests/should_succeed/result/result/why3session.xml deleted file mode 100644 index b9af8d29b9..0000000000 --- a/creusot/tests/should_succeed/result/result/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/result/result/why3shapes.gz b/creusot/tests/should_succeed/result/result/why3shapes.gz deleted file mode 100644 index de19ce526a..0000000000 Binary files a/creusot/tests/should_succeed/result/result/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/rusthorn/inc_max/proof.json b/creusot/tests/should_succeed/rusthorn/inc_max/proof.json new file mode 100644 index 0000000000..29741a9516 --- /dev/null +++ b/creusot/tests/should_succeed/rusthorn/inc_max/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inc_max__inc_max": { + "vc_inc_max'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_take_max'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_inc_max__take_max": { + "vc_take_max'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + } + } +} diff --git a/creusot/tests/should_succeed/rusthorn/inc_max/why3session.xml b/creusot/tests/should_succeed/rusthorn/inc_max/why3session.xml deleted file mode 100644 index ca428d0878..0000000000 --- a/creusot/tests/should_succeed/rusthorn/inc_max/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/rusthorn/inc_max/why3shapes.gz b/creusot/tests/should_succeed/rusthorn/inc_max/why3shapes.gz deleted file mode 100644 index 0f0e9f1441..0000000000 Binary files a/creusot/tests/should_succeed/rusthorn/inc_max/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_3/proof.json b/creusot/tests/should_succeed/rusthorn/inc_max_3/proof.json new file mode 100644 index 0000000000..d4f5660dab --- /dev/null +++ b/creusot/tests/should_succeed/rusthorn/inc_max_3/proof.json @@ -0,0 +1,18 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inc_max_3__inc_max_3": { + "vc_inc_max_3'0": { "prover": "cvc5@1.0.5", "time": 0.034 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_inc_max_3__test_inc_max_3": { + "vc_inc_max_3'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_test_inc_max_3'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + } + } +} diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_3/why3session.xml b/creusot/tests/should_succeed/rusthorn/inc_max_3/why3session.xml deleted file mode 100644 index 030619c3c9..0000000000 --- a/creusot/tests/should_succeed/rusthorn/inc_max_3/why3session.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_3/why3shapes.gz b/creusot/tests/should_succeed/rusthorn/inc_max_3/why3shapes.gz deleted file mode 100644 index 6836d698d8..0000000000 Binary files a/creusot/tests/should_succeed/rusthorn/inc_max_3/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_many/proof.json b/creusot/tests/should_succeed/rusthorn/inc_max_many/proof.json new file mode 100644 index 0000000000..f245691840 --- /dev/null +++ b/creusot/tests/should_succeed/rusthorn/inc_max_many/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inc_max_many__inc_max_many": { + "vc_inc_max_many'0": { "prover": "cvc5@1.0.5", "time": 0.027 }, + "vc_take_max'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_inc_max_many__take_max": { + "vc_take_max'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + } + } +} diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_many/why3session.xml b/creusot/tests/should_succeed/rusthorn/inc_max_many/why3session.xml deleted file mode 100644 index d86977936c..0000000000 --- a/creusot/tests/should_succeed/rusthorn/inc_max_many/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_many/why3shapes.gz b/creusot/tests/should_succeed/rusthorn/inc_max_many/why3shapes.gz deleted file mode 100644 index fcd3a15208..0000000000 Binary files a/creusot/tests/should_succeed/rusthorn/inc_max_many/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_repeat/proof.json b/creusot/tests/should_succeed/rusthorn/inc_max_repeat/proof.json new file mode 100644 index 0000000000..6d8509ea13 --- /dev/null +++ b/creusot/tests/should_succeed/rusthorn/inc_max_repeat/proof.json @@ -0,0 +1,20 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inc_max_repeat__inc_max_repeat": { + "vc_inc_max_repeat'0": { "prover": "cvc5@1.0.5", "time": 0.072 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_take_max'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_inc_max_repeat__take_max": { + "vc_take_max'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + } + } +} diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_repeat/why3session.xml b/creusot/tests/should_succeed/rusthorn/inc_max_repeat/why3session.xml deleted file mode 100644 index 038a72daae..0000000000 --- a/creusot/tests/should_succeed/rusthorn/inc_max_repeat/why3session.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/rusthorn/inc_max_repeat/why3shapes.gz b/creusot/tests/should_succeed/rusthorn/inc_max_repeat/why3shapes.gz deleted file mode 100644 index 878d1fc764..0000000000 Binary files a/creusot/tests/should_succeed/rusthorn/inc_max_repeat/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_2_list/proof.json b/creusot/tests/should_succeed/rusthorn/inc_some_2_list/proof.json new file mode 100644 index 0000000000..3e25c812d8 --- /dev/null +++ b/creusot/tests/should_succeed/rusthorn/inc_some_2_list/proof.json @@ -0,0 +1,27 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inc_some_2_list__inc_some_2_list": { + "vc_inc_some_2_list'0": { "prover": "cvc5@1.0.5", "time": 0.036 }, + "vc_sum_x'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_take_some_rest'0": { "prover": "cvc5@1.0.5", "time": 0.02 } + }, + "M_inc_some_2_list__qyi7504674480942992291__lemma_sum_nonneg": { + "vc_lemma_sum_nonneg'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_inc_some_2_list__qyi7504674480942992291__sum_x": { + "vc_sum_x'0": { "prover": "cvc5@1.0.5", "time": 0.04 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_inc_some_2_list__qyi7504674480942992291__take_some_rest": { + "vc_random'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_take_some_rest'0": { "prover": "cvc5@1.0.5", "time": 0.032 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_2_list/why3session.xml b/creusot/tests/should_succeed/rusthorn/inc_some_2_list/why3session.xml deleted file mode 100644 index fc540b1e83..0000000000 --- a/creusot/tests/should_succeed/rusthorn/inc_some_2_list/why3session.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_2_list/why3shapes.gz b/creusot/tests/should_succeed/rusthorn/inc_some_2_list/why3shapes.gz deleted file mode 100644 index ac095568ef..0000000000 Binary files a/creusot/tests/should_succeed/rusthorn/inc_some_2_list/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/proof.json b/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/proof.json new file mode 100644 index 0000000000..3e829cece9 --- /dev/null +++ b/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/proof.json @@ -0,0 +1,27 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inc_some_2_tree__inc_some_2_tree": { + "vc_inc_some_2_tree'0": { "prover": "cvc5@1.0.5", "time": 0.03 }, + "vc_sum_x'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_take_some_rest'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_inc_some_2_tree__qyi9454558703362393917__lemma_sum_nonneg": { + "vc_lemma_sum_nonneg'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_inc_some_2_tree__qyi9454558703362393917__sum_x": { + "vc_sum_x'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_v_Node'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_inc_some_2_tree__qyi9454558703362393917__take_some_rest": { + "vc_random'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_take_some_rest'0": { "prover": "cvc5@1.0.5", "time": 0.062 }, + "vc_v_Node'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/why3session.xml b/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/why3session.xml deleted file mode 100644 index 54de0cbb1b..0000000000 --- a/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/why3session.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/why3shapes.gz b/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/why3shapes.gz deleted file mode 100644 index 635ac492b8..0000000000 Binary files a/creusot/tests/should_succeed/rusthorn/inc_some_2_tree/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_list/proof.json b/creusot/tests/should_succeed/rusthorn/inc_some_list/proof.json new file mode 100644 index 0000000000..dde3fd84f6 --- /dev/null +++ b/creusot/tests/should_succeed/rusthorn/inc_some_list/proof.json @@ -0,0 +1,27 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inc_some_list__inc_some_list": { + "vc_inc_some_list'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_sum_x'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_take_some'0": { "prover": "cvc5@1.0.5", "time": 0.02 } + }, + "M_inc_some_list__qyi14489061725823948544__lemma_sum_nonneg": { + "vc_lemma_sum_nonneg'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_inc_some_list__qyi14489061725823948544__sum_x": { + "vc_sum_x'0": { "prover": "cvc5@1.0.5", "time": 0.04 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_inc_some_list__qyi14489061725823948544__take_some": { + "vc_random'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_take_some'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_v_Cons'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_list/why3session.xml b/creusot/tests/should_succeed/rusthorn/inc_some_list/why3session.xml deleted file mode 100644 index f342bcda42..0000000000 --- a/creusot/tests/should_succeed/rusthorn/inc_some_list/why3session.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_list/why3shapes.gz b/creusot/tests/should_succeed/rusthorn/inc_some_list/why3shapes.gz deleted file mode 100644 index f160c9f489..0000000000 Binary files a/creusot/tests/should_succeed/rusthorn/inc_some_list/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_tree/proof.json b/creusot/tests/should_succeed/rusthorn/inc_some_tree/proof.json new file mode 100644 index 0000000000..91426e3fcc --- /dev/null +++ b/creusot/tests/should_succeed/rusthorn/inc_some_tree/proof.json @@ -0,0 +1,27 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_inc_some_tree__inc_some_tree": { + "vc_inc_some_tree'0": { "prover": "cvc5@1.0.5", "time": 0.02 }, + "vc_sum_x'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_take_some'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_inc_some_tree__qyi12127997673864742005__lemma_sum_nonneg": { + "vc_lemma_sum_nonneg'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_inc_some_tree__qyi12127997673864742005__sum_x": { + "vc_sum_x'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_v_Node'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_inc_some_tree__qyi12127997673864742005__take_some": { + "vc_random'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_take_some'0": { "prover": "cvc5@1.0.5", "time": 0.054 }, + "vc_v_Node'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_tree/why3session.xml b/creusot/tests/should_succeed/rusthorn/inc_some_tree/why3session.xml deleted file mode 100644 index 1dc9f9be36..0000000000 --- a/creusot/tests/should_succeed/rusthorn/inc_some_tree/why3session.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/rusthorn/inc_some_tree/why3shapes.gz b/creusot/tests/should_succeed/rusthorn/inc_some_tree/why3shapes.gz deleted file mode 100644 index 49ae16a6ae..0000000000 Binary files a/creusot/tests/should_succeed/rusthorn/inc_some_tree/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/selection_sort_generic/proof.json b/creusot/tests/should_succeed/selection_sort_generic/proof.json new file mode 100644 index 0000000000..bc8f4fc47d --- /dev/null +++ b/creusot/tests/should_succeed/selection_sort_generic/proof.json @@ -0,0 +1,84 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_selection_sort_generic__selection_sort": { + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.031 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.032 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_lt'0": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_selection_sort'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.076 }, + { "prover": "cvc5@1.0.5", "time": 0.092 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.103 }, + { "prover": "cvc5@1.0.5", "time": 0.079 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.124 }, + { "prover": "cvc5@1.0.5", "time": 0.223 }, + { "prover": "cvc5@1.0.5", "time": 0.145 }, + { "prover": "cvc5@1.0.5", "time": 0.191 }, + { "prover": "cvc5@1.0.5", "time": 0.132 }, + { "prover": "z3@4.12.4", "time": 0.079 }, + { "prover": "cvc5@1.0.5", "time": 0.314 }, + { "prover": "cvc5@1.0.5", "time": 0.156 }, + { "prover": "cvc5@1.0.5", "time": 0.287 }, + { "prover": "z3@4.12.4", "time": 0.114 }, + { "prover": "cvc5@1.0.5", "time": 0.107 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.108 }, + { "prover": "cvc5@1.0.5", "time": 0.187 }, + { "prover": "cvc5@1.0.5", "time": 0.143 }, + { "prover": "cvc5@1.0.5", "time": 0.151 }, + { "prover": "z3@4.12.4", "time": 0.138 }, + { "prover": "cvc5@1.0.5", "time": 0.139 }, + { "prover": "cvc5@1.0.5", "time": 0.301 }, + { "prover": "z3@4.12.4", "time": 0.247 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.21 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.088 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.069 }, + { "prover": "cvc5@1.0.5", "time": 0.138 }, + { "prover": "cvc5@1.0.5", "time": 0.359 }, + { "prover": "cvc5@1.0.5", "time": 0.197 }, + { "prover": "cvc5@1.0.5", "time": 0.135 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.141 }, + { "prover": "cvc5@1.0.5", "time": 0.497 }, + { "prover": "cvc4@1.8", "time": 0.233 }, + { "prover": "cvc5@1.0.5", "time": 0.1 }, + { "prover": "cvc5@1.0.5", "time": 0.063 }, + { "prover": "z3@4.12.4", "time": 0.062 }, + { "prover": "cvc5@1.0.5", "time": 0.248 }, + { "prover": "cvc5@1.0.5", "time": 0.202 }, + { "prover": "cvc5@1.0.5", "time": 0.222 }, + { "prover": "cvc5@1.0.5", "time": 0.278 }, + { "prover": "cvc5@1.0.5", "time": 0.211 }, + { "prover": "cvc5@1.0.5", "time": 0.216 }, + { "prover": "alt-ergo@2.6.0", "time": 4.2 }, + { "prover": "cvc5@1.0.5", "time": 0.105 }, + { "prover": "cvc5@1.0.5", "time": 0.133 }, + { "prover": "cvc5@1.0.5", "time": 0.115 }, + { "prover": "cvc5@1.0.5", "time": 0.098 }, + { "prover": "cvc5@1.0.5", "time": 0.297 }, + { "prover": "cvc4@1.8", "time": 1 }, + { "prover": "cvc5@1.0.5", "time": 0.166 } + ] + }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.031 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.032 } + } + } +} diff --git a/creusot/tests/should_succeed/selection_sort_generic/why3session.xml b/creusot/tests/should_succeed/selection_sort_generic/why3session.xml deleted file mode 100644 index ce8d52864a..0000000000 --- a/creusot/tests/should_succeed/selection_sort_generic/why3session.xml +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/selection_sort_generic/why3shapes.gz b/creusot/tests/should_succeed/selection_sort_generic/why3shapes.gz deleted file mode 100644 index 69c615b3b3..0000000000 Binary files a/creusot/tests/should_succeed/selection_sort_generic/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/simple_trigger/proof.json b/creusot/tests/should_succeed/simple_trigger/proof.json new file mode 100644 index 0000000000..43df2ef967 --- /dev/null +++ b/creusot/tests/should_succeed/simple_trigger/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_simple_trigger__id": { + "vc_id'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_simple_trigger__test": { + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/simple_trigger/why3session.xml b/creusot/tests/should_succeed/simple_trigger/why3session.xml deleted file mode 100644 index dbe9ef369e..0000000000 --- a/creusot/tests/should_succeed/simple_trigger/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/simple_trigger/why3shapes.gz b/creusot/tests/should_succeed/simple_trigger/why3shapes.gz deleted file mode 100644 index 5b83e13c5f..0000000000 Binary files a/creusot/tests/should_succeed/simple_trigger/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/slices/01/proof.json b/creusot/tests/should_succeed/slices/01/proof.json new file mode 100644 index 0000000000..f57857f352 --- /dev/null +++ b/creusot/tests/should_succeed/slices/01/proof.json @@ -0,0 +1,20 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_01__index_mut_slice": { + "vc_index_mut_slice'0": { "prover": "cvc5@1.0.5", "time": 0.018 } + }, + "M_01__index_slice": { + "vc_index_slice'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_01__slice_first": { + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_slice_first'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/slices/01/why3session.xml b/creusot/tests/should_succeed/slices/01/why3session.xml deleted file mode 100644 index 057b526cb4..0000000000 --- a/creusot/tests/should_succeed/slices/01/why3session.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/slices/01/why3shapes.gz b/creusot/tests/should_succeed/slices/01/why3shapes.gz deleted file mode 100644 index 420884da9b..0000000000 Binary files a/creusot/tests/should_succeed/slices/01/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/slices/02_std/proof.json b/creusot/tests/should_succeed/slices/02_std/proof.json new file mode 100644 index 0000000000..82dcf44d23 --- /dev/null +++ b/creusot/tests/should_succeed/slices/02_std/proof.json @@ -0,0 +1,19 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02_std__binary_search": { + "vc_binary_search'0": { "prover": "alt-ergo@2.6.0", "time": 0.027 }, + "vc_binary_search'1": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_promoted0__binary_search'0": { + "prover": "cvc5@1.0.5", + "time": 0.011 + }, + "vc_unwrap'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + } + } +} diff --git a/creusot/tests/should_succeed/slices/02_std/why3session.xml b/creusot/tests/should_succeed/slices/02_std/why3session.xml deleted file mode 100644 index b614da3d42..0000000000 --- a/creusot/tests/should_succeed/slices/02_std/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/slices/02_std/why3shapes.gz b/creusot/tests/should_succeed/slices/02_std/why3shapes.gz deleted file mode 100644 index c5db1d7960..0000000000 Binary files a/creusot/tests/should_succeed/slices/02_std/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/sparse_array.coma b/creusot/tests/should_succeed/sparse_array.coma index 2bd014f66d..442554806a 100644 --- a/creusot/tests/should_succeed/sparse_array.coma +++ b/creusot/tests/should_succeed/sparse_array.coma @@ -1,20 +1,20 @@ -module M_sparse_array__qyi912363311032332466__get [#"sparse_array.rs" 88 4 88 45] (* Sparse *) - let%span ssparse_array0 = "sparse_array.rs" 88 16 88 20 - let%span ssparse_array1 = "sparse_array.rs" 79 15 79 31 - let%span ssparse_array2 = "sparse_array.rs" 88 35 88 45 - let%span ssparse_array3 = "sparse_array.rs" 80 14 83 5 - let%span ssparse_array4 = "sparse_array.rs" 84 14 87 5 +module M_sparse_array__qyi912363311032332466__get [#"sparse_array.rs" 89 4 89 45] (* Sparse *) + let%span ssparse_array0 = "sparse_array.rs" 89 16 89 20 + let%span ssparse_array1 = "sparse_array.rs" 80 15 80 31 + let%span ssparse_array2 = "sparse_array.rs" 89 35 89 45 + let%span ssparse_array3 = "sparse_array.rs" 81 14 84 5 + let%span ssparse_array4 = "sparse_array.rs" 85 14 88 5 let%span svec5 = "../../../creusot-contracts/src/std/vec.rs" 162 27 162 46 let%span svec6 = "../../../creusot-contracts/src/std/vec.rs" 163 26 163 54 let%span smodel7 = "../../../creusot-contracts/src/model.rs" 88 8 88 22 let%span sslice8 = "../../../creusot-contracts/src/std/slice.rs" 122 20 122 37 let%span sslice9 = "../../../creusot-contracts/src/std/slice.rs" 129 20 129 37 - let%span ssparse_array10 = "sparse_array.rs" 40 12 41 82 + let%span ssparse_array10 = "sparse_array.rs" 41 12 42 82 let%span svec11 = "../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sinvariant12 = "../../../creusot-contracts/src/invariant.rs" 24 8 24 18 - let%span ssparse_array13 = "sparse_array.rs" 72 20 73 52 + let%span ssparse_array13 = "sparse_array.rs" 73 20 74 52 let%span sops14 = "../../../creusot-contracts/src/logic/ops.rs" 20 8 20 31 - let%span ssparse_array15 = "sparse_array.rs" 51 12 59 17 + let%span ssparse_array15 = "sparse_array.rs" 52 12 60 17 let%span svec16 = "../../../creusot-contracts/src/std/vec.rs" 65 20 65 41 let%span sseq17 = "../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sboxed18 = "../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -179,7 +179,7 @@ module M_sparse_array__qyi912363311032332466__get [#"sparse_array.rs" 88 4 88 45 function index_logic'1 [@inline:trivial] (self : t_Vec'0) (ix : int) : usize = [%#sops14] Seq.get (view'4 self) ix - predicate invariant'3 [#"sparse_array.rs" 49 4 49 30] (self : t_Sparse'0) = + predicate invariant'3 [#"sparse_array.rs" 50 4 50 30] (self : t_Sparse'0) = [%#ssparse_array15] UIntSize.to_int self.t_Sparse__n'0 <= UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'5 self.t_Sparse__values'0) = UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'4 self.t_Sparse__idx'0) = UIntSize.to_int self.t_Sparse__size'0 @@ -212,7 +212,7 @@ module M_sparse_array__qyi912363311032332466__get [#"sparse_array.rs" 88 4 88 45 use seq.Seq - function is_elt'0 [#"sparse_array.rs" 71 4 71 36] (self : t_Sparse'0) (i : int) : bool = + function is_elt'0 [#"sparse_array.rs" 72 4 72 36] (self : t_Sparse'0) (i : int) : bool = [%#ssparse_array13] UIntSize.to_int (index_logic'1 self.t_Sparse__idx'0 i) < UIntSize.to_int self.t_Sparse__n'0 /\ UIntSize.to_int (index_logic'1 self.t_Sparse__back'0 (UIntSize.to_int (index_logic'1 self.t_Sparse__idx'0 i))) = i @@ -224,7 +224,7 @@ module M_sparse_array__qyi912363311032332466__get [#"sparse_array.rs" 88 4 88 45 use seq.Seq - function view'3 [#"sparse_array.rs" 38 4 38 33] (self : t_Sparse'0) : Seq.seq (t_Option'1) = + function view'3 [#"sparse_array.rs" 39 4 39 33] (self : t_Sparse'0) : Seq.seq (t_Option'1) = [%#ssparse_array10] Seq.create (UIntSize.to_int self.t_Sparse__size'0) (Mapping.from_fn (fun (i : int) -> if is_elt'0 self i then C_Some'1 (index_logic'0 self.t_Sparse__values'0 i) else @@ -292,15 +292,15 @@ module M_sparse_array__qyi912363311032332466__get [#"sparse_array.rs" 88 4 88 45 (! return' {result}) ] end -module M_sparse_array__qyi912363311032332466__lemma_permutation [#"sparse_array.rs" 104 4 104 38] (* Sparse *) - let%span ssparse_array0 = "sparse_array.rs" 100 15 100 24 - let%span ssparse_array1 = "sparse_array.rs" 101 15 101 34 - let%span ssparse_array2 = "sparse_array.rs" 102 15 102 39 - let%span ssparse_array3 = "sparse_array.rs" 103 14 103 28 - let%span ssparse_array4 = "sparse_array.rs" 99 4 99 12 - let%span ssparse_array5 = "sparse_array.rs" 72 20 73 52 +module M_sparse_array__qyi912363311032332466__lemma_permutation [#"sparse_array.rs" 105 4 105 38] (* Sparse *) + let%span ssparse_array0 = "sparse_array.rs" 101 15 101 24 + let%span ssparse_array1 = "sparse_array.rs" 102 15 102 34 + let%span ssparse_array2 = "sparse_array.rs" 103 15 103 39 + let%span ssparse_array3 = "sparse_array.rs" 104 14 104 28 + let%span ssparse_array4 = "sparse_array.rs" 100 4 100 12 + let%span ssparse_array5 = "sparse_array.rs" 73 20 74 52 let%span sops6 = "../../../creusot-contracts/src/logic/ops.rs" 20 8 20 31 - let%span ssparse_array7 = "sparse_array.rs" 51 12 59 17 + let%span ssparse_array7 = "sparse_array.rs" 52 12 60 17 let%span svec8 = "../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span svec9 = "../../../creusot-contracts/src/std/vec.rs" 65 20 65 41 let%span sseq10 = "../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 @@ -373,7 +373,7 @@ module M_sparse_array__qyi912363311032332466__lemma_permutation [#"sparse_array. function index_logic'0 [@inline:trivial] (self : t_Vec'1) (ix : int) : usize = [%#sops6] Seq.get (view'0 self) ix - predicate invariant'0 [#"sparse_array.rs" 49 4 49 30] (self : t_Sparse'0) = + predicate invariant'0 [#"sparse_array.rs" 50 4 50 30] (self : t_Sparse'0) = [%#ssparse_array7] UIntSize.to_int self.t_Sparse__n'0 <= UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'1 self.t_Sparse__values'0) = UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'0 self.t_Sparse__idx'0) = UIntSize.to_int self.t_Sparse__size'0 @@ -420,7 +420,7 @@ module M_sparse_array__qyi912363311032332466__lemma_permutation [#"sparse_array. use prelude.prelude.Borrow - function is_elt'0 [#"sparse_array.rs" 71 4 71 36] (self : t_Sparse'0) (i : int) : bool = + function is_elt'0 [#"sparse_array.rs" 72 4 72 36] (self : t_Sparse'0) (i : int) : bool = [%#ssparse_array5] UIntSize.to_int (index_logic'0 self.t_Sparse__idx'0 i) < UIntSize.to_int self.t_Sparse__n'0 /\ UIntSize.to_int (index_logic'0 self.t_Sparse__back'0 (UIntSize.to_int (index_logic'0 self.t_Sparse__idx'0 i))) = i @@ -429,22 +429,22 @@ module M_sparse_array__qyi912363311032332466__lemma_permutation [#"sparse_array. constant i : int - function lemma_permutation'0 [#"sparse_array.rs" 104 4 104 38] (self : t_Sparse'0) (i : int) : () + function lemma_permutation'0 [#"sparse_array.rs" 105 4 105 38] (self : t_Sparse'0) (i : int) : () goal vc_lemma_permutation'0 : ([%#ssparse_array2] 0 <= i /\ i < UIntSize.to_int self.t_Sparse__size'0) -> ([%#ssparse_array1] self.t_Sparse__n'0 = self.t_Sparse__size'0) -> ([%#ssparse_array0] inv'0 self) -> ([%#ssparse_array3] is_elt'0 self i) end -module M_sparse_array__qyi912363311032332466__set [#"sparse_array.rs" 112 4 112 41] (* Sparse *) - let%span ssparse_array0 = "sparse_array.rs" 117 12 117 46 - let%span ssparse_array1 = "sparse_array.rs" 118 26 118 46 - let%span ssparse_array2 = "sparse_array.rs" 122 22 122 23 - let%span ssparse_array3 = "sparse_array.rs" 112 20 112 24 - let%span ssparse_array4 = "sparse_array.rs" 112 36 112 37 - let%span ssparse_array5 = "sparse_array.rs" 108 15 108 31 - let%span ssparse_array6 = "sparse_array.rs" 109 14 109 43 - let%span ssparse_array7 = "sparse_array.rs" 110 14 110 93 - let%span ssparse_array8 = "sparse_array.rs" 111 14 111 37 +module M_sparse_array__qyi912363311032332466__set [#"sparse_array.rs" 113 4 113 41] (* Sparse *) + let%span ssparse_array0 = "sparse_array.rs" 118 12 118 46 + let%span ssparse_array1 = "sparse_array.rs" 119 26 119 46 + let%span ssparse_array2 = "sparse_array.rs" 123 22 123 23 + let%span ssparse_array3 = "sparse_array.rs" 113 20 113 24 + let%span ssparse_array4 = "sparse_array.rs" 113 36 113 37 + let%span ssparse_array5 = "sparse_array.rs" 109 15 109 31 + let%span ssparse_array6 = "sparse_array.rs" 110 14 110 43 + let%span ssparse_array7 = "sparse_array.rs" 111 14 111 93 + let%span ssparse_array8 = "sparse_array.rs" 112 14 112 37 let%span svec9 = "../../../creusot-contracts/src/std/vec.rs" 152 27 152 46 let%span svec10 = "../../../creusot-contracts/src/std/vec.rs" 153 26 153 54 let%span svec11 = "../../../creusot-contracts/src/std/vec.rs" 154 26 154 57 @@ -452,24 +452,24 @@ module M_sparse_array__qyi912363311032332466__set [#"sparse_array.rs" 112 4 112 let%span svec13 = "../../../creusot-contracts/src/std/vec.rs" 156 26 156 55 let%span svec14 = "../../../creusot-contracts/src/std/vec.rs" 162 27 162 46 let%span svec15 = "../../../creusot-contracts/src/std/vec.rs" 163 26 163 54 - let%span ssparse_array16 = "sparse_array.rs" 100 15 100 24 - let%span ssparse_array17 = "sparse_array.rs" 101 15 101 34 - let%span ssparse_array18 = "sparse_array.rs" 102 15 102 39 - let%span ssparse_array19 = "sparse_array.rs" 103 14 103 28 - let%span ssparse_array20 = "sparse_array.rs" 99 4 99 12 + let%span ssparse_array16 = "sparse_array.rs" 101 15 101 24 + let%span ssparse_array17 = "sparse_array.rs" 102 15 102 34 + let%span ssparse_array18 = "sparse_array.rs" 103 15 103 39 + let%span ssparse_array19 = "sparse_array.rs" 104 14 104 28 + let%span ssparse_array20 = "sparse_array.rs" 100 4 100 12 let%span smodel21 = "../../../creusot-contracts/src/model.rs" 106 8 106 22 - let%span ssparse_array22 = "sparse_array.rs" 40 12 41 82 + let%span ssparse_array22 = "sparse_array.rs" 41 12 42 82 let%span sslice23 = "../../../creusot-contracts/src/std/slice.rs" 122 20 122 37 let%span sslice24 = "../../../creusot-contracts/src/std/slice.rs" 129 20 129 37 let%span svec25 = "../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sslice26 = "../../../creusot-contracts/src/std/slice.rs" 136 20 136 94 let%span sresolve27 = "../../../creusot-contracts/src/resolve.rs" 54 20 54 34 let%span smodel28 = "../../../creusot-contracts/src/model.rs" 88 8 88 22 - let%span ssparse_array29 = "sparse_array.rs" 72 20 73 52 + let%span ssparse_array29 = "sparse_array.rs" 73 20 74 52 let%span sops30 = "../../../creusot-contracts/src/logic/ops.rs" 20 8 20 31 let%span svec31 = "../../../creusot-contracts/src/std/vec.rs" 65 20 65 41 let%span sinvariant32 = "../../../creusot-contracts/src/invariant.rs" 34 20 34 44 - let%span ssparse_array33 = "sparse_array.rs" 51 12 59 17 + let%span ssparse_array33 = "sparse_array.rs" 52 12 60 17 let%span sseq34 = "../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sboxed35 = "../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -644,7 +644,7 @@ module M_sparse_array__qyi912363311032332466__set [#"sparse_array.rs" 112 4 112 function index_logic'1 [@inline:trivial] (self : t_Vec'1) (ix : int) : usize = [%#sops30] Seq.get (view'6 self) ix - predicate invariant'4 [#"sparse_array.rs" 49 4 49 30] (self : t_Sparse'0) = + predicate invariant'4 [#"sparse_array.rs" 50 4 50 30] (self : t_Sparse'0) = [%#ssparse_array33] UIntSize.to_int self.t_Sparse__n'0 <= UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'3 self.t_Sparse__values'0) = UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'6 self.t_Sparse__idx'0) = UIntSize.to_int self.t_Sparse__size'0 @@ -677,12 +677,12 @@ module M_sparse_array__qyi912363311032332466__set [#"sparse_array.rs" 112 4 112 predicate resolve'2 (_1 : borrowed (t_Sparse'0)) = resolve'5 _1 - function is_elt'0 [#"sparse_array.rs" 71 4 71 36] (self : t_Sparse'0) (i : int) : bool = + function is_elt'0 [#"sparse_array.rs" 72 4 72 36] (self : t_Sparse'0) (i : int) : bool = [%#ssparse_array29] UIntSize.to_int (index_logic'1 self.t_Sparse__idx'0 i) < UIntSize.to_int self.t_Sparse__n'0 /\ UIntSize.to_int (index_logic'1 self.t_Sparse__back'0 (UIntSize.to_int (index_logic'1 self.t_Sparse__idx'0 i))) = i - function lemma_permutation'0 [#"sparse_array.rs" 104 4 104 38] (self : t_Sparse'0) (i : int) : () = + function lemma_permutation'0 [#"sparse_array.rs" 105 4 105 38] (self : t_Sparse'0) (i : int) : () = [%#ssparse_array20] () axiom lemma_permutation'0_spec : forall self : t_Sparse'0, i : int . ([%#ssparse_array16] inv'8 self) @@ -742,7 +742,7 @@ module M_sparse_array__qyi912363311032332466__set [#"sparse_array.rs" 112 4 112 use seq.Seq - function view'1 [#"sparse_array.rs" 38 4 38 33] (self : t_Sparse'0) : Seq.seq (t_Option'0) = + function view'1 [#"sparse_array.rs" 39 4 39 33] (self : t_Sparse'0) : Seq.seq (t_Option'0) = [%#ssparse_array22] Seq.create (UIntSize.to_int self.t_Sparse__size'0) (Mapping.from_fn (fun (i : int) -> if is_elt'0 self i then C_Some'0 (index_logic'0 self.t_Sparse__values'0 i) else @@ -871,21 +871,21 @@ module M_sparse_array__qyi912363311032332466__set [#"sparse_array.rs" 112 4 112 (! return' {result}) ] end -module M_sparse_array__create [#"sparse_array.rs" 134 0 134 64] - let%span ssparse_array0 = "sparse_array.rs" 135 64 135 65 - let%span ssparse_array1 = "sparse_array.rs" 135 83 135 84 - let%span ssparse_array2 = "sparse_array.rs" 135 26 135 27 - let%span ssparse_array3 = "sparse_array.rs" 134 42 134 47 - let%span ssparse_array4 = "sparse_array.rs" 134 55 134 64 - let%span ssparse_array5 = "sparse_array.rs" 132 10 132 27 - let%span ssparse_array6 = "sparse_array.rs" 133 10 133 65 +module M_sparse_array__create [#"sparse_array.rs" 135 0 135 64] + let%span ssparse_array0 = "sparse_array.rs" 136 64 136 65 + let%span ssparse_array1 = "sparse_array.rs" 136 83 136 84 + let%span ssparse_array2 = "sparse_array.rs" 136 26 136 27 + let%span ssparse_array3 = "sparse_array.rs" 135 42 135 47 + let%span ssparse_array4 = "sparse_array.rs" 135 55 135 64 + let%span ssparse_array5 = "sparse_array.rs" 133 10 133 27 + let%span ssparse_array6 = "sparse_array.rs" 134 10 134 65 let%span svec7 = "../../../creusot-contracts/src/std/vec.rs" 180 22 180 41 let%span svec8 = "../../../creusot-contracts/src/std/vec.rs" 181 22 181 76 - let%span ssparse_array9 = "sparse_array.rs" 40 12 41 82 + let%span ssparse_array9 = "sparse_array.rs" 41 12 42 82 let%span svec10 = "../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sops11 = "../../../creusot-contracts/src/logic/ops.rs" 20 8 20 31 - let%span ssparse_array12 = "sparse_array.rs" 72 20 73 52 - let%span ssparse_array13 = "sparse_array.rs" 51 12 59 17 + let%span ssparse_array12 = "sparse_array.rs" 73 20 74 52 + let%span ssparse_array13 = "sparse_array.rs" 52 12 60 17 let%span svec14 = "../../../creusot-contracts/src/std/vec.rs" 65 20 65 41 let%span sseq15 = "../../../creusot-contracts/src/logic/seq.rs" 451 20 451 95 let%span sboxed16 = "../../../creusot-contracts/src/std/boxed.rs" 28 8 28 18 @@ -1013,7 +1013,7 @@ module M_sparse_array__create [#"sparse_array.rs" 134 0 134 64] use prelude.prelude.Intrinsic - predicate invariant'0 [#"sparse_array.rs" 49 4 49 30] (self : t_Sparse'0) = + predicate invariant'0 [#"sparse_array.rs" 50 4 50 30] (self : t_Sparse'0) = [%#ssparse_array13] UIntSize.to_int self.t_Sparse__n'0 <= UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'1 self.t_Sparse__values'0) = UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'2 self.t_Sparse__idx'0) = UIntSize.to_int self.t_Sparse__size'0 @@ -1041,7 +1041,7 @@ module M_sparse_array__create [#"sparse_array.rs" 134 0 134 64] use prelude.prelude.Borrow - function is_elt'0 [#"sparse_array.rs" 71 4 71 36] (self : t_Sparse'0) (i : int) : bool = + function is_elt'0 [#"sparse_array.rs" 72 4 72 36] (self : t_Sparse'0) (i : int) : bool = [%#ssparse_array12] UIntSize.to_int (index_logic'1 self.t_Sparse__idx'0 i) < UIntSize.to_int self.t_Sparse__n'0 /\ UIntSize.to_int (index_logic'1 self.t_Sparse__back'0 (UIntSize.to_int (index_logic'1 self.t_Sparse__idx'0 i))) = i @@ -1050,7 +1050,7 @@ module M_sparse_array__create [#"sparse_array.rs" 134 0 134 64] use seq.Seq - function view'0 [#"sparse_array.rs" 38 4 38 33] (self : t_Sparse'0) : Seq.seq (t_Option'0) = + function view'0 [#"sparse_array.rs" 39 4 39 33] (self : t_Sparse'0) : Seq.seq (t_Option'0) = [%#ssparse_array9] Seq.create (UIntSize.to_int self.t_Sparse__size'0) (Mapping.from_fn (fun (i : int) -> if is_elt'0 self i then C_Some'0 (index_logic'0 self.t_Sparse__values'0 i) else @@ -1101,51 +1101,51 @@ module M_sparse_array__create [#"sparse_array.rs" 134 0 134 64] (! return' {result}) ] end -module M_sparse_array__f [#"sparse_array.rs" 140 0 140 10] - let%span ssparse_array0 = "sparse_array.rs" 141 18 141 19 - let%span ssparse_array1 = "sparse_array.rs" 142 23 142 25 - let%span ssparse_array2 = "sparse_array.rs" 143 23 143 25 - let%span ssparse_array3 = "sparse_array.rs" 144 22 144 23 - let%span ssparse_array4 = "sparse_array.rs" 145 22 145 23 - let%span ssparse_array5 = "sparse_array.rs" 146 18 146 40 - let%span ssparse_array6 = "sparse_array.rs" 148 10 148 11 - let%span ssparse_array7 = "sparse_array.rs" 148 13 148 14 - let%span ssparse_array8 = "sparse_array.rs" 149 10 149 11 - let%span ssparse_array9 = "sparse_array.rs" 149 13 149 14 - let%span ssparse_array10 = "sparse_array.rs" 150 14 150 15 - let%span ssparse_array11 = "sparse_array.rs" 151 14 151 15 - let%span ssparse_array12 = "sparse_array.rs" 152 18 155 5 - let%span ssparse_array13 = "sparse_array.rs" 156 18 159 5 - let%span ssparse_array14 = "sparse_array.rs" 161 14 161 15 - let%span ssparse_array15 = "sparse_array.rs" 162 14 162 15 - let%span ssparse_array16 = "sparse_array.rs" 163 18 163 40 - let%span ssparse_array17 = "sparse_array.rs" 165 14 165 15 - let%span ssparse_array18 = "sparse_array.rs" 166 14 166 15 - let%span ssparse_array19 = "sparse_array.rs" 167 18 167 40 - let%span ssparse_array20 = "sparse_array.rs" 169 14 169 15 - let%span ssparse_array21 = "sparse_array.rs" 170 14 170 15 - let%span ssparse_array22 = "sparse_array.rs" 171 18 171 40 - let%span ssparse_array23 = "sparse_array.rs" 134 42 134 47 - let%span ssparse_array24 = "sparse_array.rs" 134 55 134 64 - let%span ssparse_array25 = "sparse_array.rs" 132 10 132 27 - let%span ssparse_array26 = "sparse_array.rs" 133 10 133 65 - let%span ssparse_array27 = "sparse_array.rs" 88 16 88 20 - let%span ssparse_array28 = "sparse_array.rs" 79 15 79 31 - let%span ssparse_array29 = "sparse_array.rs" 88 35 88 45 - let%span ssparse_array30 = "sparse_array.rs" 80 14 83 5 - let%span ssparse_array31 = "sparse_array.rs" 84 14 87 5 - let%span ssparse_array32 = "sparse_array.rs" 112 20 112 24 - let%span ssparse_array33 = "sparse_array.rs" 112 36 112 37 - let%span ssparse_array34 = "sparse_array.rs" 108 15 108 31 - let%span ssparse_array35 = "sparse_array.rs" 109 14 109 43 - let%span ssparse_array36 = "sparse_array.rs" 110 14 110 93 - let%span ssparse_array37 = "sparse_array.rs" 111 14 111 37 +module M_sparse_array__f [#"sparse_array.rs" 141 0 141 10] + let%span ssparse_array0 = "sparse_array.rs" 142 18 142 19 + let%span ssparse_array1 = "sparse_array.rs" 143 23 143 25 + let%span ssparse_array2 = "sparse_array.rs" 144 23 144 25 + let%span ssparse_array3 = "sparse_array.rs" 145 22 145 23 + let%span ssparse_array4 = "sparse_array.rs" 146 22 146 23 + let%span ssparse_array5 = "sparse_array.rs" 147 18 147 40 + let%span ssparse_array6 = "sparse_array.rs" 149 10 149 11 + let%span ssparse_array7 = "sparse_array.rs" 149 13 149 14 + let%span ssparse_array8 = "sparse_array.rs" 150 10 150 11 + let%span ssparse_array9 = "sparse_array.rs" 150 13 150 14 + let%span ssparse_array10 = "sparse_array.rs" 151 14 151 15 + let%span ssparse_array11 = "sparse_array.rs" 152 14 152 15 + let%span ssparse_array12 = "sparse_array.rs" 153 18 156 5 + let%span ssparse_array13 = "sparse_array.rs" 157 18 160 5 + let%span ssparse_array14 = "sparse_array.rs" 162 14 162 15 + let%span ssparse_array15 = "sparse_array.rs" 163 14 163 15 + let%span ssparse_array16 = "sparse_array.rs" 164 18 164 40 + let%span ssparse_array17 = "sparse_array.rs" 166 14 166 15 + let%span ssparse_array18 = "sparse_array.rs" 167 14 167 15 + let%span ssparse_array19 = "sparse_array.rs" 168 18 168 40 + let%span ssparse_array20 = "sparse_array.rs" 170 14 170 15 + let%span ssparse_array21 = "sparse_array.rs" 171 14 171 15 + let%span ssparse_array22 = "sparse_array.rs" 172 18 172 40 + let%span ssparse_array23 = "sparse_array.rs" 135 42 135 47 + let%span ssparse_array24 = "sparse_array.rs" 135 55 135 64 + let%span ssparse_array25 = "sparse_array.rs" 133 10 133 27 + let%span ssparse_array26 = "sparse_array.rs" 134 10 134 65 + let%span ssparse_array27 = "sparse_array.rs" 89 16 89 20 + let%span ssparse_array28 = "sparse_array.rs" 80 15 80 31 + let%span ssparse_array29 = "sparse_array.rs" 89 35 89 45 + let%span ssparse_array30 = "sparse_array.rs" 81 14 84 5 + let%span ssparse_array31 = "sparse_array.rs" 85 14 88 5 + let%span ssparse_array32 = "sparse_array.rs" 113 20 113 24 + let%span ssparse_array33 = "sparse_array.rs" 113 36 113 37 + let%span ssparse_array34 = "sparse_array.rs" 109 15 109 31 + let%span ssparse_array35 = "sparse_array.rs" 110 14 110 43 + let%span ssparse_array36 = "sparse_array.rs" 111 14 111 93 + let%span ssparse_array37 = "sparse_array.rs" 112 14 112 37 let%span smodel38 = "../../../creusot-contracts/src/model.rs" 88 8 88 22 - let%span ssparse_array39 = "sparse_array.rs" 40 12 41 82 + let%span ssparse_array39 = "sparse_array.rs" 41 12 42 82 let%span smodel40 = "../../../creusot-contracts/src/model.rs" 106 8 106 22 - let%span ssparse_array41 = "sparse_array.rs" 72 20 73 52 + let%span ssparse_array41 = "sparse_array.rs" 73 20 74 52 let%span sops42 = "../../../creusot-contracts/src/logic/ops.rs" 20 8 20 31 - let%span ssparse_array43 = "sparse_array.rs" 51 12 59 17 + let%span ssparse_array43 = "sparse_array.rs" 52 12 60 17 let%span svec44 = "../../../creusot-contracts/src/std/vec.rs" 18 14 18 41 let%span sinvariant45 = "../../../creusot-contracts/src/invariant.rs" 24 8 24 18 let%span sinvariant46 = "../../../creusot-contracts/src/invariant.rs" 34 20 34 44 @@ -1221,7 +1221,7 @@ module M_sparse_array__f [#"sparse_array.rs" 140 0 140 10] function index_logic'1 [@inline:trivial] (self : t_Vec'1) (ix : int) : usize = [%#sops42] Seq.get (view'5 self) ix - predicate invariant'0 [#"sparse_array.rs" 49 4 49 30] (self : t_Sparse'0) = + predicate invariant'0 [#"sparse_array.rs" 50 4 50 30] (self : t_Sparse'0) = [%#ssparse_array43] UIntSize.to_int self.t_Sparse__n'0 <= UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'4 self.t_Sparse__values'0) = UIntSize.to_int self.t_Sparse__size'0 /\ Seq.length (view'5 self.t_Sparse__idx'0) = UIntSize.to_int self.t_Sparse__size'0 @@ -1249,7 +1249,7 @@ module M_sparse_array__f [#"sparse_array.rs" 140 0 140 10] use prelude.prelude.Borrow - function is_elt'0 [#"sparse_array.rs" 71 4 71 36] (self : t_Sparse'0) (i : int) : bool = + function is_elt'0 [#"sparse_array.rs" 72 4 72 36] (self : t_Sparse'0) (i : int) : bool = [%#ssparse_array41] UIntSize.to_int (index_logic'1 self.t_Sparse__idx'0 i) < UIntSize.to_int self.t_Sparse__n'0 /\ UIntSize.to_int (index_logic'1 self.t_Sparse__back'0 (UIntSize.to_int (index_logic'1 self.t_Sparse__idx'0 i))) = i @@ -1263,7 +1263,7 @@ module M_sparse_array__f [#"sparse_array.rs" 140 0 140 10] use seq.Seq - function view'1 [#"sparse_array.rs" 38 4 38 33] (self : t_Sparse'0) : Seq.seq (t_Option'1) = + function view'1 [#"sparse_array.rs" 39 4 39 33] (self : t_Sparse'0) : Seq.seq (t_Option'1) = [%#ssparse_array39] Seq.create (UIntSize.to_int self.t_Sparse__size'0) (Mapping.from_fn (fun (i : int) -> if is_elt'0 self i then C_Some'1 (index_logic'0 self.t_Sparse__values'0 i) else diff --git a/creusot/tests/should_succeed/sparse_array.rs b/creusot/tests/should_succeed/sparse_array.rs index e304cc94a3..0a1e6ad61f 100644 --- a/creusot/tests/should_succeed/sparse_array.rs +++ b/creusot/tests/should_succeed/sparse_array.rs @@ -1,3 +1,4 @@ +// WHY3PROVE // The following code is the Sparse Arrays Verification Challenge from // the VACID0 benchmark // diff --git a/creusot/tests/should_succeed/specification/division/proof.json b/creusot/tests/should_succeed/specification/division/proof.json new file mode 100644 index 0000000000..91526e0893 --- /dev/null +++ b/creusot/tests/should_succeed/specification/division/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_division__divide": { + "vc_divide'0": { "prover": "cvc5@1.0.5", "time": 0.021 } + } + } +} diff --git a/creusot/tests/should_succeed/specification/division/why3session.xml b/creusot/tests/should_succeed/specification/division/why3session.xml deleted file mode 100644 index 95480aef7e..0000000000 --- a/creusot/tests/should_succeed/specification/division/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/specification/division/why3shapes.gz b/creusot/tests/should_succeed/specification/division/why3shapes.gz deleted file mode 100644 index 86db29babc..0000000000 Binary files a/creusot/tests/should_succeed/specification/division/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/specification/forall/proof.json b/creusot/tests/should_succeed/specification/forall/proof.json new file mode 100644 index 0000000000..d27dd2b920 --- /dev/null +++ b/creusot/tests/should_succeed/specification/forall/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_forall__f": { "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0 } }, + "M_forall__omg": { + "vc_omg'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/specification/forall/why3session.xml b/creusot/tests/should_succeed/specification/forall/why3session.xml deleted file mode 100644 index 1fda388212..0000000000 --- a/creusot/tests/should_succeed/specification/forall/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/specification/forall/why3shapes.gz b/creusot/tests/should_succeed/specification/forall/why3shapes.gz deleted file mode 100644 index 9e6803bc01..0000000000 Binary files a/creusot/tests/should_succeed/specification/forall/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/specification/logic_call/proof.json b/creusot/tests/should_succeed/specification/logic_call/proof.json new file mode 100644 index 0000000000..66eed0eb80 --- /dev/null +++ b/creusot/tests/should_succeed/specification/logic_call/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_logic_call__dummy": { + "vc_dummy'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/specification/logic_call/why3session.xml b/creusot/tests/should_succeed/specification/logic_call/why3session.xml deleted file mode 100644 index 036ff03ef4..0000000000 --- a/creusot/tests/should_succeed/specification/logic_call/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/specification/logic_call/why3shapes.gz b/creusot/tests/should_succeed/specification/logic_call/why3shapes.gz deleted file mode 100644 index d6bc639411..0000000000 Binary files a/creusot/tests/should_succeed/specification/logic_call/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/specification/logic_functions/proof.json b/creusot/tests/should_succeed/specification/logic_functions/proof.json new file mode 100644 index 0000000000..d488e2c0dd --- /dev/null +++ b/creusot/tests/should_succeed/specification/logic_functions/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_logic_functions__use_logic": { + "vc_use_logic'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_logic_functions__use_logic_pearlite": { + "vc_use_logic_pearlite'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/specification/logic_functions/why3session.xml b/creusot/tests/should_succeed/specification/logic_functions/why3session.xml deleted file mode 100644 index ccc76250b7..0000000000 --- a/creusot/tests/should_succeed/specification/logic_functions/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/specification/logic_functions/why3shapes.gz b/creusot/tests/should_succeed/specification/logic_functions/why3shapes.gz deleted file mode 100644 index eb52682540..0000000000 Binary files a/creusot/tests/should_succeed/specification/logic_functions/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/specification/loops/proof.json b/creusot/tests/should_succeed/specification/loops/proof.json new file mode 100644 index 0000000000..0efcfe3480 --- /dev/null +++ b/creusot/tests/should_succeed/specification/loops/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_loops__while_loop_variant": { + "vc_while_loop_variant'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/specification/loops/why3session.xml b/creusot/tests/should_succeed/specification/loops/why3session.xml deleted file mode 100644 index 1314e7fdab..0000000000 --- a/creusot/tests/should_succeed/specification/loops/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/specification/loops/why3shapes.gz b/creusot/tests/should_succeed/specification/loops/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/specification/loops/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/specification/model/proof.json b/creusot/tests/should_succeed/specification/model/proof.json new file mode 100644 index 0000000000..917fc7eaad --- /dev/null +++ b/creusot/tests/should_succeed/specification/model/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_model__test_arc": { + "vc_test_arc'0": { "prover": "cvc5@1.0.5", "time": 0.005 } + }, + "M_model__test_rc": { + "vc_test_rc'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/specification/model/why3session.xml b/creusot/tests/should_succeed/specification/model/why3session.xml deleted file mode 100644 index f21227a0bf..0000000000 --- a/creusot/tests/should_succeed/specification/model/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/specification/model/why3shapes.gz b/creusot/tests/should_succeed/specification/model/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/specification/model/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/specification/opaque/proof.json b/creusot/tests/should_succeed/specification/opaque/proof.json new file mode 100644 index 0000000000..0e8742dbe7 --- /dev/null +++ b/creusot/tests/should_succeed/specification/opaque/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_opaque__test": { + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/specification/opaque/why3session.xml b/creusot/tests/should_succeed/specification/opaque/why3session.xml deleted file mode 100644 index d8de4aa031..0000000000 --- a/creusot/tests/should_succeed/specification/opaque/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/specification/opaque/why3shapes.gz b/creusot/tests/should_succeed/specification/opaque/why3shapes.gz deleted file mode 100644 index 0f8f4e4770..0000000000 Binary files a/creusot/tests/should_succeed/specification/opaque/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/specification/trusted/proof.json b/creusot/tests/should_succeed/specification/trusted/proof.json new file mode 100644 index 0000000000..bfbf145388 --- /dev/null +++ b/creusot/tests/should_succeed/specification/trusted/proof.json @@ -0,0 +1,19 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_trusted__innocent_victim": { + "vc_im_out_of_control'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_innocent_victim'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_my_unverified_code'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_trusted__victim_of_lie": { + "vc_lie'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_victim_of_lie'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/specification/trusted/why3session.xml b/creusot/tests/should_succeed/specification/trusted/why3session.xml deleted file mode 100644 index ad88cdb285..0000000000 --- a/creusot/tests/should_succeed/specification/trusted/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/specification/trusted/why3shapes.gz b/creusot/tests/should_succeed/specification/trusted/why3shapes.gz deleted file mode 100644 index 2ae39f818f..0000000000 Binary files a/creusot/tests/should_succeed/specification/trusted/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/split_borrow/proof.json b/creusot/tests/should_succeed/split_borrow/proof.json new file mode 100644 index 0000000000..c2f0d9c80a --- /dev/null +++ b/creusot/tests/should_succeed/split_borrow/proof.json @@ -0,0 +1,20 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_split_borrow__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.008 }, + "vc_z'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_split_borrow__g": { + "vc_g'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_split_borrow__z": { + "vc_z'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/split_borrow/why3session.xml b/creusot/tests/should_succeed/split_borrow/why3session.xml deleted file mode 100644 index df4606206c..0000000000 --- a/creusot/tests/should_succeed/split_borrow/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/split_borrow/why3shapes.gz b/creusot/tests/should_succeed/split_borrow/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/split_borrow/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/std_types/proof.json b/creusot/tests/should_succeed/std_types/proof.json new file mode 100644 index 0000000000..bfd36511e2 --- /dev/null +++ b/creusot/tests/should_succeed/std_types/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_std_types__x": { "vc_x'0": { "prover": "cvc5@1.0.5", "time": 0.012 } } + } +} diff --git a/creusot/tests/should_succeed/std_types/why3session.xml b/creusot/tests/should_succeed/std_types/why3session.xml deleted file mode 100644 index df7cdbc9ca..0000000000 --- a/creusot/tests/should_succeed/std_types/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/std_types/why3shapes.gz b/creusot/tests/should_succeed/std_types/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/std_types/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/sum/proof.json b/creusot/tests/should_succeed/sum/proof.json new file mode 100644 index 0000000000..95bc2e6847 --- /dev/null +++ b/creusot/tests/should_succeed/sum/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_sum__sum_first_n": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_sum_first_n'0": { "prover": "alt-ergo@2.6.0", "time": 0.295 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/sum/why3session.xml b/creusot/tests/should_succeed/sum/why3session.xml deleted file mode 100644 index d2f4b6a825..0000000000 --- a/creusot/tests/should_succeed/sum/why3session.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/sum/why3shapes.gz b/creusot/tests/should_succeed/sum/why3shapes.gz deleted file mode 100644 index ba1e299655..0000000000 Binary files a/creusot/tests/should_succeed/sum/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/sum_of_odds/proof.json b/creusot/tests/should_succeed/sum_of_odds/proof.json new file mode 100644 index 0000000000..d57dae5086 --- /dev/null +++ b/creusot/tests/should_succeed/sum_of_odds/proof.json @@ -0,0 +1,26 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_sum_of_odds__compute_sum_of_odd": { + "vc_compute_sum_of_odd'0": { "prover": "z3@4.12.4", "time": 0.146 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_sum_of_odds__sum_of_odd": { + "vc_sum_of_odd'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_sum_of_odds__sum_of_odd_is_sqr": { + "vc_sum_of_odd_is_sqr'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_sum_of_odds__test": { + "vc_compute_sum_of_odd'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_test'0": { "prover": "z3@4.12.4", "time": 0.017 } + } + } +} diff --git a/creusot/tests/should_succeed/sum_of_odds/why3session.xml b/creusot/tests/should_succeed/sum_of_odds/why3session.xml deleted file mode 100644 index 015788d29a..0000000000 --- a/creusot/tests/should_succeed/sum_of_odds/why3session.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/sum_of_odds/why3shapes.gz b/creusot/tests/should_succeed/sum_of_odds/why3shapes.gz deleted file mode 100644 index c3a9e8148e..0000000000 Binary files a/creusot/tests/should_succeed/sum_of_odds/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/swap_borrows/proof.json b/creusot/tests/should_succeed/swap_borrows/proof.json new file mode 100644 index 0000000000..038ffda7d6 --- /dev/null +++ b/creusot/tests/should_succeed/swap_borrows/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_swap_borrows__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_swap_borrows__swap": { + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/swap_borrows/why3session.xml b/creusot/tests/should_succeed/swap_borrows/why3session.xml deleted file mode 100644 index cda2381cca..0000000000 --- a/creusot/tests/should_succeed/swap_borrows/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/swap_borrows/why3shapes.gz b/creusot/tests/should_succeed/swap_borrows/why3shapes.gz deleted file mode 100644 index 4890e87b27..0000000000 Binary files a/creusot/tests/should_succeed/swap_borrows/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/switch/proof.json b/creusot/tests/should_succeed/switch/proof.json new file mode 100644 index 0000000000..5a0c64db14 --- /dev/null +++ b/creusot/tests/should_succeed/switch/proof.json @@ -0,0 +1,18 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_switch__test": { + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_switch__test2": { + "vc_test2'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/switch/why3session.xml b/creusot/tests/should_succeed/switch/why3session.xml deleted file mode 100644 index 785e5cf2e5..0000000000 --- a/creusot/tests/should_succeed/switch/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/switch/why3shapes.gz b/creusot/tests/should_succeed/switch/why3shapes.gz deleted file mode 100644 index 139e1b2217..0000000000 Binary files a/creusot/tests/should_succeed/switch/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/switch_struct/proof.json b/creusot/tests/should_succeed/switch_struct/proof.json new file mode 100644 index 0000000000..8f4f7722eb --- /dev/null +++ b/creusot/tests/should_succeed/switch_struct/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_switch_struct__test": { + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_v_F'0": { "prover": "cvc5@1.0.5", "time": 0.004 }, + "vc_v_G'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/switch_struct/why3session.xml b/creusot/tests/should_succeed/switch_struct/why3session.xml deleted file mode 100644 index 94cb511bb5..0000000000 --- a/creusot/tests/should_succeed/switch_struct/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/switch_struct/why3shapes.gz b/creusot/tests/should_succeed/switch_struct/why3shapes.gz deleted file mode 100644 index 252536b0a8..0000000000 Binary files a/creusot/tests/should_succeed/switch_struct/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/01_idents/proof.json b/creusot/tests/should_succeed/syntax/01_idents/proof.json new file mode 100644 index 0000000000..67d49461a1 --- /dev/null +++ b/creusot/tests/should_succeed/syntax/01_idents/proof.json @@ -0,0 +1,40 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_01_idents__F": { + "vc_v_F'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_01_idents__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_01_idents__export": { + "vc_export'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_01_idents__function": { + "vc_function'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_01_idents__import": { + "vc_import'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_01_idents__qy95z_a_qy113zyqy95z_bqy95zqy95zqy95z_cqy95zqy95z": { + "vc_qy95z_a_qy113zyqy95z_bqy95zqy95zqy95z_cqy95zqy95z'0": { + "prover": "cvc5@1.0.5", + "time": 0.01 + } + }, + "M_01_idents__qy95zaqy95z": { + "vc_qy95zaqy95z'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_01_idents__result": { + "vc_result'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_01_idents__v_F": { + "vc_v_v_F'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/01_idents/why3session.xml b/creusot/tests/should_succeed/syntax/01_idents/why3session.xml deleted file mode 100644 index 79a0328ad2..0000000000 --- a/creusot/tests/should_succeed/syntax/01_idents/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/01_idents/why3shapes.gz b/creusot/tests/should_succeed/syntax/01_idents/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/syntax/01_idents/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/02_operators/proof.json b/creusot/tests/should_succeed/syntax/02_operators/proof.json new file mode 100644 index 0000000000..3f2cc869c3 --- /dev/null +++ b/creusot/tests/should_succeed/syntax/02_operators/proof.json @@ -0,0 +1,34 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02_operators__add": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_02_operators__bool_eq": { + "vc_bool_eq'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_02_operators__division": { + "vc_division'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_02_operators__expression": { + "vc_expression'0": { "prover": "cvc5@1.0.5", "time": 0.103 } + }, + "M_02_operators__modulus": { + "vc_modulus'0": { "prover": "cvc5@1.0.5", "time": 0.022 } + }, + "M_02_operators__multiply": { + "vc_multiply'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_02_operators__primitive_comparison": { + "vc_primitive_comparison'0": { "prover": "cvc5@1.0.5", "time": 0.003 } + }, + "M_02_operators__sub": { + "vc_sub'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/02_operators/why3session.xml b/creusot/tests/should_succeed/syntax/02_operators/why3session.xml deleted file mode 100644 index f90c18aab0..0000000000 --- a/creusot/tests/should_succeed/syntax/02_operators/why3session.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/02_operators/why3shapes.gz b/creusot/tests/should_succeed/syntax/02_operators/why3shapes.gz deleted file mode 100644 index b936dc9652..0000000000 Binary files a/creusot/tests/should_succeed/syntax/02_operators/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/05_annotations/proof.json b/creusot/tests/should_succeed/syntax/05_annotations/proof.json new file mode 100644 index 0000000000..125d6f12df --- /dev/null +++ b/creusot/tests/should_succeed/syntax/05_annotations/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_05_annotations__assertion": { + "vc_assertion'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/05_annotations/why3session.xml b/creusot/tests/should_succeed/syntax/05_annotations/why3session.xml deleted file mode 100644 index fe9ef08a66..0000000000 --- a/creusot/tests/should_succeed/syntax/05_annotations/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/05_annotations/why3shapes.gz b/creusot/tests/should_succeed/syntax/05_annotations/why3shapes.gz deleted file mode 100644 index 9d72cd7a33..0000000000 Binary files a/creusot/tests/should_succeed/syntax/05_annotations/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/06_logic_function_contracts/proof.json b/creusot/tests/should_succeed/syntax/06_logic_function_contracts/proof.json new file mode 100644 index 0000000000..13474e5819 --- /dev/null +++ b/creusot/tests/should_succeed/syntax/06_logic_function_contracts/proof.json @@ -0,0 +1,19 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_06_logic_function_contracts__all_zero": { + "vc_all_zero'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_06_logic_function_contracts__stupid": { + "vc_stupid'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_06_logic_function_contracts__sum": { + "vc_sum'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/06_logic_function_contracts/why3session.xml b/creusot/tests/should_succeed/syntax/06_logic_function_contracts/why3session.xml deleted file mode 100644 index 63461c5162..0000000000 --- a/creusot/tests/should_succeed/syntax/06_logic_function_contracts/why3session.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/06_logic_function_contracts/why3shapes.gz b/creusot/tests/should_succeed/syntax/06_logic_function_contracts/why3shapes.gz deleted file mode 100644 index 22306d5394..0000000000 Binary files a/creusot/tests/should_succeed/syntax/06_logic_function_contracts/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/07_extern_spec/proof.json b/creusot/tests/should_succeed/syntax/07_extern_spec/proof.json new file mode 100644 index 0000000000..f1e6c3aaa5 --- /dev/null +++ b/creusot/tests/should_succeed/syntax/07_extern_spec/proof.json @@ -0,0 +1,25 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_07_extern_spec__extern_spec_UseSelf_i32_func_body": { + "vc_extern_spec_UseSelf_i32_func_body'0": { + "prover": "cvc5@1.0.5", + "time": 0.011 + } + }, + "M_07_extern_spec__qyi3243879555983665661__func__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_07_extern_spec__qyi8036055106851583299__func": { + "vc_func'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_07_extern_spec__qyi8036055106851583299__func__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/07_extern_spec/why3session.xml b/creusot/tests/should_succeed/syntax/07_extern_spec/why3session.xml deleted file mode 100644 index 0ec67f2516..0000000000 --- a/creusot/tests/should_succeed/syntax/07_extern_spec/why3session.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/07_extern_spec/why3shapes.gz b/creusot/tests/should_succeed/syntax/07_extern_spec/why3shapes.gz deleted file mode 100644 index 3ead216e2c..0000000000 Binary files a/creusot/tests/should_succeed/syntax/07_extern_spec/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/09_maintains/proof.json b/creusot/tests/should_succeed/syntax/09_maintains/proof.json new file mode 100644 index 0000000000..f445309bbb --- /dev/null +++ b/creusot/tests/should_succeed/syntax/09_maintains/proof.json @@ -0,0 +1,25 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_09_maintains__test_1": { + "vc_test_1'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_09_maintains__test_2": { + "vc_test_2'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_09_maintains__test_3": { + "vc_test_3'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_09_maintains__test_5": { + "vc_test_5'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_09_maintains__test_6": { + "vc_test_6'0": { "prover": "cvc5@1.0.5", "time": 0.006 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/09_maintains/why3session.xml b/creusot/tests/should_succeed/syntax/09_maintains/why3session.xml deleted file mode 100644 index ed140f13eb..0000000000 --- a/creusot/tests/should_succeed/syntax/09_maintains/why3session.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/09_maintains/why3shapes.gz b/creusot/tests/should_succeed/syntax/09_maintains/why3shapes.gz deleted file mode 100644 index 8dba95df01..0000000000 Binary files a/creusot/tests/should_succeed/syntax/09_maintains/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/11_array_types/proof.json b/creusot/tests/should_succeed/syntax/11_array_types/proof.json new file mode 100644 index 0000000000..8dda6600fd --- /dev/null +++ b/creusot/tests/should_succeed/syntax/11_array_types/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_11_array_types__call_omg": { + "vc_call_omg'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_omg'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_11_array_types__omg": { + "vc_omg'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/11_array_types/why3session.xml b/creusot/tests/should_succeed/syntax/11_array_types/why3session.xml deleted file mode 100644 index 509cedb428..0000000000 --- a/creusot/tests/should_succeed/syntax/11_array_types/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/11_array_types/why3shapes.gz b/creusot/tests/should_succeed/syntax/11_array_types/why3shapes.gz deleted file mode 100644 index a1f100dbe5..0000000000 Binary files a/creusot/tests/should_succeed/syntax/11_array_types/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/12_ghost_code/proof.json b/creusot/tests/should_succeed/syntax/12_ghost_code/proof.json new file mode 100644 index 0000000000..0ce31002df --- /dev/null +++ b/creusot/tests/should_succeed/syntax/12_ghost_code/proof.json @@ -0,0 +1,32 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_12_ghost_code__ghost_arg": { + "vc_ghost_arg'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_12_ghost_code__ghost_check": { + "vc_ghost_check'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_12_ghost_code__ghost_copy": { + "vc_ghost_copy'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_12_ghost_code__ghost_is_copy": { + "vc_ghost_is_copy'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_12_ghost_code__ghost_vec": { + "vc_ghost_vec'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_12_ghost_code__takes_struct": { + "vc_takes_struct'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/12_ghost_code/why3session.xml b/creusot/tests/should_succeed/syntax/12_ghost_code/why3session.xml deleted file mode 100644 index e799d62a18..0000000000 --- a/creusot/tests/should_succeed/syntax/12_ghost_code/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/12_ghost_code/why3shapes.gz b/creusot/tests/should_succeed/syntax/12_ghost_code/why3shapes.gz deleted file mode 100644 index f33744ab5f..0000000000 Binary files a/creusot/tests/should_succeed/syntax/12_ghost_code/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/13_vec_macro/proof.json b/creusot/tests/should_succeed/syntax/13_vec_macro/proof.json new file mode 100644 index 0000000000..b1c9b6cfe6 --- /dev/null +++ b/creusot/tests/should_succeed/syntax/13_vec_macro/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_13_vec_macro__x": { + "vc_from_elem'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_into_vec'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_x'0": { "prover": "cvc5@1.0.5", "time": 0.021 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/13_vec_macro/why3session.xml b/creusot/tests/should_succeed/syntax/13_vec_macro/why3session.xml deleted file mode 100644 index 4d9a942eb0..0000000000 --- a/creusot/tests/should_succeed/syntax/13_vec_macro/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/13_vec_macro/why3shapes.gz b/creusot/tests/should_succeed/syntax/13_vec_macro/why3shapes.gz deleted file mode 100644 index 0721f03512..0000000000 Binary files a/creusot/tests/should_succeed/syntax/13_vec_macro/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/14_const_fns/proof.json b/creusot/tests/should_succeed/syntax/14_const_fns/proof.json new file mode 100644 index 0000000000..1c820bd282 --- /dev/null +++ b/creusot/tests/should_succeed/syntax/14_const_fns/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_14_const_fns__omg": { + "vc_omg'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/14_const_fns/why3session.xml b/creusot/tests/should_succeed/syntax/14_const_fns/why3session.xml deleted file mode 100644 index d21b22d5e5..0000000000 --- a/creusot/tests/should_succeed/syntax/14_const_fns/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/14_const_fns/why3shapes.gz b/creusot/tests/should_succeed/syntax/14_const_fns/why3shapes.gz deleted file mode 100644 index 5d7ffb1e3a..0000000000 Binary files a/creusot/tests/should_succeed/syntax/14_const_fns/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/syntax/derive_macros/mixed/proof.json b/creusot/tests/should_succeed/syntax/derive_macros/mixed/proof.json new file mode 100644 index 0000000000..b17346dfbb --- /dev/null +++ b/creusot/tests/should_succeed/syntax/derive_macros/mixed/proof.json @@ -0,0 +1,58 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_mixed__qyi1479716791028959114__eq": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_eq'1": { "prover": "cvc5@1.0.5", "time": 0.004 }, + "vc_eq'2": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_v_A'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_v_B'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_mixed__qyi1479716791028959114__eq__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_mixed__qyi17966204983409797136__resolve_coherence": { + "vc_resolve_coherence'0": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_mixed__qyi17966204983409797136__resolve_coherence__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.002 } + }, + "M_mixed__qyi2064882709679455996__eq": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_eq'1": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_eq'2": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_mixed__qyi2064882709679455996__eq__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_mixed__qyi6273949305112291917__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_clone'1": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_clone'2": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_v_A'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_v_B'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_mixed__qyi6273949305112291917__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.008 } + }, + "M_mixed__qyi9512435279263248376__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_clone'1": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_clone'2": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_mixed__qyi9512435279263248376__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_mixed__qyi9942470069884222103__resolve_coherence": { + "vc_resolve_coherence'0": { "prover": "cvc5@1.0.5", "time": 0.017 } + }, + "M_mixed__qyi9942470069884222103__resolve_coherence__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.006 } + } + } +} diff --git a/creusot/tests/should_succeed/syntax/derive_macros/mixed/why3session.xml b/creusot/tests/should_succeed/syntax/derive_macros/mixed/why3session.xml deleted file mode 100644 index 44025745ee..0000000000 --- a/creusot/tests/should_succeed/syntax/derive_macros/mixed/why3session.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/syntax/derive_macros/mixed/why3shapes.gz b/creusot/tests/should_succeed/syntax/derive_macros/mixed/why3shapes.gz deleted file mode 100644 index 8e195d02b2..0000000000 Binary files a/creusot/tests/should_succeed/syntax/derive_macros/mixed/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/take_first_mut/proof.json b/creusot/tests/should_succeed/take_first_mut/proof.json new file mode 100644 index 0000000000..6cc378ca9a --- /dev/null +++ b/creusot/tests/should_succeed/take_first_mut/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_take_first_mut__take_first_mut": { + "vc_split_first_mut'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_take'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_take_first_mut'0": { "prover": "cvc5@1.0.5", "time": 0.057 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/take_first_mut/why3session.xml b/creusot/tests/should_succeed/take_first_mut/why3session.xml deleted file mode 100644 index 4720c081bb..0000000000 --- a/creusot/tests/should_succeed/take_first_mut/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/take_first_mut/why3shapes.gz b/creusot/tests/should_succeed/take_first_mut/why3shapes.gz deleted file mode 100644 index 4689bc2c47..0000000000 Binary files a/creusot/tests/should_succeed/take_first_mut/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/termination/call_in_contract/proof.json b/creusot/tests/should_succeed/termination/call_in_contract/proof.json new file mode 100644 index 0000000000..ed172ee228 --- /dev/null +++ b/creusot/tests/should_succeed/termination/call_in_contract/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_call_in_contract__qyi17587776295821317810__g": { + "vc_g'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/termination/call_in_contract/why3session.xml b/creusot/tests/should_succeed/termination/call_in_contract/why3session.xml deleted file mode 100644 index 848fefd858..0000000000 --- a/creusot/tests/should_succeed/termination/call_in_contract/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/termination/call_in_contract/why3shapes.gz b/creusot/tests/should_succeed/termination/call_in_contract/why3shapes.gz deleted file mode 100644 index 6c06241413..0000000000 Binary files a/creusot/tests/should_succeed/termination/call_in_contract/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/trait/proof.json b/creusot/tests/should_succeed/trait/proof.json new file mode 100644 index 0000000000..47b668a04b --- /dev/null +++ b/creusot/tests/should_succeed/trait/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_trait__uses_custom": { + "vc_uses_custom'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_trait__uses_custom2": { + "vc_uses_custom2'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/trait/why3session.xml b/creusot/tests/should_succeed/trait/why3session.xml deleted file mode 100644 index 2618368863..0000000000 --- a/creusot/tests/should_succeed/trait/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/trait/why3shapes.gz b/creusot/tests/should_succeed/trait/why3shapes.gz deleted file mode 100644 index 8adf87b34b..0000000000 Binary files a/creusot/tests/should_succeed/trait/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/trait_impl/proof.json b/creusot/tests/should_succeed/trait_impl/proof.json new file mode 100644 index 0000000000..d20ba01270 --- /dev/null +++ b/creusot/tests/should_succeed/trait_impl/proof.json @@ -0,0 +1,22 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_trait_impl__qyi5019122778080045761__x": { + "vc_x'0": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_trait_impl__qyi5019122778080045761__x__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_trait_impl__qyi6389504558565875512__x": { + "vc_x'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_trait_impl__qyi6389504558565875512__x__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/trait_impl/why3session.xml b/creusot/tests/should_succeed/trait_impl/why3session.xml deleted file mode 100644 index 072611642f..0000000000 --- a/creusot/tests/should_succeed/trait_impl/why3session.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/trait_impl/why3shapes.gz b/creusot/tests/should_succeed/trait_impl/why3shapes.gz deleted file mode 100644 index 0e64d3bdc0..0000000000 Binary files a/creusot/tests/should_succeed/trait_impl/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/01/proof.json b/creusot/tests/should_succeed/traits/01/proof.json new file mode 100644 index 0000000000..96fce2b419 --- /dev/null +++ b/creusot/tests/should_succeed/traits/01/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_01__uses_generic": { + "vc_from_b'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_uses_generic'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/01/why3session.xml b/creusot/tests/should_succeed/traits/01/why3session.xml deleted file mode 100644 index 40579943c2..0000000000 --- a/creusot/tests/should_succeed/traits/01/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/01/why3shapes.gz b/creusot/tests/should_succeed/traits/01/why3shapes.gz deleted file mode 100644 index 84dd951b23..0000000000 Binary files a/creusot/tests/should_succeed/traits/01/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/02/proof.json b/creusot/tests/should_succeed/traits/02/proof.json new file mode 100644 index 0000000000..5d35568781 --- /dev/null +++ b/creusot/tests/should_succeed/traits/02/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02__omg": { + "vc_is_true'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_omg'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/02/why3session.xml b/creusot/tests/should_succeed/traits/02/why3session.xml deleted file mode 100644 index a92826d3b9..0000000000 --- a/creusot/tests/should_succeed/traits/02/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/02/why3shapes.gz b/creusot/tests/should_succeed/traits/02/why3shapes.gz deleted file mode 100644 index 7f4b4b5b87..0000000000 Binary files a/creusot/tests/should_succeed/traits/02/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/03/proof.json b/creusot/tests/should_succeed/traits/03/proof.json new file mode 100644 index 0000000000..bce2fb2fa8 --- /dev/null +++ b/creusot/tests/should_succeed/traits/03/proof.json @@ -0,0 +1,28 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_03__qyi14704115191559214502__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_03__qyi14704115191559214502__f__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_03__qyi2795904175370379619__g": { + "vc_g'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_03__qyi2795904175370379619__g__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_03__qyi4233438312138697795__h": { + "vc_h'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + }, + "M_03__qyi4233438312138697795__h__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/03/why3session.xml b/creusot/tests/should_succeed/traits/03/why3session.xml deleted file mode 100644 index d01fd66f2a..0000000000 --- a/creusot/tests/should_succeed/traits/03/why3session.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/03/why3shapes.gz b/creusot/tests/should_succeed/traits/03/why3shapes.gz deleted file mode 100644 index 2f3113c72a..0000000000 Binary files a/creusot/tests/should_succeed/traits/03/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/06/proof.json b/creusot/tests/should_succeed/traits/06/proof.json new file mode 100644 index 0000000000..a7a4f5af30 --- /dev/null +++ b/creusot/tests/should_succeed/traits/06/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_06__test": { + "vc_ix'0": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/06/why3session.xml b/creusot/tests/should_succeed/traits/06/why3session.xml deleted file mode 100644 index 4ddab335f8..0000000000 --- a/creusot/tests/should_succeed/traits/06/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/06/why3shapes.gz b/creusot/tests/should_succeed/traits/06/why3shapes.gz deleted file mode 100644 index 72a5737848..0000000000 Binary files a/creusot/tests/should_succeed/traits/06/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/07/proof.json b/creusot/tests/should_succeed/traits/07/proof.json new file mode 100644 index 0000000000..0b28b7a63d --- /dev/null +++ b/creusot/tests/should_succeed/traits/07/proof.json @@ -0,0 +1,21 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_07__qyi5864428518595652275__ix": { + "vc_ix'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_07__qyi5864428518595652275__ix__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_07__test": { "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.012 } }, + "M_07__test2": { + "vc_ix'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_test2'0": { "prover": "cvc5@1.0.5", "time": 0 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/07/why3session.xml b/creusot/tests/should_succeed/traits/07/why3session.xml deleted file mode 100644 index 17f29bc4cd..0000000000 --- a/creusot/tests/should_succeed/traits/07/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/07/why3shapes.gz b/creusot/tests/should_succeed/traits/07/why3shapes.gz deleted file mode 100644 index 58e00ece6b..0000000000 Binary files a/creusot/tests/should_succeed/traits/07/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/08/proof.json b/creusot/tests/should_succeed/traits/08/proof.json new file mode 100644 index 0000000000..6c99b5f8bd --- /dev/null +++ b/creusot/tests/should_succeed/traits/08/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_08__Tr__program": { + "vc_program'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_08__test": { "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.01 } } + } +} diff --git a/creusot/tests/should_succeed/traits/08/why3session.xml b/creusot/tests/should_succeed/traits/08/why3session.xml deleted file mode 100644 index 4c144e3fc3..0000000000 --- a/creusot/tests/should_succeed/traits/08/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/08/why3shapes.gz b/creusot/tests/should_succeed/traits/08/why3shapes.gz deleted file mode 100644 index 9d72cd7a33..0000000000 Binary files a/creusot/tests/should_succeed/traits/08/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/09/proof.json b/creusot/tests/should_succeed/traits/09/proof.json new file mode 100644 index 0000000000..fbe47dc317 --- /dev/null +++ b/creusot/tests/should_succeed/traits/09/proof.json @@ -0,0 +1,14 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_09__test": { "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.011 } }, + "M_09__test2": { + "vc_test2'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/09/why3session.xml b/creusot/tests/should_succeed/traits/09/why3session.xml deleted file mode 100644 index 787616aa56..0000000000 --- a/creusot/tests/should_succeed/traits/09/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/09/why3shapes.gz b/creusot/tests/should_succeed/traits/09/why3shapes.gz deleted file mode 100644 index 28d95cfeb5..0000000000 Binary files a/creusot/tests/should_succeed/traits/09/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/10/proof.json b/creusot/tests/should_succeed/traits/10/proof.json new file mode 100644 index 0000000000..e067026935 --- /dev/null +++ b/creusot/tests/should_succeed/traits/10/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_10__qyi13957190796817192770__resolve_coherence": { + "vc_resolve_coherence'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_10__qyi13957190796817192770__resolve_coherence__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/10/why3session.xml b/creusot/tests/should_succeed/traits/10/why3session.xml deleted file mode 100644 index 8a621f8a12..0000000000 --- a/creusot/tests/should_succeed/traits/10/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/10/why3shapes.gz b/creusot/tests/should_succeed/traits/10/why3shapes.gz deleted file mode 100644 index 9ced1c8c0d..0000000000 Binary files a/creusot/tests/should_succeed/traits/10/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/11/proof.json b/creusot/tests/should_succeed/traits/11/proof.json new file mode 100644 index 0000000000..77f81c31f4 --- /dev/null +++ b/creusot/tests/should_succeed/traits/11/proof.json @@ -0,0 +1,11 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_11__test": { "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.01 } } + } +} diff --git a/creusot/tests/should_succeed/traits/11/why3session.xml b/creusot/tests/should_succeed/traits/11/why3session.xml deleted file mode 100644 index 94e2b1220a..0000000000 --- a/creusot/tests/should_succeed/traits/11/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/11/why3shapes.gz b/creusot/tests/should_succeed/traits/11/why3shapes.gz deleted file mode 100644 index 9d72cd7a33..0000000000 Binary files a/creusot/tests/should_succeed/traits/11/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/12_default_method/proof.json b/creusot/tests/should_succeed/traits/12_default_method/proof.json new file mode 100644 index 0000000000..d3f3727f8f --- /dev/null +++ b/creusot/tests/should_succeed/traits/12_default_method/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_12_default_method__T__default": { + "vc_default'0": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_12_default_method__should_use_impl": { + "vc_default'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_should_use_impl'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/12_default_method/why3session.xml b/creusot/tests/should_succeed/traits/12_default_method/why3session.xml deleted file mode 100644 index 7b541d87cb..0000000000 --- a/creusot/tests/should_succeed/traits/12_default_method/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/12_default_method/why3shapes.gz b/creusot/tests/should_succeed/traits/12_default_method/why3shapes.gz deleted file mode 100644 index 5fc78aee93..0000000000 Binary files a/creusot/tests/should_succeed/traits/12_default_method/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/13_assoc_types/proof.json b/creusot/tests/should_succeed/traits/13_assoc_types/proof.json new file mode 100644 index 0000000000..8ed2009c16 --- /dev/null +++ b/creusot/tests/should_succeed/traits/13_assoc_types/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_13_assoc_types__qyi11241673612681154680__model": { + "vc_model'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_13_assoc_types__qyi11241673612681154680__model__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/13_assoc_types/why3session.xml b/creusot/tests/should_succeed/traits/13_assoc_types/why3session.xml deleted file mode 100644 index 96297b4280..0000000000 --- a/creusot/tests/should_succeed/traits/13_assoc_types/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/13_assoc_types/why3shapes.gz b/creusot/tests/should_succeed/traits/13_assoc_types/why3shapes.gz deleted file mode 100644 index b1d3882f52..0000000000 Binary files a/creusot/tests/should_succeed/traits/13_assoc_types/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/15_impl_interfaces/proof.json b/creusot/tests/should_succeed/traits/15_impl_interfaces/proof.json new file mode 100644 index 0000000000..83e74ca8c8 --- /dev/null +++ b/creusot/tests/should_succeed/traits/15_impl_interfaces/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_15_impl_interfaces__calls": { + "vc_calls'0": { "prover": "cvc5@1.0.5", "time": 0.008 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/15_impl_interfaces/why3session.xml b/creusot/tests/should_succeed/traits/15_impl_interfaces/why3session.xml deleted file mode 100644 index c99bb4751f..0000000000 --- a/creusot/tests/should_succeed/traits/15_impl_interfaces/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/traits/15_impl_interfaces/why3shapes.gz b/creusot/tests/should_succeed/traits/15_impl_interfaces/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/traits/15_impl_interfaces/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/16_impl_cloning/proof.json b/creusot/tests/should_succeed/traits/16_impl_cloning/proof.json new file mode 100644 index 0000000000..1ee0bc0c90 --- /dev/null +++ b/creusot/tests/should_succeed/traits/16_impl_cloning/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_16_impl_cloning__test": { + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.032 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/16_impl_cloning/why3session.xml b/creusot/tests/should_succeed/traits/16_impl_cloning/why3session.xml deleted file mode 100644 index 39546fc7f0..0000000000 --- a/creusot/tests/should_succeed/traits/16_impl_cloning/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/16_impl_cloning/why3shapes.gz b/creusot/tests/should_succeed/traits/16_impl_cloning/why3shapes.gz deleted file mode 100644 index 6af1afd403..0000000000 Binary files a/creusot/tests/should_succeed/traits/16_impl_cloning/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/traits/18_trait_laws/proof.json b/creusot/tests/should_succeed/traits/18_trait_laws/proof.json new file mode 100644 index 0000000000..ecac1e6f5b --- /dev/null +++ b/creusot/tests/should_succeed/traits/18_trait_laws/proof.json @@ -0,0 +1,22 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_18_trait_laws__impl_laws": { + "vc_impl_laws'0": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_18_trait_laws__qyi7507292126067306954__reflexive": { + "vc_reflexive'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_18_trait_laws__qyi7507292126067306954__reflexive__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_18_trait_laws__uses_op": { + "vc_uses_op'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + } + } +} diff --git a/creusot/tests/should_succeed/traits/18_trait_laws/why3session.xml b/creusot/tests/should_succeed/traits/18_trait_laws/why3session.xml deleted file mode 100644 index 4e443da7bc..0000000000 --- a/creusot/tests/should_succeed/traits/18_trait_laws/why3session.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/traits/18_trait_laws/why3shapes.gz b/creusot/tests/should_succeed/traits/18_trait_laws/why3shapes.gz deleted file mode 100644 index 12c52a3f72..0000000000 Binary files a/creusot/tests/should_succeed/traits/18_trait_laws/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/trigger/proof.json b/creusot/tests/should_succeed/trigger/proof.json new file mode 100644 index 0000000000..ff36221161 --- /dev/null +++ b/creusot/tests/should_succeed/trigger/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_trigger__inner__id_mono": { + "vc_id_mono'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + }, + "M_trigger__test": { + "vc_test'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/trigger/why3session.xml b/creusot/tests/should_succeed/trigger/why3session.xml deleted file mode 100644 index 066e3af9ad..0000000000 --- a/creusot/tests/should_succeed/trigger/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/trigger/why3shapes.gz b/creusot/tests/should_succeed/trigger/why3shapes.gz deleted file mode 100644 index 7adbc97777..0000000000 Binary files a/creusot/tests/should_succeed/trigger/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/trigger2/proof.json b/creusot/tests/should_succeed/trigger2/proof.json new file mode 100644 index 0000000000..2c0529e47f --- /dev/null +++ b/creusot/tests/should_succeed/trigger2/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_trigger2__resolve_seq": { + "vc_resolve_seq'0": { "prover": "cvc5@1.0.5", "time": 0.019 } + }, + "M_trigger2__resolve_seq2": { + "vc_resolve_seq2'0": { "prover": "cvc5@1.0.5", "time": 0 } + } + } +} diff --git a/creusot/tests/should_succeed/trigger2/why3session.xml b/creusot/tests/should_succeed/trigger2/why3session.xml deleted file mode 100644 index 077433a9b0..0000000000 --- a/creusot/tests/should_succeed/trigger2/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/trigger2/why3shapes.gz b/creusot/tests/should_succeed/trigger2/why3shapes.gz deleted file mode 100644 index 0b9c16aedf..0000000000 Binary files a/creusot/tests/should_succeed/trigger2/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/two_modules/proof.json b/creusot/tests/should_succeed/two_modules/proof.json new file mode 100644 index 0000000000..ae0ff682ea --- /dev/null +++ b/creusot/tests/should_succeed/two_modules/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_two_modules__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_x'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + }, + "M_two_modules__mod2__x": { + "vc_x'0": { "prover": "cvc5@1.0.5", "time": 0.009 } + } + } +} diff --git a/creusot/tests/should_succeed/two_modules/why3session.xml b/creusot/tests/should_succeed/two_modules/why3session.xml deleted file mode 100644 index 69393a7132..0000000000 --- a/creusot/tests/should_succeed/two_modules/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/two_modules/why3shapes.gz b/creusot/tests/should_succeed/two_modules/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/two_modules/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/type_constructors/proof.json b/creusot/tests/should_succeed/type_constructors/proof.json new file mode 100644 index 0000000000..d2a2f7594b --- /dev/null +++ b/creusot/tests/should_succeed/type_constructors/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_type_constructors__f": { + "vc_f'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/type_constructors/why3session.xml b/creusot/tests/should_succeed/type_constructors/why3session.xml deleted file mode 100644 index 3cdafd8882..0000000000 --- a/creusot/tests/should_succeed/type_constructors/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/type_constructors/why3shapes.gz b/creusot/tests/should_succeed/type_constructors/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/type_constructors/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/type_invariants/generated/proof.json b/creusot/tests/should_succeed/type_invariants/generated/proof.json new file mode 100644 index 0000000000..fd2605dd29 --- /dev/null +++ b/creusot/tests/should_succeed/type_invariants/generated/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_generated__use_foo": { + "vc_use_foo'0": { "prover": "cvc5@1.0.5", "time": 0.007 } + } + } +} diff --git a/creusot/tests/should_succeed/type_invariants/generated/why3session.xml b/creusot/tests/should_succeed/type_invariants/generated/why3session.xml deleted file mode 100644 index f609f0be4d..0000000000 --- a/creusot/tests/should_succeed/type_invariants/generated/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/type_invariants/generated/why3shapes.gz b/creusot/tests/should_succeed/type_invariants/generated/why3shapes.gz deleted file mode 100644 index 23390a7878..0000000000 Binary files a/creusot/tests/should_succeed/type_invariants/generated/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/type_invariants/non_zero/proof.json b/creusot/tests/should_succeed/type_invariants/non_zero/proof.json new file mode 100644 index 0000000000..d755d4b4a0 --- /dev/null +++ b/creusot/tests/should_succeed/type_invariants/non_zero/proof.json @@ -0,0 +1,22 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_non_zero__qyi12916758414494363779__add": { + "vc_add'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_non_zero__qyi12916758414494363779__new": { + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.013 } + }, + "M_non_zero__qyi12916758414494363779__sub": { + "vc_sub'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + }, + "M_non_zero__qyi12916758414494363779__sub_pre_trans": { + "vc_sub_pre_trans'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/type_invariants/non_zero/why3session.xml b/creusot/tests/should_succeed/type_invariants/non_zero/why3session.xml deleted file mode 100644 index bc79e87f42..0000000000 --- a/creusot/tests/should_succeed/type_invariants/non_zero/why3session.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/type_invariants/non_zero/why3shapes.gz b/creusot/tests/should_succeed/type_invariants/non_zero/why3shapes.gz deleted file mode 100644 index 961f5e9a48..0000000000 Binary files a/creusot/tests/should_succeed/type_invariants/non_zero/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/type_invariants/quant/proof.json b/creusot/tests/should_succeed/type_invariants/quant/proof.json new file mode 100644 index 0000000000..04c084dfbd --- /dev/null +++ b/creusot/tests/should_succeed/type_invariants/quant/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_quant__exists": { + "vc_exists'0": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_quant__forall": { + "vc_forall'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + } + } +} diff --git a/creusot/tests/should_succeed/type_invariants/quant/why3session.xml b/creusot/tests/should_succeed/type_invariants/quant/why3session.xml deleted file mode 100644 index 5eadf357c2..0000000000 --- a/creusot/tests/should_succeed/type_invariants/quant/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/type_invariants/quant/why3shapes.gz b/creusot/tests/should_succeed/type_invariants/quant/why3shapes.gz deleted file mode 100644 index c9e2c11909..0000000000 Binary files a/creusot/tests/should_succeed/type_invariants/quant/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/type_invariants/type_invariants/proof.json b/creusot/tests/should_succeed/type_invariants/type_invariants/proof.json new file mode 100644 index 0000000000..b5a65586ec --- /dev/null +++ b/creusot/tests/should_succeed/type_invariants/type_invariants/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_type_invariants__id": { + "vc_id'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/type_invariants/type_invariants/why3session.xml b/creusot/tests/should_succeed/type_invariants/type_invariants/why3session.xml deleted file mode 100644 index 33be541c8e..0000000000 --- a/creusot/tests/should_succeed/type_invariants/type_invariants/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/type_invariants/type_invariants/why3shapes.gz b/creusot/tests/should_succeed/type_invariants/type_invariants/why3shapes.gz deleted file mode 100644 index ac8c2ee1b1..0000000000 Binary files a/creusot/tests/should_succeed/type_invariants/type_invariants/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/type_invariants/vec_inv/proof.json b/creusot/tests/should_succeed/type_invariants/vec_inv/proof.json new file mode 100644 index 0000000000..85434bb8a4 --- /dev/null +++ b/creusot/tests/should_succeed/type_invariants/vec_inv/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_vec_inv__vec": { + "vc_vec'0": { "prover": "cvc5@1.0.5", "time": 0.032 } + } + } +} diff --git a/creusot/tests/should_succeed/type_invariants/vec_inv/why3session.xml b/creusot/tests/should_succeed/type_invariants/vec_inv/why3session.xml deleted file mode 100644 index 4b2c63ab5d..0000000000 --- a/creusot/tests/should_succeed/type_invariants/vec_inv/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/type_invariants/vec_inv/why3shapes.gz b/creusot/tests/should_succeed/type_invariants/vec_inv/why3shapes.gz deleted file mode 100644 index 302dc23f71..0000000000 Binary files a/creusot/tests/should_succeed/type_invariants/vec_inv/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/unnest/proof.json b/creusot/tests/should_succeed/unnest/proof.json new file mode 100644 index 0000000000..313c32ccf9 --- /dev/null +++ b/creusot/tests/should_succeed/unnest/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_unnest__unnest": { + "vc_unnest'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/unnest/why3session.xml b/creusot/tests/should_succeed/unnest/why3session.xml deleted file mode 100644 index 10c5afb93f..0000000000 --- a/creusot/tests/should_succeed/unnest/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/unnest/why3shapes.gz b/creusot/tests/should_succeed/unnest/why3shapes.gz deleted file mode 100644 index e38009eee7..0000000000 Binary files a/creusot/tests/should_succeed/unnest/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/unused_in_loop/proof.json b/creusot/tests/should_succeed/unused_in_loop/proof.json new file mode 100644 index 0000000000..5f328d40c5 --- /dev/null +++ b/creusot/tests/should_succeed/unused_in_loop/proof.json @@ -0,0 +1,13 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_unused_in_loop__unused_in_loop": { + "vc_unused_in_loop'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + } + } +} diff --git a/creusot/tests/should_succeed/unused_in_loop/why3session.xml b/creusot/tests/should_succeed/unused_in_loop/why3session.xml deleted file mode 100644 index 7e42d3ca0a..0000000000 --- a/creusot/tests/should_succeed/unused_in_loop/why3session.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - diff --git a/creusot/tests/should_succeed/unused_in_loop/why3shapes.gz b/creusot/tests/should_succeed/unused_in_loop/why3shapes.gz deleted file mode 100644 index 8039d107e6..0000000000 Binary files a/creusot/tests/should_succeed/unused_in_loop/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vecdeque/proof.json b/creusot/tests/should_succeed/vecdeque/proof.json new file mode 100644 index 0000000000..a422acf857 --- /dev/null +++ b/creusot/tests/should_succeed/vecdeque/proof.json @@ -0,0 +1,27 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_vecdeque__test_deque": { + "vc_clear'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_is_empty'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_pop_back'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_pop_front'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_promoted0__test_deque'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_promoted1__test_deque'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_promoted2__test_deque'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_promoted3__test_deque'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_push_back'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_push_front'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_test_deque'0": { "prover": "cvc5@1.0.5", "time": 0.251 }, + "vc_with_capacity'0": { "prover": "cvc5@1.0.5", "time": 0.01 } + } + } +} diff --git a/creusot/tests/should_succeed/vecdeque/why3session.xml b/creusot/tests/should_succeed/vecdeque/why3session.xml deleted file mode 100644 index b0599dc328..0000000000 --- a/creusot/tests/should_succeed/vecdeque/why3session.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vecdeque/why3shapes.gz b/creusot/tests/should_succeed/vecdeque/why3shapes.gz deleted file mode 100644 index f94fd6286b..0000000000 Binary files a/creusot/tests/should_succeed/vecdeque/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/01/proof.json b/creusot/tests/should_succeed/vector/01/proof.json new file mode 100644 index 0000000000..364b255c22 --- /dev/null +++ b/creusot/tests/should_succeed/vector/01/proof.json @@ -0,0 +1,18 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_01__all_zero": { + "vc_all_zero'0": { "prover": "cvc5@1.0.5", "time": 0.21 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/01/why3session.xml b/creusot/tests/should_succeed/vector/01/why3session.xml deleted file mode 100644 index 92ffd93a2c..0000000000 --- a/creusot/tests/should_succeed/vector/01/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/01/why3shapes.gz b/creusot/tests/should_succeed/vector/01/why3shapes.gz deleted file mode 100644 index 76a52227fe..0000000000 Binary files a/creusot/tests/should_succeed/vector/01/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/02_gnome/proof.json b/creusot/tests/should_succeed/vector/02_gnome/proof.json new file mode 100644 index 0000000000..da3eef7f2a --- /dev/null +++ b/creusot/tests/should_succeed/vector/02_gnome/proof.json @@ -0,0 +1,54 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_02_gnome__gnome_sort": { + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_gnome_sort'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.089 }, + { "prover": "cvc5@1.0.5", "time": 0.106 }, + { "prover": "z3@4.12.4", "time": 0.033 }, + { "prover": "z3@4.12.4", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.188 }, + { "prover": "cvc5@1.0.5", "time": 0.076 }, + { "prover": "cvc5@1.0.5", "time": 0.116 }, + { "prover": "z3@4.12.4", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.072 }, + { "prover": "cvc5@1.0.5", "time": 0.054 }, + { "prover": "z3@4.12.4", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.068 }, + { "prover": "z3@4.12.4", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.132 }, + { "prover": "cvc5@1.0.5", "time": 0.132 }, + { "prover": "cvc5@1.0.5", "time": 0.164 }, + { "prover": "cvc5@1.0.5", "time": 0.147 }, + { "prover": "cvc5@1.0.5", "time": 0.149 }, + { "prover": "cvc5@1.0.5", "time": 0.136 }, + { "prover": "cvc5@1.0.5", "time": 0.151 }, + { "prover": "cvc5@1.0.5", "time": 0.147 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "alt-ergo@2.6.0", "time": 0.095 }, + { "prover": "cvc5@1.0.5", "time": 0.216 }, + { "prover": "cvc5@1.0.5", "time": 0.109 }, + { "prover": "cvc5@1.0.5", "time": 0.064 }, + { "prover": "cvc4@1.8", "time": 0.129 }, + { "prover": "cvc5@1.0.5", "time": 0.035 } + ] + }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_le'0": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.026 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/02_gnome/why3session.xml b/creusot/tests/should_succeed/vector/02_gnome/why3session.xml deleted file mode 100644 index d1f6be13ee..0000000000 --- a/creusot/tests/should_succeed/vector/02_gnome/why3session.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/02_gnome/why3shapes.gz b/creusot/tests/should_succeed/vector/02_gnome/why3shapes.gz deleted file mode 100644 index 759895f7d7..0000000000 Binary files a/creusot/tests/should_succeed/vector/02_gnome/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/03_knuth_shuffle/proof.json b/creusot/tests/should_succeed/vector/03_knuth_shuffle/proof.json new file mode 100644 index 0000000000..5d52ec152e --- /dev/null +++ b/creusot/tests/should_succeed/vector/03_knuth_shuffle/proof.json @@ -0,0 +1,52 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_03_knuth_shuffle__knuth_shuffle": { + "vc_deref_mut'0": { "prover": "cvc5@1.0.5", "time": 0.029 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_knuth_shuffle'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.063 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.052 }, + { "prover": "cvc5@1.0.5", "time": 0.048 }, + { "prover": "cvc5@1.0.5", "time": 0.064 }, + { "prover": "cvc5@1.0.5", "time": 0.08 }, + { "prover": "cvc5@1.0.5", "time": 0.104 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "z3@4.12.4", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "z3@4.12.4", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.14 }, + { "prover": "cvc5@1.0.5", "time": 0.113 }, + { "prover": "z3@4.12.4", "time": 0.054 }, + { "prover": "cvc5@1.0.5", "time": 0.134 }, + { "prover": "cvc5@1.0.5", "time": 0.12 }, + { "prover": "cvc5@1.0.5", "time": 0.123 }, + { "prover": "cvc5@1.0.5", "time": 0.125 }, + { "prover": "cvc5@1.0.5", "time": 0.12 }, + { "prover": "cvc5@1.0.5", "time": 0.106 }, + { "prover": "cvc5@1.0.5", "time": 0.115 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.064 }, + { "prover": "cvc5@1.0.5", "time": 0.063 }, + { "prover": "cvc5@1.0.5", "time": 0.164 }, + { "prover": "cvc5@1.0.5", "time": 0.038 } + ] + }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.006 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_rand_in_range'0": { "prover": "cvc5@1.0.5", "time": 0.026 }, + "vc_swap'0": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.021 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/03_knuth_shuffle/why3session.xml b/creusot/tests/should_succeed/vector/03_knuth_shuffle/why3session.xml deleted file mode 100644 index 918991cb98..0000000000 --- a/creusot/tests/should_succeed/vector/03_knuth_shuffle/why3session.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/03_knuth_shuffle/why3shapes.gz b/creusot/tests/should_succeed/vector/03_knuth_shuffle/why3shapes.gz deleted file mode 100644 index 424887960b..0000000000 Binary files a/creusot/tests/should_succeed/vector/03_knuth_shuffle/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/04_binary_search/proof.json b/creusot/tests/should_succeed/vector/04_binary_search/proof.json new file mode 100644 index 0000000000..82cfd85529 --- /dev/null +++ b/creusot/tests/should_succeed/vector/04_binary_search/proof.json @@ -0,0 +1,15 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_04_binary_search__binary_search": { + "vc_binary_search'0": { "prover": "z3@4.12.4", "time": 0.03 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.002 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/04_binary_search/why3session.xml b/creusot/tests/should_succeed/vector/04_binary_search/why3session.xml deleted file mode 100644 index 0eccad0852..0000000000 --- a/creusot/tests/should_succeed/vector/04_binary_search/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/04_binary_search/why3shapes.gz b/creusot/tests/should_succeed/vector/04_binary_search/why3shapes.gz deleted file mode 100644 index 03abd5bcba..0000000000 Binary files a/creusot/tests/should_succeed/vector/04_binary_search/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/05_binary_search_generic/proof.json b/creusot/tests/should_succeed/vector/05_binary_search_generic/proof.json new file mode 100644 index 0000000000..948e53c607 --- /dev/null +++ b/creusot/tests/should_succeed/vector/05_binary_search_generic/proof.json @@ -0,0 +1,17 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_05_binary_search_generic__binary_search": { + "vc_binary_search'0": { "prover": "z3@4.12.4", "time": 0.181 }, + "vc_cmp'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_gt'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/05_binary_search_generic/why3session.xml b/creusot/tests/should_succeed/vector/05_binary_search_generic/why3session.xml deleted file mode 100644 index 1a7519c24c..0000000000 --- a/creusot/tests/should_succeed/vector/05_binary_search_generic/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/05_binary_search_generic/why3shapes.gz b/creusot/tests/should_succeed/vector/05_binary_search_generic/why3shapes.gz deleted file mode 100644 index bb9850e475..0000000000 Binary files a/creusot/tests/should_succeed/vector/05_binary_search_generic/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/06_knights_tour/proof.json b/creusot/tests/should_succeed/vector/06_knights_tour/proof.json new file mode 100644 index 0000000000..6fc3979abf --- /dev/null +++ b/creusot/tests/should_succeed/vector/06_knights_tour/proof.json @@ -0,0 +1,179 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_06_knights_tour__dumb_nonlinear_arith": { + "vc_dumb_nonlinear_arith'0": { "prover": "cvc5@1.0.5", "time": 0.053 } + }, + "M_06_knights_tour__knights_tour": { + "vc_available'0": { "prover": "cvc5@1.0.5", "time": 0.025 }, + "vc_count_degree'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.002 }, + "vc_into_iter'1": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_knights_tour'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.091 }, + { "prover": "cvc5@1.0.5", "time": 0.028 }, + { "prover": "cvc5@1.0.5", "time": 0.094 }, + { "prover": "cvc5@1.0.5", "time": 0.076 }, + { "prover": "cvc5@1.0.5", "time": 0.04 }, + { "prover": "cvc5@1.0.5", "time": 0.007 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.038 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.036 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.039 }, + { "prover": "cvc5@1.0.5", "time": 0.057 }, + { "prover": "cvc5@1.0.5", "time": 0.044 }, + { "prover": "cvc5@1.0.5", "time": 0.063 }, + { "prover": "cvc5@1.0.5", "time": 0.052 }, + { "prover": "cvc5@1.0.5", "time": 0.071 }, + { "prover": "cvc5@1.0.5", "time": 0.236 }, + { "prover": "cvc5@1.0.5", "time": 0.166 }, + { "prover": "cvc5@1.0.5", "time": 0.194 }, + { "prover": "cvc4@1.8", "time": 0.139 }, + { "prover": "cvc4@1.8", "time": 0.185 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.067 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.129 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.051 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.056 }, + { "prover": "cvc5@1.0.5", "time": 0.049 }, + { "prover": "cvc5@1.0.5", "time": 0.086 }, + { "prover": "alt-ergo@2.6.0", "time": 0.301 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.042 }, + { "prover": "cvc5@1.0.5", "time": 0.145 }, + { "prover": "cvc5@1.0.5", "time": 0.06 }, + { "prover": "cvc5@1.0.5", "time": 0.055 }, + { "prover": "cvc5@1.0.5", "time": 0.064 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.224 }, + { "prover": "cvc5@1.0.5", "time": 0.03 } + ] + }, + "vc_min'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_mov'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_moves'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_new'1": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_push'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_set'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_v_Some'1": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_v_Some'2": { "prover": "cvc5@1.0.5", "time": 0.02 } + }, + "M_06_knights_tour__min": { + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_min'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.019 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "cvc5@1.0.5", "time": 0.02 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "alt-ergo@2.6.0", "time": 0.157 }, + { "prover": "cvc5@1.0.5", "time": 0.026 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.032 }, + { "prover": "cvc5@1.0.5", "time": 0.059 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.043 }, + { "prover": "cvc5@1.0.5", "time": 0.017 }, + { "prover": "alt-ergo@2.6.0", "time": 0.792 }, + { "prover": "cvc5@1.0.5", "time": 0.034 }, + { "prover": "cvc5@1.0.5", "time": 0.025 } + ] + }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.014 } + }, + "M_06_knights_tour__qyi18370800917002056__mov": { + "vc_mov'0": { "prover": "cvc5@1.0.5", "time": 0.015 } + }, + "M_06_knights_tour__qyi4580598960913230815__available": { + "vc_available'0": { "prover": "cvc5@1.0.5", "time": 0.035 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_index'1": { "prover": "cvc5@1.0.5", "time": 0.006 } + }, + "M_06_knights_tour__qyi4580598960913230815__count_degree": { + "vc_available'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_count_degree'0": { + "tactic": "split_vc", + "children": [ + { "prover": "cvc5@1.0.5", "time": 0.027 }, + { "prover": "cvc5@1.0.5", "time": 0.025 }, + { "prover": "cvc5@1.0.5", "time": 0.046 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.031 }, + { "prover": "cvc5@1.0.5", "time": 0.037 }, + { "prover": "cvc5@1.0.5", "time": 0.054 }, + { "prover": "cvc5@1.0.5", "time": 0.101 }, + { "prover": "cvc5@1.0.5", "time": 0.079 }, + { "prover": "alt-ergo@2.6.0", "time": 0.214 }, + { "prover": "alt-ergo@2.6.0", "time": 0.231 }, + { "prover": "cvc5@1.0.5", "time": 0.033 }, + { "prover": "cvc5@1.0.5", "time": 0.035 }, + { "prover": "cvc5@1.0.5", "time": 0.029 }, + { "prover": "cvc5@1.0.5", "time": 0.041 }, + { "prover": "cvc5@1.0.5", "time": 0.116 }, + { "prover": "cvc5@1.0.5", "time": 0.181 }, + { "prover": "cvc5@1.0.5", "time": 0.053 }, + { "prover": "cvc5@1.0.5", "time": 0.058 }, + { "prover": "cvc5@1.0.5", "time": 0.045 }, + { "prover": "cvc5@1.0.5", "time": 0.073 }, + { "prover": "cvc5@1.0.5", "time": 0.03 } + ] + }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.007 }, + "vc_mov'0": { "prover": "cvc5@1.0.5", "time": 0.016 }, + "vc_moves'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.016 } + }, + "M_06_knights_tour__qyi4580598960913230815__new": { + "vc_closure3'0": { "prover": "cvc5@1.0.5", "time": 0.021 }, + "vc_collect'0": { "prover": "cvc5@1.0.5", "time": 0.024 }, + "vc_from_elem'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_map_inv'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_new'0": { "prover": "z3@4.12.4", "time": 0.252 } + }, + "M_06_knights_tour__qyi4580598960913230815__set": { + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.013 }, + "vc_index_mut'1": { "prover": "cvc5@1.0.5", "time": 0.001 }, + "vc_set'0": { "prover": "cvc5@1.0.5", "time": 0.139 } + }, + "M_06_knights_tour__qyi50474406909270761__clone": { + "vc_clone'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_clone'1": { "prover": "cvc5@1.0.5", "time": 0 } + }, + "M_06_knights_tour__qyi50474406909270761__clone__refines": { + "refines": { "prover": "cvc5@1.0.5", "time": 0.013 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/06_knights_tour/why3session.xml b/creusot/tests/should_succeed/vector/06_knights_tour/why3session.xml deleted file mode 100644 index feaddcf985..0000000000 --- a/creusot/tests/should_succeed/vector/06_knights_tour/why3session.xml +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/06_knights_tour/why3shapes.gz b/creusot/tests/should_succeed/vector/06_knights_tour/why3shapes.gz deleted file mode 100644 index c847c21a39..0000000000 Binary files a/creusot/tests/should_succeed/vector/06_knights_tour/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/07_read_write/proof.json b/creusot/tests/should_succeed/vector/07_read_write/proof.json new file mode 100644 index 0000000000..8a7554593d --- /dev/null +++ b/creusot/tests/should_succeed/vector/07_read_write/proof.json @@ -0,0 +1,16 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_07_read_write__read_write": { + "vc_eq'0": { "prover": "cvc5@1.0.5", "time": 0.017 }, + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_index_mut'0": { "prover": "cvc5@1.0.5", "time": 0.018 }, + "vc_read_write'0": { "prover": "cvc5@1.0.5", "time": 0.02 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/07_read_write/why3session.xml b/creusot/tests/should_succeed/vector/07_read_write/why3session.xml deleted file mode 100644 index 7bc9002770..0000000000 --- a/creusot/tests/should_succeed/vector/07_read_write/why3session.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/07_read_write/why3shapes.gz b/creusot/tests/should_succeed/vector/07_read_write/why3shapes.gz deleted file mode 100644 index 87c78ac864..0000000000 Binary files a/creusot/tests/should_succeed/vector/07_read_write/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/08_haystack/proof.json b/creusot/tests/should_succeed/vector/08_haystack/proof.json new file mode 100644 index 0000000000..225f77dee5 --- /dev/null +++ b/creusot/tests/should_succeed/vector/08_haystack/proof.json @@ -0,0 +1,21 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_08_haystack__search": { + "vc_index'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_into_iter'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_into_iter'1": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_len'0": { "prover": "cvc5@1.0.5", "time": 0.011 }, + "vc_new'0": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_next'0": { "prover": "cvc5@1.0.5", "time": 0.012 }, + "vc_next'1": { "prover": "cvc5@1.0.5", "time": 0.014 }, + "vc_search'0": { "prover": "z3@4.12.4", "time": 0.587 }, + "vc_v_Some'0": { "prover": "cvc5@1.0.5", "time": 0.012 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/08_haystack/why3session.xml b/creusot/tests/should_succeed/vector/08_haystack/why3session.xml deleted file mode 100644 index 770e9410a4..0000000000 --- a/creusot/tests/should_succeed/vector/08_haystack/why3session.xml +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/08_haystack/why3shapes.gz b/creusot/tests/should_succeed/vector/08_haystack/why3shapes.gz deleted file mode 100644 index 885ca61f7d..0000000000 Binary files a/creusot/tests/should_succeed/vector/08_haystack/why3shapes.gz and /dev/null differ diff --git a/creusot/tests/should_succeed/vector/09_capacity/proof.json b/creusot/tests/should_succeed/vector/09_capacity/proof.json new file mode 100644 index 0000000000..ad3ef730fc --- /dev/null +++ b/creusot/tests/should_succeed/vector/09_capacity/proof.json @@ -0,0 +1,21 @@ +{ + "profile": [ + { "prover": "z3@4.12.4", "size": 33, "time": 0.461 }, + { "prover": "cvc5@1.0.5", "size": 46, "time": 0.578 }, + { "prover": "alt-ergo@2.6.0", "size": 17, "time": 0.512 }, + { "prover": "cvc4@1.8", "size": 45, "time": 0.39 } + ], + "proofs": { + "M_09_capacity__change_capacity": { + "vc_change_capacity'0": { "prover": "cvc5@1.0.5", "time": 0.047 }, + "vc_reserve'0": { "prover": "cvc5@1.0.5", "time": 0.019 }, + "vc_reserve_exact'0": { "prover": "cvc5@1.0.5", "time": 0.015 }, + "vc_shrink_to'0": { "prover": "cvc5@1.0.5", "time": 0.009 }, + "vc_shrink_to_fit'0": { "prover": "cvc5@1.0.5", "time": 0.011 } + }, + "M_09_capacity__clear_vec": { + "vc_clear'0": { "prover": "cvc5@1.0.5", "time": 0.01 }, + "vc_clear_vec'0": { "prover": "cvc5@1.0.5", "time": 0.034 } + } + } +} diff --git a/creusot/tests/should_succeed/vector/09_capacity/why3session.xml b/creusot/tests/should_succeed/vector/09_capacity/why3session.xml deleted file mode 100644 index 204874b38d..0000000000 --- a/creusot/tests/should_succeed/vector/09_capacity/why3session.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/creusot/tests/should_succeed/vector/09_capacity/why3shapes.gz b/creusot/tests/should_succeed/vector/09_capacity/why3shapes.gz deleted file mode 100644 index 750dd6e921..0000000000 Binary files a/creusot/tests/should_succeed/vector/09_capacity/why3shapes.gz and /dev/null differ diff --git a/why3find.json b/why3find.json new file mode 100644 index 0000000000..d146cafffd --- /dev/null +++ b/why3find.json @@ -0,0 +1,10 @@ +{ + "fast": 0.2, + "time": 1, + "depth": 4, + "packages": [], + "provers": [ "cvc5", "cvc4", "z3", "alt-ergo" ], + "tactics": [ "split_vc" ], + "drivers": [], + "warnoff": [ "unused_variable", "axiom_abstract" ] +} diff --git a/why3tests/Cargo.toml b/why3tests/Cargo.toml index 88181e9243..0c5e8cfb36 100644 --- a/why3tests/Cargo.toml +++ b/why3tests/Cargo.toml @@ -13,6 +13,7 @@ git2 = "0.14.4" clap = { version = "4.2", features = ["env", "derive"]} roxmltree = "0.18.0" creusot-dev-config = { path = "../creusot-dev-config" } +regex = "*" [[test]] test = false diff --git a/why3tests/tests/why3.rs b/why3tests/tests/why3.rs index c61e5ebafe..ac15ed4e8a 100644 --- a/why3tests/tests/why3.rs +++ b/why3tests/tests/why3.rs @@ -1,10 +1,11 @@ use assert_cmd::prelude::*; use clap::Parser; use git2::Repository; +use regex::Regex; use std::{ fs::File, io::{BufRead, BufReader, Write}, - path::PathBuf, + path::{Path, PathBuf}, process::exit, }; use termcolor::*; @@ -38,6 +39,8 @@ struct Args { fn main() { let args = Args::parse(); + std::env::set_current_dir("..").unwrap(); + let mut out = StandardStream::stdout(ColorChoice::Always); let orange = Color::Ansi256(214); @@ -46,7 +49,10 @@ fn main() { let mut success = true; let mut obsolete = false; - for file in glob::glob("../creusot/tests/**/*.coma").unwrap() { + + let tactic_re = Regex::new(r"TACTIC (\S*)").unwrap(); + + for file in glob::glob("creusot/tests/**/*.coma").unwrap() { // Check for early abort if args.fail_early && (!success || obsolete) { break; @@ -61,8 +67,7 @@ fn main() { } if let Some(changed_list) = &changed { - let file = file.strip_prefix("../").unwrap(); - if !changed_list.iter().any(|p| p == file) { + if !changed_list.iter().any(|p| *p == file) { continue; } } @@ -88,17 +93,26 @@ fn main() { let mut sessiondir = file.clone(); sessiondir.set_file_name(file.file_stem().unwrap()); - let mut sessionfile = sessiondir.clone(); - sessionfile.push("why3session.xml"); - let output; - let mut command = creusot_dev_config::why3_command().unwrap(); - command.arg("--warn-off=unused_variable"); - command.arg("--warn-off=clone_not_abstract"); - command.arg("--warn-off=axiom_abstract"); - command.arg("--debug=coma_no_trivial,stack_trace"); + let mut why3 = creusot_dev_config::why3_command().unwrap(); + why3.arg("--warn-off=unused_variable"); + why3.arg("--warn-off=clone_not_abstract"); + why3.arg("--warn-off=axiom_abstract"); + why3.arg("--debug=coma_no_trivial,stack_trace"); + + if header_line.contains("WHY3PROVE") + || file.file_name().unwrap() == "creusot-contracts.coma" + { + let mut sessionfile = sessiondir.clone(); + sessionfile.push("why3session.xml"); + if !sessionfile.is_file() { + out.set_color(ColorSpec::new().set_fg(Some(Color::Red))).unwrap(); + writeln!(&mut out, "missing why3 session").unwrap(); + out.reset().unwrap(); + success = false; + continue; + } - if sessionfile.is_file() { let Some(proved) = BufReader::new(File::open(&sessionfile).unwrap()).lines().find_map(|l| { match l.unwrap().as_str() { @@ -131,22 +145,22 @@ fn main() { } // There is a session directory. Try to replay the session. - command.arg("replay"); - command.args(&["-L", ".."]); + why3.arg("replay"); + why3.args(&["-L", "."]); match args.replay { ReplayLevel::None => { - command.arg("--merging-only"); + why3.arg("--merging-only"); } ReplayLevel::Obsolete => { - command.arg("--obsolete-only"); + why3.arg("--obsolete-only"); } ReplayLevel::All => {} }; - command.arg(sessiondir.clone()); - output = command.ok(); + why3.arg(sessiondir.clone()); + output = why3.ok(); if output.is_ok() { let outputstring = std::str::from_utf8(&output.as_ref().unwrap().stderr).unwrap(); @@ -168,27 +182,30 @@ fn main() { } out.reset().unwrap(); } - } else { - // No session directory. Check that this is expected. - if !header_line.contains("NO_REPLAY") { - out.set_color(ColorSpec::new().set_fg(Some(Color::Red))).unwrap(); - writeln!(&mut out, "missing why3 session").unwrap(); - out.reset().unwrap(); - - success = false; - continue; - } - + } else if header_line.contains("NO_REPLAY") { // Simply parse the file using "why3 prove". - command.arg("prove"); - command.args(&["-L", "..", "-F", "coma"]); - command.arg(file); - output = command.ok(); + why3.arg("prove"); + why3.args(&["-L", ".", "-F", "coma"]); + why3.arg(file); + output = why3.ok(); if output.is_ok() { out.set_color(ColorSpec::new().set_fg(Some(Color::Green))).unwrap(); writeln!(&mut out, "syntax ok").unwrap(); out.reset().unwrap(); } + } else { + let mut why3find = creusot_dev_config::why3find_command().unwrap(); + why3find.arg("prove").arg(file); + if let Some(tactic) = tactic_re.captures_iter(&header_line).next() { + why3find.arg("--tactic"); + why3find.arg(tactic.get(1).unwrap().as_str()); + } + output = why3find.ok(); + if output.is_ok() { + out.set_color(ColorSpec::new().set_fg(Some(Color::Green))).unwrap(); + writeln!(&mut out, "proved").unwrap(); + } + out.reset().unwrap(); } if !output.is_ok() { @@ -233,7 +250,7 @@ fn main() { } fn changed_comas(from: &str) -> Result, git2::Error> { - let repo = Repository::open("..")?; + let repo = Repository::open(".")?; let rev = repo.revparse_single(from)?.id(); let commit = repo.find_commit(rev)?; let diff = repo.diff_tree_to_workdir_with_index(Some(&commit.tree()?), None)?;