Đầu tiên, để xua tan sự bất hòa về nhận thức có thể xảy ra: lý luận về các cấu trúc vô hạn không phải là vấn đề, chúng tôi làm điều đó mọi lúc. Miễn là cấu trúc có thể mô tả chính xác, đó không phải là vấn đề. Dưới đây là một vài loại cấu trúc vô hạn phổ biến:
- ngôn ngữ (bộ chuỗi trên một số bảng chữ cái, có thể là hữu hạn);
- ngôn ngữ cây (bộ cây trên một số bảng chữ cái);
- dấu vết thực hiện của một hệ thống không xác định;
- số thực;
- bộ số nguyên;
- bộ hàm từ số nguyên đến số nguyên; Giáo dục
Coinductivity là điểm cố định lớn nhất
Trong đó các định nghĩa quy nạp xây dựng một cấu trúc từ các khối xây dựng cơ bản, các định nghĩa cưỡng chế hình thành các cấu trúc từ cách chúng có thể được giải cấu trúc. Ví dụ: loại danh sách có các thành phần trong một tập hợp A
được xác định như sau trong Coq:
Inductive list (A:Set) : Set :=
| nil : list A
| cons : A -> list A -> list A.
Một cách không chính thức, list
loại này là loại nhỏ nhất chứa tất cả các giá trị được xây dựng từ nil
và các hàm cons
tạo, với tiên đề . Ngược lại, chúng ta có thể định nghĩa loại lớn nhất chứa tất cả các giá trị được xây dựng từ các hàm tạo này, giữ nguyên tiên đề phân biệt đối xử:∀xy,nil≠consxy
CoInductive colist (A:Set) : Set :=
| conil : colist A
| cocons : A -> colist A -> colist A.
list
đẳng cấu với một tập hợp con của colist
. Bên cạnh đó, colist
có chứa danh sách vô hạn: danh sách với cocons
trên cocons
.
CoFixpoint flipflop : colist ℕ := cocons 1 (cocons 2 flipflop).
CoFixpoint from (n:ℕ) : colist ℕ := cocons n (from (1 + n)).
flipflop
là vô hạn (danh sách tròn) ; là danh sách vô hạn các số tự nhiên 0 : : 1 : : 2 : : ... .1::2::1::2::…from 0
0::1::2::…
Một định nghĩa đệ quy được hình thành tốt nếu kết quả được xây dựng từ các khối nhỏ hơn: các cuộc gọi đệ quy phải hoạt động trên các đầu vào nhỏ hơn. Một định nghĩa corecursive được hình thành tốt nếu kết quả xây dựng các đối tượng lớn hơn. Cảm ứng nhìn vào các nhà xây dựng, cưỡng chế nhìn vào các hàm hủy. Lưu ý làm thế nào tính đối ngẫu không chỉ thay đổi nhỏ hơn thành lớn hơn mà cả đầu vào thành đầu ra. Ví dụ, lý do flipflop
và các from
định nghĩa ở trên được hình thành rõ ràng là vì cuộc gọi corecursive được bảo vệ bởi một cuộc gọi đếncocons
tạo trong cả hai trường hợp.
Trong đó các phát biểu về các đối tượng quy nạp có bằng chứng quy nạp, các phát biểu về các đối tượng cưỡng chế có bằng chứng cưỡng chế. Ví dụ: hãy xác định vị ngữ vô hạn trên colists; Theo trực giác, các colists vô hạn là những người không kết thúc conil
.
CoInductive Infinite A : colist A -> Prop :=
| Inf : forall x l, Infinite l -> Infinite (cocons x l).
Để chứng minh rằng colists của hình thức from n
là vô hạn, chúng ta có thể lý luận bằng cách cưỡng chế. from n
bằng cocons n (from (1 + n))
. Điều này cho thấy rằng from n
lớn hơn from (1 + n)
, là vô hạn bởi giả thuyết cưỡng chế, do đófrom n
là vô hạn.
Bisimilarity, một tài sản cưỡng chế
Coindtion như một kỹ thuật bằng chứng cũng áp dụng cho các đối tượng tài chính. Nói một cách trực giác, bằng chứng quy nạp về một đối tượng được dựa trên cách xây dựng đối tượng. Bằng chứng cưỡng chế dựa trên cách đối tượng có thể bị phân hủy.
Khi nghiên cứu các hệ thống xác định, người ta thường xác định tính tương đương thông qua quy tắc quy nạp: hai hệ thống tương đương nếu bạn có thể chuyển từ cái này sang cái kia bằng một loạt các phép biến đổi. Các định nghĩa như vậy có xu hướng không nắm bắt được nhiều cách khác nhau mà các hệ thống không xác định cuối cùng có thể có cùng một hành vi (có thể quan sát) mặc dù có cấu trúc bên trong khác nhau. (Coindtion cũng hữu ích để mô tả các hệ thống không kết thúc, ngay cả khi chúng mang tính quyết định, nhưng đây không phải là điều tôi sẽ tập trung vào đây.)
Các hệ thống không xác định như hệ thống đồng thời thường được mô hình hóa bởi các hệ thống chuyển tiếp có nhãn . Một LTS là một đồ thị có hướng trong đó các cạnh được dán nhãn. Mỗi cạnh đại diện cho một sự chuyển tiếp có thể của hệ thống. Dấu vết của LTS là chuỗi các nhãn cạnh trên một đường dẫn trong biểu đồ.
Hai LTS có thể hành xử giống hệt nhau, theo đó chúng có cùng dấu vết có thể, ngay cả khi cấu trúc bên trong của chúng khác nhau. Đồ thị đẳng cấu quá mạnh để xác định tính tương đương của chúng. Thay vào đó, một LTS được cho là mô phỏng một LTS B khác nếu mọi chuyển đổi của LTS thứ hai thừa nhận một chuyển đổi tương ứng trong lần đầu tiên. Chính thức, gọi S là sự kết hợp rời rạc của các trạng thái của hai LTS, L bộ (chung) của nhãn và → quan hệ chuyển tiếp. Quan hệ R ⊆ S × S là một mô phỏng nếu
∀ ( p , q ) ∈MộtBSL→R ⊆ S× S
∀ ( p , q) ∈ R , nếu p →αp' sau đó ∃ q',q→αq' và ( p', q') ∈ R
mô phỏng B nếu có một mô phỏng trong đó tất cả các tiểu bang của B có liên quan đến tình trạng trong Một . Nếu R là một mô phỏng theo cả hai hướng, nó được gọi là mộtbisimulationMộtBBMộtR . Mô phỏng là một thuộc tính cưỡng chế: bất kỳ quan sát nào ở một bên phải có một trận đấu ở phía bên kia.
Có khả năng có nhiều sự chia nhỏ trong một LTS. Khác biệt có thể xác định các trạng thái khác nhau. Cho hai phép chia và R 2 , mối quan hệ được đưa ra bằng cách lấy sự kết hợp của các đồ thị quan hệ R 1 ∪ R 2 tự nó là một phép chia đôi, vì các trạng thái liên quan làm phát sinh các trạng thái liên quan cho cả hai quan hệ. (Điều này cũng đúng với các liên hiệp vô hạn. Mối quan hệ trống rỗng là một sự chia đôi không liên tục, cũng như mối quan hệ danh tính.) Đặc biệt, sự kết hợp của tất cả các phép chia đôi chính nó là một phép chia đôi, được gọi là phép chia đôi. Bisimilarity là cách thô nhất để quan sát một hệ thống không phân biệt giữa các trạng thái riêng biệt.R1R2R1∪ R2
Bisimilarity là một tài sản cưỡng chế. Nó có thể được định nghĩa là điểm cố định lớn nhất của toán tử: đó là mối quan hệ lớn nhất mà khi được mở rộng để xác định các trạng thái tương đương, vẫn giữ nguyên.
Người giới thiệu