packages feed

phino-0.0.152: test-resources/evaluate-packs/joins-a-branch-with-a-decorator-of-it-when-lenient.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# A fork whose one branch calls a method often meets a decorator: one branch
# comes to a copy, the other to a formation whose Ο† is that copy. The two
# differ in shape, so a strict join refuses them. An entry that says
# 'lenient: true' joins them into the decorator, with a fresh symbol minted
# inside it the usual way (#1815).
symbolic: |
  - Ξ»: L_fork
    morph:
      𝑛1: $.a
      𝑛2: $.b
    join:
      𝑛3: [𝑛1, 𝑛2]
    lenient: true
    𝑛: 𝑛3
location: 'Q.y'
input: '⟦ y ↦ ⟦ a ↦ ⟦ Ο† ↦ ⟦ Ξ» ‍ 𝜎1 ⟧, neg ↦ ⟦⟧ ⟧, b ↦ ⟦ Ο† ↦ ⟦ Ο† ↦ ⟦ Ξ» ‍ 𝜎2 ⟧, neg ↦ ⟦⟧ ⟧ ⟧, Ξ» ‍ L_fork ⟧.Ο† ⟧'
result: '⟦ Ο† ↦ 𝜎3:Ξ», neg ↦ ⟦⟧ ⟧'
protocol: |
  𝕄(Ξ¦.y):
    𝔼(L_fork):
      𝑛1Β·1 := ⟦ Ο† ↦ 𝜎1:Ξ», neg ↦ ⟦⟧ ⟧  # 𝕄(ΞΎ.a)
      𝑛2Β·1 := ⟦ Ο† ↦ 𝜎2:Ξ», neg ↦ ⟦⟧ ⟧:Ο†  # 𝕄(ΞΎ.b)
      𝔻(𝜎3:Ξ») ∈ { 𝔻(𝜎1:Ξ»), 𝔻(𝜎2:Ξ») }
      𝑛3Β·1 := ⟦ Ο† ↦ 𝜎3:Ξ», neg ↦ ⟦⟧ ⟧:Ο†  # [𝑛1, 𝑛2]
      𝑛·1Β·1 := 𝑛3Β·1  # 𝑛
      𝑛·1Β·2 := 𝑛3Β·1  # 𝕄(𝑛·1Β·1)