Số nghiệm nguyên không âm của x₁++x_k=n là C(n+k−1,k−1), với n≥0 và k≥1. Biểu diễn n ngôi sao giống hệt nhau phân vào k hộp có tên bằng k−1 thanh ngăn; các thanh ngăn liền kề và ở đầu cuối cho phép các ô trống bằng 0. Các hộp có thể phân biệt được, nhưng các vật thể thì không. Nếu đếm các token riêng biệt thay vào đó sẽ gán độc lập cho từng token, dẫn đến k^n trước khi áp dụng các ràng buộc khác. Hãy quyết định mô hình dựa vào ý nghĩa của các vật thể và người nhận, chứ không dựa vào hình thức quen thuộc của hệ số nhị thức.
Đối với các phân bổ dương x_i≥1, đặt z_i=x_i−1; tổng còn lại là n−k, cho C(n−1,k−1) khi n≥k. Các cận dưới tổng quát hơn x_i≥a_i được xử lý bằng cách trừ đi mỗi a_i. Ít nhất một giá trị bằng không là phần bù của mọi thành phần dương: trừ C(n−1,k−1) từ tổng phi âm. Các trường hợp chồng chéo như đúng hai hộp trống cần một phép đếm khác; trừ từng trường hợp hộp trống độc lập sẽ tính trùng giao của chúng.
Theo dõi lưu đồ từng câu lệnh một, ghi lại các biến vào bảng. Phân biệt gán giá trị với phép kiểm tra bằng toán học; vế phải của phép gán sử dụng giá trị cũ trước khi thay thế. Ghi lại nhánh nào sẽ thực thi tiếp theo và những biến nào bị đặt lại. Một ứng viên vòng lặp mới có thể đặt lại tổng bên trong mà không đặt lại chính ứng viên đó. Đối với quá trình cộng 1,3,5,… vào S từ 0, sau m lần cộng thì S=m² và số hạng tiếp theo là 2m+1.
Một bất biến vòng lặp là đúng trước và sau mỗi lần lặp. Bất biến tổng bình phương ban đầu đúng tại m=0 và được bảo toàn vì m²+(2m+1)=(m+1)². Chỉ có bất biến thì chưa đủ để chứng minh sự dừng. Để kiểm tra xem số nguyên N≥0 có phải là số chính phương bằng cách cộng các số lẻ cho đến khi S≥N, S sẽ tăng vô hạn; tương đương với m tăng và phải đạt đến một ngưỡng như N. Tại thời điểm thoát, bằng nhau có nghĩa là số chính phương và vượt quá có nghĩa là không phải số chính phương. Một giá trị in ra phải đạt được trên một đường thực thi cụ thể; chỉ có mẫu số học hợp lý thì chưa đủ để coi là một phép theo dõi.