packages feed

phino-0.0.117: resources/normalize/dot.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# Dispatch 𝜏1 on a formation: contextualize the dispatched body 𝑛1 and decorate
# it with the whole formation as ρ. The contextualization context is the
# formation WITHOUT the dispatched binding β€” ⟦𝐡1, 𝐡2⟧, not ⟦𝐡1, 𝜏1 ↦ 𝑛1, 𝐡2⟧ β€”
# so a self-referential ΞΎ inside 𝑛1 (as in ⟦ a ↦ ΞΎ ⟧.a or ⟦ a ↦ ΞΎ.a ⟧.a) no
# longer sees 𝜏1. Such a self-reference then dispatches on a formation that
# lacks 𝜏1 and collapses to βŠ₯ via stop/null/dd instead of rebuilding the same
# βŸ¦β€¦, 𝜏1 ↦ 𝑛1, β€¦βŸ§.𝜏1 term and looping forever. ρ on line 'result' still binds
# the full formation, so sibling and Ο†-decoration references stay intact β€” only
# the self-ΞΎ path narrows, keeping normalization (near-)total.
name: dot
pattern: ⟦𝐡1, 𝜏1 ↦ 𝑛1, 𝐡2⟧.𝜏1
result: 𝑒1(ρ ↦ ⟦𝐡1, 𝜏1 ↦ 𝑛1, 𝐡2⟧)
where:
  - meta: 𝑒1
    function: contextualize
    args:
      - 𝑛1
      - ⟦𝐡1, 𝐡2⟧