Plain_Memory: Type = [#
mem: Memory_struct [Negara], lihat halaman 198% (Bagian 2.2)
menyatakan: PRED [Negara],% negara memenuhi sifat memori polos
ro_addr: alamat PRED [Alamat],% baca-diberkati
rw_addr: PRED [Alamat]% read / write-diberkati alamat
#]
Di sini, jenis konstruktor PRED membangun tipe semua predikat atas yang
jenis argumen. Misalnya, PRED [Negara] sama dengan [Negara → bool]. Bidang Rekam
di PVS dapat diakses dengan dua sintaks setara. Jika pm adalah tipe Plain_Memory,
maka kedua mem (pm) dan pm'mem menunjukkan lapangan pertama.
Sifat memori polos ditentukan sebagai berikut.
plain_memory (pm): bool =
? unchanged_memory_invariant (pm'mem, pm'states ,
semua transformer negara diizinkan kecuali akses tulis untuk pm'rw_addr,
serikat (pm'ro_addr, pm'rw_addr)) ∧
unchanged_memory_invariant? (pm'mem, pm'states,
memory_write_transformers (pm'mem, pm'rw_addr),
pm'ro_addr ) ∧
unchanged_memory_write_invariant? (pm'mem, pm'states, pm'rw_addr) ∧
changed_memory_invariant? (pm'mem, pm'states, pm'rw_addr) ∧
transformers_ok? (pm'states,
semua transformer negara diijinkan) ∧
side_effect_content_unchanged (union (pm'ro_addr, pm'rw_addr), pm'states,
memory_read_side_effect (pm'mem)) ∧
side_effect_content_unchanged (pm'rw_addr, pm'states,
memory_write_side_effect (pm'mem))
Sedang diterjemahkan, harap tunggu..
