giáo trình môn Đặc tả hình thức-ictu
TRANSCRIPT
0
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
-------------o0o------------
G NG
N Đ T N T C
Số ỉ: 2TC
Hệ đào ạo: Đại học
Ngành: Công nghệ phần mềm
Khoa: Công nghệ thông tin
1
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
-------------o0o------------
G NG
N Đ T N T
Số ỉ: 2TC
Hệ đào ạo: Đại học
Ngành: Công nghệ phần mềm
Khoa: Công nghệ thông tin
Năm ọc: 2015-2016
hoa
2
Ụ LỤ
N Đ .......................................................................... 3
1.1. Mụ iêu mô ọ ................................................................................................ 3
1.2. Mộ số k ái iệm ơ bả ..................................................................................... 3
N 2 .................................................................................................................. 13
Á SỞ Đ ......................................................................................... 13
2 LO MỆN ĐỀ ........................................................................................... 13
2.2. LO Ị Ừ ................................................................................................... 21
2.3. LÝ UYẾ ẬP ỢP ................................................................................... 23
N 3 ................................................................................................................... 26
Đ Á ÀN P ẦN B N .................................................................... 26
3.1. Đ K ỂU DỮ L ỆU ................................................................................. 26
3.2. Đ ÀM .................................................................................................. 28
3.3. Đ ĐỆ QUY ............................................................................................ 30
3.4. Á QUY Ắ ÍN OÁN.......................................................................... 32
3.5. Á S ĐỒ ẠN Á ............................................................................. 33
3.6. Á ĐỐ ỢN ÌN Ọ ....................................................................... 35
3.7. Á ÀN BUỘ .......................................................................................... 38
N 4 ................................................................................................................... 43
Đ À ÍN ĐÚN ĐẮN ÀM ............................................................. 43
4.1. Á P N P ÁP K ỂM ÍN ĐÚN ĐẮN ................................. 43
4.2. CHỨN M N Ớ Á LUẬ SUY D ỄN ................................................ 46
N 5 ................................................................................................................... 52
N ÔN N Ữ Đ Z .............................................................................................. 52
5.1. á à p ầ ủa gô gữ ........................................................................... 52
5.2. iả đồ (s emas) ............................................................................................. 58
5.3. á p ép oá rê giả đồ ................................................................................ 67
3
ƯƠNG 1. TR Đ T
1.1. ụ tiêu ọ
Cung cấp kiến thức cốt lõi:
Về á p ươ g p áp ì ức dựa rê ơ sở toán học chặt chẽ.
Một số kỹ thuậ đặc tả và ngôn ngữ đặc tả thông dụng.
iúp gười học:
Có khả ă g diễn tả được các yêu cầu bài toán từ quá trình phân tích
hệ thống.
Mô tả cách xử lý yêu cầu một cách chặt chẽ và đú g đắn.
Hệ thống hóa lại các kiểu dữ liệu vật lý và các kiểu dữ liệu trừu
ượng.
Giới thiệu ngôn ngữ đặc tả thông dụ g: DM, Z, …
1.2. t số k i iệ ơ bả
Các phương pháp hình thức (formal methods)
Trong tin học, thuật ngữ p ươ g p áp ì ức (ngôn ngữ hình thức,
đặc tả hình thứ , …) ườ g đượ dù g để chỉ các kỹ thuật dựa rê ơ sở
toán học dùng trong quá trình mô tả chi tiế (đặc tả), phát triển và kiểm
chứng các hệ thống phần mềm ũ g ư p ần cứng.
Cách tiếp cậ ày ườ g được áp dụng cho các hệ thống có kết cấu chặt
chẽ, đòi ỏi độ tin cậy và tính an toàn cao, đảm bảo rằng trong quá trình xây
dựng và phát triển hệ thống xảy ra ít lỗi nhất.
á p ươ g p áp ì ứ đặc biệt hiệu quả ro g á giai đoạ đầu của
quá xây dựng hệ thố g ( ường là ở giai đoạ xá định yêu cầu và đặc tả hệ
thống), tuy nhiên chúng có thể dùng trong toàn bộ quy trình phát triển hệ
thống.
á p ươ g p áp ì ức có thể được xếp loại theo 3 mứ độ khác nhau:
4
Mức 0: Đặc tả hình thứ được sử dụ g để đặc tả hệ thố g rước khi phát
triển nó. Trong nhiều rường hợp thì việc sử dụ g p ươ g p áp ì ức
ở giai đoạn này tỏ ra đặc biệt hiệu quả, nhất là về mặt chi phí.
Mức 1: Phát triển và kiểm chứng hình thức có thể được áp dụ g để tạo ra
mộ ươ g rì ( ay một hệ thống) một cách tự động, dựa rê á đặc
tả hình thứ đã ó rướ đó Quá rì ày đặc biệt thích hợp đối với các
hệ thố g đòi ỏi độ tin cậy và tính an toàn cao.
Mức 2: Chứng minh tự động.
Đặc tả (specification)
Mô tả cấu trúc hoạ động của các sự vật hiệ ượ g, quá rì ào đó iệc
mô tả này có thể ở mứ độ k ái quá , ư g ũ g ó ể là những mô tả ở
mứ độ hết sức chi tiết.
Có nhiều ngôn ngữ o p ép đặc tả:
- Ngôn ngữ tự nhiên: tiếng Việt, tiếng Anh, tiế g P áp, …
- Ngôn ngữ loài vậ : ó, im, mèo, …
- Ngôn ngữ lập rì : Pas al, , ++, Java, S arp, isual Basi , …
- Ngôn ngữ hình thức: Là ngôn ngữ với bộ từ vựng, cú pháp, ngữ g ĩa
đượ đị g ĩa ặt chẽ dựa rê ơ sở của toán học.
Đặc tả hình thức (formal specification)
Đặc tả hình thứ là đặc tả với các tính chất:
- Chính xác và nhất quán.
- Ngắn gọ và đầy đủ.
- Có thể xử lý được bởi máy vi tính.
Đặc tả hình thức có các ứng dụ g ư sau:
- Sử dụ g ro g giai đoạn phân tích, thiết kế, nhằm mụ đ ạo ra các
phác hoạ chi tiết, cụ thể và chặt chẽ về hệ thống sẽ được xây dựng.
5
- Trong quá trình xây dựng hệ thố g, á đặc tả này sẽ là công cụ định
ướ g để đảm bảo hệ thố g được xây dựng một cách phù hợp và đầy
đủ.
- Sau khi hệ thố g được xây dự g ì đặc tả sẽ đó g vai rò là ướ đo
để kiểm chứng, khẳ g định hệ thố g được tạo ra ó đú g đắn và tin
cậy hay không.
Ví dụ về mô tả quá trình xây dựng phần mề t eo ì t ước
Cách 1: Dùng ngôn ngữ tự nhiên
Quy trình xây dựng phần mềm được tiến hành tuần tự qua á bước:
Xá định yêu cầu
Phân tích
Thiết kế
Lập trình
Kiểm chứng
Bảo trì
Sau khi tiế à xo g bước sẽ chuyển giao kết quả o bước kế tiếp hoặc có
thể chuyể gược lại o á bướ rướ đó ếu còn phát hiện lỗi và sau quá trình
lại tiếp tục.
6
Cách 2: Dùng sơ đồ
Đánh giá: Qua âm đến kết quả thực hiện và chuyển giao giữa á giai đoạn:
- Cách 1: + Độ chính xác không cao, có thể gây ra hiểu lầm.
+ Dài dòng nếu mô tả đầy đủ.
+ Thích hợp cho việc mô tả chi tiết.
- Cách 2: + Độ xá ă g lê
+ Trình bày ngắn gọn, trực quan.
+ Phù hợp cho việc mô tả một cách tổng quát.
1.3. Lịch sử r đời và phát triển c đặc tả hình thức
Các kỹ thuật về đặc tả hình thứ đã được sử dụng trong ngành Tin học trong suốt
ơ 30 ăm qua ( ừ nhữ g ăm đầu của thập niên 70). Có rất nhiều mô ì ũ g ư
ngôn ngữ đặc tả đượ ra đời và đa số ú g đều dựa rê ơ sở của toán học.
Các ngôn ngữ đặc tả được thiết kế và ra đời để sử dụng cho nhiều mụ đ k á
nhau. Các ngôn ngữ ày được phân loại theo 3 tiêu chí chính:
Mứ đ trừu tượng hoá: Việ đặc tả hệ thống có thể có nhiều mứ độ khác
nhau.có thể một ngôn ngữ đặc tả chỉ dù g để mô tả các hệ thống ĩ và ỏ,
Xá định
Phân tích
Thiết kế
Lập trình
Kiểm chứng
Bảo trì
iai đoạn
Chuyển kết quả
7
ư g ũ g ó ể hệ thống cầ đặc tả rất to lớn và phức tạp cả về quy mô
ũ g ư oạ động. Mứ độ trừu ượng hoá quyế định một ngôn ngữ đặc tả
có thể dù g để mô tả hệ thống nào. Nếu bao quát quá nhiều thứ thì cồng kềnh,
ư g ếu đơ giản quá thì sẽ không có nhiều khả ă g ứng dụng.
Phạm vi ứng dụng: Mỗi ngôn ngữ đặc tả ường thiết kế nhằm mụ đ
phục vụ cho một hay một số lĩ vực cụ thể. Ví dụ: DM được thiết kế để sử
dụng trong thiết kế các mạch số; phép toán mệ đề được sử dụng tro g đặc tả
và chứng minh các thuậ oá oá ; UN Y đượ dù g ro g đặc tả và
kiểm chứng các hệ thố g so g so g;…
Mụ đí sử dụng: Một ngôn ngữ đặc tả ườ g được thiết kế nhằm phục vụ
cho mộ ro g ai đối ượ g là o gười và máy Điều k ó k ă ở
đây là p ải làm sao du g oà đượ điều này, vì nếu ngôn ngữ đó gầ gũi với
ngôn ngữ tự nhiên của o gười thì máy tính rất khó phân tích, xử lý và diễn
giải; gược lại, nếu nó quá gần với ngôn ngữ máy ì o gười gặp khó
k ă ro g quá trình sử dụng.
Lịch sử phát triển:
Các ngôn ngữ đặc tả không hình thức:
Thế hệ thứ nhất: Booch, Rumbaugh
Thế hệ thứ hai: UML
Thế hệ thứ ba: OOCL – Object-oriented Change and Learning (dùng trong
khoa học nhận dạng và trí tuệ nhân tạo – biểu diễn tri thức).
Các ngôn ngữ đặc tả hình thức:
OCL, Predicate Calculus, CDM, UNITY, VDM, Z
Object-Z (Z++), VDM++
1.4. Đặc tả hình thức và quy trình phát triển phần mềm
8
1.4.1. Quy trình chung
Vấn đề xảy ra nếu qui trình phát triển phần mềm không sử dụng đặc tả hình thức
ới việ xá đị yêu ầu k ô g rõ rà g =>
- iểu á yêu ầu eo ữ g ướ g k á au giữa k á à g và gười
u g ấp, p á riể p ầ mềm
- K ó k ă ro g việ đá giá sự p ù ợp ủa iế kế và ươ g rì ự
i với á yêu ầu đã xá đị
Mô hình phần mềm được thiết kế không theo chuẩn =>
- Việc hiểu mô hình phần mềm eo ướng khác nhau của mỗi lập trình viên -
> ươ g rì sai
- Các thuộc tính của từng module thự i ro g ươ g rì sẽ k ô g được
mô tả rõ ràng.
Việc kiểm thử phần mềm chỉ phát hiện ra lỗi ư g k ô g ể chỉ được ra vị trí
lỗi.
Đá giá và đưa ra sản phẩm cho khách hàng muộn so với quy định.
9
1.4.2. Qui trình phát triển phần mềm sử dụng đặc tả hình thức
10
Ưu điểm :
Yêu cầu là nhữ g đị g ĩa rõ rà g về mặt hình thức:
- Khách hàng và nhà cung cấp có nhữ g rao đổi, qua điểm nhất quán.
- Xá định tố đầu vào cho pha thiết kế.
Tài liệu của hệ thống phần mềm rõ ràng, cụ thể.
á đị g ĩa ì ức của mô hình phần mềm sẽ là đầu vào cụ thể và rõ
ràng cho việc lập trình.
Sự chứng mình hình thức của các thuộc tính hệ thống.
Xây dựng phát triển nguyên mẫu nhanh.
Tự động sinh mã.
Làm mịn theo kiểu bậc thang từ nhữ g đặc tả trừu ượ g đến nhữ g đặc tả
cụ thể.
Đưa ra được nguồn gốc của việc kiểm tra dữ liệu từ nhữ g đặc tả hình thức.
Nhược điểm :
11
Những hệ hình thức khó hiểu sẽ gây k ó k ă ro g việ rao đổi với khách
hàng.
Việc xây dựng ngôn ngữ hình thức là hết sứ k ó k ă và ó ỉ thích hợp
cho những phần của hệ thống phần mềm thiếu khả ă g ay đổi cấu hình
hay qui mô.
Việc sử dụ g p ươ g ứ đặc tả nào và ngôn ngữ đặc tả nào là yêu cầu khá
ao đối với gười phát triển.
Ngay cả việ đặc tả và chứng minh hình thức vẫn có thể có lỗi xãy ra.
Giới hạn công cụ hỗ trợ cho việ đặc tả.
1.4.3. Phân tích
a) Lập các mô hình thế giới thực
Mô hình dữ liệu
Các ràng buộc
Mô hình xử lý
Mô hình trạng thái
Mô hình thời gian
Mô hình không gian
b) Dù g đặc tả
á sơ đồ
Các phát biểu về ràng buộc
á quy định về công thức tính toán
Thiết kế dữ liệu
Các hàm kiểm tra ràng buộc
12
1.4.4. Thiết kế
a) Lập mô hình phần mềm
Hệ thống dữ liệu
Hệ thống giao diện
Hệ thống xử lý
b) Dù g đặc tả
á sơ đồ
Các thao tác trên màn hình
Các hàm xử lý
1.4.5. Kiểm chứng
a) Kiểm ra đú g đắn
Dữ liệu
Hàm
Giao diện
b) Dù g đặc tả
Kiểm ra đú g đắn của hàm
Ứng dụng của đặc tả
Mô tả lại các kết quả đã đạ được trong từng giai đoạn của quy trình công nghệ
phần mềm. Ứng dụng dạ g ày ườ g được sử dụng trong các báo cáo.
Phát sinh kết quả o giai đoạn kế tiếp dựa vào đặc tả của giai đoạ rước.
13
ƯƠNG 2.
Á Ơ SỞ Đ T
Các n i dung chính c ươ g:
2.1. Logi ệ đề
2.2. Logi ị từ
2. . L t u ết t ợ
2.1. LOG ỆN ĐỀ
2.1.1. ệ đề
Mệ đề là những phát biểu ( âu) đú g oặ sai, ứ không thể vừa đú g vừa
sai.
dụ : á âu sau là á mệ đề
+ à Nội là ủ đô ủa ướ iệ Nam
+ ro g ập số ự iê ì 1+1 =2
+ 1+2 = 2
+ 2 là mộ số guyê ố
+ ủ đô ủa ướ Mỹ là Lo do
dụ : á âu sau k ô g là mệ đề
+ x- 1 =3
+ Bây giờ là mấy giờ ?
+ x –y=z
Các mệ đề đú g được nói là có giá trị â lý đú g (hay chân trị đú g), á mệ đề
sai được nói là có giá trị chân lý sai.
14
Người a ường dùng các chữ cái p,q,r,t, để đặt tên cho các mệ đề iá rị
â lý đú g đượ ký iệu là số oặ ( rue- Đú g), giá rị â lý sai đượ ký iệu
là 0 oặ (False - Sai).
2.1.2. é to trê ệ đề
a.Phép phủ định
Phủ định của mệ đề p là mộ mệ đề K ô g p ải là p và được ký hiệu là p
(đọc là KHÔNG p). Chân trị của p là 0 nếu chân trị của p là và gược lại.
P p
0
1
1
0
í ụ : o p là mệ đề 2 là mộ số guyê ố ì p là mệ đề 2 k ô g p ải là
số guyê ố N ư vậy p ó â rị 1 nên p ó â rị là 0.
í ụ: p 4 là số guyê ố ì p 4 k ô g p ải là số guyê ố p ó â
rị là 0 nên p ó â rị là 1.
b. Phép h i (phép AND - VÀ)
Mệ đề i của hai mệ đề p và q là mộ mệ đề được ký hiệu bởi pq (đọc là p
VÀ q). Chân trị của p q là 1 nếu chân trị của cả p và q đều bằng 1, trong tất cả các
rường hợp còn lại, p q có chân trị 0.
p q p q
0 0 0
15
0
1
1
1
0
1
0
0
1
í ụ : p 2 là số guyê ố , q à ội là ủ đô ủa iệ Nam K i đó pq là
mệ đề ó â rị là 1.
í ụ : cho p = « Hôm nay trời mưa và q ôm ay là ứ Ba ậy pq là mệ
đề ôm ay rời mưa và là ứ Ba .
c. Phép tuyển ( phép OR- HOẶC)
Mệ đề tu ể của hai mệ đề p và q được ký hiệu bởi pq (đọc là p HO C q). Chân
trị của pq là 0 nếu chân trị của cả p và q đều bằng 0, trong tất cả á rường hợp còn
lại pq có chân trị 1.
p q p q
0
0
1
1
0
1
0
1
0
1
1
1
d.Phép kéo theo
Mệ đề nếu p thì q được ký hiệu là p q (đọc là p KÉO THEO q). Bảng chân trị của
mệ đề ày ư sau :
p q p q
0
0
1
1
0
1
0
1
1
1
0
1
16
e.Phép tương đương Phép ké th hai chiều)
Mệ đề nếu p thì q và gược lại được ký hiệu p q (đọc là p KHI VÀ CHỈ KHI q).
Bảng chân trị của mệ đề ày ư sau :
p q p q
0
0
1
1
0
1
0
1
1
0
0
1
2.1.3. Dạ g ệ đề
Là các biểu thức logi được xây dựng bằng cách kết hợp các biến mệ đề với
nhau bởi các phép nối theo một thứ tự nhấ định. Mỗi dạng mệ đề có một chân trị
xá đị đối với từng bộ chân trị của các biến mệ đề. Tập tất cả các chân trị của dạng
mệ đề ứng với từng chân trị của các biến mệ đề lập thành bảng chân trị cùa dạng
mệ đề đó
Ví dụ : Dạng mệ đề: E(p, q, r) = p (q r) có bảng chân trị ư sau :
P q r q r E=p(qr)
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
Bài t p áp dụng: Lập bảng chân trị của các dạng mệ đề sau:
17
a) p (q r)
b) (p q) (p r)
c) (p q) (p r)
d) (p q) (p r)
2.1.4. Tươ g đươ g logi
Hai dạng mệ đề E và được gọi là ươ g đươ g logi ếu chúng có cùng một bảng
chân trị. Khi ấy ta viết E F và mệ đề dạng E F luôn mang chân trị bằng 1 cho
dù các biến có lấy giá trị ào đi ữa.
Ví dụ: Xét 2 mệ đề: p q và p q
P q p p q p q
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
N ư vậy ta nói 2 mệ đề rê là ươ g đươ g logi , và được viết là:
(p q) (p q)
2.1.5. ệ quả logi
Dạng mệ đề được gọi là hệ quả logic của dạng mệ đề E nếu E F luôn
có chân trị đú g K i đó a viết là E F. Ta có thể nói cách khác: E có hệ quả logic là
F.
2.1.6. gu ê tắ t t ế
1. Quy tắc 1: trong dạng mệ đề E, nếu ta thay thế biểu thức con F bởi một dạng
mệ đề ươ g đươ g logi ì dạng mệ đề u được vẫ ò ươ g đươ g logi
với E.
18
2. Quy tắc 2: Giả sử dạng mệ đề E(p, q, r,…) là một hằ g đú g Nếu ta thay thế
nhữ g ơi p xuất hiện trong E bởi một dạng mện đề tuỳ ý F (p’, q’, r’,…) ì dạng
mệ đề nhậ được theo các biế p, q, r,…, p’, q’, r’,… vẫn còn là một hằ g đú g
2.1.7. qu lu t logi
Với p, q, r là các biến mệ đề, 1 là hằ g đú g và 0 là ằ g sai, a ó á ươ g đươ g
logi ư sau:
1. Ph định c a ph định
p p
2. Quy tắc De Morgan
(p q) p q
và (p q) p q
3. Lu t giao hoán
p q q p
và p q q p
4. Lu t kết hợp
p (q r) (p q) r
và p (q r) (p q) r
5. Lu t phân bổ
p (q r) (p q) (p r)
và p (q r) (p q) (p r )
6. Luât luỹ đẳng
19
p p p
và p p p
7. Lu t trung hoà
p 1 p
và p 0 p
8. Lu t về phần tử bù
p p 0
và p p 1
9. Lu t thống trị
p 0 0
và p 1 1
10. Lu t hấp thụ
p (p q) p
và p (p q) p
Ví dụ 1: Hãy chứng minh dạng mệ đề sau là một hằ g đú g:
[(r s) [(r s) (t u)]] (t u)
Chứng minh:
Thay r s bởi p và t u bởi q, a đưa về bài toán chứng minh dạng mệ đề sau là
một hằ g đú g:
[p (p q)] q
20
Ta có: [p (p q)] q
[p (p q)] q
[(p p) (p q)] q
[0 (p q)] q
(p q) q
p q q
p 1 1
Ví dụ 2: Từ (p q) r, ta có:
(p q) r
p q r
p (q r)
p (q r)
p (q r)
N ư vậy : (p q) r p (q r)
2.1.8. qu tắ su iễ
1. Modus Ponens (khẳ g định)
[(p q) p] q
2. S llogis (T đoạn lu n)
[(p q) (q r)] (p r)
21
3. Modus Tollens (ph định)
[(p q) q] p
4. T đoạn lu n rời
[(p q) p] q
5. Quy tắc mâu thuẫn
[(p1 p2 … pn) q] [(p1 p2 … pn q) 0]
6. Quy tắc chứ g i t eo trường hợp
[(p r) (q r)] (p q) r)
Ví dụ: Chứng minh f(n) = n3 + 2n luôn chia hết cho 3.
Ta có: f(n) = n(n2 + 2). Lấy n là một số nguyên tuỳ ý, k i đó ó 2 rường hợp xảy ra :
TH1 : n chia hết cho 3, ư vậy dễ thấy f(n) chia hết cho 3. (1)
TH2: n không chia hế o 3, k i đó đặt n = 3k 1 (k là số guyê ào đó), a ó:
n2 + 2 = (3k 1)
2 + 2 = 9k
2 6k + 3 = 3(k
2 2k +1)
suy ra f( ) ũ g ia ết cho 3. (2)
Từ (1) và (2), ta kết luận f(n) chia hết cho 3 trong mọi rường hợp.
2.2. LOG Ị TỪ
2.2.1. ị từ
Là một khẳ g định P(x, y,…) ro g đó ó ứa một số biến x, y, ... lấy giá trị trong
những tập hợp o rước A,B,... sao cho:
a) Bản thân P(x, y,...) không phải là một mệ đề.
22
b) Nếu ay x, y,… bằng những phần tử cố đị ư g uỳ ý a A, b B,…thì ta
được một mệ đề P(a, b,…), ức là chân trị của ó oà oà xá đị K i đó x, y,…
gọi là các biến tự do của vị từ.
Nói một cách khác, một vị từ là một hàm số dạng:
f: X B
ro g đó: X B … và B = {0, 1}
Ví dụ: P( ) ‘‘ là một số nguyên tố’’ là một vị từ theo một biến tự do nN.
f: N B
Với n = 2, 5, 7, 11 ta có các mệ đề đú g P(2), P(5), P(7), P(11) : còn với n = 4, 8 thì
ta có các mệ đề sai P(4), P(8).
2.2.2. Lượ g từ
Giả sử p(x) là vị từ theo một biến tự do x , k i đó ó 3 rường hợp có thể xảy ra :
TH1 : khi thay x bởi một phần tử bất kỳ a , a đều được mệ đề đú g p(a)
TH2 : với một (hoặc một số) giá trị a A thì p(a) là mệ đề đú g, và với một số giá trị
b A thì p(b) là mệ đề sai.
TH3 : khi thay x bởi một phần tử bất kỳ a , a đều được mệ đề sai p(a).
Đối với TH1 thì mệ đề ‘‘với mọi x , p(x)’’ là một mệ đề đú g, ký iệu bởi
‘‘x , p(x)’’ Bản chất của mệ đề này là phép VÀ ()
Nếu TH1 hoặc TH2 xảy ra thì mệ đề ‘‘ ồn tại x , p(x)’’ là một mệ đề đú g, ký
hiệu bởi ‘‘ x , p(x)’’ Bản chất của mệ đề này là phép HO C ()
Các mệ đề x A, p(x) và x , p(x) được gọi là lượng từ hoá của vị từ p(x) bởi
lượng từ phổ dụng () và lượng từ tồn tại ().
23
Chú ý:
a. Trong mệnh đề lượng từ hoá, x không còn là biến tự do nữa mà nó bị ràng
buộc bởi á lượng từ.
b. TH3 ở trên có thể được viết lại : x A,p(x) N ư vậy, phủ định của
mệ đề x A, p(x) xảy ra khi TH2 hoặc TH3 xảy ra,tức là mệ đề x
A, p(x) là mệ đề đú g ú ra :
Phủ định của x A, p(x) là mệ đề x A,p(x)
Phủ định của x A, p(x) là mệ đề x A, p(x)
2.3. LÝ T UYẾT TẬP ỢP
Ở đây a ỉ nhắc lại một số khái niệm ơ bản nhấ , ũ g ư á ký iệu dùng trong lý
thuyết tập hợp mà thôi :
a) Nếu a là một phần tử thuộc tập hợp A, ta viết a , gược lại ta viết a A.
b) Tập hợp A thoả một tính chấ ào đó, ất ở đây được biểu diễ dưới
dạng một vị từ p(x), ta viết : A = {x U /p(x)}, ro g đó U được gọi là tập vũ
trụ.
Ví dụ : A = {x N / x là số nguyên tố}
A = {x Z / x2 <5}
c) Ngoài ra có thể biểu diễn tập hợp bằng cách liệt kê tất cả các phần tử của nó,
ví dụ 2 ở trên có thể được viết lại A = {-2, -1, 0, 1, 2}
d) Tập hợp không có phần tử nào cả gọi là tập hợp rỗ g, được ký hiệu là
e) Giả sử A và B là 2 tập hợp con của tập vũ rụ U, ta nói A là tập con của B (
ay được bao hàm trong B, hay B bao hàm A), ký hiệu A B nếu:
x U,(x A) (x B)
24
f) Nếu A B và B A, ta nói A bằ g B, được ký hiệu B N ư vậy rõ ràng
A = B khi và chỉ khi:
x U, (x A) (x B)
g) Hợp () , giao () và phần bù của tập hợp:
A B = {x U/ (x A) (x B)}
A B = {x U / (x A) (x B)}
Ā {x U / (x )}, Ā được gọi là phần bù của A trong U.
h) Một số tính chất trên tập hợp: Cho A, B, C là các tập con tuỳ ý của U, ta có:
i. Tính giao hoán:
A B = B A
A B = B A
ii. Tính kết hợp:
A (B C) = (A B) C
A (B C) = (A B) C
iii. Lu t De Morgan:
A B Ā B
A B Ā B
iv. Tính phân bố:
A (B C) = (A B) (A C)
A (B C) = (A B) (A C)
v. Phần tử trung hoà:
A = A
25
A U = A
vi. Phần bù:
A Ā U
A Ā
vii. Tính thống trị:
A U = U
A =
26
ƯƠNG
Đ T Á T N P ẦN Ơ N 3.1. Đ T ỂU DỮ L ỆU
Một kiểu dữ liệu bao gồm:
o Tập hợp các giá trị
o Hệ thố g á p ép oá ơ sở
Dựa trên các phép toán này, ta có thể đặc tả các phép toán còn lại.
Một phép toán (có thể được gọi là 1 hàm) là một ánh xạ riêng phần trên tập D
X :
yx
YXf
:
Domain : điều kiện x D
Where: y là ảnh của x.
D được gọi là miề xá định của f.
Ta có các kiểu dữ liệu ơ bả ư sau:
Ký hiệu Tên kiểu é to ơ sở
N Các số tự nhiên (số nguyên không âm)
+, –, *, /
>, >=, <, <=, =, !=
Z Các số nguyên
Q Các số hữu tỉ
R Các số thực
B Kiểu logic, gồm 2 giá trị True và
False , , , , , ,
27
C Kiểu các ký tự >, >=, <, <=, =, !=
S Các chuỗi ký tự
Xét kiểu dữ liệu chuỗi (S):
o Là tập hợp tất cả các chuỗi ký tự.
o á àm (p ép oá ) ơ sở bao gồm:
1. bs
BSRong
:
Domain:
Where: b=True s là chuỗi rỗng
2. sc
SCKhoitao
:
Domain:
Where: s là chuỗi gồm đú g ký ự là c
3. tsc
SSCChendau
),(
:
Domain:
Where: được tạo lập bằng cách chèn ký tự vào đầu chuỗi s
4. ts
SSXoadau
:
Domain: Rong(s)
W ere: được tạo lập bằ g á xóa đi ký ự đầu của s.
5. cs
CSPTdau
:
28
Domain: Rong(s)
Where: c là ký tự đầu tiên của chuỗi s
3.2. Đ T
3.2.1. ú u g k i đặ tả à ( ù g g gữ to ọ ) :
yx
YXf
:
Domain : điều kiện x D
Where: y là ảnh của x.
X: tập các giá trị nguồn
Y: tập các giá trị đ
D: Miề xá định của hàm
3.2.2. í ụ 1:
Đặc tả các hàm sau:
1. ìm ă bậc 2 của 1 số thực
2. Tìm phần nguyên của 1 số thực
3. Hàm DIV (2 số không âm)
4. Hàm MOD (2 số không âm)
Giải:
1.
)*()0(:
0:
:
xyyyWhere
xDomain
yx
RRf
29
2.
)1()0(
)1()0(:
:
:
kxkx
kxkxWhere
Domain
kx
ZRg
3.
)/(:
0!:
),(
:
bagkWhere
bDomain
kba
NNNDIV
4.
bbaDIVakWhere
bDomain
kba
NNNMOD
*),(:
0!:
),(
:
3.2.3. í ụ 2
Dựa vào á àm ơ sở trên kiểu dữ liệu chuỗi, ãy đặc tả các hàm sau:
1. f: xóa 2 ký tự đầu của 1 chuỗi
2. g:Tìm phần tử thứ 2 của 1 chuỗi
3. h:Chèn 1 ký tự vào ví trí thứ 2 của chuỗi
Giải:
1.
))((:
))((:
:
sXoadauXoadautWhere
sXoadauRongDomain
ts
SSf
2.
))((:
))((:
:
sXoadauPTdaucWhere
sXoadauRongDomain
cs
CSg
30
3.
)))((,(,(
)(:
)(:
),(
:
sXoadaucChendauchChendaut
sPTDauchCchWhere
sRongDomain
tcs
SCSh
Câu này còn có thể đượ đặc tả bằ g á k á ư sau (dựa vào 2 hàm
f và g của câu 1 và câu 2):
))()((
))((
))()((:
)(:
),(
:
sXoadautf
ctg
sPTDautPTDauWhere
sRongDomain
tcs
SCSh
hay có thể triể k ai đầy đủ ư sau:
))())(((
))(((
))()((:
)(:
),(
:
sXoadautXoadauXoadau
ctXoadauPTdau
sPTDautPTDauWhere
sRongDomain
tcs
SCSh
3.3. Đ T ĐỆ QUY
Đặc tả đệ quy thực chất là cách thứ đặc tả hàm theo dạng truy hồi. Mộ đặc tả
được gọi là đệ quy nếu trong phần biểu thức Where của hàm có sử dụ g đến
chính bả â àm đa g đượ đặc tả.
Ví dụ 1 : a xé àm ìm k ước của một chuỗi ký tự bất kỳ:
31
))((1)((
)0)((:
:
:
sXoadauLennsRong
nsRongWhere
Domain
ns
NSLen
Ví dụ 2 : Xét hàm tính tổng các phần tử trong mả g a, k ước n
MANG = Zn
)1,(]1[]!1[0(
)00(:
:
),(
:
naTongnatxnan
tnWhere
Domain
tna
NZNMANGTong
Ví dụ 3 : Xé àm đếm số lần xuất hiện của 1 số nguyên x trong mảng a, kích
ước n
),1,(1]1[0(
),1,(]!1[0(
)00(:
:
),,(
:
xnaDemdxnan
xnaDemdxnan
dnWhere
Domain
dxna
NZNMANGDem
Ví dụ 4 : Hàm kiểm tra mả g ă g dần
))1,(]2[]1[1(
)]2[]1[1(
)1(
)0(:
:
),(
:
naKTTangbnanan
Falsebnanan
Truebn
FalsebnWhere
Domain
bna
BNMANGKTTang
32
3.4. Á QUY TẮ TÍN TOÁN
Trong quá trình xây dựng các hệ thống phần mềm, đặc biệt là các hệ thống quản
lý luôn có 1 yêu cầu không thể thiếu là thực hiện việc tính toán theo 1 hoặc 1 số quy
tắc nhấ đị ào đó Do vậy, việ đặc tả các quy tắc này là cần thiế , để nhằm đảm bảo
cho việ oá được chính xác và đầy đủ.
Nguyên tắ u g k i đặc tả các quy tắc tính toán:
1. Đặ ê o á đại lượ g ó liê qua đến quá trình tính toán
2. Xá định kiểu dữ liệu của á đại lượng này
3. Đặc tả hàm tính toán cho từng quy tắc
Ví dụ : Ta xét phần mềm quả lý ư viện với yêu cầu tính toán tiền phạt cho
mỗi quyển sách khi trả sách trễ hạn với các yêu cầu khác nhau có thể ó ư sau :
a) Mỗi ngày trả trễ phạ 000đ
b) Mỗi ngày trả trễ phạ 000đ, ư g ừ ngày trễ thứ 5 trở đi ì p ạt
2000đ/ gày
c) Có 2 loại sách A và B. Hình thức phạt ư âu b), ư g mức phạt
khác nhau cho mỗi loại sách :
Loại A : 000đ và 2000đ
Loại B : 500đ và 2500đ
Giải :
Gọi t : số tiền phạt (t N)
n: số ngày trả trễ hạn (n N)
l: loại sách (l {A, B})
33
a)
ntWhere
Domain
tn
NNPhat
*1000:
:
:
b)
))4(*20004000()5((
)*1000)5((:
:
:
ntn
ntnWhere
Domain
tn
NNPhat
c)
))4(*25006000()5()((
)*1500)5()((
))4(*20004000()5()((
)*1000)5()((:
:
:
ntnBl
ntnBl
ntnAl
ntnAlWhere
Domain
tn
NNPhat
3.5. Á SƠ ĐỒ TRẠNG T Á
Mộ sơ đồ trạ g ái ường dùng các hình vẽ để mô tả trạng thái và hoạ động
của mộ đối ượ g, quá rì ào đó uy iê , việc sử dụng hình vẽ khi xử lý trên
máy tính lại tỏ ra hết sứ k ó k ă , độ chính xác lại không cao.
Ví dụ 1 : Sơ đồ hoạ động của 1 thang máy
Đi lê
Dừng
Đi xuống
34
Nguyên tắ u g k i đặc tả 1 sơ đồ trạng thái :
1. Gán các giá trị , 2, 3, … o á rạ g ái ó ro g sơ đồ
2. Gọi t1 : trạng thái hiện hành (t1N)
t2 : trạng thái có thể chuyể đến trực tiếp từ t1 (t2N)
3. Xây dựng các ràng buộc trên t1 và t2 dưới dạng một mệ đề
để mô tả các tình trạng có thể có của sơ đồ.
Để đặc tả sơ đồ trong ví dụ rê , a đặt :
1 : Đi lê
2 : Dừng
3 : Đi xuống
t1 : trạng thái hiện hành t2 : trạng thái có thể chuyể đến từ t1
a ó đặc tả :
))22(31(
))3212(21(
)2211(
tt
ttt
ttS
Ví dụ 2: Sơ đồ mô trả trạng thái của 1 quyể sá ro g ư viện
35
Để đặc tả sơ đồ trong ví dụ rê , a đặt :
1 : Trạng thái chuẩn bị
2 : Sẵn sàng
3 : Tu bổ
4 : o mượn
5 : Mất
t1 : trạng thái hiện hành t2 : trạng thái có thể chuyể đến từ t1
a ó đặc tả :
))5251(
))5222(41(
))22(31(
))524232(21(
))5222(11((
tt
ttt
tt
tttt
tttS
3.6. Á ĐỐ TƯỢNG N Ọ
Mộ điểm trên mặt phẳ g được biểu diễ dưới dạ g (x, y) ro g đó x và y là 2 số
thực biểu diễ oà độ và tu g độ của điểm đó a đị g ĩa kiểu dữ liệu :
Chuẩn bị
Sẵn sàng
Tu bổ
Mất
o mượn
36
DIEM = R R
M DIEM
Ký hiệu : M.x oà độ của M
M.y u g độ của M
Đặc tả đối ượng hình học trên mặt phẳ g là đặc tả hàm kiểm ra á điểm có
liên quan có thỏa á điều kiện ràng buộ để tạo ê đối tượng hay không.
Dạng thức chung :
,...,:
:
,...),(
:
21
21
MctrênMcácràngbuôbWhere
Domain
bMM
BDIEMDoituong N
Ví dụ: o , B, , D là á điểm Đặc tả các phát biểu sau :
a) , B là 2 điểm trùng nhau
b) , B, là 3 điểm thẳng hàng
c) , B, là 3 đỉnh của 1 tam giác
d) AB // CD
e) AB CD
f) là ru g điểm của AB
g) Hàm tính độ dài của đoạn thẳng AB
h) Hàm tính khoảng cách từ điểm đế đường thẳng qua BC
Giải :
37
a)
)....(:
:
),(
:
yByAxBxAbWhere
Domain
bBA
BDIEMDIEMTrung
b)
)0)!..(*)..()..(*)..((:
:
),,(
: 3
xAxCyAyByAyCxAxBbWhere
Domain
bCBA
BDIEMThangHang
c)
),,(:
:
),,(
: 3
CBAThangHangbWhere
Domain
bCBA
BDIEMTamGiac
d)
)0)..(*)..()..(*)..((:
),(),(:
),,,(
: 4
xDxDyAyByCyDxAxBbWhere
DCTrungBATrungDomain
bDCBA
BDIEMCungPhuong
e)
)0)..(*)..()..(*)..((:
),(),(:
),,,(
: 4
yDyDyAyBxCxDxAxBbWhere
DCTrungBATrungDomain
bDCBA
BDIEMVuongGoc
f)
)),(),(),,((:
),(:
),,(
: 3
CBDodaiCADodaiCBAThangHangbWhere
BATrungDomain
bCBA
BDIEMTrungDiem
g)
)..(*)..()..(*)..(:
:
),(
:
yAyByAyBxAxBxAxBrWhere
Domain
rBA
RDIEMDIEMDodai
38
h)
)),(
),,,(),,(
),,((
)0),,((:
),(:
),,(
: 3
HADodaid
CBHAVuongGocHCBThangHangDIEMH
CBAThangHang
dCBAThangHangWhere
CBTrungDomain
dCBA
RDIEMKhoangCach
3.7. Á R NG UỘ
3.7.1. Rà g bu trê kiểu ữ liệu
Gọi T là tập hợp nền của kiểu dữ liệu T
Ràng buộc trên kiểu dữ liệu T là hàm kiểm tra tính hợp lệ :
bt
BTf
:
Domain:
Where: b t thỏa ràng buộc
Ví dụ : Kiểu dữ liệu NGAY, biểu diễn một ( gày, á g, ăm) Kiểu có thể có
các tập hợp nề ư sau :
a) NGAY NNZ dNGAY d = (ng, t, n)
b) NGAY {1..31}{1..12}Z dNGAY d = (ng, t, n)
c) NGAY NZ dNGAY d = (stt, n)
d) NGAY {1..366}Z dNGAY d = (stt, n)
Đặc tả hàm kiểm tra ngày hợp lệ dựa trên 4 tập hợp nền ở trên.
Giải :
39
rướ iê , a đặc tả hàm kiểm ra ăm uận :
))0)!100,(()0)4,((
)0)400,(((:
:
:
nModnMod
nModbWhere
Domain
bn
BZNhuan
Sau đó đặc tả các hàm kiểm tra tính hợp lệ đối với từng tập hợp nền:
a) NGAY NNZ
))29).(2.(
)28).(2.(
)30.}11,9,6,4{.(
)12.1.(
)31.1.((:
:
:
dndNhuantd
dndNhuantd
ngdtd
tdtd
ngdngdbWhere
Domain
bd
BNGAYHopLe
b) NGAY {1..31}{1..12}Z
))29.).(2.(
)28.).(2.(
)30.}11,9,6,4{.((:
:
:
ngdndNhuantd
ngdndNhuantd
ngdtdbWhere
Domain
bd
BNGAYHopLe
c) NGAY NZ
))365.).((
)366.1.((:
:
:
sttdndNhuan
sttdsttdbWhere
Domain
bd
BNGAYHopLe
40
d) NGAY {1..366}Z
)365.).((:
:
:
sttdndNhuanbWhere
Domain
bd
BNGAYHopLe
3.7.2. Rà g bu trê sơ đồ logi
Các ràng buộ rê sơ đồ logic chính là các ràng buộc toàn vẹ ro g ơ sở dữ
liệu. Việ đặc tả các ràng buộ rê sơ đồ logic sử dụng ngôn ngữ đại số quan hệ (các
vị từ và lượng từ).
Các ràng buộc toàn vẹn bao gồm :
o Các ràng buộc khóa nội, khóa ngoại
o Ràng buộc thuộc tính
o Ràng buộc thời điểm
o Ràng buộc liên thuộc tính
o v.v...
Ví dụ 1 : Xét phần mềm quả lý ư viện với sơ đồ logi ư sau :
Độc giả (MĐ , MLĐ , ọ ê , Địachỉ, Điệnthoại)
Loại Đ (MLĐ , Tên, Ghichú)
Thể loại (MTL, Tên, Ghichú)
Độc giả
Loại Đ
Mượn Mượn
Sách Thể loại
41
Sách (MS, M L, ê , NămXB, á giả)
Mượn (MMượn, MĐ , Ngàymượn)
Mượn (MMượn, MS, Ngàytrả)
ãy đặc tả các ràng buộc sau :
o Ràng buộc về khóa nội, khóa ngoại
a) MĐ là duy ấ ro g Độc giả
b) MTL của Sách phải có trong Thể loại
o Ràng buộc thuộc tính :
c) Ngày mượn phải khác rỗng
o Ràng buộc thời điểm :
d) Tại 1 thời điểm, sách chỉ có thể o độc giả mượn
o Ràng buộc liên thuộc tính :
e) Ngày trả sau gày mượn
Giải :
a) MDGdMDGdddDocgiadd .2.1212,1
b) MTLlMTLdTheloailDocgiad ..|
c) NULLNgaymuonmMuonm .
d)
))..1(
)..1(
)..1(
))..1..1(
1.1(
...
NgaytractmNgaymuonm
NgaymuonmNgaymuonm
MSctmMSctm
MMuonctmMMuonctmMMuonmMMuonm
CTMuonctmMuonm
MMuonctmMMuonmCTMuonctmMuonm
42
e) NgaytractmNgaymuonm
MMuonctmMMuonmCTMuonctmMuonm
..
...
Ví dụ 2: Xét phần mềm quản lý giải bó g đá với sơ đồ sau :
Đặc tả các ràng buộc :
a) Các trọng tài trong cùng 1 trậ đấu phải cùng thuộc 1 quốc gia
b) Trong 1 trậ đấu chỉ có 1 trọng tài chính
c) Trọ g ài và á đội i đấu không cùng thuộc 1 quốc gia
d) Mội trậ đấu chỉ ó 2 đội tham gia
Đội bóng
Tham gia
Trậ đấu Điều khiển
Trọng tài
43
ƯƠNG 4
Đ T TÍN ĐÚNG ĐẮN
4.1. Á P ƯƠNG P ÁP Ể TR TÍN ĐÚNG ĐẮN
4.1.1. Đặt ấ đề
Ta xét hàm f với đặc tả ư sau:
yx
YXf
:
Domain : P(x)
Where: Q(x, y)
Với ài đặ ươ g ứng:
Y f(X)
{
//…
}
Bài oá đặt ra ở đây là ãy o biế ài đặt trên có phù hợp với đặc tả đã ó ay
không?
Đây là bài oá về kiểm ra đú g đắn của hàm. Nếu ài đặt cụ thể của hàm f
là phù hợp với đặc tả, a ói ài đặ đó là đú g, gược lại, ài đặ đó là ưa xá
Để kiểm ra đú g đắn của àm sau k i ài đặ , gười ta sử dụng một số p ươ g
pháp khác nhau, hoặc cũng có thể kết hợp đồng thời á p ươ g p áp ày ro g á
phần tiếp theo của ươ g, ú g ôi sẽ giới thiệu các tiếp cận của 1 số p ươ g p áp
phổ biến hiện nay.
44
4.1.2. iể tr đ g
P ươ g p áp kiểm ra độ g (dy ami es i g), ay ò được gọi là p ươ g p áp hử
nghiệm được thực hiệ ư sau :
1. Lập các bộ số làm thử nghiệm, ay ò được gọi là các bộ dữ liệu thử
nghiệm (test case) : YXyx ),( .
2. Lầ lượt cho thực hiện hàm f với các giá trị x đã ọn, ghi nhận lại kết
quả y0.
3. So sánh y và y0.
P ươ g p áp ày là p ươ g p áp kiểm thử chủ đạo được áp dụng trong giai
đoạn lập rì và giai đoạn kiểm thử của quy trình phát triển phần mềm trên thế giới
hiện nay.
Các công cụ hỗ trợ p ươ g p áp kiểm ra động (thử nghiệm) :
Công cụ phát sinh các dữ liệu thử nghiệm.
Công cụ cho phép thực thi hàm và ghi nhận kết quả.
Công cụ kiểm tra tính phù hợp của ài đặt hàm so với đặc tả.
Các công cụ tự động phát sinh hàm từ đặc tả, cho thực hiện hàm phát
sinh và tự động kiểm tra kết quả thực hiện. Những công cụ tự động dạng
này hiện vẫ ưa p ổ biến, số lượng lẫn chấ lượng của các công cụ này
vẫ ưa đáp ứ g được sự mo g đợi của giới Công nghệ phần mềm.
P ươ g p áp kiểm ra độ g ày ò được biế đến với 1 tên gọi khác là
"kiểm thử hộp đe " (bla k box es i g), vì p ươ g p áp k ô g ú rọng
đế ài đặt bên trong của các hàm, nó chỉ qua âm đến kết quả thực hiện
của àm để khẳ g đị àm đó ó p ù ợp với đặc tả không mà thôi,
oà oà ưa đề cập đến việc sửa chữa ài đặt của hàm lại sao cho phù
hợp.
45
4.1.3. iể tr tĩ
P ươ g p áp kiếm ra ĩ , ò được gọi là "kiểm thử hộp trắng" (white box testing).
P ươ g p áp ày ực hiệ eo ơ ế lầ lượ đọc các lệ ro g ươ g rì guồn
(phầ ài đặt của àm), sau đó ứng mình bằng tay, hoặc chứng minh tự động tính
đú g đắn của hàm sau từng lệnh.
Cho hàm f với đặc tả và ài đặ ươ g ứng :
yx
YXf
:
Domain : P(x)
Where: Q(x, y)
Y f(X)
{
lệnh 1;
lệnh 2;
…
lệnh k;
From P(x)
Q1(x, y) lệ 1 được thực hiện.
Q2(x, y) lệ 2 được thực hiện.
...
Qk(x, y) lệ k được thực hiện.
Infer Q(x, y)
46
4.2. CH NG N Ớ Á LUẬT SUY D ỄN
4.2.1. ở đầu
Cho E1, E2 là 2 mệ đề. Trong quá trình chứng minh, nếu suy diễ được E1
ì ũ g suy diễ được E2, ta ký hiệu :
21 EE hay 2
1
E
E
Nếu 21 EE và 12 EE thì ta ký hiệu :
1
2
2
1
2
1
E
Evà
E
E
E
E
4.2.2. lu t su iễ
4.2.2.1. Các luật suy diễn trên phép phủ định )
E
Evà
E
E
(-1)
4.2.2.2. Các luật suy diễn trên phép tuyển ()
1. Suy diễn mở r ng: Nếu đã ó E rồi thì có thể suy diễn là có E
hoặc là có bất cứ thứ gì khác nữa.
XE
E
;
EX
E
(-MR)
Ví dụ : ôi đã ó à ậy có thể ói " ôi đã ó à oặc xe",
ay " ôi đã ó xe oặc nhà", bất kể là ôi đã ực sự có xe hay
ưa
2. Suy diễ t eo trường hợp : a đã ó E oặc E2 (ít nhất 2 trong
2 thứ). Nếu từ E1 suy diễ ra được X, từ E2 ũ g suy diễ ra được
X N ư vậy ta suy diễ ra được X.
X
XEXEEE 2;1;21
(-TrH)
47
Ví dụ : Nếu đi làm êm ì ôi sẽ có tiền.
Nếu được nhận học bổng thì tôi ũ g sẽ có tiền
Mà hiện giờ ôi đã đi làm êm oặ đã ận học
bổng.
Vậy tôi có tiền.
3. De Morgan:
1
)21(
E
EE
;
2
)21(
E
EE
(-DM)
hay : 21
)21(
EE
EE
(chiều thuận)
Ví dụ : Tôi không có xe hay nhà gì cả. Vậy tôi không có xe, mà
ũ g ẳng có nhà.
4. Tổng hợp trên phép tu ể :
)21(
2;1
EE
EE
(-TH)
hay : )21(
21
EE
EE
(chiều đảo)
Ví dụ : Ngược lại, ôi k ô g ó xe, ôi ũ g ẳng có nhà. Vậy tôi
chẳng có xe hay nhà gì cả.
5. Thay thế trê é tu ể :
XE
XEEE
1
2;21 ;
2
1;21
EX
XEEE
(-TT)
6. Gi o o trê é tu ể :
12
21
EE
EE
(-GH)
7. Kết hợ trê é tu ể :
3)21(
)32(1
EEE
EEE
(-KH)
48
8. Phân phối trê é tu ể :
)31()21(
)32(1
EEEE
EEE
;
)32(1
)31()21(
EEE
EEEE
(-PP)
4.2.2.3. Các luật suy diễn trên phép h i ()
a)
21
)21(
EE
EE
và
)21(
21
EE
EE
(-1)
Ví dụ : ôi đã ó ả xe lẫn nhà. Vậy không thể có chuyện tôi
k ô g ó xe ay k ô g ó à, và gược lại.
b) Suy diễn thu hẹp (rút gọn) :
1
21
E
EE và
2
21
E
EE (-RG)
Ví dụ : ôi đã ó ả xe lẫn nhà. Vậy tôi có xe.
ôi đã ó ả xe lẫn nhà. Vậy tôi có nhà.
c) Tổng hợp trên phép i :
21
2;1
EE
EE
(-TH)
Ví dụ : ôi đã ó xe ôi ũ g ó à ậy tôi có cả xe lẫn nhà.
d) Thay thế trê é i:
XE
XEEE
1
2;21 ;
2
1;21
EX
XEEE
(-TT)
Ví dụ : ôi đã ó ả xe lẫn nhà. Nếu ó à ì ôi ó đất. Vậy tôi
có cả xe lẫ đất.
e) Phân phối trên phép i:
)31()21(
)32(1
EEEE
EEE
;
)32(1
)31()21(
EEE
EEEE
(-PP)
49
4.2.2.4. Các luật suy diễn trên phép kéo theo ()
a) Suy diễn theo lu t bài tam :
1EE (BT)
b) Suy diễn dựa trên mẫu thuẫn :
X
EE 1 (MT)
c) Suy diễn kéo theo :
21
21
EE
EE
;
21
21
EE
EE
(-1)
d) Suy diễ tươ g đươ g:
21
)12()21(
EE
EEEE
(-2)
4.2.3. ứ g i lu t su iễ
4.2.3.1. Dạng thức :
Để chứng minh luật suy diễn : F
E, ta áp dụng dạng thứ ư sau :
From E
Kết quả 1 Luật suy diễn áp dụng(các kết quả sử dụng)
Kết quả 2 Luật suy diễn áp dụng(các kết quả sử dụng)
...
Infer F
50
4.2.3.2. Ví dụ
Chứng minh lại các luật suy diễn sau :
1. 1
21
E
EE
Giải :
1. From 21 EE (h)
1. )21( EE -1(h)
2. 1E -DM(1)
Infer E1 -1(2)
2. 21
2;1
EE
EE
From 2;1 EE (h)
1. 2;1 EE -1(h)
2. )21( EE -TH(1)
Infer 21 EE -1(2)
3. XE
XEEE
1
2;21
From XEEE 2;21 (h)
1. 1E -RG(h)
2. 2E -RG(h)
51
3. X h(1)
Infer XE 1 -TH(1,3)
4. XE
XEEE
1
2;21
From XEEE 2;21 (h)
1. From 1E (h1)
Infer XE 1 -MR(h1)
2. From 2E (h2)
2.1 X h(h2)
Infer XE 1 -MR(2.1)
Infer XE 1 -TrH(h,1,2)
52
ƯƠNG 5
NG N NGỮ Đ T Z Giới t iệu
Ký p áp Z, ay ò được gọi là ngôn ngữ Z được xây dựng dựa trên lý thuyết tập
hợp và logic toán họ Đây là một ngôn ngữ toán học chặt chẽ, được sử dụng chủ yếu
ro g đặc tả hình thứ để đặc tả các yêu cầu chứ ă g ủa 1 hệ thố g, đặc biệt là hệ
thống phần mềm.
Ngôn ngữ Z k ô g được thiết kế để mô tả các yêu cầu phi chứ ă g ủa hệ
thống, ví dụ ư ô g dụng, hiệu ă g, k ước hay độ tin cậy của hệ thống. Ngôn
ngữ ũ g k ô g được thiết kế o á đặc tả theo thời gian hay xử lý song song. Muốn
làm đượ điều này, ta phải kết hợp Z cùng với các công cụ khác nữa.
5.1. t à ầ g gữ
5.1.1. Logi to ọ
5.1.1.1. L gic mệnh đề
Các khái niệm về logic mệ đề ũ g ư ệ thống ký hiệu của logic mệ đề
trong ký pháp Z hoàn toàn giống với ngôn ngữ toán họ ô g ường.
Có 5 phép toán mệ đề trong ngôn ngữ Z được liệt kê trong bả g dưới đây, với
độ ưu iê giảm dần từ trên xuố g dưới :
Phép toán Ý g ĩa
Phủ định
Tuyển
Hội
Kéo theo
ươ g
đươ g
53
Ý g ĩa ủa mỗi p ép oá đã đượ rì bày ro g ươ g 2 ( á ơ sở của
đặc tả). Do vậy, phầ ày xi được phép không nhắc lại chi tiết nữa.
5.1.1.2. L gic vị từ
Các khái niệm và đị g ĩa ủa logic vị từ ũ g oà oà giố g ư ro g
toán học, ngoại trừ ký hiệu có khác biệt.
a) Cú pháp chung c a 1 vị từ sử dụ g lượng từ:
Q x : A | p q
ro g đó:
Q : lượng từ ( hoặc ).
x : biến ràng buộc.
A : tập các giá trị của x.
p : ràng buộc trên biến.
q : vị từ.
x : A | p q được phát biểu ư sau: “ ồn tại 1 giá trị x thuộc về tập A, sao
cho x thỏa p ì a ó q”
x : A | p q được phát biểu ư sau: “ ới mọi giá trị x thuộc về tập A, sao
cho x thỏa p ì a ó q”
Ta có các phát biểu ươ g đươ g ư sau:
qpAxqpAx :|:
qpAxqpAx :|:
Ví dụ 1: Vị từ “ ồn tại 1 số tự nhiên x lớ ơ 5” được viế ư sau ro g ký
pháp Z:
5: xNx
N ư vậy, ký hiệu thuộc về 1 tập hợp trong Z là dấu hai chấm (:), thay vì là dấu
ư rong toán học.
54
Ký hiệu “sao o” sử dụng dấu gạ đứng ( | ), và ký hiệu “ ì” sử dụng dấu
chấm tròn ().
Ví dụ 2: ươ g ự ư ế đối với lượng từ “với mọi” “ ới mọi y thuộc về
tập số tự nhiên, y lớ ơ ay bằ g 0”
0: yNy
b) “Tồn tại ít nhất 2 giá trị thỏ điều kiệ ” được biểu diễ ư sau:
qpyxAyx )(|:,
“Tồn tại duy nhất 1 giá trị thỏ điều kiệ ” được biểu diễ ư sau:
qpAx |:1
Ví dụ 3: Phát biểu “ ó duy ất 1 quyể sá rê bà ” được biểu diễ dưới
dạng vị từ ư sau:
)|:():( bcDeskcBookscDeskbBooksb
Deskx ó g ĩa là quyển sách x nằm trên bàn.
c) Ký pháp-:
Để xá đị đối ượng duy nhất trong tập hợp thỏa điều kiện, ngôn ngữ Z dùng 1
ký p áp được gọi là ký pháp-, cụ thể ư sau:
pAx |:
và đượ đọc là: “ ó u ất 1 giá trị x thu c về t s o o ”.
Khi ta ký hiệu: )|:( pAxy tức là y là giá trị duy nhất thuộc tập A sao cho p
đú g
Ví dụ 4: a ói “2 là số duy nhất thuộc về tập số tự nhiên thỏa 4+ 6”
55
)64|:(2 nNn
5.1.2. L t u ết t ợ
ũ g ươ g ự ư ro g p ần Logic toán họ đã rì bày ở trên, các khái niệm
trong lý thuyết tập hợp của ngôn ngữ Z hoàn toàn giống với ngôn ngữ toán học
ô g ường.
1. Tập hợp được biểu diễ dưới dạng liệt kê :
S == {a, b, c}
2. Tập hợp được biểu diễ dưới dạng vị từ :
S == {x :X | p(x)}
3. Tập hợp rỗng :
S ==
4. Để biểu diễn phát biểu : ‘giá rị x thuộc về tập S’, a dù g ký iệu :
x S
5. Để biểu diễn phát biểu : ‘giá rị x không thuộc thuộc về tập S’, a
dùng ký hiệu :
x S (x S)
6. Các phép toán trên tập hợp
a. Giao : A B = {x :U | xA xB}
b. Hợp : A B = {x :U | xA xB}
c. Hiệu : A \ B = {x :U | xA xB}
d. Tập con : BxAxBA
56
e. Tập chứa trong : AxBxBA
f. Tập bằng nhau : ABBABA
g. BABABA
h. BABABA
7. Tập tất cả các tập con của 1 tập hợp (Power set)
Ký hiệu : P X
Ví dụ : X == {1, 2}
P X = {, {1}, {2}, {1, 2}}
8. Tích Decartes của 2 hay nhiều tập hợp.
5.1.3. à à qu ệ
5.1.3.1. Quan hệ 2 ngôi
Nếu X, Y là các tập hợp, ta ký hiệu : XY là tập tất cả các quan hệ 2 ngôi giữa
X và Y.
Ta có: XY == P(XY)
Mỗi phần tử của XY là một bộ có thứ tự (x, y) ro g đó x được lấy từ tập X
và y được lấy từ tập Y
5.1.3.2. Miền xác định và miền giá trị
Miề xá định của 1 quan hệ được ký hiệu là dom, là tập hợp tất cả các giá trị x
thuộc về tập X sao cho x có ảnh y thuộc Y qua R.
dom R }|;{ xRyxYyXx
hay ta có thể biểu diễ eo á k á ư sau:
57
dom R }:|:{ RyxYyXx
Miền giá trị của quan hệ được ký hiệu là ran, là tập hợp tất cả các giá trị của y
thuộc về tập Y sao cho y là ảnh của 1 giá trị x thuộc tập X qua R.
ran R }|;{ yRyxYyXx
hay ta có thể biểu diễ eo á k á ư sau:
ran R }:|:{ RyxXxYy
5.1.3.3. Hàm
Xét quan hệ R trên 2 tập hợp X và Y, nếu mỗi phần tử thuộc tập X có nhiều nhất
1 ảnh y thuộc tập Y qua R thì ta nói quan hệ là àm đi ừ tập X đến tập Y.
àm được phân chia thành 2 loại chính: hàm riêng phần và hàm toàn phần.
5.1.3.4. Hàm riêng phần
Một hàm riêng phần từ tập X đến tập Y là 1 quan hệ trên tập X và tập Y, biến
mỗi giá trị xX thành nhiều nhất m t giá trị yY. Ký hiệu:
}:,;:|:{ 212121 yyfyxfyxYyyXxYXfYX
5.1.3.5. Hàm t àn phần
}:{ Xdom oYXfYX
58
5.2. Giả đồ (s e s)
5.2.1. Giới t iệu u g
Trong ngôn ngữ Z có 2 thành phần ngôn ngữ chính : ngôn ngữ toán và ngôn ngữ
giả đồ. Ngôn ngữ toán họ được sử dụng trong nhiều phần khác nhau của giai đoạn
thiết kế : đặc tả á đối ượ g, đặc tả các ràng buộc và mối quan hệ giữa chúng, v.v...
ro g k i đó, gô gữ giả đồ đượ dù g để tạo nên các bảng mô tả, kết hợp, đó g
gói các phầ ô g i k á au, đồng thời đặ ê o ú g để sử dụng lại cho các
mụ đ k á
Việ đị g ĩa và đặ ê , ũ g ư k ả ă g ái sử dụng 1 thành phầ , đối
ượ g ào đó là ết sức cần thiế o quá rì đặc tả Nó giúp o á đặc tả ngắn gọn,
chính xác, tránh trùng lắp và rõ ràng, dễ hiểu.
5.2.2. Đị g ĩ
Giả đồ (schema) là cú pháp của Z o p ép gười đặc tả đị g ĩa k ái
niệm, 1 yếu tố mới gồm nhiều thành phần thông tin khác nhau, có ràng buộc với nhau,
giố g ư k ái iệm cấu trúc trong các ngôn ngữ lập rì ; đồng thời đặt tên cho cấu
trúc này.
Một giả đồ bao gồm 2 phần: phần khai báo các biến và phần vị từ diễn tả các
ràng buộc trên những biến này. Ta có thể biểu diễn một giả đồ theo 1 trong 2 dạng
sau :
Theo chiều ngang :
[khai báo | ràng bu c]
Theo chiều dọc :
59
khai báo
ràng bu c
Ví dụ :
hay :
5.2.3. To tử đặt tê
Nhằm mụ đ đặt tên cho 1 giả đồ, tiện cho việc sử dụng lại sau này, ngôn
ngữ Z cung cấp 1 toán tử riê g, được ký hiệu là : , để thuận lợi cho việc soạn thảo,
ký hiệu ày được viết lại thành ^=
Tên ^= [khai báo | ràng bu c]
khai báo
ràng bu c
Ví dụ :
hay :
Tên
60
5.2.4. Giả đồ tươ g đươ g
Hai giả đồ được gọi là ươ g đươ g au ếu chúng có cùng các biến và có
cùng ràng buộc giống nhau trên các biến này.
Ví dụ : 2 giả đồ sau đây là ươ g đươ g :
và
5.2.5. t số g i ú
Để giả đồ đơ giản và dễ đọ ơ , a ó ể thực hiện ngắt các khai báo ra thành
nhiều dòng khác nhau, mỗi khai báo trên 1 dòng và giả lược các dấu chấm phẩy
( ; ) gă á K i đó p ép ối giữa các dòng này mặc nhiên là phép nối liền -
(conjunction)
Ví dụ : giả đồ trong ví dụ ở phần trên
có thể được biểu diễn lại ư sau :
61
Nếu 1 giả đồ đơ giản chỉ khai báo các biến mà không nêu ra ràng buộc cụ thể
trên các biến này thì ta có thể bỏ phần vị từ bê dưới đi dụ :
K i đó, giản đồ sẽ ươ g đươ g với giả đồ sau :
5.2.6. Giả đồ đượ sử ụ g ư 1 kiểu ữ liệu
Trong ngôn ngữ Z, một kiểu dữ liệu có thể là 1 tập o rước (N, Z, Q, R, ...), 1
tập Power set, 1 kiểu tự do hoặc là 1 tích Decartes của nhiều tập hợp. Ngoài ra, ta có
thể sử dụng giả đồ ư kiểu dữ liệu, sau k i đã đặt tên cho giả đồ đó bằng phép
oá đặt tên ^=.
Ví dụ ta có giả đồ :
N ư vậy khi khai báo :
s : SchemaOne
tức là s là một biến, 1 phần tử thuộc kiểu SchemaOne, s sẽ bao gồm 2 thành phần: a là
1 số nguyên và c là 1 tập con gồm các số nguyên.
62
Ví dụ 2 : a đị g ĩa kiểu dữ liệu Date, bao gồm 2 ô g i là ( á g, gày) ư
sau :
rước hế , a ó đị g ĩa kiểu dữ liệu tự do để mô tả các tháng, bao gồm 12 giá trị
hằng riêng lẻ ư sau :
Sau đó a đị g ĩa kiểu Date :
5.2.7. Giả đồ đượ sử ụ g tro g k i b o
Một giả đồ, sau k i đượ đị g ĩa và đặt tên, có thể được sử dụng trong bất
kỳ 1 khai báo nào. Kết quả là các biến có trong giả đồ sẽ có mặ ro g k ai báo đó,
cùng với những ràng buộ ươ g ứ g đã quy định trên giả đồ.
Xét ví dụ sau, với giả đồ SchemaTwo, gần giống với S emaO e ư g ó
thêm 1 số ràng buộc, tập c phải khác rỗ g, đồng thời a phải là 1 phần tử của c.
K i đó ập hợp :
63
sẽ bao gồm tất cả các tập con c Z và c có chứa phần tử số 0. Ta có thể biểu diễn tập
hợp ày eo á ô g ường, không sử dụng giả đồ ư sau :
hoặ ũ g ó ể biểu diễn theo 1 cách khác, sử dụ g đối ượng thuộc kiểu
SchemaTwo :
Ví dụ 2 : Trở lại giả đồ mô tả kiểu Date ở trên :
Nếu ta có thể định g ĩa ập á á g ó 3 gày ư sau :
ay ói á k á , đó là ập :
5.2.8. Giả đồ đượ sử ụ g tro g biểu t ứ lượ g từ
N ư đã k ẳ g định, một giả đồ có thể được sử dụ g ư kiểu dữ liệu nên nó
có thể xuất hiện trong các biểu thứ lượng từ. Ví dụ :
hay
64
Vị từ
còn có thể được phát biểu eo á k á ư sau :
5.2.9. Giả đồ đượ sử ụ g ư 1 ị từ
Xét giả đồ S ema ree ư sau :
Ta có thể phát biểu :
để diễn tả rằng bất kỳ số nguyên a và tập số c nào thỏa ràng buộc trong SchemaThree
ì ũ g ỏa ràng buộc trong SchemaTwo.
Phát biểu rê ươ g đươ g với phát biểu sau :
N ư vậy, ta nhận thấy toàn bộ phần khai báo của 2 giả đồ đã đượ lược bỏ, chỉ có
phần ràng buộ là được giữ lại.
65
5.2.10. Dạ g uẩ 1 giả đồ
K i đị g ĩa giả đồ, phần khai báo của giả đồ bả â ó đã ứa sẵn 1
số ràng buộc nhấ định. Chính vì vậy, khi sử dụng giả đồ ư vị từ thì các ràng buộc
ày ũ g dễ bị "bỏ quên", do phần khai báo của giả đồ đã được giả lược (xem phần
trên).
Vì vậy, để tránh gây nhầm lẫn, ta nên chuyển giả đồ về một dạng mới sao cho
tất cả các ràng buộ đều nằm ở phần ràng buộ bê dưới. Một giả đồ theo dạng này
được gọi là giả đồ chuẩn, và thao tác chuyển toàn bộ ràng buộc xuống phầ dưới của
giả đồ được gọi là chuẩn hóa giả đồ.
Ví dụ : Xét giả đồ sau :
Thoạt nhìn, ta có thể g ĩ giả đồ ày ươ g đươ g với giả đồ SchemaTwo,
tuy nhiên, ngay trên bản thân kiểu số tự iê N đã ó rà g buộc rồi. Do vậy, ta chuẩn
hóa nó lại ư sau :
Ví dụ 2 : Xét giả đồ Date ở trên :
66
Ta chuẩn hóa giả đồ này lại ư sau :
5.2.11. Đặt lại tê t à ầ tro g giả đồ
ro g quá rì đặc tả, đôi k i ần phải đặt lại tên các thành phần trong 1 giản
đồ. Bằng cách này ta có thể tạo nên 1 giả đồ mới có cùng kết cấu và ràng buộc với
giả đồ ũ ư g ó á à p ần với ê và ý g ĩa k á đi
ú p áp để đổi tên 1 giả đồ :
Nếu Schema là 1 giả đồ, ta ký hiệu :
là giả đồ được tạo nên bằ g á đổi tên thành phần tên là old trong Schema thành
new.
Ví dụ : trong giả đồ SchemaTwo, nếu thay a bằng q và c bằng s, ta có :
k i đó, giả đồ kết quả sẽ ươ g đươ g với giả đồ :
67
ươ g ự ư vậy, nếu muố đị g ĩa kiểu dữ liệu StartDate từ kiểu dữ liệu Date, ta
có thể làm ư sau :
K i đó, giả đồ sẽ ươ g đươ g :
Nếu a đị g ĩa êm giả đồ FinishDate :
K i đó, S ar Da e và i is Da e đượ xem ư 2 kiểu dữ liệu khác nhau, mặc dù
ú g đều có 2 thành phần và có các ràng buộ ươ g ự ư au
5.3. é to trê giả đồ
5.3.1. P é ối liề ( o ju tio )
Cho 2 giả đồ S và được thể hiệ ư sau, với P và Q là 2 vị từ diễn tả các ràng buộc
lên các biế ươ g ứng:
68
Ta ký hiệu :
S T
để biểu diễn phép nối liền của 2 giả đồ S và T. Kết quả sẽ là 1 giả đồ mới được tạo
nên bằng cách gộp các biến trong S và T lại, đồng thời thực hiện phép nối liền trên 2 vị
từ ràng buộc P và Q.
Lưu : Nếu trong 2 giả đồ S và T có 1 thành phần giống nhau thì thành phần này
phải có kiểu giống nhau ở cả 2 giả đồ. Nếu không giả đồ S T sẽ k ô g xá định.
5.3.2. P é đổi tê (De or tio )
Giả sử ta có giả đồ State mô tả 1 trạng thái của hệ thống, có 2 thành phần a, b với ràng
buộc là P
Mỗi đối ượng s : State biểu diễn 1 trạng thái hợp lệ của hệ thống.
Để biểu diễn 1 thao tác lên 1 trạ g ái ào đó, a ần sử dụng 2 trạng thái : trạng thái
rước khi thực hiện thao tác và trạng thái sau khi thực hiệ ao á đó Để phân biệt 2
trạ g ái ày, a dù g p ép đặ ê để tạo nên 1 giả đồ mới, bằng cách thêm dấu nháy
(’) vào sau ê giả đồ ũ g ư ê ất cả các biế được khai báo trong giả đồ :
69
Để đặc tả thao tác, ta có thể đưa ả 2 trạ g ái S a e và S a e’ vào p ần khai báo của
giả đồ. Một giả đồ thao tác sẽ có dạng :
Ngôn ngữ Z quy định 1 cách thức biểu diễn cả 2 giả đồ S a e và S a e’, á ức biểu
diễ đó ư sau :
5.3.3. P é ối rời (Disju tio )
Cho 2 giả đồ S và được thể hiệ ư sau, với P và Q là 2 vị từ diễn tả các ràng buộc
lên các biế ươ g ứng:
Ta ký hiệu :
S T
70
để biểu diễn phép nối rời của 2 giả đồ S và T. Kết quả sẽ là 1 giả đồ mới được tạo
nên bằng cách gộp các biến trong S và T lại, đồng thời thực hiện phép nối rời trên 2 vị
từ ràng buộc P và Q.
ươ g ự ư rê p ép ối liền, tất cả các thành phần (các biến) xuất hiện ở cả 2 giản
đồ thành phần phải có cùng kiểu dữ liệu. Tất cả các ràng buộc nếu có xuất hiện ở phần
k ai báo đều phải được chuyển sang phần vị từ ràng buộc của mỗi giả đồ thành phần
rước khi thực hiện phép nối rời.
5.3.4. P é đị (Neg tio )
Cho giả đồ S được thể hiệ ư sau, với P là vị từ diễn tả các ràng buộc lên các biến
ươ g ứng:
k i đó giả đồ phủ định S sẽ có dạng :
Lưu ý : phép phủ định chỉ áp dụng cho các giả đồ đã được chuẩn hóa (tức là tất cả các
ràng buộ đều phải được chuyển sang phần vị từ ràng buộ bê dưới).
71
Ví dụ : Giả đồ Date biểu diễn những ngày tháng hợp lệ, do đó Date sẽ biểu diễn tất
cả những cặp (month, day) nào không phải là một ngày tháng hợp lệ.
5.3.5. P é lượ g từ ó
Ta có thể lượng từ hóa 1 số thành phần của 1 giả đồ để tạo ra 1 giả đồ mới. Nếu Q là
lượng từ và dec là phầ k ai báo, k i đó giả đồ đượ lượng từ hóa sẽ có dạng :
Giả đồ ày được tạo thành bằng cách bỏ đi á à p ần có trong phần khai báo dec
và lượng từ hóa chúng bằ g lượng từ Q trong phần vị từ ràng buộ bê dưới.
Ví dụ : Cho giả đồ ư sau :
K i đó, SBb : là giả đồ :
và SBb : là giả đồ :
72