Signatures and interpretations #
A Signature specifies operation symbols with finite arities. The set of symbols
may be infinite, and their arities need not have a uniform bound.
An Interpretation assigns each symbol an operation on a carrier type.
Programs and circuits keep the signature separate from its interpretation.
@[reducible, inline]
An interpretation assigns an operation on Carrier to every symbol in σ.
Equations
- Cslib.Circuits.Interpretation σ Carrier = ((op : σ.Op) → (Fin (σ.Arity op) → Carrier) → Carrier)
Instances For
The signature for FullOp.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Cslib.Circuits.fullInterpretation {k : ℕ} {Carrier : Type u_1} :
Interpretation (fullSignature k Carrier) Carrier
The natural interpretation for FullOp, where we evaluate each constant and function to itself.
Equations
- Cslib.Circuits.fullInterpretation (Cslib.Circuits.FullOp.fn f) tuple_2 = f tuple_2
- Cslib.Circuits.fullInterpretation (Cslib.Circuits.FullOp.con c) tuple_2 = c