packages feed

phino-0.0.165: test-resources/evaluate-packs/binds-a-copy-whose-phi-repeats-the-formation-fired-as-it-is.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The copy 'down( i ↦ 𝜎2 )' is the left side of the fork the φ of 'down' calls,
# so its own φ comes to the very formation that is being fired. Its argument is
# a bare symbol, but a 'defer' line binds such a copy as it is under
# '--acyclic' (#2206): a symbol standing for the call would hide the recursion
# from the cut, and the 'cast' line would then give that symbol the 'not' of
# 'Φ.no', which nobody checked. The fork fabricates a formation of both sides,
# and the fork under its 'not' is the one that goes on into the copy.
symbolic: |
  - λ: L_fork
    dataize:
      𝛿1: $.on🌵
    morph:
      𝑛1: $.left🌵
      𝑛2: $.right🌵
    symbolize:
      𝑛3: 𝑛1
      𝑛4: 𝑛2
    defer:
      𝑛5: 𝑛3
      𝑛6: 𝑛4
    cast:
      𝑛7: 𝑛5
      𝑛8: 𝑛6
    join:
      'on': 𝛿1
      left: 𝑛7
      right: 𝑛8
      otherwise: L_fork
location: 'Q.y'
acyclic: plausible
partial: true
input: >
  ⟦ no ↦ ⟦ φ ↦ 00-:Δ, not ↦ FF-:Δ ⟧,
    fork(on🌵, left🌵, right🌵) ↦ ⟦ λ ⤍ L_fork ⟧,
    down(i) ↦ ⟦ φ ↦ Φ.fork( 𝜎1:λ, Φ.down( i ↦ 𝜎2:λ ), Φ.no ) ⟧,
    y ↦ Φ.down( i ↦ 𝜎3:λ ).not ⟧
result: '⟦ λ ⤍ L_fork, on🌵 ↦ 𝜎1:λ, left🌵 ↦ ρ.left🌵.not, right🌵 ↦ ρ.right🌵.not ⟧'
protocol: |
  𝕄(Φ.y):
    remembered 𝑛·0·1 ≡ Φ.down  # ⟦ i ↦ ∅, φ ↦ Φ.fork( 𝜎1:λ, Φ.down( i ↦ 𝜎2:λ ), Φ.no ) ⟧
    𝑛·0·2 := Φ.down( i ↦ 𝜎3:λ )
    𝑛·0·3 := ⟦ i ↦ 𝜎3:λ, φ ↦ Φ.fork( 𝜎1:λ, Φ.down( i ↦ 𝜎2:λ ), Φ.no ) ⟧
    remembered 𝑛·0·3 ≡ 𝑛·0·1( i ↦ 𝜎3:λ )
    normalized 𝑛·0·4 := Φ.fork( 𝜎1:λ, Φ.down( i ↦ 𝜎2:λ ), Φ.no ).not  # 𝑛·0·3.φ.not
    remembered 𝑛·0·5 ≡ Φ.fork  # ⟦ on🌵 ↦ ∅, left🌵 ↦ ∅, right🌵 ↦ ∅, λ ⤍ L_fork ⟧
    𝑛·0·6 := Φ.fork( on🌵 ↦ 𝜎1:λ )
    𝑛·0·7 := ⟦ on🌵 ↦ 𝜎1:λ, left🌵 ↦ ∅, right🌵 ↦ ∅, λ ⤍ L_fork ⟧
    remembered 𝑛·0·7 ≡ 𝑛·0·5( on🌵 ↦ 𝜎1:λ )
    𝑛·0·8 := 𝑛·0·6( left🌵 ↦ Φ.down( i ↦ 𝜎2:λ ) )
    𝑛·0·9 := ⟦ on🌵 ↦ 𝜎1:λ, left🌵 ↦ Φ.down( i ↦ 𝜎2:λ ), right🌵 ↦ ∅, λ ⤍ L_fork ⟧
    remembered 𝑛·0·9 ≡ 𝑛·0·7( left🌵 ↦ Φ.down( i ↦ 𝜎2:λ ) )
    𝑛·0·10 := 𝑛·0·8( right🌵 ↦ Φ.no )
    𝑛·0·11 := ⟦ on🌵 ↦ 𝜎1:λ, left🌵 ↦ Φ.down( i ↦ 𝜎2:λ ), right🌵 ↦ Φ.no, λ ⤍ L_fork ⟧
    remembered 𝑛·0·11 ≡ 𝑛·0·9( right🌵 ↦ Φ.no )
    𝔼(L_fork):
      𝔻(ξ.on🌵):
        𝛿·1·1 := 𝔻(𝜎1:λ)
      𝛿1·1 := 𝛿·1·1  # 𝔻(ξ.on🌵)
      𝕄(ξ.left🌵):
        𝑛·1·1 := Φ.down( i ↦ 𝜎2:λ )
        𝑛·1·2 := ⟦ i ↦ 𝜎2:λ, φ ↦ Φ.fork( 𝜎1:λ, Φ.down( i ↦ 𝜎2:λ ), Φ.no ) ⟧
        remembered 𝑛·1·2 ≡ 𝑛·0·1( i ↦ 𝜎2:λ )
        morphed 𝑛·1·3 := 𝑛·1·2
      𝑛1·1 := 𝑛·1·3  # 𝕄(ξ.left🌵)
      𝕄(ξ.right🌵):
        remembered 𝑛·1·4 ≡ Φ.no  # ⟦ φ ↦ 00-:Δ, not ↦ FF-:Δ ⟧
        morphed 𝑛·1·5 := 𝑛·1·4
      𝑛2·1 := 𝑛·1·5  # 𝕄(ξ.right🌵)
      symbolized 𝜎4 := 00-
      𝑛4·1 := ⟦ φ ↦ 𝜎4:λ, not ↦ FF-:Δ ⟧  # symbolize(𝑛2)
      fabricated 𝑛·1·6 := 𝑛·1·3 and 𝑛4·1  # ⟦ left🌵 ↦ 𝑛·1·3, right🌵 ↦ 𝑛4·1, i ↦ ⟦ λ ⤍ L_fork, on🌵 ↦ 𝜎1:λ, left🌵 ↦ ρ.left🌵.i, right🌵 ↦ ρ.right🌵.i ⟧, φ ↦ ⟦ λ ⤍ L_fork, on🌵 ↦ 𝜎1:λ, left🌵 ↦ ρ.left🌵.φ, right🌵 ↦ ρ.right🌵.φ ⟧, not ↦ ⟦ λ ⤍ L_fork, on🌵 ↦ 𝜎1:λ, left🌵 ↦ ρ.left🌵.not, right🌵 ↦ ρ.right🌵.not ⟧ ⟧
      remembered 𝑛·1·6 ≡ 𝑛·0·11
      memoized 𝑛·0·11 ⇛ 𝑛·1·6
    remembered 𝑛·0·12 ≡ 𝑛·1·6.not  # ⟦ λ ⤍ L_fork, on🌵 ↦ 𝜎1:λ, left🌵 ↦ ρ.left🌵.not, right🌵 ↦ ρ.right🌵.not ⟧
    morphed 𝑛·0·13 := 𝑛·0·12