Sequential circuit category #
References #
- [Ghica, Kaye, and Sprunger, A Complete Theory of Sequential Digital Circuits][Ghica2025]
A stream of values, i.e. an infinite sequence indexed by time.
Instances For
Map a function over a stream pointwise.
Instances For
A stream function is causal if the output at time t depends only on inputs up to time t.
Equations
- Circuit.SequentialCircuitCategory.Causal f = ∀ (x y : Circuit.SequentialCircuitCategory.Stream α) (t : ℕ), (∀ s ≤ t, x s = y s) → f x t = f y t
Instances For
Homomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The underlying identity wire-function.
Equations
Instances For
The identity morphism.
Instances For
Equations
- One or more equations did not get rendered due to their size.
The monoidal product of two objects, adding their wire counts.
Instances For
The underlying wire-function of the monoidal product of two morphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The first projection used when tensoring sequential morphisms.
Equations
- Circuit.SequentialCircuitCategory.tensorHomEq' w = Vector.ofFn fun (i : Fin X₁.obj) => w.get (Fin.castAdd X₂.obj i)
Instances For
The monoidal product of two morphisms.
Equations
Instances For
The underlying wire-function of the forward direction of a wire-count isomorphism.
Equations
- Circuit.SequentialCircuitCategory.isoHomVal h = Stream'.map fun (x : Circuit.Wires V n) => Vector.cast h x
Instances For
The forward direction of a wire-count isomorphism.
Equations
Instances For
The underlying wire-function of the inverse direction of a wire-count isomorphism.
Equations
- Circuit.SequentialCircuitCategory.isoInvVal h = Stream'.map fun (x : Circuit.Wires V m) => Vector.cast ⋯ x
Instances For
The inverse direction of a wire-count isomorphism.
Equations
Instances For
The isomorphism between objects with equal wire counts.
Equations
- Circuit.SequentialCircuitCategory.iso h = { hom := Circuit.SequentialCircuitCategory.isoHom h, inv := Circuit.SequentialCircuitCategory.isoInv h, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Left whiskering of a morphism by a fixed object.
Equations
Instances For
Right whiskering of a morphism by a fixed object.
Equations
Instances For
The monoidal unit, the object with no wires.
Equations
- Circuit.SequentialCircuitCategory.tensorUnit = { obj := 0 }
Instances For
The associator isomorphism of the monoidal structure.
Equations
Instances For
The left unitor isomorphism of the monoidal structure.
Equations
Instances For
The right unitor isomorphism of the monoidal structure.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The underlying wire-function of the braiding, swapping two blocks of wires.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The braiding morphism, swapping two blocks of wires.
Equations
- X.braidingHom Y = ⟨X.braidingHomVal Y, ⋯⟩
Instances For
The braiding isomorphism of the symmetric monoidal structure.
Equations
- X.braiding Y = { hom := X.braidingHom Y, inv := Y.braidingHom X, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.