Trong ví dụ về sắp xếp chèn của phần trước của luận văn hoàn toàn không đề cập tới việc tái sử dụng các ô nhớ, cũng như đảm bảo trật tự sắp xếp của các Node trong danh sách, nguyên nhân bởi các vị từ Shape chỉ thể hiện những con trỏ và số lượng con trỏ nhưng không thể thể hiện được tập những Node reachable trong vị từ Heap.Để giải quyết vấn đề này, kỹ thuật đặc tả được mở rộng khái niệm Bag của những giá trị. Trong luận văn, khái niệm Bag cho phép có thể trùng lặp, và sử dụng
các toán tử như sau: kết hợp , giao , phép gộp , và tập hợp .Khi đó đặc tả
Học viên thực hiện: Nguyễn Đức Cường – Lớp 11BCNTT Trang48
Với cách đặc tả như trên thi một Bag có thể thể hiện tất cả các Node dữ liệu của cấu trúc dữ liệu (hay vị từ Heap), với sự mở rộng này chúng ta có thể viết đặc tả cho thủ tục chi tiết như sau:
Nhấn mạnh thêm rằng, kỹ thuật đặc tả thông qua Bag thể hiện những Node reachable trong vị từ Shape, thay thế cho việc thể hiện địa chỉ của Heap bằng tập giá trị Bag, minh họa cho việc đặc tả công thức vị từ danh sách liên kết như sau:
Nắm bắt được một tập Bag giá trị, cho phép chúng ta suy diễn trên tập hợp các giá trị của cấu trúc dữ liệu, và cho phép các thuộc tính liên qua có thể được đặc tả vàkiểm địnhhoàn toàn tự động. Xem xét hai ví dụ sau để thấy rõ hơn:
Học viên thực hiện: Nguyễn Đức Cường – Lớp 11BCNTT Trang49
Ví dụ đầu tiên trả về danh sách dữ liệu kiểu pair mà đã thực hiện việc tách danh sách từ một danh sách đơn với chốt là p, đặc tả tiền điều kiện/hậu điều kiện này hoàn toàn có thể được sử dụng trong chứng minh tính đúng đắn của giải thuật sắp xếp nhanhQuicksort. Trong ví dụ thứ hai sử dụng các lượng từ tồn tại và với mọi để xem xét danh sách đầu vào có hay không ít nhất một giá trị âm.