pub const AC_SUB_FFN_BEFORE_FIELD_COUNT: u64 = 6;
pub const AC_SUB_FFN_AFTER_FIELD_COUNT: u64 = 10;
pub const AC_SUB_FFN_REFERENCE_LAYER_INDEX: u32 = 3;
pub const AC_SUB_FFN_REFERENCE_FFN_OUT_STD_LAYER_3: f64 = 11.459;
pub const AC_SUB_FFN_REFERENCE_FFN_OUT_STD_LAYER_2: f64 = 0.216;
pub const AC_SUB_FFN_001_SPIKE_RATIO: f64 = 3.0;
pub const AC_SUB_FFN_001_NEIGHBOR_RATIO_LIMIT: f64 = 2.0;
pub const AC_SUB_FFN_006_QWEN_INTERMEDIATE_DIM: usize = 18_944;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SubFfn001Verdict { Pass, Fail }
#[must_use]
pub fn verdict_from_layer3_spike_localized(
slot_stds_layer_3: &[f64; 5],
slot_medians: &[f64; 5],
) -> SubFfn001Verdict {
if slot_medians.iter().any(|m| !m.is_finite() || *m <= 0.0) {
return SubFfn001Verdict::Fail;
}
if slot_stds_layer_3.iter().any(|s| !s.is_finite() || *s < 0.0) {
return SubFfn001Verdict::Fail;
}
let mut spike_count = 0;
let mut neighbor_violations = 0;
for i in 0..5 {
let ratio = slot_stds_layer_3[i] / slot_medians[i];
if ratio >= AC_SUB_FFN_001_SPIKE_RATIO {
spike_count += 1;
} else if ratio >= AC_SUB_FFN_001_NEIGHBOR_RATIO_LIMIT {
neighbor_violations += 1;
}
}
if spike_count == 1 && neighbor_violations == 0 {
SubFfn001Verdict::Pass
} else {
SubFfn001Verdict::Fail
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SubFfn002Verdict { Pass, Fail }
#[must_use]
pub fn verdict_from_ffn_out_stats_byte_identical(pre: &[u8], post: &[u8]) -> SubFfn002Verdict {
if pre.is_empty() || post.is_empty() { return SubFfn002Verdict::Fail; }
if pre == post { SubFfn002Verdict::Pass } else { SubFfn002Verdict::Fail }
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SubFfn003Verdict { Pass, Fail }
#[must_use]
pub fn verdict_from_naming_alignment(observed: &[(&str, &str)]) -> SubFfn003Verdict {
let canonical: [(&str, &str); 4] = [
("ffn_gate", "gate_proj"),
("ffn_up", "up_proj"),
("ffn_swiglu", "swiglu"),
("ffn_out", "down_proj"),
];
if observed.len() != canonical.len() { return SubFfn003Verdict::Fail; }
for can in canonical {
if !observed.iter().any(|p| *p == can) { return SubFfn003Verdict::Fail; }
}
SubFfn003Verdict::Pass
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum GpuTelemetryShape {
AllPopulated,
AllZeroFlagged,
SilentlyZeroPretendingComplete,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SubFfn004Verdict { Pass, Fail }
#[must_use]
pub fn verdict_from_gpu_telemetry_shape(shape: GpuTelemetryShape) -> SubFfn004Verdict {
match shape {
GpuTelemetryShape::AllPopulated | GpuTelemetryShape::AllZeroFlagged => SubFfn004Verdict::Pass,
GpuTelemetryShape::SilentlyZeroPretendingComplete => SubFfn004Verdict::Fail,
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SubFfn006Verdict { Pass, Fail }
#[must_use]
pub fn verdict_from_vector_length_correct(
captured_lens: &[usize; 4],
intermediate_dim: usize,
) -> SubFfn006Verdict {
if intermediate_dim == 0 { return SubFfn006Verdict::Fail; }
for &len in captured_lens {
if len != intermediate_dim { return SubFfn006Verdict::Fail; }
}
SubFfn006Verdict::Pass
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SubFfn007Verdict { Pass, Fail }
pub const AC_SUB_FFN_007_NEEDLE: &str = "contracts/trace-ffn-sub-block-v1";
pub const AC_SUB_FFN_007_REQUIRED_HITS: usize = 4;
#[must_use]
pub fn verdict_from_doc_citation_count(source_lines: &str) -> SubFfn007Verdict {
let count = source_lines.matches(AC_SUB_FFN_007_NEEDLE).count();
if count >= AC_SUB_FFN_007_REQUIRED_HITS { SubFfn007Verdict::Pass } else { SubFfn007Verdict::Fail }
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SubFfn008Verdict { Pass, Fail }
pub const AC_SUB_FFN_008_NEW_FIELDS: [&str; 4] = [
"ffn_gate_stats",
"ffn_up_stats",
"ffn_silu_gate_stats",
"ffn_swiglu_inner_stats",
];
#[must_use]
pub fn verdict_from_coverage_coevolution(field_test_counts: &[u64; 4]) -> SubFfn008Verdict {
for &count in field_test_counts {
if count == 0 { return SubFfn008Verdict::Fail; }
}
SubFfn008Verdict::Pass
}
#[cfg(test)]
mod tests {
use super::*;
#[test] fn sf001_pass_one_spike() {
let l3 = [0.5, 0.4, 0.3, 11.459, 0.5];
let med = [0.5, 0.5, 0.5, 0.216, 0.5];
assert_eq!(verdict_from_layer3_spike_localized(&l3, &med), SubFfn001Verdict::Pass);
}
#[test] fn sf001_fail_no_spike() {
let l3 = [0.5, 0.4, 0.3, 0.5, 0.5];
let med = [0.5; 5];
assert_eq!(verdict_from_layer3_spike_localized(&l3, &med), SubFfn001Verdict::Fail);
}
#[test] fn sf001_fail_two_spikes() {
let l3 = [10.0, 0.4, 0.3, 11.0, 0.5];
let med = [0.5; 5];
assert_eq!(verdict_from_layer3_spike_localized(&l3, &med), SubFfn001Verdict::Fail);
}
#[test] fn sf001_fail_neighbor_above_2x() {
let l3 = [0.5, 1.25, 0.3, 15.0, 0.5];
let med = [0.5; 5];
assert_eq!(verdict_from_layer3_spike_localized(&l3, &med), SubFfn001Verdict::Fail);
}
#[test] fn sf001_fail_zero_median() {
let l3 = [0.5, 0.4, 0.3, 11.0, 0.5];
let med = [0.5, 0.5, 0.5, 0.0, 0.5];
assert_eq!(verdict_from_layer3_spike_localized(&l3, &med), SubFfn001Verdict::Fail);
}
#[test] fn sf002_pass_match() {
assert_eq!(verdict_from_ffn_out_stats_byte_identical(b"abc", b"abc"), SubFfn002Verdict::Pass);
}
#[test] fn sf002_fail_drift() {
assert_eq!(verdict_from_ffn_out_stats_byte_identical(b"abc", b"abd"), SubFfn002Verdict::Fail);
}
#[test] fn sf002_fail_empty() {
assert_eq!(verdict_from_ffn_out_stats_byte_identical(b"", b"abc"), SubFfn002Verdict::Fail);
}
#[test] fn sf003_pass_canonical() {
let obs = [
("ffn_gate", "gate_proj"),
("ffn_up", "up_proj"),
("ffn_swiglu", "swiglu"),
("ffn_out", "down_proj"),
];
assert_eq!(verdict_from_naming_alignment(&obs), SubFfn003Verdict::Pass);
}
#[test] fn sf003_pass_reordered() {
let obs = [
("ffn_out", "down_proj"),
("ffn_gate", "gate_proj"),
("ffn_swiglu", "swiglu"),
("ffn_up", "up_proj"),
];
assert_eq!(verdict_from_naming_alignment(&obs), SubFfn003Verdict::Pass);
}
#[test] fn sf003_fail_missing_pair() {
let obs = [
("ffn_gate", "gate_proj"),
("ffn_up", "up_proj"),
("ffn_out", "down_proj"),
];
assert_eq!(verdict_from_naming_alignment(&obs), SubFfn003Verdict::Fail);
}
#[test] fn sf003_fail_renamed_field() {
let obs = [
("ffn_gate", "gate_proj"),
("ffn_up", "up_proj"),
("ffn_swiglu", "swiglu"),
("ffn_out", "WRONG_NAME"),
];
assert_eq!(verdict_from_naming_alignment(&obs), SubFfn003Verdict::Fail);
}
#[test] fn sf004_pass_populated() {
assert_eq!(verdict_from_gpu_telemetry_shape(GpuTelemetryShape::AllPopulated), SubFfn004Verdict::Pass);
}
#[test] fn sf004_pass_flagged_zero() {
assert_eq!(verdict_from_gpu_telemetry_shape(GpuTelemetryShape::AllZeroFlagged), SubFfn004Verdict::Pass);
}
#[test] fn sf004_fail_silent_zero() {
assert_eq!(
verdict_from_gpu_telemetry_shape(GpuTelemetryShape::SilentlyZeroPretendingComplete),
SubFfn004Verdict::Fail
);
}
#[test] fn sf006_pass_qwen_intermediate() {
let lens = [18944, 18944, 18944, 18944];
assert_eq!(verdict_from_vector_length_correct(&lens, AC_SUB_FFN_006_QWEN_INTERMEDIATE_DIM), SubFfn006Verdict::Pass);
}
#[test] fn sf006_fail_one_short() {
let lens = [18944, 18944, 100, 18944];
assert_eq!(verdict_from_vector_length_correct(&lens, AC_SUB_FFN_006_QWEN_INTERMEDIATE_DIM), SubFfn006Verdict::Fail);
}
#[test] fn sf006_fail_zero_dim() {
let lens = [0, 0, 0, 0];
assert_eq!(verdict_from_vector_length_correct(&lens, 0), SubFfn006Verdict::Fail);
}
#[test] fn sf007_pass_four_citations() {
let src = "fn a() {}\n/// contracts/trace-ffn-sub-block-v1\nfn b() {}\n\
/// contracts/trace-ffn-sub-block-v1\nfn c() {}\n\
/// contracts/trace-ffn-sub-block-v1\nfn d() {}\n\
/// contracts/trace-ffn-sub-block-v1\nfn e() {}\n";
assert_eq!(verdict_from_doc_citation_count(src), SubFfn007Verdict::Pass);
}
#[test] fn sf007_pass_more_than_four() {
let src = "contracts/trace-ffn-sub-block-v1 ".repeat(10);
assert_eq!(verdict_from_doc_citation_count(&src), SubFfn007Verdict::Pass);
}
#[test] fn sf007_fail_three_citations() {
let src = "contracts/trace-ffn-sub-block-v1 ".repeat(3);
assert_eq!(verdict_from_doc_citation_count(&src), SubFfn007Verdict::Fail);
}
#[test] fn sf007_fail_no_citations() {
assert_eq!(verdict_from_doc_citation_count("fn main() {}"), SubFfn007Verdict::Fail);
}
#[test] fn sf008_pass_all_covered() {
assert_eq!(verdict_from_coverage_coevolution(&[1, 1, 1, 1]), SubFfn008Verdict::Pass);
}
#[test] fn sf008_pass_more_tests() {
assert_eq!(verdict_from_coverage_coevolution(&[5, 3, 8, 2]), SubFfn008Verdict::Pass);
}
#[test] fn sf008_fail_one_uncovered() {
assert_eq!(verdict_from_coverage_coevolution(&[1, 1, 0, 1]), SubFfn008Verdict::Fail);
}
#[test] fn sf008_fail_all_zero() {
assert_eq!(verdict_from_coverage_coevolution(&[0, 0, 0, 0]), SubFfn008Verdict::Fail);
}
#[test] fn provenance_constants() {
assert_eq!(AC_SUB_FFN_BEFORE_FIELD_COUNT, 6);
assert_eq!(AC_SUB_FFN_AFTER_FIELD_COUNT, 10);
assert_eq!(AC_SUB_FFN_REFERENCE_LAYER_INDEX, 3);
assert!((AC_SUB_FFN_REFERENCE_FFN_OUT_STD_LAYER_3 - 11.459).abs() < 1e-9);
assert!((AC_SUB_FFN_REFERENCE_FFN_OUT_STD_LAYER_2 - 0.216).abs() < 1e-9);
assert!((AC_SUB_FFN_001_SPIKE_RATIO - 3.0).abs() < 1e-9);
assert!((AC_SUB_FFN_001_NEIGHBOR_RATIO_LIMIT - 2.0).abs() < 1e-9);
assert_eq!(AC_SUB_FFN_006_QWEN_INTERMEDIATE_DIM, 18_944);
assert_eq!(AC_SUB_FFN_007_REQUIRED_HITS, 4);
assert_eq!(AC_SUB_FFN_008_NEW_FIELDS.len(), 4);
}
}