OAI/Computability/QuantumFactoring/BooleanVector.lean
7 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.ExactQuantumFactoring.BooleanNetwork.vectorline 14Source documentation
Assemble an arbitrary vector of single-bit combinational outputs, retaining separate traces. This is a finite circuit construction, not a truth table.
def vector {n : ℕ} : {m : ℕ} → (Fin m → BooleanNetwork n 1) → BooleanNetwork n m | 0, _ => select Fin.elim0 | m+1, f => (vector (fun i => f i.castSucc)).pair (f (Fin.last m))Mentions: OAI.ExactQuantumFactoring.BooleanNetwork, OAI.ExactQuantumFactoring.BooleanNetwork.select, OAI.ExactQuantumFactoring.BooleanNetwork.pair
- lemma
OAI.ExactQuantumFactoring.BooleanNetwork.eval_vectorline 18 - lemma
OAI.ExactQuantumFactoring.BooleanNetwork.count_vectorline 29 - lemma
OAI.ExactQuantumFactoring.BooleanNetwork.count_vector_leline 35 - def
OAI.ExactQuantumFactoring.BooleanNetwork.padRightline 44Source documentation
Add explicit zero slots, with <=m nodes. Duplicate outputs may share zero, but the simple linear upper bound is sufficient for the compiler.
def padRight (n m : ℕ) : BooleanNetwork n (n+m) := …
Mentions: OAI.ExactQuantumFactoring.BooleanNetwork
- lemma
OAI.ExactQuantumFactoring.BooleanNetwork.eval_padRightline 47 - lemma
OAI.ExactQuantumFactoring.BooleanNetwork.count_padRightline 55