phino-0.0.161: test-resources/evaluate-packs/answers-an-operand-that-dataizes-in-circles-with-a-symbol.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. The box
# step answers the copy of 'cyc' it would enter again with a fresh symbol
# (#2226), so the operand comes down to the datum of that symbol and the firing
# answers.
symbolic: |
- Ξ»: L_outer
dataize:
πΏ1: ΞΎ.arg
π: β¦ bar β¦ β¦ Ξ» β€ π β§ β§
location: 'Q.x'
acyclic: proven
steps: 250
input: >
β¦ cyc β¦ β¦ x β¦ β
, Ο β¦ Ξ¦.cyc( ΞΎ.x ) β§,
x β¦ β¦ arg β¦ Ξ¦.cyc( β¦β§ ), Ξ» β€ L_outer β§.bar β§
result: 'π2:Ξ»'
protocol: |
π(Ξ¦.x):
πΌ(L_outer):
π»(ΞΎ.arg):
π(ΞΎ.arg):
πΒ·1Β·1 := Ξ¦.cyc( x β¦ β¦β§ )
πΒ·1Β·2 := β¦ x β¦ β¦β§, Ο β¦ Ξ¦.cyc( x ) β§
morphed πΒ·1Β·3 := πΒ·1Β·2
boxed πΒ·1Β·4 := πΒ·1Β·3.Ο
π(πΒ·1Β·4):
πΒ·1Β·5 := Ξ¦.cyc( x β¦ β¦β§ )
πΒ·1Β·6 := β¦ x β¦ β¦β§, Ο β¦ Ξ¦.cyc( x ) β§
morphed πΒ·1Β·7 := πΒ·1Β·6
π(πΒ·1Β·7.x):
morphed πΒ·1Β·8 := β¦β§
looped π1 := Ξ¦.cyc( x β¦ πΒ·1Β·8 ) # π»(πΒ·1Β·4), proven, repeats πΒ·1Β·7
πΏΒ·1Β·1 := π»(π1:Ξ»)
πΏ1Β·1 := πΏΒ·1Β·1 # π»(ΞΎ.arg)
πΒ·1Β·9 := π2:Ξ»:bar # π
π(πΒ·1Β·9):
morphed πΒ·1Β·10 := π2:Ξ»:bar
πΒ·1Β·11 := πΒ·1Β·10 # π(πΒ·1Β·9)
morphed πΒ·0Β·1 := π2:Ξ»