phino-0.0.152: test-resources/evaluate-packs/fires-a-formation-once-however-often-it-is-met.yaml
# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The memo of '--acyclic=plausible': 𝔼 is a function of the formation it
# fires, so two bindings spelling one term are two firings of one formation,
# and a run firing each of them afresh mints two symbols for one value and
# fires everything under the second once more (#1476). Under the mode the
# second takes what the first answered: the inner sum of 'b' is the inner sum
# of 'a' fired again, and so is the outer one once the inner answers the
# same, so the walk over 'b' reduces nothing, mints nothing and lands 'b' on
# the very symbol 'a' came to. The protocol still writes the two firings
# under 'b', at their own site, each with the answer the firing under 'a'
# made, named after the line that made it, and with no operand line under
# it, since none was reduced.
symbolic: |
- λ: L_number_plus
dataize:
𝛿1: $.ρ
𝛿2: $.x
𝑛: Φ.number( φ ↦ ⟦ λ ⤍ 𝜎 ⟧ )
deep: true
acyclic: plausible
input: >
⟦ bytes(φ) ↦ ⟦⟧,
number(φ) ↦ ⟦ plus(ρ, x) ↦ ⟦ λ ⤍ L_number_plus ⟧ ⟧,
a ↦ 7.plus( 5.plus( 6 ) ),
b ↦ 7.plus( 5.plus( 6 ) ) ⟧
result: >
⟦ bytes(φ) ↦ ⟦⟧,
number(φ) ↦ ⟦ plus(x) ↦ L_number_plus:λ ⟧,
a ↦ ⟦ φ ↦ 𝜎2:λ, plus(x) ↦ L_number_plus:λ ⟧,
b ↦ ⟦ φ ↦ 𝜎2:λ, plus(x) ↦ L_number_plus:λ ⟧ ⟧
protocol: |
𝕄(Φ):
𝕄(Φ.a):
𝑛·0·1 := Φ.bytes( φ ↦ 40-1C-00-00-00-00-00-00:Δ )
𝑛·0·2 := Φ.number( φ ↦ 𝑛·0·1 )
𝑛·0·3 := Φ.number( φ ↦ 𝑛·0·1 )
𝑛·0·4 := Φ.bytes( φ ↦ 40-14-00-00-00-00-00-00:Δ )
𝑛·0·5 := Φ.number( φ ↦ 𝑛·0·4 )
𝑛·0·6 := Φ.number( φ ↦ 𝑛·0·4 )
𝑛·0·7 := Φ.bytes( φ ↦ 40-18-00-00-00-00-00-00:Δ )
𝑛·0·8 := Φ.number( φ ↦ 𝑛·0·7 )
𝑛·0·9 := Φ.number( φ ↦ 𝑛·0·4 )
𝑛·0·10 := 𝑛·0·9.plus( x ↦ 𝑛·0·8 )
𝔼(L_number_plus):
𝔻(Φ.a🌵0):
𝕄(Φ.a🌵0):
𝑛·1·1 := Φ.number( φ ↦ 𝑛·0·4 )
𝑛·1·2 := Φ.bytes( φ ↦ 40-14-00-00-00-00-00-00:Δ )
𝛿·1·1 := 40-14-00-00-00-00-00-00 # 5.0
𝛿1·1 := 𝛿·1·1 # 𝔻(ξ.ρ)
𝔻(Φ.a🌵1):
𝕄(Φ.a🌵1):
𝑛·1·3 := Φ.number( φ ↦ 𝑛·0·7 )
𝑛·1·4 := Φ.bytes( φ ↦ 40-18-00-00-00-00-00-00:Δ )
𝛿·1·2 := 40-18-00-00-00-00-00-00 # 6.0
𝛿2·1 := 𝛿·1·2 # 𝔻(ξ.x)
𝑛·1·5 := Φ.number( φ ↦ 𝜎1:λ ) # 𝑛
𝕄(𝑛·1·5):
𝑛·1·6 := Φ.number( φ ↦ 𝜎1:λ )
𝑛·1·7 := 𝑛·1·6 # 𝕄(𝑛·1·5)
𝑛·0·11 := Φ.number( φ ↦ 𝑛·0·1 )
𝑛·0·12 := 𝑛·0·11.plus( x ↦ 𝑛·1·6 )
𝔼(L_number_plus):
𝔻(Φ.a🌵2):
𝕄(Φ.a🌵2):
𝑛·2·1 := Φ.number( φ ↦ 𝑛·0·1 )
𝑛·2·2 := Φ.bytes( φ ↦ 40-1C-00-00-00-00-00-00:Δ )
𝛿·2·1 := 40-1C-00-00-00-00-00-00 # 7.0
𝛿1·2 := 𝛿·2·1 # 𝔻(ξ.ρ)
𝛿2·2 := 𝔻(𝜎1:λ) # 𝔻(ξ.x)
𝑛·2·3 := Φ.number( φ ↦ 𝜎2:λ ) # 𝑛
𝕄(𝑛·2·3):
𝑛·2·4 := Φ.number( φ ↦ 𝜎2:λ )
𝑛·2·5 := 𝑛·2·4 # 𝕄(𝑛·2·3)
𝕄(Φ.b):
𝑛·0·13 := Φ.bytes( φ ↦ 40-1C-00-00-00-00-00-00:Δ )
𝑛·0·14 := Φ.number( φ ↦ 𝑛·0·13 )
𝑛·0·15 := Φ.number( φ ↦ 𝑛·0·13 )
𝑛·0·16 := Φ.bytes( φ ↦ 40-14-00-00-00-00-00-00:Δ )
𝑛·0·17 := Φ.number( φ ↦ 𝑛·0·16 )
𝑛·0·18 := Φ.number( φ ↦ 𝑛·0·16 )
𝑛·0·19 := Φ.bytes( φ ↦ 40-18-00-00-00-00-00-00:Δ )
𝑛·0·20 := Φ.number( φ ↦ 𝑛·0·19 )
𝑛·0·21 := Φ.number( φ ↦ 𝑛·0·16 )
𝑛·0·22 := 𝑛·0·21.plus( x ↦ 𝑛·0·20 )
𝔼(L_number_plus):
𝑛·3·1 := 𝑛·1·6 # 𝑛
𝑛·3·2 := 𝑛·1·7 # 𝕄(𝑛·3·1)
𝑛·0·23 := Φ.number( φ ↦ 𝑛·0·13 )
𝑛·0·24 := 𝑛·0·23.plus( x ↦ 𝑛·1·6 )
𝔼(L_number_plus):
𝑛·4·1 := 𝑛·2·4 # 𝑛
𝑛·4·2 := 𝑛·2·5 # 𝕄(𝑛·4·1)