phino-0.0.154: test-resources/evaluate-packs/fires-a-formation-again-where-the-budget-stalled-it.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The memo of '--acyclic=plausible' tells no stall the step budget made to a
# firing that has spent fewer steps than the stalled one. 'L_pair' first
# reduces 'x', whose firing brings 'p' down, which reaches the formation 'f'
# through 'q' and fires it so deep that the budget runs out before 'arg'
# comes down, so the firing gets stuck. Before #1514 the stall was kept bare,
# and a later firing of the same formation, where the budget is enough, was
# told it with nothing answered in between. Now the 'evaluate' line of
# 'L_pair' fires 'f' again at a shallower site, which brings 'arg' down and
# answers (#1521, #1874).
symbolic: |
- Ξ»: L_outer
dataize:
πΏ1: ΞΎ.arg
π: β¦ Ξ» β€ π β§
- Ξ»: L_wrap
dataize:
πΏ1: ΞΎ.w
π: β¦ Ξ» β€ π β§
- Ξ»: L_pair
morph:
π1: $.x
π2: $.f
evaluate:
π3: π2
π: β¦ Ο β¦ π3 β§
location: 'Q.r'
partial: true
acyclic: plausible
steps: 12
input: >
β¦ r β¦ β¦
x β¦ β¦ w β¦ Ξ¦.p, Ξ» β€ L_wrap β§.Ο,
f β¦ Ξ¦.f,
Ξ» β€ L_pair β§.Ο,
p β¦ β¦ Ο β¦ Ξ¦.q β§,
q β¦ β¦ Ο β¦ Ξ¦.f β§,
f β¦ β¦ arg β¦ Ξ¦.c, Ξ» β€ L_outer β§,
c β¦ β¦ Ο β¦ Ξ¦.d β§,
d β¦ β¦ Ο β¦ Ξ¦.e β§,
e β¦ β¦ Ξ β€ 01- β§ β§
result: 'π1:Ξ»'
protocol: |
π(Ξ¦.r):
πΌ(L_pair):
π(Ξ¦.aπ΅0):
πΌ(L_wrap):
π»(Ξ¦.aπ΅1):
πΌ(L_outer):
π»(Ξ¦.aπ΅2):
π(Ξ¦.aπ΅2):
starved(12)
stuck(L_outer)
stuck(L_outer)
π1Β·1 := β¦ w β¦ Ξ¦.p, Ξ» β€ L_wrap β§.Ο # π(ΞΎ.x)
π2Β·1 := β¦ arg β¦ Ξ¦.c, Ξ» β€ L_outer β§ # π(ΞΎ.f)
πΌ(L_outer): # πΌ(π2)
π»(Ξ¦.aπ΅4):
πΏΒ·4Β·1 := 01-
πΏ1Β·4 := πΏΒ·4Β·1 # π»(ΞΎ.arg)
πΒ·4Β·1 := π1:Ξ» # π
πΒ·4Β·2 := π1:Ξ» # π(πΒ·4Β·1)
π3Β·1 := πΒ·4Β·2 # πΌ(π2)
πΒ·1Β·1 := π1:Ξ»:Ο # π
πΒ·1Β·2 := π1:Ξ»:Ο # π(πΒ·1Β·1)