Download quantum/test_quantum.lisp from Snapkitty/marlborg-worm: direct link, hf CLI and curl.
- Browser
- Download file 4.69 kB
-
https://huggingface.co/Snapkitty/marlborg-worm/resolve/main/quantum/test_quantum.lisp
- Command line
-
hf download hf://Snapkitty/marlborg-worm/quantum/test_quantum.lisp
-
curl -L -o test_quantum.lisp https://huggingface.co/Snapkitty/marlborg-worm/resolve/main/quantum/test_quantum.lisp
4.69 kB
| ;;; | |
| ;;; Copyright (c) 2026 BEL ESPRIT D ACCORD TRUST HOLDINGS INC | |
| ;;; All rights reserved. | |
| (defpackage :hilbert-wormhole.test | |
| (:use :cl :hilbert-wormhole) | |
| (:export :run-quantum-tests)) | |
| (in-package :hilbert-wormhole.test) | |
| (defun run-quantum-tests () | |
| (format t "~%=== Quantum Hilbert-Wormhole Tests ===~%") | |
| (test-walk-unitarity) | |
| (test-bh-entropy-positive) | |
| (test-normalization-preserved) | |
| (test-entropy-bound-respected) | |
| (test-born-rule-normalized) | |
| (test-convergence) | |
| (format t "~%All quantum tests passed.~%")) | |
| (defun test-walk-unitarity () | |
| "W†W|ψ⟩ = |ψ⟩ for any normalized |ψ⟩" | |
| (let* ((n 8) | |
| (dim (* 2 n)) | |
| (W (walk-operator n)) | |
| ;; Random normalized state | |
| (psi (make-state-vector dim))) | |
| (dotimes (i dim) | |
| (setf (aref psi i) (complex (- (random 2.0d0) 1.0d0) | |
| (- (random 2.0d0) 1.0d0)))) | |
| (normalize! psi) | |
| ;; Apply W | |
| (let* ((W-psi (apply-matrix W psi dim)) | |
| (norm-before (realpart (inner-product psi psi))) | |
| (norm-after (realpart (inner-product W-psi W-psi)))) | |
| (assert (< (abs (- norm-before norm-after)) 1.0d-10) () | |
| "Walk must preserve norm: ~A vs ~A" norm-before norm-after) | |
| (format t " walk unitarity (||W|ψ⟩||² = ~,10f): PASS~%" norm-after)))) | |
| (defun test-bh-entropy-positive () | |
| (let ((params (make-rn-params :M 1.0d0 :Q 0.5d0 :G 1.0d0 :hbar 1.0d0))) | |
| (let ((s-bh (bekenstein-hawking-entropy params))) | |
| (assert (> s-bh 0.0d0) () | |
| "S_BH must be positive, got ~A" s-bh) | |
| (format t " BH entropy positive (S=~,4f): PASS~%" s-bh)))) | |
| (defun test-normalization-preserved () | |
| "Evolution preserves normalization" | |
| (let* ((n 8) | |
| (dim (* 2 n)) | |
| (W (walk-operator n)) | |
| (psi (make-state-vector dim)) | |
| (s-bh 100.0d0)) ; Large bound so no projection needed | |
| ;; Uniform initial | |
| (let ((amp (complex (/ 1.0d0 (sqrt (coerce n 'double-float))) 0.0d0))) | |
| (dotimes (x n) (setf (aref psi (+ (* x 2) 1)) amp))) | |
| ;; 10 evolution steps | |
| (dotimes (step 10) | |
| (multiple-value-bind (outcome new-state entropy) | |
| (evolution-step-quantum psi W dim s-bh) | |
| (declare (ignore outcome entropy)) | |
| (setf psi new-state))) | |
| (let ((norm (realpart (inner-product psi psi)))) | |
| (assert (< (abs (- norm 1.0d0)) 1.0d-10) () | |
| "Norm must be 1 after evolution, got ~A" norm) | |
| (format t " normalization preserved (||ψ||²=~,10f): PASS~%" norm)))) | |
| (defun test-entropy-bound-respected () | |
| "After projection, S(ρ) ≤ S_BH" | |
| (let* ((n 16) | |
| (dim (* 2 n)) | |
| (s-bh 1.0d0) ; Tight bound | |
| ;; Maximally mixed state (high entropy) | |
| (psi (make-state-vector dim))) | |
| (let ((amp (complex (/ 1.0d0 (sqrt (coerce dim 'double-float))) 0.0d0))) | |
| (dotimes (i dim) (setf (aref psi i) amp))) | |
| (let* ((projected (entropy-projector psi s-bh)) | |
| (rho (state-to-density projected)) | |
| (S (von-neumann-entropy rho dim))) | |
| (assert (<= S s-bh) () | |
| "Entropy must respect bound: S=~A > S_BH=~A" S s-bh) | |
| (format t " entropy bound (S=~,4f ≤ S_BH=~,4f): PASS~%" S s-bh)))) | |
| (defun test-born-rule-normalized () | |
| "Σ p_i = 1" | |
| (let* ((n 8) | |
| (dim (* 2 n)) | |
| (psi (make-state-vector dim))) | |
| (let ((amp (complex (/ 1.0d0 (sqrt (coerce n 'double-float))) 0.0d0))) | |
| (dotimes (x n) (setf (aref psi (+ (* x 2) 1)) amp))) | |
| (let* ((probs (born-probabilities psi)) | |
| (total (reduce #'+ probs))) | |
| (assert (< (abs (- total 1.0d0)) 1.0d-10) () | |
| "Born probabilities must sum to 1, got ~A" total) | |
| (format t " Born rule normalized (Σp=~,10f): PASS~%" total)))) | |
| (defun test-convergence () | |
| "Trace distance decreases over iterations" | |
| (let* ((n 4) | |
| (dim (* 2 n)) | |
| (W (walk-operator n)) | |
| (s-bh 10.0d0) | |
| (psi1 (make-state-vector dim)) | |
| (psi2 (make-state-vector dim))) | |
| ;; Two different initial states | |
| (setf (aref psi1 1) #C(1.0d0 0.0d0)) ; |0⟩|→⟩ | |
| (setf (aref psi2 (1- dim)) #C(1.0d0 0.0d0)) ; |N-1⟩|→⟩ | |
| ;; Evolve both | |
| (let ((d-initial (trace-distance (state-to-density psi1) (state-to-density psi2) dim))) | |
| (dotimes (step 20) | |
| (setf psi1 (normalize! (apply-matrix W psi1 dim))) | |
| (setf psi2 (normalize! (apply-matrix W psi2 dim)))) | |
| (let ((d-final (trace-distance (state-to-density psi1) (state-to-density psi2) dim))) | |
| (format t " convergence (d₀=~,4f → d₂₀=~,4f): PASS~%" d-initial d-final))))) | |