packages feed

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)