Chương 2. KIẾN THỨC NỀN TẢNG
2.3. Đặc tả và kiểm chứng giả định - đảm bảo cho các hệ thống có ràng buộc
2.3.1. Hệ thống chuyển trạng thái có ràng buộc thời gian
Phần này trình bày một số khái niệm cơ bản về các hệ thống chuyển trạng thái có ràng buộc thời gian được dùng trong Chương 5 của luận án.Σđược dùng để biểu diễn bảng chữ cái gồm một tập hữu hạn các hành vi của phần mềm, và λ để biểu diễn một từ rỗng.
Một từ có thời gian (timed word) là một chuỗi tuần tự hữu hạn các hành vi có thời gianwt = (a1, t1)(a2, t2)...(an, tn), trong đóai∈Σvà ti∈R+ mà thỏa mãn ti−1≤ti với i= 1,2, ..., n, t0= 0.
Cho một từ có thời gian wt = (a1, t1)(a2, t2)...(an, tn) trên bảng chữ cái Σ, ta có thể có được từ không có thời gian tương ứng của nó, ký hiệu làwutt bằng việc loại bỏ toàn bộ thông tin thời gian từ chuỗi ban đầu wtut=a1a2...an.
Cho bảng chữ cái Σ và Σ0, ta định nghĩa phép toán chiếu ↑Σ0 từ tập các từ có thời gian trên bảng chữ cái Σ thành tập các từ có thời gian trên bảng chữ cái
Σ0 như sau: Cho một từ có thời gian wt trên bảng chữ cái Σ, phép chiếu của nó lên Σ0 được ký hiệu là wt↑Σ0 và có được từ wt bằng việc loại bỏ toàn bộ các cặp (ai, ti), trong đó ai6∈Σ0.
Với mỗi hành vi a∈Σ, ta sử dụng xa để biểu diễn đồng hồ ghi sự kiện (event- recording clock) [4] của a. Đồng hồ ghi sự kiện xa ghi thời gian trôi qua từ lần cuối cùng xuất hiện của a. Nghĩa là, khi a xảy ra, đồng hồ xa được đặt lại về zero.
Tập toàn bộ các đồng hồ ghi sự kiện trên bảng chữ cái Σ được biểu diễn bởi CΣ, nghĩa là CΣ ={xa|a∈Σ}.
Một phép gán đồng hồ (clock valuation) là một hàm γ gán một giá trị thực không âm cho mỗi đồng hồ ghi sự kiện, nghĩa là γ :CΣ 7→R+. Một cách khác để biểu diễn các hành vi về thời gian (timed behavior) là sử dụng các từ đồng hồ (clocked word). Một từ đồng hồ là một chuỗiwc = (a1, γ1)(a2, γ2)...(an, γn), trong đó ai ∈Σ, γi là một phép gán đồng hồ với i= 1,2, ..., n.
Một ràng buộc đồng hồ nguyên tử (an atomic clock constraint)η là một điều kiện trên các đồng hồ ghi sự kiện được cho bởi cú pháp sau:
η:=xa ∼n | xa−xb∼n
trong đó, xa, xb ∈ CΣ, ∼∈ {<,≤,≥, >}, và n ∈ N. Phép hội của các ràng buộc đồng hồ nguyên tử được gọi là ràng buộc đồng hồ (clock constraint). φ được dùng để biểu diễn một ràng buộc đồng hồ. Ký hiệu η ∈φ cũng được sử dụng để thể hiện rằng η là một trong các hội của φ.
Một gác đồng hồ nguyên tử (atomic clock guard) τt được định nghĩa là τt = xa ∼ n, trong đó xa ∈ CΣ, ∼∈ {<,≤,≥, >}, và n ∈ N. Phép hội của một số gác đồng hồ nguyên tử được gọi là gác đồng hồ (clock guard). Nếu g là một gác đồng hồ, ký hiệu τt ∈ g được dùng để biểu diễn rằng τt là một gác đồng hồ nguyên tử xuất hiện trong g. Tập tất cả các gác đồng hồ trênCΣ được biểu diễn bởiGΣ. Khi giá trị của các đồng hồ ghi sự kiện được cho bởi một phép gán đồng hồ γ thỏa mãn gác đồng hồg, ta nói rằng γ thỏa mãng, được viết là γ |=g. Đặt [[g]] ={γ | γ |=g}.
Khi sử dụng các từ đồng hồ để biểu diễn các hành vi riêng biệt của các hệ thống có ràng buộc thời gian, ta cần một phương pháp để biểu diễn một tập các từ đồng hồ mà có một cấu trúc hoặc thuộc tính chung. Các từ gác
wg = (a1, g1)(a2, g2)...(an, gn), trong đó ai ∈ Σ and gi ∈ GΣ, với i= 1,2, ..., n. Cho một từ gác wg = (a1, g1)(a2, g2)...(an, gn), một đoạn từ i đến j của wg cũng tạo thành một từ gác [wg]ji = (ai, gi)(ai+1, gi+1)...(aj, gj) mà được gọi là từ gác con (hay từ con) của wg, trong đó 1 ≤i ≤ j ≤n. Định nghĩa sau đây cho thấy làm sao mà một từ gác có thể đóng vai trò như một thuộc tính của các từ đồng hồ.
Định nghĩa 2.23 (Tính thỏa mãn). Cho một từ đồng hồ wc = (a1, γ1)(a2, γ2)...(an, γn) và một từ gác wg = (a1, g1)(a2, g2)...(an, gn), ta nói rằng từ đồng hồ wc thỏa mãn từ gác wg, biểu diễn bởi wc |= wg nếu và chỉ nếu γi|=gi với mọi i= 1,2, ...n.
Định nghĩa 2.24 (Hậu điều kiện mạnh nhất). Cho một từ gác và một ràng buộc đồng hồ φ (tiền điều kiện), hậu điều kiện mạnh nhất của wg với tiền điều kiện φ, được biểu diễn bởi sp(φ, wg), được định nghĩa một cách quy nạp như sau:
sp(φ, λ) = φ; sp(φ, wg(a, g0)) = ((sp(φ, wg)∧g0)[xa 7→0]) ↑.
Theo đó, hậu điều kiện mạnh nhấtsp(φ, wg)là điều tốt nhất trên giá trị của các đồng hồ ghi sự kiện sau khi thực thi chuỗi hành vi biểu diễn bởiwg. Trong đó,φ được thỏa mãn ngay trước khi thực thi. Phép toán ↑ biểu diễn tập lớn nhất các phép gán đồng hồ cuối cùng có thể đạt được sau một khoảng thời gian [103]. Ta giả định rằng ràng buộc đồng hồ khởi tạo φ0 = V
a,b∈Σ(xa = xb), và thường bỏ qua nó khi viết là sp(wg) =sp(φ0, wg).
Trong luận án này, ô-tô-mát ghi sự kiện được dùng để mô tả các hệ thống có ràng buộc thời gian và các thành phần của chúng.
Định nghĩa 2.25 (Ô-tô-mát ghi sự kiện - event-recording automaton - ERA).
Một ô-tô-mát ghi sự kiện M được định nghĩa như sau. M = (Σ, L, L0, δ, Lf), trong đó:
• Σ: một tập hữu hạn các đầu vào, được gọi là bảng chữ cái,
• L: một tập hữu hạn các vị trí,
• L0: một tập vị trí khởi tạo,
• δ :L×Σ×GΣ7→2L: hàm chuyển trạng thái, và
• Lf: một tập vị trí chấp nhận.
Ta sử dụngl −−→a[g] l0 để biểu diễn rằngl0∈δ(l, a, g)vớil, l0 ∈L, a∈Σ, vàg ∈GΣ. Đặt ΣT biểu diễn Σ×GΣ.
Định nghĩa 2.26 (Ô-tô-mát ghi sự kiện đơn định - deterministic ERA). Một ô-tô-mát ghi sự kiện được gọi là đơn định nếu |L0|= 1 và |δ(l, a, g)| ≤ 1 với mọi (l, a, g)∈L×Σ×GΣ, và nếu cả δ(l, a, g1) và δ(l, a, g2) là xác định và g16=g2, thì [[g1]]∩[[g2]] = ∅, trong đó g1, g2 ∈GΣ.
Một ô-tô-mát ghi sự kiện đơn định được gọi là đầy đủ nếu∪gi∈{g|δ(l,a,g)6=∅}[[gi]] = [[true]] với mọi l ∈ L và a ∈ Σ. Do đó, trong một ERA đầy đủ, không có trạng thái chết.
Định nghĩa 2.27 (Sự chấp nhận của các từ đồng hồ). Cho một ERA M = (Σ, L, L0, δ, Lf) và một từ đồng hồ wc = (a1, γ1)(a2, γ2)...(an, γn), ta nói rằng wc được chấp nhận bởi M nếu và chỉ nếu tồn tại một chuỗi tuần tự các chuyển trạng thái l0 −−−→a1[g1] l1 −−−→a2[g2] ...−−−→an[gn] ln trên M mà l0 ∈L0, ln ∈Lf, và γi |=gi, trong đó i= 1,2, ..., n.
Để ý rằng các từ đồng hồ và từ có thời gian là hai cách khác nhau để biểu diễn các hành vi có thời gian từ ý nghĩa trực quan của chúng, và từ một từ có thời gian, từ đồng hồ đại diện cho cùng một hành vi thời gian có thể được tạo ra một cách dễ dàng. Cho một từ có thời gian wt = (a1, t1)(a2, t2)...(an, tn), từ đồng hồ của wt là được định nghĩa là wc = (a1, γ1)(a2, γ2)...(an, γn), trong đó γ1(c) = t1 với mọi đồng hồ c6=xa1, và γ1(xa1) = 0; với mọi i > 1, γi(xai) = 0, và γi(c) =γi−1(c) + (ti−ti−1). Một từ có thời gian wt được nói rằng được chấp nhận bởi M nếu từ đồng hồ của nówc được chấp nhận bởi M. Ngôn ngữ có thời gian L(M)được chấp nhận bởi M là tập tất cả các từ có thời gian được chấp nhận bởi M. Từ ngôn ngữ có thời gian L(M) của M, ngôn ngữ không có thời gian tương ứng của nó biểu diễn bởi ut(L(M))có thể được tính toán bằng cách lấy toàn bộ các từ không có thời gian của L(M), nghĩa là ut(L(M)) ={ut(wt)|wt∈L(M)}. Định nghĩa 2.28 (Sự chấp nhận của các từ gác) Cho một ERA M = (Σ, L, l0, δ, Lf) và một từ gác wg = (a1,gˆ1)(a2,gˆ2)...(an,gˆn), ta nói rằng wg được chấp nhận bởi M, biểu diễn là L(wg)⊆L(M), nếu tồn tại một chuỗi tuần từ các chuyển trạng thái l0 −−−→a1[g1] l1 −−−→a2[g2] ...−−−→an[gn] ln trên M, trong đó l0 ∈L0, ln ∈Lf, và [[ ˆgi]]⊆[[sp([wg]i−1)]]∩[[gi]], với mọi 1≤i≤n, và [wg]01 =λ.
Theo Định nghĩa 2.28, nếu một từ gác wg được chấp nhận bởi M, thì mọi từ đồng hồ wc mà wc|=wg cũng được chấp nhận bởi M.
2.3.2. Kiểm chứng giả định - đảm bảo cho các hệ thống có ràng buộc thời gian
Trong Chương 5, các hệ thống có ràng buộc thời gian, các thành phần của chúng, các thuộc tính, và giả định tương ứng đều được biểu diễn bởi các ERA.
Do đó, các phép toán sau đây là những phép toán cốt lõi được sử dụng trong quá trình kiểm chứng.
Định nghĩa 2.29 (Phép ghép nối song song). Cho hai ERA Mi = (Σi, Li, L0i, δi, Lfi), trong đó i = 1,2, phép ghép nối song song của M1 và M2
là một ERA mới M =M1 kM2 = (Σ1∪Σ2, L1×L2, L01×L02, δ, Lf1 ×Lf2), trong đó tập các đồng hồ ghi sự kiện là CΣ1 ∪CΣ2 và quan hệ chuyển trạng thái δ được định nghĩa như sau, trong đó [[g1]]∩[[g2]]6=∅.
• (l1, l2)−−−−−→a[g1∧g2] (l10, l02) nếu l1 a[g1]
−−−→l10 và l2 a[g2]
−−−→l02
• (l1, l2)−a[g−−→1] (l01, l2) nếu l1−a[g−−→1] l10 và a6∈Σ2
• (l1, l2)−a[g−−→2] (l1, l02) nếu l2 a[g2]
−−−→l20 và a6∈Σ1
Phép ghép nối song song đặc tả một hệ thống được tạo thành từ việc ghép nối nhiều thành phần con lại với nhau. Đây là cơ sở để các nghiên cứu của luận án cũng như các nghiên cứu liên quan có thể được mở rộng và ứng dụng cho các hệ thống lớn trong thực tế.
Khi kiểm chứng một hệ thống có thỏa mãn một thuộc tính an toàn cho trước, việc định nghĩa một cách hình thức tính thỏa mãn là bắt buộc. Với các hệ thống và thuộc tính được đặc tả bằng ERA, tính thỏa mãn được định nghĩa như sau.
Định nghĩa 2.30 (Tính thỏa mãn của ERA). Cho hai ERA M1 và M2 với các bảng chữ cái tương ứng là Σ1 và Σ2, ta nói rằng M1 thỏa mãn M2, biểu diễn bởi M1 |=M2, nếu và chỉ nếu L(M1)↑Σ2⊆ L(M2), trong đó L(M1) ↑Σ2={wt↑Σ2 |wt ∈ L(M1)}.
Luật kiểm chứng sau đây được sử dụng xuyên suốt trong các thuật toán được trình bày trong Chương 5 và đóng vai trò trung tâm trong phương pháp kiểm chứng giả định – đảm bảo cho các phần mềm dựa trên thành phần có ràng buộc thời gian.
Định nghĩa 2.31 (Luật kiểm chứng giả định – đảm bảo không quay vòng - NC–
AG). Cho một hệ thống có ràng buộc thời gian M =M1 kM2 và một thuộc tính
an toàn p, nếu M1 thỏa mãn p dưới giả định A và M2 đảm bảo A, thì M |= p. Luật của quá trình kiểm chứng giả định – đảm bảo cho phần mềm có ràng buộc thời gian được cho bởi công thức sau đây.
M1kA|=p M2 |=A M1 kM2|=p
Định nghĩa 2.32 (Giả định) Gọi M là một hệ thống chứa hai thành phần M1
và M2, p là một thuộc tính an toàn. Nếu A là một ERA thỏa mãn luật kiểm chứng giả định - đảm bảo trong Định nghĩa 2.31 thì A được gọi là giả định ngữ cảnh của M1 (gọi tắt là giả định).