Tại sao chúng ta có thể giả sử rằng CP tài sản được tổ chức khi người chấp nhận a0 bỏ phiếu cho v ở vòng k? Dường như chúng ta đang sử dụng quy nạp toán học, do đó, cơ sở, giả thuyết quy nạp và các bước quy nạp là gì?
Bạn đang nhìn vào một ví dụ của cảm ứng mạnh mẽ . Trong cảm ứng đơn giản, bạn giả sử thuộc tính giữ cho và chứng minh rằng nó giữ cho n = m + 1 . Trong cảm ứng mạnh, bạn giả sử thuộc tính giữ cho ∀ n : n < m và chứng minh rằng nó giữ cho n = m + 1 .n = mn = m + 1∀ n : n < mn = m + 1
Cơ sở (tôi tin): j = 0 . Đó là, vòng null (vì các vòng bắt đầu từ 1). Điều này là tầm thường, có lẽ là lý do tại sao nó không được nêu rõ ràng.
Bước quy nạp : Giả sử ; chứng minh C P ( v ; j + 1 ) trong đó j < i .∀ n , n ≤ j : CP( v ; n )CP( v ; j + 1 )j < i
Tin hay không, đây chỉ là một bản phác thảo bằng chứng . Bằng chứng thực sự là trong bài báo của Nghị viện bán thời gian . (Một số người coi giấy khó hiểu, những người khác coi đó là hài hước.)
Làm thế nào điều này có được?
Theo tôi, bằng chứng chính xác của trường hợp dựa (đệ quy) vào những trường hợp k < j < i và j = k .j < kk < j < ij = k
Do đó, làm thế nào chúng ta có thể kết luận trường hợp mà không chứng minh hoàn toàn j = k (cụ thể là thiếu chữ con của j = k trong đó V chứa nhiều hơn một giá trị)?j < kj = kj = kV
Đây lại là cảm ứng mạnh, vì vậy trường hợp không dựa vào các trường hợp k < j và j = k , nhưng thông qua giả thuyết cảm ứngj < kk < jj = k , cụ thể là từ vòng Paxos trước đó.
Lời khuyên chung cho bằng chứng của Lamport.
Lamport sử dụng một kỹ thuật chứng minh phân cấp. Ví dụ, cấu trúc của bằng chứng trên các trang 7-8 trông giống như thế này:
- Giả sử ; chứng minh C P ( v ; j + 1 ) trong đó j < i .
∀ n , n ≤ j : CP( v ; n )CP( v ; j + 1 )j < i
- Quan sát 1
- Quan sát 2
- Quan sát 3
- k = a r gm một x ( . . . )
- trường hợp k = 0
- trường hợp k> 0
- trường hợp k <j
- trường hợp k = j
- trường hợp j <k
Lamport có xu hướng sử dụng một loại phân cấp khác. Anh ta sẽ chứng minh một thuật toán đơn giản hơn, và sau đó chứng minh rằng một thuật toán phức tạp hơn ánh xạ vào (hoặc "mở rộng" ) thuật toán đơn giản hơn. Điều này dường như không xảy ra ở trang 18, nhưng nó là một điều cần chú ý. (Bằng chứng ở trang 18 dường như là một sửa đổi của bằng chứng một trang 7-8; không phải là phần mở rộng của nó.)
Lamport phụ thuộc rất nhiều vào cảm ứng mạnh mẽ ; anh ấy cũng có xu hướng suy nghĩ về các bộ thay vì số. Vì vậy, bạn có thể nhận được các tập hợp trống trong đó những người khác sẽ có số không hoặc null; hoặc thành lập công đoàn nơi những người khác sẽ có thêm.
Chứng minh tính đúng đắn của các hệ thống truyền tin nhắn không đồng bộ cần một cái nhìn toàn diện về hệ thống đối với thời gian . Ví dụ: khi xem xét các hành động trong vòng , hãy nhớ rằng các hành động cho một số vòng j < i có thể không xảy ra theo thời gian!Tôij < i . Tuy nhiên, Lamport tuyên bố những sự kiện tiềm năng trong tương lai ở thì quá khứ.
Các hệ thống và bằng chứng của Lamports có xu hướng có một biến hoặc tập hợp các biến chỉ được phép đi theo một hướng; chỉ tăng số và chỉ thêm vào bộ. Điều này được sử dụng rộng rãi trong các bằng chứng của mình. Ví dụ, trên trang 8 Lamport cho thấy cách anh ta tạo ra khả năng trong tương lai của để bỏ phiếu khác:một
... Vì nó set để i khi gửi một tin nhắn, một không thể sau đó đã tham gia bình chọn trong bất kỳ vòng đánh số ít hơn tôi ....r n d[ a ]TôimộtTôi
Nó chắc chắn là một bộ não để chứng minh các loại hệ thống.
(cập nhật) : Liệt kê các bất biến; Lamport sử dụng rất nhiều bất biến khi phát triển và bằng chứng của mình. Chúng đôi khi nằm rải rác trong các bằng chứng; đôi khi chúng chỉ có mặt trong bằng chứng kiểm tra máy. Lý do về mỗi bất biến; tại sao nó ở đó Làm thế nào để nó tương tác với các bất biến khác? Làm thế nào để mỗi bước trong hệ thống giữ bất biến này?
Tiết lộ đầy đủ : Tôi đã không đọc Fast Paxos cho đến khi tôi được yêu cầu trả lời câu hỏi này; và chỉ nhìn vào các trang được trích dẫn. Tôi là một kỹ sư và không phải là một nhà toán học; bàn chải của tôi với công việc của Lamport hoàn toàn dựa trên nhu cầu phát minh và duy trì chính xác các hệ thống phân tán quy mô lớn.
Câu trả lời của tôi phụ thuộc rất nhiều vào kinh nghiệm của tôi với công việc của Lamport. Tôi đã đọc một số giao thức và bằng chứng của Lamport; Tôi chuyên nghiệp duy trì một hệ thống dựa trên paxos; Tôi đã viết và chứng minh một giao thức đồng thuận thông lượng cao, và một lần nữa chuyên nghiệp duy trì một hệ thống dựa trên nó (Tôi đang cố gắng để công ty của tôi cho phép tôi xuất bản một bài báo). Tôi đã cộng tác trên một bài báo không đáng kể với Lamport, trong đó tôi đã gặp anh ấy ba lần (bài báo vẫn đang chờ đánh giá ngang hàng.)