Pospaces, Local pospaces
Recap: every program in our setting is comprised of sequential processes $(P_1, …, P_n)$ that are turned into a control flow graph $(G_1, …, G_n)$
$μ$: multiinstruction, admissibility depends on the state of the abstract machine
A point is a tuple of arrows and vertices (e.g. $(\cdot, ↑, \cdot, …, ↑)$)
From $(\cdot, ↑, \cdot)$:

you can either go to the end of some arrows: e.g. $(\cdot, \cdot, \cdot)$

or go to an outgoing of some of the points: e.g. $(↑, ↑, \cdot)$
A directed path $γ$ is turned into a sequence of instructions
 $μ_0$ is admissible in the state $σ$
 $μ_1$ is admissible in the state $σ μ_0$
 and so on…
Admissibility tell nothing as to whether you respect the branching conditions. E.g. in the state $σ: x=3$, you may follow the (conditional) arrow $x=0$ instead of the the $x ≠ 0$ one. It is admissible, but it doesn’t correspond to a trace.
Problem:
admissibility depends on the state of the abstract machine
so what we would like to do: to remove some points in the model, so that every path is admissible (we could get rid of that state dependency) ⟹ add new constraints
Goal: knowing how many resources are held by the program just by looking at the position of the process pointer
Ex where it’s impossible to decide that:
digraph {
rankdir=LR;
"" > "⋅" > "P(a)" > "⋅";
}
Potential function the amount of resources held by
digraph {
rankdir=LR;
" 0" > "⋅ 0"[label="0"];
"⋅ 0" > "P(a)  1"[label="0"];
"P(a)  1" > "V(a)  0"[label="1"];
"V(a)  0" > "⋅ 0"[label="0"];
}
(we jot it down on the arrows too)
Directed paths
Sequence of multiinstructions admissible
$γ, γ’$: directed paths on $⟦π⟧$
$⟦γ⟧, ⟦γ’⟧$ induce the same action on any initial state of the abstract machine
We would like to say that
Impossible to decide at compile time.
So we want to find another relation $\sim_h$ that is decidable at compile time such that:
Warning: in $Set$, an iso is a mono and epi, but the converse is false (at least in $Posets$: consider the poset categories $(\lbrace a, b\rbrace, =)$) and $(\lbrace 0, 1\rbrace, ≤)$:
$f$ is injective and surjective, but not an iso, since $0 ≤ 1$, but we don’t have $a ≤ b$.
Homology: hard to define, easy to compute (at least for simplicial sets) Homotopy: easy/intuitive to define, hard to compute
Leave a comment