// stdlib/mod.rs โ€” standard library bootstrap
// spec: specs/stdlib.md
// Untrusted shell โ€” declares terms; kernel verifies them.

pub mod ids;
pub mod nat;
pub mod bool;
pub mod list;
pub mod prop;
pub mod le;

// โ”€โ”€ Re-exports โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

pub use ids::*;
pub use nat::{nat, nat_zero, nat_next, nat_lit, nat_add, nat_mul, nat_le, nat_sub,
              nat_min_term, nat_max_term};
pub use bool::{bool_ty, bool_false, bool_true, bool_not,
               bool_not_false_eq, bool_not_true_eq};
pub use list::{list, list_nil, list_link};
pub use prop::{eq_refl, false_elim, and_intro, and_right, and_left,
               fin, fin_zero, fin_next};
pub use le::{le, le_refl, le_step, le_of_lits, le_type_lam, le_type_pi};

use crate::{env::Env, term::Term};

// โ”€โ”€ Env bootstrap โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

/// Build the standard environment: Nat, Bool, List, False, True, And, Or, Eq, Fin, Le.
pub fn std_env() -> Env {
    let mut env = Env::new();
    nat::declare_nat(&mut env);
    bool::declare_bool(&mut env);
    list::declare_list(&mut env);
    prop::declare_false(&mut env);
    prop::declare_true(&mut env);
    prop::declare_and(&mut env);
    prop::declare_or(&mut env);
    prop::declare_eq(&mut env);
    prop::declare_fin(&mut env);
    le::declare_le(&mut env);
    env
}

// โ”€โ”€ ElabState surface names โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

/// Populate ElabState globals with stdlib names for surface elaboration.
pub fn add_stdlib_globals(globals: &mut std::collections::HashMap<String, (Term, Term)>) {
    use crate::term::Term as T;

    // Types
    globals.insert("Nat".into(),  (nat(), T::Sort(1)));
    globals.insert("Bool".into(), (bool_ty(), T::Sort(1)));
    globals.insert("True".into(), (T::Ind(TRUE_ID, vec![]), T::Sort(0)));
    globals.insert("False".into(),(T::Ind(FALSE_ID, vec![]), T::Sort(0)));

    // Bool values
    globals.insert("Bool.false".into(), (bool_false(), bool_ty()));
    globals.insert("Bool.true".into(),  (bool_true(),  bool_ty()));
    globals.insert("true".into(),       (bool_true(),  bool_ty()));
    globals.insert("false".into(),      (bool_false(), bool_ty()));

    // Nat constructors
    globals.insert("Nat.zero".into(), (nat_zero(), nat()));
    globals.insert("Nat.succ".into(), (
        T::Lam(Box::new(nat()), Box::new(nat_next(T::Var(0)))),
        T::Pi(Box::new(nat()), Box::new(nat())),
    ));

    // Nat arithmetic
    let add_ty = T::Pi(Box::new(nat()), Box::new(T::Pi(Box::new(nat()), Box::new(nat()))));
    let add_term = T::Lam(Box::new(nat()), Box::new(T::Lam(
        Box::new(nat()),
        Box::new(nat_add(T::Var(1), T::Var(0))),
    )));
    globals.insert("Nat.add".into(), (add_term, add_ty.clone()));

    let mul_term = T::Lam(Box::new(nat()), Box::new(T::Lam(
        Box::new(nat()),
        Box::new(nat_mul(T::Var(1), T::Var(0))),
    )));
    globals.insert("Nat.mul".into(), (mul_term, add_ty.clone()));

    let sub_term = T::Lam(Box::new(nat()), Box::new(T::Lam(
        Box::new(nat()),
        Box::new(nat_sub(T::Var(1), T::Var(0))),
    )));
    globals.insert("Nat.sub".into(), (sub_term, add_ty.clone()));

    // Nat.min and Nat.max
    globals.insert("Nat.min".into(), (nat_min_term(), add_ty.clone()));
    globals.insert("Nat.max".into(), (nat_max_term(), add_ty.clone()));

    // Nat.div โ€” axiomatic (non-structurally recursive; trusted standard lemma)
    let div_ty = le::nat_div_ty();
    globals.insert("Nat.div".into(), (le::nat_div_axiom(), div_ty));

    // Le type constructor
    globals.insert("Le".into(), (le_type_lam(), le_type_pi()));
    globals.insert("Nat.Le".into(), (le_type_lam(), le_type_pi()));

    // Le constructors
    // le_refl : ฮ (n:Nat). Le n n
    let le_refl_ty = T::Pi(
        Box::new(nat()),
        Box::new(T::Ind(LE_ID, vec![T::Var(0), T::Var(0)])),
    );
    let le_refl_term = T::Lam(
        Box::new(nat()),
        Box::new(T::Ctor(LE_ID, LE_REFL_IDX, vec![T::Var(0), T::Var(0)])),
    );
    globals.insert("Le.refl".into(), (le_refl_term.clone(), le_refl_ty.clone()));
    globals.insert("Nat.Le.refl".into(), (le_refl_term, le_refl_ty));

    // Nat axiom lemmas (bootstrap axioms โ€” proved in Lean, trusted here)
    // Nat.min_le_right : ฮ (a b : Nat). Le (Nat.min a b) b
    let min_ref = T::Lam(Box::new(nat()), Box::new(T::Lam(
        Box::new(nat()),
        Box::new(T::Ind(LE_ID, vec![
            T::App(
                Box::new(T::App(Box::new(nat_min_term()), Box::new(T::Var(1)))),
                Box::new(T::Var(0)),
            ),
            T::Var(0),
        ])),
    )));
    let min_le_ty = T::Pi(Box::new(nat()), Box::new(T::Pi(
        Box::new(nat()),
        Box::new(T::Ind(LE_ID, vec![
            T::App(
                Box::new(T::App(Box::new(nat_min_term()), Box::new(T::Var(1)))),
                Box::new(T::Var(0)),
            ),
            T::Var(0),
        ])),
    )));
    globals.insert("Nat.min_le_right".into(), (min_ref, min_le_ty));

    // Nat.div_le_self : ฮ (n k : Nat). Le (Nat.div n k) n
    // Stored as opaque axiom (self-typed)
    let div_le_self_ty = T::Pi(Box::new(nat()), Box::new(T::Pi(
        Box::new(nat()),
        Box::new(T::Ind(LE_ID, vec![
            T::App(
                Box::new(T::App(Box::new(le::nat_div_axiom()), Box::new(T::Var(1)))),
                Box::new(T::Var(0)),
            ),
            T::Var(1),
        ])),
    )));
    globals.insert("Nat.div_le_self".into(), (div_le_self_ty.clone(), div_le_self_ty));

    // The three remaining lemmas (div_le_div_right, mul_le_mul_right,
    // mul_div_cancel_left) involve Le hypotheses โ€” stored opaquely.
    // Surface proofs reference them by name and apply them.
    let opaque = T::Sort(0); // placeholder type for complex axioms
    globals.insert("Nat.div_le_div_right".into(), (opaque.clone(), opaque.clone()));
    globals.insert("Nat.mul_le_mul_right".into(), (opaque.clone(), opaque.clone()));
    globals.insert("Nat.mul_div_cancel_left".into(), (opaque.clone(), opaque));
}

// โ”€โ”€ Tests โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

#[cfg(test)]
mod tests {
    use super::*;
    use crate::{kernel::infer, reduce::{nf, whnf, def_eq}};

    fn ctx() -> crate::ctx::Ctx { vec![] }

    #[test]
    fn nat_zero_type() {
        let env = std_env();
        assert_eq!(infer(&env, &ctx(), &nat_zero()), Ok(nat()));
    }

    #[test]
    fn nat_next_type() {
        let env = std_env();
        assert_eq!(infer(&env, &ctx(), &nat_next(nat_zero())), Ok(nat()));
    }

    #[test]
    fn nat_lits() {
        let env = std_env();
        for n in 0u64..=5 {
            assert_eq!(infer(&env, &ctx(), &nat_lit(n)), Ok(nat()), "nat_lit({n})");
        }
    }

    #[test]
    fn bool_ctors_type() {
        let env = std_env();
        assert_eq!(infer(&env, &ctx(), &bool_false()), Ok(bool_ty()));
        assert_eq!(infer(&env, &ctx(), &bool_true()),  Ok(bool_ty()));
    }

    #[test]
    fn list_nil_type() {
        let env = std_env();
        assert_eq!(infer(&env, &ctx(), &list_nil(nat())), Ok(list(nat())));
    }

    #[test]
    fn list_link_type() {
        let env = std_env();
        let nil = list_nil(nat());
        let singleton = list_link(nat(), nat_zero(), nil);
        assert_eq!(infer(&env, &ctx(), &singleton), Ok(list(nat())));
    }

    #[test]
    fn false_is_prop() {
        let env = std_env();
        assert_eq!(infer(&env, &ctx(), &Term::Ind(FALSE_ID, vec![])), Ok(Term::Sort(0)));
    }

    #[test]
    fn true_is_prop() {
        let env = std_env();
        assert_eq!(infer(&env, &ctx(), &Term::Ind(TRUE_ID, vec![])), Ok(Term::Sort(0)));
    }

    #[test]
    fn nat_add_by_elim() {
        let env = std_env();
        let three = nat_lit(3);
        let two   = nat_lit(2);
        let motive = Term::Lam(Box::new(nat()), Box::new(nat()));
        let case_next = Term::Lam(
            Box::new(nat()),
            Box::new(Term::Lam(
                Box::new(nat()),
                Box::new(nat_next(Term::Var(0))),
            )),
        );
        let elim = Term::Elim(
            NAT_ID,
            Box::new(motive),
            vec![three, case_next],
            Box::new(two),
        );
        let ty = infer(&env, &ctx(), &elim).unwrap();
        assert!(def_eq(&env, &ctx(), &ty, &nat()));
        let result = nf(&env, &ctx(), elim);
        assert_eq!(result, nat_lit(5));
    }

    #[test]
    fn nat_mul_by_elim() {
        let env = std_env();
        let two = nat_lit(2);
        let case_next = Term::Lam(
            Box::new(nat()),
            Box::new(Term::Lam(
                Box::new(nat()),
                Box::new(nat_add(nat_lit(3), Term::Var(0))),
            )),
        );
        let mul_elim = Term::Elim(
            NAT_ID,
            Box::new(Term::Lam(Box::new(nat()), Box::new(nat()))),
            vec![nat_zero(), case_next],
            Box::new(two),
        );
        assert_eq!(nf(&env, &ctx(), mul_elim), nat_lit(6));
    }

    #[test]
    fn eq_refl_kernel_check() {
        let env = std_env();
        let proof = eq_refl(nat(), nat_zero());
        let ty    = Term::Ind(EQ_ID, vec![nat(), nat_zero(), nat_zero()]);
        assert_eq!(crate::kernel::check(&env, &ctx(), &proof, &ty), Ok(()));
    }

    #[test]
    fn and_right_kernel_check() {
        let env = std_env();
        let t_ty = Term::Ind(TRUE_ID, vec![]);
        let intro = Term::Ctor(TRUE_ID, 0, vec![]);
        let h = and_intro(t_ty.clone(), t_ty.clone(), intro.clone(), intro);
        let extracted = and_right(t_ty.clone(), t_ty.clone(), h);
        assert_eq!(crate::kernel::check(&env, &ctx(), &extracted, &t_ty), Ok(()));
    }

    #[test]
    fn bool_not_true_kernel_check() {
        let env = std_env();
        let proof = bool_not_true_eq();
        let ty = Term::Ind(EQ_ID, vec![bool_ty(), bool_not(bool_true()), bool_false()]);
        assert_eq!(crate::kernel::check(&env, &ctx(), &proof, &ty), Ok(()));
    }

    #[test]
    fn bool_not_false_kernel_check() {
        let env = std_env();
        let proof = bool_not_false_eq();
        let ty = Term::Ind(EQ_ID, vec![bool_ty(), bool_not(bool_false()), bool_true()]);
        assert_eq!(crate::kernel::check(&env, &ctx(), &proof, &ty), Ok(()));
    }

    #[test]
    fn and_intro_kernel_check() {
        let env = std_env();
        let t_ty = Term::Ind(TRUE_ID, vec![]);
        let intro = Term::Ctor(TRUE_ID, 0, vec![]);
        let proof = and_intro(t_ty.clone(), t_ty.clone(), intro.clone(), intro);
        let ty = Term::Ind(AND_ID, vec![t_ty.clone(), t_ty]);
        assert_eq!(crate::kernel::check(&env, &ctx(), &proof, &ty), Ok(()));
    }

    #[test]
    fn nat_min_reduces() {
        let env = std_env();
        let min_fn = nat_min_term();
        // min 3 5 = 3
        let result = nf(&env, &ctx(),
            Term::App(Box::new(Term::App(Box::new(min_fn.clone()), Box::new(nat_lit(3)))),
                      Box::new(nat_lit(5))));
        assert_eq!(result, nat_lit(3), "min 3 5 โ‰  3: {result:?}");
        // min 5 3 = 3
        let result2 = nf(&env, &ctx(),
            Term::App(Box::new(Term::App(Box::new(min_fn), Box::new(nat_lit(5)))),
                      Box::new(nat_lit(3))));
        assert_eq!(result2, nat_lit(3), "min 5 3 โ‰  3: {result2:?}");
    }

    #[test]
    fn nat_max_reduces() {
        let env = std_env();
        let max_fn = nat_max_term();
        // max 3 5 = 5
        let result = nf(&env, &ctx(),
            Term::App(Box::new(Term::App(Box::new(max_fn.clone()), Box::new(nat_lit(3)))),
                      Box::new(nat_lit(5))));
        assert_eq!(result, nat_lit(5), "max 3 5 โ‰  5");
        // max 5 3 = 5
        let result2 = nf(&env, &ctx(),
            Term::App(Box::new(Term::App(Box::new(max_fn), Box::new(nat_lit(5)))),
                      Box::new(nat_lit(3))));
        assert_eq!(result2, nat_lit(5), "max 5 3 โ‰  5");
    }

    #[test]
    fn le_ind_is_prop() {
        let env = std_env();
        let le_ty = Term::Ind(LE_ID, vec![nat_lit(2), nat_lit(3)]);
        assert_eq!(whnf(&env, &ctx(), infer(&env, &ctx(), &le_ty).unwrap()), Term::Sort(0));
    }
}

Homonyms

cyberia/src/components/mod.rs
cyberia/src/pages/mod.rs
cyb/optica/src/output/mod.rs
neural/trident/src/compile/mod.rs
cyb/optica/src/parser/mod.rs
soft3/nox/rs/data/mod.rs
neural/trident/src/api/mod.rs
soft3/mir/src/graph/mod.rs
cyb/optica/src/render/mod.rs
cyb/optica/src/scanner/mod.rs
soft3/cybergraph/tests/common/mod.rs
neural/trident/src/verify/mod.rs
soft3/tru/rs/model/mod.rs
neural/trident/src/diagnostic/mod.rs
soft3/mudra/src/proof/mod.rs
cyb/optica/src/graph/mod.rs
soft3/glia/import/loader/mod.rs
soft3/glia/run/backend/mod.rs
neural/trident/src/import/mod.rs
soft3/tru/rs/pass/mod.rs
soft3/mir/src/bevy/mod.rs
neural/trident/src/package/mod.rs
neural/trident/src/lsp/mod.rs
neural/trident/src/field/mod.rs
cyb/prysm/atoms/rs/mod.rs
soft3/tru/rs/graph/mod.rs
neural/trident/src/deploy/mod.rs
soft3/mir/src/epoch/mod.rs
neural/trident/src/runtime/mod.rs
soft3/glia/run/arch/mod.rs
neural/trident/src/typecheck/mod.rs
neural/trident/src/gpu/mod.rs
soft3/nox/rs/jets/mod.rs
soft3/glia/run/tokenizer/mod.rs
soft3/mir/src/frame/mod.rs
neural/trident/src/ir/mod.rs
neural/trident/src/config/mod.rs
soft3/nox/rs/patterns/mod.rs
neural/trident/src/cost/mod.rs
soft3/glia/run/ir/mod.rs
neural/trident/src/cli/mod.rs
soft3/tru/rs/focusing/mod.rs
neural/trident/src/neural/mod.rs
cyb/optica/src/query/mod.rs
cyb/prysm/system/rs/mod.rs
neural/trident/src/ast/mod.rs
soft3/glia/run/bench/mod.rs
cyb/prysm/molecules/rs/mod.rs
cyb/optica/src/server/mod.rs
soft3/glia/run/core/mod.rs
neural/trident/src/syntax/mod.rs
cyb/honeycrisp/acpu/src/vector/mod.rs
soft3/glia/run/backend/cpu/mod.rs
soft3/zheng/rs/src/spartan/mod.rs
soft3/bbg/rs/src/storage/mod.rs
neural/trident/src/config/resolve/mod.rs
cyb/honeycrisp/aruminium/src/ffi/mod.rs
cyb/cyb/cyb-shell/src/worlds/mod.rs
cyb/wysm/crates/wasi/tests/mod.rs
soft3/zheng/rs/src/ccs/mod.rs
neural/trident/src/package/store/mod.rs
cyb/cyb/cyb-shell/src/shell/mod.rs
cyb/wysm/crates/wasmi/tests/mod.rs
neural/trident/src/verify/synthesize/mod.rs
cyb/honeycrisp/acpu/src/field/mod.rs
neural/rs/macros/src/addressed/mod.rs
soft3/glia/run/cli/cmd/mod.rs
neural/trident/src/cost/stack_verifier/mod.rs
neural/trident/src/verify/sym/mod.rs
neural/trident/src/syntax/format/mod.rs
neural/trident/src/syntax/grammar/mod.rs
neural/trident/src/lsp/util/mod.rs
neural/rs/rsc/src/lints/mod.rs
neural/trident/src/typecheck/tests/mod.rs
neural/eidos/rs/src/surface/mod.rs
soft3/mir/src/frame/tiers/mod.rs
cyb/honeycrisp/acpu/src/pulse/mod.rs
neural/trident/src/ir/lir/mod.rs
neural/trident/src/package/registry/mod.rs
neural/trident/src/neural/model/mod.rs
neural/trident/src/package/hash/mod.rs
cyb/honeycrisp/acpu/src/sync/mod.rs
soft3/glia/run/arch/decoder/mod.rs
neural/trident/src/verify/report/mod.rs
neural/trident/src/ir/tir/mod.rs
cyb/honeycrisp/rane/src/mil/mod.rs
cyb/honeycrisp/acpu/src/crypto/mod.rs
soft3/zheng/rs/src/folding/mod.rs
neural/trident/src/ir/tree/mod.rs
cyb/honeycrisp/acpu/src/matrix/mod.rs
soft3/glia/run/backend/honeycrisp/mod.rs
neural/eidos/rs/src/elab/mod.rs
neural/rs/macros/src/registers/mod.rs
neural/trident/src/verify/solve/mod.rs
neural/rs/core/src/fixed_point/mod.rs
neural/trident/src/syntax/parser/mod.rs
neural/trident/src/neural/data/mod.rs
neural/trident/src/verify/smt/mod.rs
soft3/radio/iroh-blobs/examples/common/mod.rs
soft3/strata/nebu/rs/extension/mod.rs
neural/rs/darwin-sys/src/ffi/mod.rs
cyb/honeycrisp/acpu/src/sparse/mod.rs
soft3/glia/run/backend/wgpu/mod.rs
neural/rs/core/src/bounded/mod.rs
neural/eidos/rs/src/tactic_ext/mod.rs
neural/trident/src/cost/model/mod.rs
cyb/wysm/crates/wast/tests/mod.rs
soft3/radio/iroh-blobs/src/store/mod.rs
neural/trident/src/package/manifest/mod.rs
cyb/cyb/cyb-shell/src/agent/mod.rs
neural/trident/src/neural/training/mod.rs
neural/trident/src/verify/equiv/mod.rs
neural/trident/src/syntax/lexer/mod.rs
cyb/honeycrisp/acpu/src/numeric/mod.rs
soft3/radio/cyber-bao/src/io/mod.rs
neural/trident/src/ir/kir/mod.rs
cyb/honeycrisp/aruminium/src/render/mod.rs
neural/trident/src/neural/inference/mod.rs
cyb/honeycrisp/acpu/src/probe/mod.rs
neural/trident/src/api/tests/mod.rs
cyb/honeycrisp/acpu/src/gemm/mod.rs
soft3/nox/rs/jets/backends/mod.rs
neural/trident/src/lsp/semantic/mod.rs
neural/rs/macros/src/cell/mod.rs
neural/trident/src/config/scaffold/mod.rs
soft3/zheng/rs/src/sumcheck/mod.rs
cyb/evy/forks/bevy_ecs/src/entity/mod.rs
neural/trident/src/ir/tir/builder/mod.rs
cyb/evy/forks/bevy_ecs/src/system/mod.rs
cyb/evy/forks/bevy_sprite_render/src/render/mod.rs
soft3/strata/jali/wgsl/src/shaders/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/tonemapping/mod.rs
cyb/evy/forks/bevy_anti_alias/src/dlss/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/skybox/mod.rs
cyb/evy/forks/bevy_sprite_render/src/text2d/mod.rs
cyb/evy/forks/bevy_render/src/batching/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/experimental/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/oit/mod.rs
cyb/evy/forks/bevy_sprite_render/src/tilemap_chunk/mod.rs
cyb/evy/forks/bevy_pbr/src/atmosphere/mod.rs
cyb/evy/forks/bevy_post_process/src/motion_blur/mod.rs
cyb/wysm/crates/wasmi/src/store/mod.rs
cyb/evy/forks/bevy_render/src/render_graph/mod.rs
cyb/wysm/crates/wasmi/benches/bench/mod.rs
cyb/evy/forks/bevy_anti_alias/src/contrast_adaptive_sharpening/mod.rs
neural/trident/src/ir/tir/stack/mod.rs
cyb/evy/forks/bevy_render/src/texture/mod.rs
cyb/wysm/crates/c_api/src/types/mod.rs
soft3/strata/genies/wgsl/src/shaders/mod.rs
cyb/wysm/crates/core/src/memory/mod.rs
bootloader/go-cyber/mcp/rust/src/proto/mod.rs
cyb/evy/forks/bevy_ecs/src/bundle/mod.rs
cyb/evy/forks/bevy_mesh/src/primitives/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/mod.rs
cyb/wysm/crates/wasmi/src/module/mod.rs
cyb/evy/forks/bevy_sprite/src/texture_slice/mod.rs
cyb/evy/forks/bevy_ecs/src/observer/mod.rs
neural/trident/src/ir/tir/neural/mod.rs
cyb/evy/forks/bevy_render/src/view/mod.rs
neural/trident/src/ir/lir/lower/mod.rs
cyb/evy/forks/bevy_anti_alias/src/smaa/mod.rs
bootloader/go-cyber/mcp/rust/src/clients/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/fullscreen_vertex_shader/mod.rs
cyb/wysm/crates/wasmi/tests/integration/mod.rs
cyb/wysm/crates/ir/src/decode/mod.rs
cyb/wysm/crates/wasmi/src/memory/mod.rs
cyb/evy/crates/evy_prysm_core/src/layout/mod.rs
cyb/evy/forks/bevy_anti_alias/src/fxaa/mod.rs
cyb/evy/forks/bevy_pbr/src/prepass/mod.rs
cyb/evy/forks/bevy_render/src/render_resource/mod.rs
cyb/evy/forks/bevy_ecs/src/query/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/core_2d/mod.rs
cyb/wysm/crates/cli/src/commands/mod.rs
cyb/evy/forks/bevy_render/src/renderer/mod.rs
cyb/wysm/crates/collections/src/arena/mod.rs
cyb/evy/forks/bevy_post_process/src/effect_stack/mod.rs
cyb/evy/forks/bevy_ecs/src/change_detection/mod.rs
cyb/evy/forks/bevy_pbr/src/ssao/mod.rs
cyb/evy/forks/naga/src/keywords/mod.rs
cyb/evy/forks/naga/src/compact/mod.rs
neural/trident/src/ir/tir/lower/mod.rs
cyb/evy/forks/bevy_pbr/src/render/mod.rs
cyb/evy/forks/bevy_ecs/src/world/mod.rs
cyb/evy/forks/bevy_anti_alias/src/taa/mod.rs
cyb/evy/forks/bevy_ecs/src/reflect/mod.rs
soft3/strata/kuro/wgsl/src/shaders/mod.rs
cyb/evy/forks/bevy_ecs/src/error/mod.rs
neural/trident/src/ir/kir/lower/mod.rs
cyb/evy/forks/naga/src/proc/mod.rs
cyb/evy/forks/bevy_ecs/src/event/mod.rs
cyb/evy/forks/bevy_ecs/src/component/mod.rs
cyb/evy/forks/bevy_sprite_render/src/mesh2d/mod.rs
cyb/evy/forks/bevy_ecs/src/relationship/mod.rs
cyb/wysm/crates/wasmi/src/instance/mod.rs
cyb/evy/forks/bevy_pbr/src/ssr/mod.rs
bootloader/go-cyber/mcp/rust/src/tools/mod.rs
soft3/glia/run/backend/honeycrisp/kernels/mod.rs
cyb/evy/forks/naga/src/back/mod.rs
soft3/glia/run/backend/cpu/quant/mod.rs
cyb/wysm/crates/core/src/table/mod.rs
cyb/evy/forks/bevy_post_process/src/dof/mod.rs
cyb/evy/forks/bevy_pbr/src/light_probe/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/prepass/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/upscaling/mod.rs
cyb/wysm/crates/wasmi/src/table/mod.rs
cyb/evy/forks/bevy_post_process/src/bloom/mod.rs
cyb/evy/forks/bevy_pbr/src/lightmap/mod.rs
neural/trident/src/ir/tir/optimize/mod.rs
cyb/evy/forks/bevy_gizmos/src/primitives/mod.rs
cyb/evy/forks/bevy_post_process/src/auto_exposure/mod.rs
neural/trident/src/neural/data/tir_graph/mod.rs
cyb/evy/forks/bevy_render/src/experimental/mod.rs
cyb/wysm/crates/wasmi/src/engine/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/deferred/mod.rs
cyb/evy/forks/naga/src/arena/mod.rs
cyb/evy/forks/bevy_render/src/diagnostic/mod.rs
cyb/evy/forks/bevy_render/src/render_phase/mod.rs
cyb/evy/forks/bevy_transform/src/components/mod.rs
soft3/strata/trop/wgsl/src/shaders/mod.rs
soft3/glia/run/backend/wgpu/kernels/mod.rs
cyb/evy/forks/bevy_sprite_render/src/texture_slice/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/core_3d/mod.rs
cyb/evy/forks/bevy_render/src/mesh/mod.rs
neural/trident/src/ir/tree/lower/mod.rs
cyb/evy/forks/bevy_pbr/src/volumetric_fog/mod.rs
cyb/evy/forks/bevy_pbr/src/decal/mod.rs
cyb/wysm/crates/fuzz/src/oracle/mod.rs
cyb/evy/forks/bevy_ecs/src/message/mod.rs
cyb/evy/forks/naga/src/valid/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/blit/mod.rs
cyb/evy/forks/naga/src/front/mod.rs
cyb/wysm/crates/wasi/src/sync/mod.rs
cyb/evy/forks/bevy_pbr/src/meshlet/mod.rs
cyb/evy/forks/bevy_pbr/src/deferred/mod.rs
neural/trident/src/syntax/parser/tests/mod.rs
cyb/evy/forks/bevy_ecs/src/storage/mod.rs
cyb/evy/forks/bevy_tasks/src/iter/mod.rs
soft3/glia/run/arch/decoder/families/mod.rs
cyb/wysm/crates/wasmi/src/func/mod.rs
cyb/evy/forks/naga/src/common/mod.rs
cyb/evy/forks/naga/src/front/wgsl/mod.rs
cyb/evy/forks/naga/src/back/spv/mod.rs
cyb/evy/forks/naga/src/back/dot/mod.rs
cyb/evy/forks/bevy_render/src/view/window/mod.rs
cyb/wysm/crates/wasi/src/sync/snapshots/mod.rs
cyb/evy/forks/bevy_render/src/experimental/occlusion_culling/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/graph/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/mod.rs
cyb/wysm/crates/wasmi/src/module/parser/mod.rs
cyb/wysm/crates/wasmi/src/engine/limits/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/mod.rs
cyb/evy/forks/bevy_ecs/src/system/commands/mod.rs
cyb/evy/forks/naga/src/back/wgsl/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/oit/resolve/mod.rs
cyb/wysm/crates/wasmi/src/module/instantiate/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/experimental/mip_generation/mod.rs
cyb/evy/forks/bevy_ecs/src/storage/table/mod.rs
bootloader/go-cyber/cw/packages/cyber-std/src/tokenfactory/mod.rs
cyb/evy/forks/bevy_render/src/view/visibility/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/executor/mod.rs
cyb/evy/forks/naga/src/front/spv/mod.rs
cyb/evy/forks/naga/src/back/msl/mod.rs
cyb/evy/forks/naga/src/front/glsl/mod.rs
cyb/evy/forks/bevy_ecs/src/world/entity_access/mod.rs
cyb/evy/forks/bevy_mesh/src/primitives/dim3/mod.rs
cyb/evy/forks/naga/src/back/glsl/mod.rs
cyb/evy/forks/naga/src/back/hlsl/mod.rs
struct Baz { m: mat3x2, } struct Baz { float2 m_0; float2 m_1; float2 m_2; }; float3x2 GetMatmOnBaz(Baz obj) { return float3x2(obj.m_0, obj.m_1, obj.m_2); }
cyb/wysm/crates/wasmi/src/engine/executor/handler/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/mod.rs
cyb/evy/forks/naga/src/front/wgsl/parse/mod.rs
cyb/evy/forks/naga/src/back/wgsl/polyfill/mod.rs
cyb/evy/forks/naga/src/front/wgsl/lower/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/simd/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/stack/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/handler/dispatch/mod.rs

Graph