packages feed

phino-0.0.86: resources/dataization.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# Dataization 𝔻 β€” applied top-to-bottom, first matching clause wins. It is
# binary, 𝔻(n, e): the second argument e is the global universe, the same
# expression that 𝕄 takes as its second argument; 𝔻 forwards it to 𝕄. The first
# argument is always a normal form: a non-NF expression matches no clause.
#
# Each rule is an inference rule: when 'match' matches the term and 'e-match'
# matches the universe (binding the meta e), the rule yields the conclusion
# 'd-result' (a premise bytes meta or a literal), provided 'when' holds and the
# ordered 'premises' reduce as stated. A premise binds its 'n-result'/'d-result'
# to one judgment β€” 𝔻 ('dataize'), 𝕄 ('morph'), 𝒩 ('normalize'), 𝔼 ('lambda')
# or π’ž ('contextualize'). 'e-match' is the universe-argument matcher of
# 𝔻(n, e); it is always the e meta. The single bytes result is named Ξ΄; derived
# terms are 𝑛, 𝑛1, … in premise order, skipping the bare 𝑛 only when 'match'
# already binds it.

- name: delta
  label: \Delta
  match: ⟦𝐡1, Ξ” ‍ Ξ΄, 𝐡2⟧
  e-match: 𝑒
  d-result: Ξ΄

- name: box
  label: box
  match: ⟦𝐡1, Ο† ↦ 𝑒1, 𝐡2⟧
  e-match: 𝑒
  d-result: Ξ΄
  when:
    disjoint:
      - [Ξ”, Ξ»]
      - [𝐡1, 𝐡2]
  premises:
    - n-result: 𝑛
      contextualize:
        - 𝑒1
        - ⟦𝐡1, Ο† ↦ 𝑒1, 𝐡2⟧
    - n-result: 𝑛1
      normalize: 𝑛
    - d-result: Ξ΄
      dataize: 𝑛1

- name: fire
  label: fire
  match: ⟦𝐡1, λ ‍ 𝐹, 𝐡2⟧
  e-match: 𝑒
  d-result: Ξ΄
  premises:
    - n-result: 𝑛
      lambda: ⟦𝐡1, λ ‍ 𝐹, 𝐡2⟧
    - n-result: 𝑛1
      normalize: 𝑛
    - d-result: Ξ΄
      dataize: 𝑛1

- name: none
  label: none
  match: ⟦𝐡⟧
  e-match: 𝑒
  d-result: '--'

- name: bott
  label: bott
  match: βŠ₯
  e-match: 𝑒
  d-result: '--'

- name: norm
  label: norm
  match: 𝑛
  e-match: 𝑒
  d-result: Ξ΄
  premises:
    - n-result: 𝑛1
      morph: 𝑛
    - d-result: Ξ΄
      dataize: 𝑛1