structures: model fixes, analyzer part

This commit is contained in:
ProgramSnail 2026-04-05 21:45:18 +00:00
parent 2e040599f3
commit 84d1ce7eb5
3 changed files with 311 additions and 275 deletions

View file

@ -220,10 +220,11 @@ $ pathmem([m_1, m_2, ..., m_n], p.i) = pathmem(m_i, p) $
#let pathtag = `pathtag`
$ pathtag(\& #h(3pt) tag #h(3pt) t, @x) = tag $
$ pathtag(\& #h(3pt) tag #h(3pt) t, *p) = pathtag(t, p) $
$ pathtag([t_1, t_2, ..., t_n], p.i) = pathmem(t_i, p) $
$ pathtag([t_1, t_2, ..., t_n], p.i) = pathtag(t_i, p) $
#let pathvar = `pathvar`
$ pathvar(x) = x $
$ pathvar(@x) = x $
$ pathvar(* p) = pathvar(p) $
$ pathvar(p.i) = pathvar(p) $
#h(10pt)
@ -237,12 +238,12 @@ $ typeof(sigma, p) = pathtype(sigma[pathvar(p)].2, p) $
#let accessmem = `accessmem`
$ accessmem(sigma, p) = pathmem(sigma[pathvar(p)].1, p) $
#let access = `access`
$ access(sigma, mu, p) = mu[accessmem(sigma, p)] $
#let argtag = `argtag`
$ argtag(sigma, p) = pathtag(sigma[pathvar(p)].2, p) $
#let access = `access`
$ access(sigma, mu, p) = mu[accessmem(sigma, p)] $
#h(10pt)
=== Correctness