use spectral_vm::{vm::SovereignVM, signal::SpectralSignal, attestor::SovereignProver, attestor::SovereignVerifier, transcript::Transcript};
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("🌀 HYPERION ZK-VM Example");
println!("========================");
let program = SpectralSignal::new(vec![1, 2, 0, 0]);
let challenge = spectral_vm::field::Goldilocks::new(42); let mut vm = SovereignVM::new(program, challenge, 1024);
println!("✅ VM initialized with program");
let mut transcript = Transcript::new();
vm.execute_trace(1000, &mut transcript).unwrap();
println!("✅ Program executed successfully");
println!("📊 Result stored in registers");
let boolean_trace = SpectralSignal::new(vec![1, 0, 1]);
let attestation = SovereignProver::prove(&vm, &boolean_trace, 16);
println!("✅ ZK proof generated");
let is_valid = SovereignVerifier::verify_strict(&attestation, 16);
match is_valid {
Ok(_) => {
println!("✅ ZK proof verified successfully");
println!("🎉 Example completed!");
}
Err(e) => {
println!("❌ Proof verification failed: {:?}", e);
}
}
Ok(())
}