Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'

This commit is contained in:
ruv
2026-02-28 14:39:40 -05:00
7854 changed files with 3522914 additions and 0 deletions

View File

@@ -0,0 +1,143 @@
//! # 6. Quantization and Compression Proofs
//!
//! Extend beyond dimension equality to prove:
//! - Quantized vector corresponds to original within bound epsilon
//! - Metric invariants preserved under compression
//! - HNSW insert preserves declared index type
//!
//! Result: quantization goes from heuristic to certified transform.
use ruvector_verified::{proof_store, vector_types, ProofEnvironment};
/// Proof that quantization preserved dimensional and metric invariants.
#[derive(Debug)]
pub struct QuantizationCertificate {
pub original_dim: u32,
pub quantized_dim: u32,
pub max_error: f32,
pub actual_error: f32,
pub dim_proof_id: u32,
pub metric_proof_id: u32,
pub attestation: Vec<u8>,
pub certified: bool,
}
/// Verify that a quantized vector preserves the original's dimensional contract
/// and that the reconstruction error is within bounds.
pub fn certify_quantization(
original: &[f32],
quantized: &[f32],
declared_dim: u32,
max_error: f32,
metric: &str,
) -> QuantizationCertificate {
let mut env = ProofEnvironment::new();
// 1. Prove original matches declared dimension
let orig_proof = match vector_types::verified_dim_check(&mut env, declared_dim, original) {
Ok(op) => op.proof_id,
Err(_) => {
return QuantizationCertificate {
original_dim: original.len() as u32,
quantized_dim: quantized.len() as u32,
max_error,
actual_error: f32::INFINITY,
dim_proof_id: 0,
metric_proof_id: 0,
attestation: vec![],
certified: false,
};
}
};
// 2. Prove quantized matches same dimension
let quant_proof = match vector_types::verified_dim_check(&mut env, declared_dim, quantized) {
Ok(op) => op.proof_id,
Err(_) => {
return QuantizationCertificate {
original_dim: original.len() as u32,
quantized_dim: quantized.len() as u32,
max_error,
actual_error: f32::INFINITY,
dim_proof_id: orig_proof,
metric_proof_id: 0,
attestation: vec![],
certified: false,
};
}
};
// 3. Prove dimension equality between original and quantized
let _eq_proof =
vector_types::prove_dim_eq(&mut env, original.len() as u32, quantized.len() as u32);
// 4. Prove metric type is valid
let metric_id = vector_types::mk_distance_metric(&mut env, metric).unwrap_or(0);
// 5. Compute reconstruction error (L2 norm of difference)
let error: f32 = original
.iter()
.zip(quantized.iter())
.map(|(a, b)| (a - b).powi(2))
.sum::<f32>()
.sqrt();
let within_bounds = error <= max_error;
let attestation = if within_bounds {
proof_store::create_attestation(&env, quant_proof).to_bytes()
} else {
vec![]
};
QuantizationCertificate {
original_dim: original.len() as u32,
quantized_dim: quantized.len() as u32,
max_error,
actual_error: error,
dim_proof_id: orig_proof,
metric_proof_id: metric_id,
attestation,
certified: within_bounds,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn perfect_quantization() {
let orig = vec![1.0f32; 128];
let quant = vec![1.0f32; 128]; // identical
let cert = certify_quantization(&orig, &quant, 128, 0.01, "L2");
assert!(cert.certified);
assert!(cert.actual_error < 0.001);
assert_eq!(cert.attestation.len(), 82);
}
#[test]
fn slight_error_within_bounds() {
let orig = vec![1.0f32; 128];
let quant: Vec<f32> = orig.iter().map(|x| x + 0.001).collect();
let cert = certify_quantization(&orig, &quant, 128, 1.0, "L2");
assert!(cert.certified);
assert!(cert.actual_error > 0.0);
}
#[test]
fn error_exceeds_bound() {
let orig = vec![1.0f32; 128];
let quant = vec![2.0f32; 128]; // large error
let cert = certify_quantization(&orig, &quant, 128, 0.01, "L2");
assert!(!cert.certified);
assert!(cert.attestation.is_empty());
}
#[test]
fn dimension_mismatch_rejected() {
let orig = vec![1.0f32; 128];
let quant = vec![1.0f32; 64]; // wrong dim
let cert = certify_quantization(&orig, &quant, 128, 1.0, "L2");
assert!(!cert.certified);
}
}