Simultaneous changes of signature and carrier #
A simulation combines a circuit translation with a map between universes. It subsumes both ordinary homomorphisms and same-carrier realizations.
A simulation is precisely a homomorphism from the source interpretation to the target interpretation pulled back through the circuit translation.
Equations
- Algebraic.Simulation translation source target = Cslib.Circuits.Homomorphism source (translation.pull target)
Instances For
Identity simulation on an interpreted signature.
Equations
- Algebraic.Simulation.id interpretation = { map := id, homomorphic := ⋯ }
Instances For
Compose simultaneous changes of signature and carrier.
Instances For
Construct a simulation using the operation-circuit form of its preservation law.
Equations
- Algebraic.Simulation.ofPreserves map preserves = { map := map, homomorphic := preserves }
Instances For
The homomorphism law of a simulation, exposed in operation-circuit form.
Evaluation commutes with simultaneous signature compilation and carrier mapping.
Every ordinary homomorphism is a simulation through the identity translation.
Equations
- homomorphism.toSimulation = { map := homomorphism.map, homomorphic := ⋯ }
Instances For
Every same-carrier realization is a simulation with the identity carrier map.
Equations
- realization.toSimulation = { map := id, homomorphic := ⋯ }