Chứng minh toán học tính đúng đắn của chương trình

6 1.3K 11
Chứng minh toán học tính đúng đắn của chương trình

Đang tải... (xem toàn văn)

Thông tin tài liệu

Chứng minh toán học tính đắn chương trình Chứng minh toán học tính đắn chương trình Bởi: Khoa CNTT ĐHSP KT Hưng Yên Như đề cập trên, mục tiêu chứng minh toán học để khẳng định tính chương trình thông qua văn chương trình Khái niệm chung Như ta biết, chương trình P biến đổi P để chuyển vào x thành y; x y hoàn toàn xác định trước Như vậy, chương trình P gọi thực xác mục tiêu người thiết kế đặc Ta gọi: + Giả thiết ?A? mệnh đề phát biểu để thể tính chất vào, gọi tắt mệnh đề liệu vào + Kết luận ?B? mệnh đề phát biểu để tính chất cần có liệu ra, gọi tắt mệnh đề liệu Hệ tiên đề Hoare Tiên đề 1: Tiên đề Nếu mệnh đề ?A? sau chịu tác động khối cấu trúc điều khiển P ta ?B? mệnh đề ?B? sau chịu tác động cấu trúc điều khiển Q ta ?C? ?A? chịu tác động P,Q thu ?C? Hay nói cách khác, tiên đề dãy thao tác: Nếu ?A? P ?B? ?B? Q ?C? ?A? P,Q ?C? 1/6 Chứng minh toán học tính đắn chương trình Tiên đề gán: tính chất phép gán Điều kiện để có mệnh đề ?B? sau thực lệnh gán x: = E (với E biểu thức) từ mệnh đề {A} trước ta phải có {A} suy dẫn {B[x|E]} ? Kỹ thuật lần ngược tiên đềgán Ví dụ 3: (Xét ví dụ 1) Cho mệnh đề liệu vào {A: x,y∈R; 0?B? ta nói mệnh đề {A} {B} tuân theo cấu trúc rẽ nhánh dạng khuyết với cấu trúc P điều kiện lựa chọn E; tức là: {A} if E then P; {B} ii Với mệnh đề liệu vào {A}, mệnh đề liệu {B}, biểu thức logic E, đoạn trình P, Q Nếu ta có {A, E}P{B} {A,!E}Q{B} ta nói mệnh đề {A} {B} tuân theo cấu trúc rẽ nhánh dạng đủ với cấu trúc P, Q điều kiện lựa chọn E; tức là: {A} if E then P else Q; {B} Vídụ4: Cho mệnh đề liệu vào {A: x,y,q,r∈N, x=qy+r, 0≤r0 Begin End; Return z; If (x mod 2)≠0 then z:=z+y; x=x div 2; y:=y*2; Ta cần phải khẳng định chương trình với yêu cầu đặt 4/6 Chứng minh toán học tính đắn chương trình Thật vậy, gọi mệnh đề thể tính chất liệu vào chương trình {A} mệnh đề thể tính chất liệu cần có {B}, ta có {A: x,y,z∈N; x=a; y=b;} {B: x,y,z∈N; z=ab;} Ta cần chứng tỏ {A}P {B} + Xét mệnh đề {C: x,y,z∈N; ab=z+xy;} + Ta có {A} z:=0;{C} + Để chứng tỏ {C} bất biến đoạn trình while x>0 Begin If (x mod 2)≠0 then z:=z+y; x=x div 2; y:=y*2; End; Ta cần có: {C,E: x,y,z∈N; ab=z+xy;x>0}Q{C}, với đoạn trình Q sau: If (x mod 2)=0 then z:=z+y; x=x div 2; y:=y*2; Theo tính chất phép gán, ta có: {C1}?{C[y|y*2]: x,y*2,z∈N; ab=z+x(y*2);} {C2}?{C1[x|(x div 2)]: (x div 2),y*2,z∈N; ab=z+(x div 2)(y*2);} Nên cần chứng tỏ: {C,E: x,y,z∈N; ab=z+xy;x>0} If (x mod 2)≠0 then z:=z+y; {C2} Dễ dàng ta có i {C,E,F: x,y,z∈N; ab=z+xy;x>0,(x mod 2)≠0} z:=z+y {C2}; Lii {C,E,!F: x,y,z∈N; ab=z+xy;x>0,(x mod 2)=0} =>{C2}; Vậy {C} bất biến Q Nên kết thúc Q, ta có mệnh đề {C,!E} 5/6 Chứng minh toán học tính đắn chương trình L + Dễ dàng chứng tỏ: {C,!E}=>{B} Vậy ta có {A}P{B}, hay chương trình L Để ý rằng: {A,E}P{A} nên trường hợp {A}=>E vòng lặp vô hạn không tồn mệnh đề {A, !E} 6/6 ... Ta cần phải khẳng định chương trình với yêu cầu đặt 4/6 Chứng minh toán học tính đắn chương trình Thật vậy, gọi mệnh đề thể tính chất liệu vào chương trình {A} mệnh đề thể tính chất liệu cần có... y>r}=>{BL } suy {A}P{B} 3/6 Chứng minh toán học tính đắn chương trình Tính bất biến c hương trình Cho mệnh đề liệu vào {A} đoạn trình P Nếu ta có {A}P{A} ta nói tính chất liệu mệnh đề {A} không... Q Nên kết thúc Q, ta có mệnh đề {C,!E} 5/6 Chứng minh toán học tính đắn chương trình L + Dễ dàng chứng tỏ: {C,!E}=>{B} Vậy ta có {A}P{B}, hay chương trình L Để ý rằng: {A,E}P{A} nên trường hợp

Ngày đăng: 01/01/2016, 08:50

Từ khóa liên quan

Mục lục

  • Chứng minh toán học tính đúng đắn của chương trình

  • Khái niệm chung

  • Hệ tiên đề Hoare

Tài liệu cùng người dùng

Tài liệu liên quan