packages feed

phino-0.0.152: test-resources/evaluate-packs/parks-a-firing-whose-operand-dataizes-in-circles.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# A loop met while an operand is being brought down to data, with no frame of 𝕄
# ever handed the same term twice: the body of 'cyc' dispatches 'cyc' again, so
# every round 𝕄 stops at a formation of its own and only 𝔻 — 'box'
# contextualizing that body and 'norm' morphing what comes out — comes back to
# the term it started from. Before #1290 the guard of '--acyclic' was 𝕄's alone
# and this went round until the step budget ran out; now 𝔻 asks it too, and the
# spine around the firing parks with the term it had reached when the firing
# started, exactly as it does for a loop 𝕄 catches.
symbolic: |
  - λ: L_outer
    dataize:
      𝛿1: ξ.arg
    𝑛: ⟦ λ ⤍ 𝜎 ⟧
location: 'Q.x'
acyclic: proven
steps: 250
input: >
  ⟦ cyc ↦ ⟦ x ↦ ∅, φ ↦ Φ.cyc( ξ.x ) ⟧,
    x ↦ ⟦ arg ↦ Φ.cyc( ⟦⟧ ), λ ⤍ L_outer ⟧.bar ⟧
result: '⟦ arg ↦ Φ.cyc( ⟦⟧ ), λ ⤍ L_outer ⟧.bar'
protocol: |
  𝕄(Φ.x):
    𝔼(L_outer):
      𝔻(Φ.a🌵0):
        𝕄(Φ.a🌵0):
          𝑛·1·1 := Φ.cyc( x ↦ ⟦⟧ )
          𝑛·1·2 := Φ.cyc( x ↦ ⟦⟧ )
        looped(𝑛·1·2)  # proven