Bài giảng Đặc tả hình thức: Chương 4, trình bày các nội dung sau: Các phép toán logic, thứ tự ưu tiên các phép toán, tập bằng cách định nghĩa thuộc tính,...Mời các bạn cung tham khảo!
LOGO Đặc tả hình thức Giới thiệu Alloy Nguyễn Thị Minh Tuyền Nguyễn Thị Minh Tuyền Các phép toán logic v Những phép toán not ! and && or || implies => else Nguyễn Thị Minh Tuyền logic thường dùng negation conjunction disjunction implication alternative iff Đặc tả hình thức Thứ tự ưu tiên phép tốn || => && ! = != in + ++ & -> [] ~ * ^ Nguyễn Thị Minh Tuyền thấp cao Đặc tả hình thức Ví dụ v Giả sử sổ địa mơ hình hóa: § homeAddress workAddress ánh xạ bí danh (alias) tới địa email cá nhân dùng cho cơng việc, địa ánh xạ bí danh tới địa thường dùng § Để nói địa thường dùng cho bí danh a địa email sử dụng cho cơng việc tồn tại, khơng địa email cá nhân, ta viết: some a.workAddress => a.address = a.workAddress else a.address = a.homeAddress sử dụng biểu thức điều kiện a.address = some a.workAddress => a.workAddress else a.homeAddress Nguyễn Thị Minh Tuyền Đặc tả hình thức v a!=b tương đương với not a = b viết a not = b v Từ khóa else dùng với tốn tử implies § F implies G else H § tương đương với (F and G) or (not F) and H v Tốn từ implies lồng § § § § C1 implies F1 else C2 implies F2 else C3 implies F3 với điều kiện C1 F1 đúng, khơng với điều kiện C2 F2 đúng, khơng với điều kiện C3 F3 v {F G H} tương đương F and G and H v C implies E1 else E2 viết C => E1 else E2 Nguyễn Thị Minh Tuyền Đặc tả hình thức Ví dụ: Cấu trúc Family v Làm để diễn đạt ràng buộc “Khơng có nhiều bố và nhiều mẹ”? all p: Person | (lone (p.parents & Man)) and (lone (p.parents & Woman)) v Đây ví dụ ràng buộc phủ định, dễ phát biểu trực tiếp Nguyễn Thị Minh Tuyền Đặc tả hình thức Tập cách định nghĩa thuộc tính v { x : S | F } v Tập mà giá trị tạo từ tập S thỏa mãn điều kiện F v Sử dụng định nghĩa thuộc tính để đặc tả tập người có bố mẹ với Matt { q: Person | q.parents = matt.parents } Nguyễn Thị Minh Tuyền Đặc tả hình thức Ví dụ: cấu trúc Family v Làm diễn đạt ràng buộc “Anh chị em người P người có bố mẹ với P (ngoại trừ P)” all p: Person | p.siblings = {q: Person | p.parents = q.parents} - p Nguyễn Thị Minh Tuyền Đặc tả hình thức Ví dụ: Cấu trúc Family v Mỗi người đàn ơng/phụ nữ có vợ/ chồng all p: Married | (p in Man => p.spouse in Woman) and (p in Woman => p.spouse in Man) v Một người vợ/chồng khơng thể anh chị em no p: Married | p.spouse in p.siblings Nguyễn Thị Minh Tuyền Đặc tả hình thức Let v let x = e | A v Mỗi lần xuất biến x thay biểu thức e A v Ví dụ: Mỗi người đàn ơng/phụ nữ có gia đình có vợ/chồng all p: Married | let spouse = p.spouse | (p in Man => spouse in Woman) and (p in Woman => spouse in Man) Nguyễn Thị Minh Tuyền 10 Đặc tả hình thức Cardinality số ngun v Các phép tốn sau sử dụng với số nguyên § § § § § plus minus mul div rem cộng trừ nhân chia phần dư v và phép tốn so sánh § § § § § = < > =< >= Nguyễn Thị Minh Tuyền bé lớn bé lớn 11 Đặc tả hình thức I’m my own GrandPa Nguyễn Thị Minh Tuyền 12 Đặc tả hình thức Mơ hình Alloy khai báo module header module language/grandpa1 abstract sig Person { father: lone Man, mother: lone Woman } sig Man extends Person { wife: lone Woman } sig Woman extends Person { 10 husband: lone Man 11 } Khai báo signature 12 fact { 13 no p: Person | p in p.^(mother + father) 14 wife = ~husband 15 } 16 assert NoSelfFather { 17 no m: Man | m = m.father 18 } 19 check NoSelfFather Ràng buộc 20 fun grandpas (p: Person): set Person { 21 p.(mother + father).father 22 } 23 pred ownGrandpa (p: Person) { 24 p in grandpas [p] 25 } 26 run ownGrandpa for Nguyễn Thị Minh Tuyền Khai báo assertion 13 Lệnh Đặc tả hình thức Fact v Các ràng buộc signature field biểu diễn Alloy cách sử dụng fact v Các ràng buộc fact giả sử luôn fact tên_fact{ ràng buộc } v Thứ tự fact thứ tự ràng buộc fact khơng ảnh hưởng đến mơ hình Nguyễn Thị Minh Tuyền 14 Đặc tả hình thức Ví dụ: đèn giao thơng Light State Junction lights Light Red Nguyễn Thị Minh Tuyền 15 Color Yellow Green Đặc tả hình thức Ví dụ: Đèn giao thông Hệ thống đèn giao thông trạng thái, số đèn giao lộ phải hiển thị màu đỏ sig LightState {color: Light -> one Color} sig Light {} abstract sig Color {} one sig Red, Yellow, Green extends Color {} sig Junction {lights: set Light} fact { all s: LightState, j: Junction | some s.color.Red & j.lights } Nguyễn Thị Minh Tuyền 16 Đặc tả hình thức Ví dụ v Khơng tổ tiên fact selfAncestor { no p: Person | p in p.^parents } v Có nhiều cha nhiều mẹ fact loneParents { all p: Person | lone (p.parents & Man) and lone (p.parents & Woman) } v Anh chị em người P người có cha mẹ ngoại trừ P fact siblingsDefinition { all p: Person | p.siblings = {q: Person | p.parents = q.parents} – p } Nguyễn Thị Minh Tuyền 17 Đặc tả hình thức Ví dụ fact social { Mỗi người đàn ông/phụ nữ có gia đình có vợ/chồng all p: Married | let s = p.spouse | (p in Man => s in Woman) and (p in Woman => s in Man) Một vợ/chồng anh em no p: Married | p.spouse in p.siblings Một người cưới người huyết thống no p: Married | some (p.*parents & (p.spouse).*parents) } Nguyễn Thị Minh Tuyền 18 Đặc tả hình thức Hàm (function) v Một hàm biểu thức đặt tên, với nhiều tham số (argument), biểu thức giới hạn cho kết v Cú pháp: func tên [ ]{ } func tên [ danh sách tham số ]{ } Nguyễn Thị Minh Tuyền 19 Đặc tả hình thức Ví dụ v Quan hệ parents fun parents [ ] : Person->Person {~children} v Quan hệ sisters (chị/em gái) fun sisters [p: Person] { {w: Woman | w in p.siblings} } v Khơng tổ tiên chị/em gái họ all p: Person | not (p in p.^parents or p in sisters[p]) Nguyễn Thị Minh Tuyền 20 Đặc tả hình thức Vị từ (predicate) v Một vị từ ràng buộc đặt tên, với nhiều tham số Khi vị từ sử dụng, biểu thức phải cung cấp cho tham số v Cú pháp: pred tên [ ] { } pred tên [ danh sách tham số ]{ } Nguyễn Thị Minh Tuyền 21 Đặc tả hình thức Ví dụ v Hai người có quan hệ huyết thống có tổ tiên pred BloodRelated [p: Person, q: Person] { some (p.*parents & q.*parents) } v Một người khơng thể cưới người có huyết thống với no p: Married | BloodRelated[p, p.spouse] Nguyễn Thị Minh Tuyền 22 Đặc tả hình thức Vị từ hay fact v Vị từ định nghĩa (được tham số hóa) ràng buộc v Fact ràng buộc giả sử v Có thể đặt ràng buộc vị từ đặt vị từ vào fact § Vị từ linh động fact Nguyễn Thị Minh Tuyền 23 Đặc tả hình thức LOGO ... đến mơ hình Nguyễn Thị Minh Tuyền 14 Đặc tả hình thức Ví dụ: đèn giao thông Light State Junction lights Light Red Nguyễn Thị Minh Tuyền 15 Color Yellow Green Đặc tả hình thức... sánh § § § § § = < > =< >= Nguyễn Thị Minh Tuyền bé lớn bé lớn 11 Đặc tả hình thức I’m my own GrandPa Nguyễn Thị Minh Tuyền 12 Đặc tả hình thức Mơ hình Alloy khai báo module header module... trực tiếp Nguyễn Thị Minh Tuyền Đặc tả hình thức Tập cách định nghĩa thuộc tính v { x : S | F } v Tập mà giá trị tạo từ tập S thỏa mãn điều kiện F v Sử dụng định nghĩa thuộc tính để đặc tả tập