--- license: mit tags: - pytorch - safetensors - threshold-logic - neuromorphic - functionally-complete --- # threshold-nand The universal gate. Any Boolean function can be constructed from NAND alone. ## Circuit ``` x y │ │ └─┬─┘ ▼ ┌────────┐ │w: -1,-1│ │ b: +1 │ └────────┘ │ ▼ NAND(x,y) ``` ## Mechanism Negative weights mean inputs *subtract* from the sum. The positive bias starts us above threshold, and inputs pull us down: | x | y | sum | output | |---|---|-----|--------| | 0 | 0 | +1 | 1 | | 0 | 1 | 0 | 1 | | 1 | 0 | 0 | 1 | | 1 | 1 | -1 | 0 | Only when both inputs are active do we fall below threshold. This is AND with inverted output. ## Parameters | | | |---|---| | Weights | [-1, -1] | | Bias | +1 | | Total | 3 parameters | ## Optimality Exhaustive enumeration of all 25 weight configurations at magnitudes 0-3 confirms this circuit is **already at minimum magnitude (3)**. There is exactly one valid configuration at magnitude 3, and no valid configurations exist below it. ## Functional Completeness NAND can build any Boolean function: - NOT(x) = NAND(x, x) - AND(x,y) = NOT(NAND(x,y)) = NAND(NAND(x,y), NAND(x,y)) - OR(x,y) = NAND(NOT(x), NOT(y)) This is why NAND gates dominate digital logic fabrication. ## Usage ```python from safetensors.torch import load_file import torch w = load_file('model.safetensors') def nand_gate(x, y): inputs = torch.tensor([float(x), float(y)]) return int((inputs * w['weight']).sum() + w['bias'] >= 0) ``` ## Files ``` threshold-nand/ ├── model.safetensors ├── model.py ├── config.json └── README.md ``` ## License MIT