simplest_model_with_mods: first draft of the formal semantics

This commit is contained in:
ProgramSnail 2026-03-02 08:40:28 +00:00
parent d590f28f9b
commit c3775feccb
2 changed files with 399 additions and 1 deletions

View file

@ -109,7 +109,7 @@ struct
(* TODO *)
let check_tag_correct (tag : tag) (id : data) : unit =
if (* (is_in tag && not (is_read tag)) || *) (* TODO: required ?? *)
(is_out tag && not (is_write tag))
is_out tag > is_write tag
(* || is_copy tag && is_out tag *) (* ?? *)
then raise @@ Invalid_argument_tag id
else ()
@ -132,6 +132,8 @@ struct
mem_set state_ext id BotV
(* TODO: FIXME: do not spoil out arguments *)
(* TODO: FIXME: do write to tags that are out for args (code + semantics fix)
-> write to out args *)
let st_spoil_by_args (state : state) (arg_tags : tag list) (args : data list) : state =
match state with (env, mem, mem_len, _visited) ->
let spoil_folder (state : state) (tag : tag) (id : data) : state =