file for abstract domain alternative model, fixes

This commit is contained in:
ProgramSnail 2026-03-29 15:31:40 +00:00
parent 93e8f23c4a
commit 5fa95da8b7
5 changed files with 527 additions and 13 deletions

View file

@ -94,8 +94,8 @@
Prod(
`decl`,
{
Or[ovreline(stmt)][function body]
Or[$lambda #[`tag` #h(3pt) `argtype`] a.$ `decl`][argument with argument pass strategy annotation]
Or[overline(stmt)][function body]
Or[$lambda #[`tag` #h(3pt)] a.$ `decl`][argument with argument pass strategy annotation]
}
),
Prod(
@ -167,7 +167,8 @@ $d space @ space overline(x)$ - запись применения функции
$isOut tag -> isAlwaysWrite tag$, // NOTE; strong requirment should write
$isRead tag -> isIn tag$,
$isPossibleWrite tag and (isOut tag or not isCopy tag) -> isAlwaysWrite sigma(x)$, // NOTE: may tag => should sigma(x)
$isRead tag -> mu (sigma(x)) != bot$, // NOTE: may tag -> ...
$isRead tag -> mu (sigma(x)) != bot and mu (sigma(x)) != X$, // NOTE: may tag -> ...
// TODO: FIXME: != Bot and != X ??? or just != Bot ???
$isCorrect_(cl sigma, mu cr) (tag, x)$,
)
@ -406,7 +407,7 @@ $d space @ space overline(x)$ - запись применения функции
$cl sigma, mu, l cr
xarrow("WRITE" x)
cl sigma, mu[x <- 0], l union {sigma(x)} cr$,
cl sigma, mu[x <- 0], l cr$,
)
))