phino-0.0.154: test-resources/evaluate-packs/keeps-a-stuck-firing-for-the-next-firing.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The memo of '--acyclic=plausible' keeps a stuck firing the way it keeps a
# cut. 'L_pair' reduces 'x' and then 'y', and both spell the very same
# formation of 'L_outer'. The firing under 'x' brings its operand down
# through π», which gets stuck on 'L_none', so the firing never answers and
# '--partial' parks it. Before #1493 the firing under 'y' reduced its operand
# and got stuck on 'L_none' again, since a stuck firing kept nothing. Now the
# second firing takes the failure the first one met: it is written at its own
# site and nothing under it is reduced.
symbolic: |
- Ξ»: L_outer
dataize:
πΏ1: ΞΎ.arg
π: β¦ Ξ» β€ π β§
- Ξ»: L_pair
morph:
π1: $.x
π2: $.y
π: β¦ Ο β¦ β¦ Ξ» β€ π β§ β§
location: 'Q.p'
partial: true
acyclic: plausible
input: >
β¦ p β¦ β¦
x β¦ β¦ arg β¦ β¦ Ξ» β€ L_none β§, Ξ» β€ L_outer β§.Ο,
y β¦ β¦ arg β¦ β¦ Ξ» β€ L_none β§, Ξ» β€ L_outer β§.Ο,
Ξ» β€ L_pair β§.Ο β§
protocol: |
π(Ξ¦.p):
πΌ(L_pair):
π(Ξ¦.aπ΅0):
πΌ(L_outer):
π»(Ξ¦.aπ΅1):
unanswered(L_none) # π»(L_none:Ξ»)
stuck(L_none)
π1Β·1 := β¦ arg β¦ L_none:Ξ», Ξ» β€ L_outer β§.Ο # π(ΞΎ.x)
π(Ξ¦.aπ΅2):
πΌ(L_outer):
stall(L_none)
π2Β·1 := β¦ arg β¦ L_none:Ξ», Ξ» β€ L_outer β§.Ο # π(ΞΎ.y)
πΒ·1Β·1 := π1:Ξ»:Ο # π
πΒ·1Β·2 := π1:Ξ»:Ο # π(πΒ·1Β·1)