Back to skills
SkillHub ClubShip Full StackFull Stack
ordered-locale-proper
Imported from https://github.com/plurigrid/asi.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Stars
10
Hot score
84
Updated
March 20, 2026
Overall rating
C3.6
Composite score
3.6
Best-practice grade
F32.4
Install command
npx @skill-hub/cli install plurigrid-asi-ordered-locale-proper
Repository
plurigrid/asi
Skill path: skills/ordered-locale-proper
Imported from https://github.com/plurigrid/asi.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: plurigrid.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install ordered-locale-proper into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/plurigrid/asi before adding ordered-locale-proper to shared team environments
- Use ordered-locale-proper for development workflows
Works across
Claude CodeCodex CLIGemini CLIOpenCode
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: ordered-locale
description: Ordered Locales (Heunen-van der Schaaf 2024): Point-free topology with direction. Frame + compatible preorder with open cone conditions.
version: 1.0.0
---
# Ordered Locale Skill
> *"We extend Stone duality between topological spaces and locales to include order."*
> — Heunen & van der Schaaf, 2024
## Overview
An **ordered locale** is a locale (point-free topological space) equipped with a compatible preorder satisfying the **open cone condition**.
```
Ordered Locale = Frame + Preorder + Open Cones
```
## Key Definitions
### Frame (Locale)
A **frame** is a complete lattice where finite meets distribute over arbitrary joins:
```
a ∧ (⋁ᵢ bᵢ) = ⋁ᵢ (a ∧ bᵢ)
```
Equivalently: a complete Heyting algebra.
### Open Cone Condition
For a preorder ≤ on locale L, the **open cone condition** requires:
```
↑x = {y ∈ L : x ≤ y} is an open in L (upper cone)
↓x = {y ∈ L : y ≤ x} is an open in L (lower cone)
```
This ensures the order is "visible" to the topology.
### Ordered Locale (Definition 2.1, Heunen-van der Schaaf)
An **ordered locale** is a tuple (L, ≤) where:
1. L is a locale (frame of opens)
2. ≤ is a preorder on O(L)
3. The open cone condition holds
## Stone Duality Extended
```
┌────────────────────────┐ adjunction ┌─────────────────────┐
│ Preordered Topological │ ←───────────────→ │ Ordered Locales │
│ Spaces (open cones) │ │ (spatial) │
└────────────────────────┘ └─────────────────────┘
```
Restricts to an **equivalence**:
- Spatial ordered locales ≃ Sober T₀-ordered spaces with open cones
## Julia Implementation (Catlab.jl)
### Frame as Subobject Heyting Algebra
From Catlab's `Subobjects.jl`:
```julia
using Catlab, Catlab.Theories, Catlab.CategoricalAlgebra
# Frame operations via ThSubobjectHeytingAlgebra
@signature ThFrame <: ThSubobjectHeytingAlgebra begin
# Infinite joins (frame-specific)
Join(I::TYPE, f::(I → Sub(X)))::Sub(X) ⊣ [X::Ob]
# Frame distributivity: a ∧ (⋁ᵢ bᵢ) = ⋁ᵢ (a ∧ bᵢ)
end
```
### Ordered Locale Schema (ACSet)
```julia
using ACSets
@present SchOrderedLocale(FreeSchema) begin
Open::Ob # Opens of the frame
Arrow::Ob # Order relation arrows
src::Hom(Arrow, Open) # Source of order arrow
tgt::Hom(Arrow, Open) # Target of order arrow
# Cone structure
Cone::Ob
apex::Hom(Cone, Open) # Apex of cone
leg::Hom(Cone, Arrow) # Legs of cone
# Attributes
Index::AttrType
idx::Attr(Open, Index) # Open index
is_upper::Attr(Cone, Bool) # Upper vs lower cone
end
@acset_type OrderedLocale(SchOrderedLocale)
```
### Open Cone Verification
```julia
function verify_open_cone_condition(L::OrderedLocale)
"""
Verify that ↑x and ↓x are opens for all x.
"""
opens = parts(L, :Open)
for x in opens
# Upper cone: ↑x = {y : x ≤ y}
upper_cone = Set{Int}()
for arr in parts(L, :Arrow)
if L[arr, :src] == x
push!(upper_cone, L[arr, :tgt])
end
end
push!(upper_cone, x) # Reflexive
# Check upper cone is an open (exists in frame)
if !is_open(L, upper_cone)
return false, "↑$x is not an open"
end
# Lower cone: ↓x = {y : y ≤ x}
lower_cone = Set{Int}()
for arr in parts(L, :Arrow)
if L[arr, :tgt] == x
push!(lower_cone, L[arr, :src])
end
end
push!(lower_cone, x) # Reflexive
if !is_open(L, lower_cone)
return false, "↓$x is not an open"
end
end
return true, "Open cone condition satisfied"
end
```
### Cone and Cocone Operations
From Catlab's `Limits.jl`:
```julia
using Catlab.Theories: ThCompleteCategory, ThCocompleteCategory
# Cone: A natural transformation Δ(X) → D
# where Δ(X) is the constant diagram at X
struct Cone{Ob, Hom}
apex::Ob
legs::Vector{Hom} # One leg per object in diagram
end
# Cocone: Dual - natural transformation D → Δ(X)
struct Cocone{Ob, Hom}
apex::Ob
legs::Vector{Hom}
end
# Limit = universal cone
function limit_cone(diagram::FreeDiagram, model)
# Find apex and legs such that any other cone factors through
lim = limit[model](diagram)
Cone(ob(lim), collect(legs(lim)))
end
# Colimit = universal cocone
function colimit_cocone(diagram::FreeDiagram, model)
colim = colimit[model](diagram)
Cocone(ob(colim), collect(legs(colim)))
end
```
### Frame Operations via Limits/Colimits
```julia
# Meet (∧) = pullback = limit of cospan
function frame_meet(L::OrderedLocale, a::Int, b::Int)
# Pullback in the locale category
diagram = FreeDiagram([a, b], [(a, top(L)), (b, top(L))])
lim = limit_cone(diagram, L)
return lim.apex
end
# Join (∨) = pushout = colimit of span
function frame_join(L::OrderedLocale, a::Int, b::Int)
# Pushout in the locale category
bot = bottom(L)
diagram = FreeDiagram([a, b], [(bot, a), (bot, b)])
colim = colimit_cocone(diagram, L)
return colim.apex
end
# Infinite join (frame-specific)
function frame_sup(L::OrderedLocale, opens::Vector{Int})
# Colimit of discrete diagram
diagram = FreeDiagram(opens, Pair{Int,Int}[])
colim = colimit_cocone(diagram, L)
return colim.apex
end
# Heyting implication: a ⇒ b = ⋁{c : a ∧ c ≤ b}
function frame_implies(L::OrderedLocale, a::Int, b::Int)
candidates = [c for c in parts(L, :Open)
if below_or_eq(L, frame_meet(L, a, c), b)]
return frame_sup(L, candidates)
end
```
## GF(3) Triads
```
acsets (-1) ⊗ ordered-locale (0) ⊗ topos-generate (+1) = 0 ✓ [Schema]
sheaf-cohomology (-1) ⊗ ordered-locale (0) ⊗ kan-extensions (+1) = 0 ✓ [Gluing]
directed-interval (-1) ⊗ ordered-locale (0) ⊗ mlx-apple-silicon (+1) = 0 ✓ [Scale]
```
## Example Locales
### 1. Sierpinski Locale (2-point)
```julia
function sierpinski_locale()
L = OrderedLocale{Bool}()
add_parts!(L, :Open, 2, idx=[false, true]) # ⊥, ⊤
add_part!(L, :Arrow, src=1, tgt=2) # ⊥ < ⊤
# Cones
add_part!(L, :Cone, apex=2, is_upper=true) # ↑⊥ = {⊥,⊤} = ⊤
add_part!(L, :Cone, apex=1, is_upper=false) # ↓⊤ = {⊥,⊤} = ⊤
L
end
```
### 2. Diamond Locale
```julia
function diamond_locale()
L = OrderedLocale{Int}()
add_parts!(L, :Open, 4, idx=[0, 1, 1, 2]) # ⊥, a, b, ⊤
add_part!(L, :Arrow, src=1, tgt=2) # ⊥ < a
add_part!(L, :Arrow, src=1, tgt=3) # ⊥ < b
add_part!(L, :Arrow, src=2, tgt=4) # a < ⊤
add_part!(L, :Arrow, src=3, tgt=4) # b < ⊤
L
end
```
### 3. Scott Topology (Domain Theory)
```julia
function scott_locale(poset::OrderedLocale)
"""
Scott topology: opens are upper sets closed under directed joins.
"""
scott_opens = Vector{Set{Int}}()
for u in parts(poset, :Open)
upset = upper_cone(poset, u)
if is_scott_open(poset, upset)
push!(scott_opens, upset)
end
end
scott_opens
end
function is_scott_open(L, U::Set{Int})
# U is Scott-open iff:
# 1. U is upper-closed
# 2. For any directed D with ⋁D ∈ U, some d ∈ D is in U
is_upper_closed(L, U) && is_inaccessible_by_directed_joins(L, U)
end
```
## Comparison with Implementation
| Aspect | ordered_locale_mlx.py | Proper Ordered Locale |
|--------|----------------------|----------------------|
| Structure | Adjacency matrix (poset) | Frame + ACSet schema |
| Opens | Finite indices | Complete Heyting algebra |
| Meets/Joins | Graph search | Pullback/Pushout (categorical) |
| Cones | Not implemented | Cone/Cocone with legs |
| Open Cone Condition | Not checked | `verify_open_cone_condition` |
| Infinite joins | No | `frame_sup` |
## Applications
1. **Spacetime Causality** — Order = causal influence, no points
2. **Domain Theory** — Way-below relation, compact elements
3. **Directed Homotopy** — Irreversible paths (directed-interval)
4. **Modal Logic** — Accessibility relations as order
5. **Concurrent Computing** — Partial order of events
## Commands
```bash
# Run ordered locale demo
just ordered-locale-demo
# Verify open cone condition
just ordered-locale-verify
# Scale test with MLX
just ordered-locale-mlx
```
## Files
- `ordered_locale.jl` — Julia implementation with Catlab
- `ordered_locale_mlx.py` — MLX-accelerated (finite approximation)
- `frame.jl` — Frame operations via limits/colimits
- `cone_cocone.jl` — Cone/cocone constructions
## References
1. Heunen, C. & van der Schaaf, N. (2024). "Ordered Locales." *J. Pure Appl. Algebra* 228(7), 107654.
2. Heunen, C. & van der Schaaf, N. (2025). "Causal Coverage in Ordered Locales and Spacetimes." arXiv:2510.17417.
3. Johnstone, P. (1982). *Stone Spaces*. Cambridge University Press.
4. Catlab.jl — `src/theories/Limits.jl`, `src/categorical_algebra/cats/Subobjects.jl`
---
**Skill Name**: ordered-locale
**Type**: Point-free Topology / Frame Theory / Directed Order
**Trit**: 0 (ERGODIC - coordinator)
**GF(3)**: Mediates between schema (-1) and generation (+1)
**Open Cones**: ↑x and ↓x must be opens
**Duality**: Spatial ordered locales ≃ Sober T₀-ordered spaces
## Scientific Skill Interleaving
This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
### Graph Theory
- **networkx** [○] via bicomodule
- Universal graph hub
### Bibliography References
- `general`: 734 citations in bib.duckdb
## Cat# Integration
This skill maps to **Cat# = Comod(P)** as a bicomodule in the equipment structure:
```
Trit: 0 (ERGODIC)
Home: Prof
Poly Op: ⊗
Kan Role: Adj
Color: #26D826
```
### GF(3) Naturality
The skill participates in triads satisfying:
```
(-1) + (0) + (+1) ≡ 0 (mod 3)
```
This ensures compositional coherence in the Cat# equipment structure.