Modeling Abstraction — α and γ

We now have two representations:

We connect them with a pair of functions:

α (abstraction)
Given a set of complete grids, extract the facts they all agree on. We say α(S) abstracts S.
γ (concretization)
Given a partial assignment, return every complete grid compatible with it. We say γ(a) is what a represents.
concrete γ α abstract

We use these barbed half-arrows to denote the relationship between the two lattices — a notation we'll return to.

Formally, for our Sudoku domain:

α(S) = { (loc, n) | ∀ grid ∈ S : grid(loc) = n }

That is, α extracts every cell assignment that all grids in the set agree on.

γ(a) = { grid | ∀ (loc, n) ∈ a : grid(loc) = n }

And γ returns every complete grid that is compatible with the partial assignment.

For example, take two complete grids that agree on their upper half:

S = {
1234
3412
2143
4321
,
1234
3412
4321
2143
}
α(S) = 1 at (1,1) 2 at (1,2) 3 at (1,3) 4 at (1,4) 3 at (2,1) 4 at (2,2) 1 at (2,3) 2 at (2,4)

The two grids agree on rows 1 and 2 but differ on rows 3 and 4 — so α keeps only the first eight facts. Applying γ(α(S)) would return all 48 = 65,536 complete grids that match those eight cells — including invalid ones.

We can formally connect a precise and an approximate representation via a pair of functions: α abstracts, γ tells us what an abstract element represents.