Skip to content
Snippets Groups Projects

New trait encoding scheme and add support for more specific trait impls

Merged Lennard Gäher requested to merge lennard/trait-instances into main
47 files
+ 4657
1870
Compare changes
  • Side-by-side
  • Inline
Files
47
@@ -394,6 +394,7 @@ impl<T> Vec<T> {
@@ -394,6 +394,7 @@ impl<T> Vec<T> {
#[rr::args("(#(<#> xs), γ)", "Z.of_nat i")]
#[rr::args("(#(<#> xs), γ)", "Z.of_nat i")]
#[rr::requires("i < length xs")]
#[rr::requires("i < length xs")]
#[rr::observe("γ": "delete i (<#> xs)")]
#[rr::observe("γ": "delete i (<#> xs)")]
 
#[rr::returns("xs !!! i")]
pub fn remove(&mut self, index: usize) -> T {
pub fn remove(&mut self, index: usize) -> T {
// index out of bounds?
// index out of bounds?
assert!(index < self.len);
assert!(index < self.len);
Loading