Skip to main content
AI/MLplurigrid

lhott-cohesive-linear

Cohesive Linear HoTT patterns for interaction entropy with diagram generation. Implements Schreiber's cohesive modalities (♯,♭,ʃ) and Riley's linear modality (♮) for quantum-classical bridging.

Stars
23
Source
plurigrid/asi
Updated
2026-04-26
Slug
plurigrid--asi--lhott-cohesive-linear
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/plurigrid/asi/HEAD/ies/music-topos/.agents/skills/lhott-cohesive-linear/SKILL.md -o .claude/skills/lhott-cohesive-linear.md

Drops the SKILL.md into .claude/skills/lhott-cohesive-linear.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

LHoTT Cohesive Linear Skill

Synthesizes Urs Schreiber's cohesive ∞-topos framework with Mitchell Riley's linear HoTT for interaction entropy formalization.

Modal Operators

Modality Symbol Action Interaction Use
Sharp Discretize Extract trit from color
Flat Embed continuously Full LCH embedding
Shape ʃ Quotient by homotopy Walk trajectory class
Linear Self-adjoint tangent One-use interaction

GF(3) Triad Placement

This skill is ERGODIC (0), forming triads with:

persistent-homology (-1) ⊗ lhott-cohesive-linear (0) ⊗ topos-generate (+1) = 0 ✓
sheaf-cohomology (-1) ⊗ lhott-cohesive-linear (0) ⊗ gay-mcp (+1) = 0 ✓
three-match (-1) ⊗ lhott-cohesive-linear (0) ⊗ rubato-composer (+1) = 0 ✓

Core Types (Pseudo-HoTT)

-- Cohesive interaction type
CohesiveInteraction : Type
  content : String
  hash : ♯ SHA256           -- discrete
  seed : ♭ UInt64           -- continuous embedding
  color : ♮ LCH             -- linear (used once)
  position : ʃ (ℤ × ℤ)      -- shape-invariant

-- Linear function (no copy/delete)
walk_step : CohesiveInteraction ⊸ Position × Color

-- Bunched triplet (entangled context)
Γ₁ ⊗ Γ₂ ⊗ Γ₃ ⊢ conserved : GF3Zero
  where trit(Γ₁) + trit(Γ₂) + trit(Γ₃) ≡ 0 (mod 3)

Diagram Generation

Mermaid Templates

Cohesive Quadruple:

flowchart LR
    subgraph "Cohesive ∞-Topos H"
        A[Type] -->|ʃ shape| B[Shape Type]
        A -->|♭ flat| C[Codiscrete]
        C -->|Γ sections| D[Discrete]
        D -->|♯ sharp| A
    end
    style A fill:#26D826
    style B fill:#2626D8
    style C fill:#D82626
    style D fill:#2626D8

Linear Walk:

stateDiagram-v2
    [*] --> I1: seed₁
    I1 --> I2: ⊸ (linear)
    I2 --> I3: ⊸ (linear)
    I3 --> [*]: triplet complete
    
    note right of I1: trit = +1
    note right of I2: trit = 0
    note right of I3: trit = -1

Bunched Context Tree:

graph TD
    Root["Γ (context)"] --> A["Γ₁ ⊗ Γ₂"]
    Root --> B["Γ₃"]
    A --> C["I₁ (+1)"]
    A --> D["I₂ (0)"]
    B --> E["I₃ (-1)"]
    
    style C fill:#D82626
    style D fill:#26D826
    style E fill:#2626D8

Ruby Integration

module LHoTTCohesiveLinear
  # Modalities
  SHARP  = ->(x) { { trit: x[:trit] } }  # ♯ discretize
  FLAT   = ->(x) { x }                    # ♭ full embed
  SHAPE  = ->(x) { x[:position] }         # ʃ trajectory
  LINEAR = ->(x) { x.dup.freeze }         # ♮ freeze for one use
  
  def self.cohesive_interaction(content)
    hash = Digest::SHA256.hexdigest(content)
    seed = hash[0..15].to_i(16)
    gen = SplitMixTernary::Generator.new(seed)
    color = gen.next_color
    
    {
      content: content,
      hash: SHARP.call({ trit: color[:trit] }),  # ♯
      seed: FLAT.call(seed),                      # ♭
      color: LINEAR.call(color),                  # ♮
      position: nil  # computed by walk
    }
  end
  
  def self.linear_walk_step(interaction, walker)
    raise "Linear resource already consumed" if interaction.frozen?
    result = walker.step!(interaction)
    interaction.freeze  # consume linear resource
    result
  end
end

Julia Integration

# ACSets schema for LHoTT
@present SchLHoTT(FreeSchema) begin
  CohesiveType::Ob
  LinearType::Ob
  
  sharp::Hom(CohesiveType, CohesiveType)   # ♯
  flat::Hom(CohesiveType, CohesiveType)    # ♭
  shape::Hom(CohesiveType, CohesiveType)   # ʃ
  linear::Hom(CohesiveType, LinearType)    # ♮
  
  Trit::AttrType
  trit_attr::Attr(LinearType, Trit)
end

Hy/DiscoHy Integration

(import [discopy [Ty Box Diagram monoidal]])

(defn cohesive-box [name input output modality]
  "Create DisCoPy box with modality annotation"
  (setv color (case modality
    "sharp" "#2626D8"
    "flat" "#D82626"
    "shape" "#26D826"
    "linear" "#FFAA00"))
  (Box name (Ty input) (Ty output) :color color))

(defn lhott-diagram [interactions]
  "Build monoidal diagram from interaction sequence"
  (setv boxes (lfor i interactions
    (cohesive-box (get i "skill_name")
                  "State" "State"
                  (get i "modality" "linear"))))
  (reduce monoidal.compose boxes))

Diagram Export Commands

# Generate Mermaid diagram from interactions
just lhott-diagram mermaid

# Generate base64 PNG from Mermaid
just lhott-diagram png > diagram.base64

# Export to DisCoPy SVG
just lhott-discopy-svg

# Full pipeline: interactions → ACSet → DisCoPy → Mermaid
just lhott-full-export

Key Theorems

  1. Cohesive Determinism: hash ∘ ♯ = ♯ ∘ hash (discretization commutes)
  2. Linear Conservation: |consumed| = |interactions| (no copy/delete)
  3. GF(3) Invariant: Σ trit(Iᵢ) ≡ 0 (mod 3) per triplet
  4. Spectral Verification: P(verify) = 1/4 (Ramanujan gap)

References

  • Corfield, D. (2025). "Linear Homotopy Type Theory: Its Origins and Potential Uses"
  • Schreiber, U. (2014). "Quantization via Linear Homotopy Types"
  • Riley, M. (2022). "A Bunched Homotopy Type Theory for Synthetic Stable Homotopy Theory"
  • nLab: Cohesive HoTT