phino-0.0.162: test-resources/evaluate-packs/answers-a-firing-whose-operand-loops.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# A loop met while an operand is being brought down to data, one whole run of π»
# below the spine. The operand dispatches 'foo' off a formation of 'L_loop',
# whose firing answers that very formation, so π is about to dispatch off it
# again. The cut answers the whole dispatch with a fresh symbol, named by the
# symbol alone, since no fact leads that formation back to the world (#2307).
# The operand comes down to the datum of the symbol and 'L_outer' answers, and
# the dispatch of 'bar' off its answer is what the run parks on.
symbolic: |
- Ξ»: L_outer
dataize:
πΏ1: ΞΎ.arg
π: β¦ Ξ» β€ π β§
- Ξ»: L_loop
π: β¦ Ξ» β€ L_loop β§
location: 'Q.x'
acyclic: proven
steps: 250
partial: true
input: >
β¦ x β¦ β¦ arg β¦ β¦ Ξ» β€ L_loop β§.foo, Ξ» β€ L_outer β§.bar β§
result: 'π2:Ξ».bar'
protocol: |
π(Ξ¦.x):
πΌ(L_outer):
π»(ΞΎ.arg):
π(ΞΎ.arg):
πΌ(L_loop):
πΒ·2Β·1 := L_loop:Ξ» # π
π(πΒ·2Β·1):
morphed πΒ·2Β·2 := L_loop:Ξ»
πΒ·2Β·3 := L_loop:Ξ» # π(πΒ·2Β·1)
looped π1 # proven, repeats L_loop:Ξ»
morphed πΒ·1Β·1 := π1:Ξ»
πΏΒ·1Β·1 := π»(π1:Ξ»)
πΏ1Β·1 := πΏΒ·1Β·1 # π»(ΞΎ.arg)
πΒ·1Β·2 := π2:Ξ» # π
π(πΒ·1Β·2):
morphed πΒ·1Β·3 := π2:Ξ»
πΒ·1Β·4 := πΒ·1Β·3 # π(πΒ·1Β·2)
unanswered π2 # π(π2:Ξ»)