packages feed

phino-0.0.101: resources/normalize/dot.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# Dispatch 𝜏 on a formation: contextualize the dispatched body 𝑛 and decorate
# it with the whole formation as ρ. The contextualization context is the
# formation WITHOUT the dispatched binding β€” ⟦𝐡1, 𝐡2⟧, not ⟦𝐡1, 𝜏 ↦ 𝑛, 𝐡2⟧ β€”
# so a self-referential ΞΎ inside 𝑛 (as in ⟦ a ↦ ΞΎ ⟧.a or ⟦ a ↦ ΞΎ.a ⟧.a) no
# longer sees 𝜏. Such a self-reference then dispatches on a formation that
# lacks 𝜏 and collapses to βŠ₯ via stop/null/dd instead of rebuilding the same
# βŸ¦β€¦, 𝜏 ↦ 𝑛, β€¦βŸ§.𝜏 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, 𝜏 ↦ 𝑛, 𝐡2⟧.𝜏
result: 𝑒(ρ ↦ ⟦𝐡1, 𝜏 ↦ 𝑛, 𝐡2⟧)
where:
  - meta: 𝑒
    function: contextualize
    args:
      - 𝑛
      - ⟦𝐡1, 𝐡2⟧