Lectures onType Theory
Corrected simple-object row inference
appendix sectionrules

Corrected simple-object row inference

The corrected row fragment has the two-sorted grammar τ::=αIntττΠ(r),r::=ρrr[aτ],σ::=αρ.τ. Type and row variables, quantification, instantiation, and substitution preserve their two sorts. Rows range over the countable label universe, denote finite partial maps, and update is right biased. The primitive schemes are null:Π(r),().a:Π(r[aτ])τ,() with a=():Π(r)τΠ(r[aτ]). A finite complete set {θi} solves an equation family E when every member solves E, and every solution factors through some θi on the variables of E. It need not be a singleton.

The invalid injective step r1[aτ1]=r2[aτ2]r1=r2 is replaced by τ1=τ2 and four row-shape branches. Each branch existentially quantifies one common row r0 without a and whichever field witnesses u1,u2 it displays: r1r2PPr0[au1]r0[au2]AAr0r0APr0r0[au2]PAr0[au1]r0. A shared-row equation ρ=ρ[a1τ1][anτn] is removed and replaced by atomic obligations has(ρ,ai,τi), retaining the last type at a repeated label. The special step does not substitute the update chain for ρ.

For Wand’s separately named finite-label concatenation calculus, fix L={a1,,an}, use the descriptor sort d::=ϕabsentpresent(τ), and write ΠL(d1,,dn) for record types. The result descriptor hi at label ai satisfies (gi=present(τi)hi=gi)(gi=absenthi=fi). Disjunctive-normal expansion yields finitely many ordinary unification problems and hence a finite complete set. Rémy’s unitary sorted-row calculus is a different signature and contributes no rule to this section.

Search the book

Type to search the local edition.