//! Tree IR โ€” lowering for combinator/tree-rewriting VMs.
//!
//! Tree machines are neither stack nor register. Data is binary trees
//! (nouns) addressed by axes (2=left, 3=right). Computation is
//! subject-formula evaluation: every expression is `[subject formula] โ†’ result`.
//!
//! Tree lowering takes TIR directly (like KernelLowering) and produces
//! target-specific tree expressions โ€” Nock formulas, or similar combinator
//! representations for future tree VMs.
//!
//! Pipeline:
//! ```text
//! AST โ†’ TIR โ”€โ†’ StackLowering     โ†’ Vec<String>  (stack targets)
//!           โ”œโ†’ LIR โ†’ RegisterLow  โ†’ Vec<u8>      (register targets)
//!           โ”œโ†’ KIR โ†’ KernelLow    โ†’ String        (GPU kernel source)
//!           โ””โ†’ TreeLowering       โ†’ Vec<u8>       (tree targets: Nock)
//! ```
//!
//! The key insight: TIR's structural control flow (nested IfElse/Loop bodies)
//! maps naturally to tree structure. Stack operations become tree construction
//! and axis addressing. The translation is:
//!
//! - **Stack โ†’ Subject**: the operand stack becomes a nested cons-tree (the subject)
//! - **Push โ†’ Literal**: `[1 value]` (Nock opcode 1 = constant)
//! - **Dup โ†’ Slot**: `[0 axis]` (Nock opcode 0 = tree lookup)
//! - **IfElse โ†’ Branch**: `[6 test yes no]` (Nock opcode 6 = branch)
//! - **Call โ†’ Evaluate**: `[2 subject formula]` (Nock opcode 2 = eval)
//! - **Hash โ†’ Jet**: jet-matched formula for Tip5 hash
//!
//! Supported targets:
//! - Nock (Nockchain) โ€” 13-opcode tree-rewriting machine

pub mod lower;

Dimensions

trident/src/diagnostic/mod.rs
trident/src/ir/mod.rs
trident/src/deploy/mod.rs
trident/src/syntax/mod.rs
trident/src/api/mod.rs
nebu/rs/extension/mod.rs
optica/src/render/mod.rs
trident/src/config/mod.rs
trident/src/field/mod.rs
trident/src/cli/mod.rs
optica/src/parser/mod.rs
trident/src/neural/mod.rs
trident/src/cost/mod.rs
trident/src/typecheck/mod.rs
optica/src/server/mod.rs
trident/src/package/mod.rs
optica/src/scanner/mod.rs
optica/src/output/mod.rs
trident/src/verify/mod.rs
optica/src/graph/mod.rs
trident/src/ast/mod.rs
trident/src/lsp/mod.rs
trident/src/runtime/mod.rs
trident/src/gpu/mod.rs
optica/src/query/mod.rs
trident/src/lsp/semantic/mod.rs
trident/src/verify/equiv/mod.rs
trident/src/package/hash/mod.rs
trident/src/neural/training/mod.rs
trident/src/verify/synthesize/mod.rs
trident/src/ir/tir/mod.rs
rs/macros/src/addressed/mod.rs
trident/src/package/registry/mod.rs
rs/rsc/src/lints/mod.rs
trident/src/verify/report/mod.rs
trident/src/config/resolve/mod.rs
trident/src/verify/solve/mod.rs
rs/macros/src/registers/mod.rs
trident/src/verify/smt/mod.rs
rs/macros/src/cell/mod.rs
rs/core/src/fixed_point/mod.rs
trident/src/neural/data/mod.rs
rs/core/src/bounded/mod.rs
trident/src/lsp/util/mod.rs
trident/src/typecheck/tests/mod.rs
trident/src/neural/model/mod.rs
trident/src/cost/stack_verifier/mod.rs
trident/src/syntax/grammar/mod.rs
trident/src/package/manifest/mod.rs
trident/src/syntax/parser/mod.rs
trident/src/ir/kir/mod.rs
trident/src/neural/inference/mod.rs
trident/src/syntax/lexer/mod.rs
trident/src/cost/model/mod.rs
trident/src/ir/lir/mod.rs
trident/src/syntax/format/mod.rs
trident/src/config/scaffold/mod.rs
trident/src/verify/sym/mod.rs
trident/src/api/tests/mod.rs
trident/src/package/store/mod.rs
trident/src/ir/kir/lower/mod.rs
trident/src/ir/lir/lower/mod.rs
trident/src/ir/tir/lower/mod.rs
trident/src/ir/tir/builder/mod.rs
trident/src/ir/tir/neural/mod.rs
trident/src/neural/data/tir_graph/mod.rs
trident/src/syntax/parser/tests/mod.rs
cw-cyber/packages/cyber-std/src/tokenfactory/mod.rs
trident/src/ir/tree/lower/mod.rs
trident/src/ir/tir/stack/mod.rs
cw-cyber/contracts/cybernet/src/tests/mod.rs
trident/src/ir/tir/optimize/mod.rs

Local Graph