Bridge, part 1: parameters and the field coding #
The MIPStarRE development works with a coded field Fq params := Fin params.q together
with a FieldModel params.q instance carrying an actual field K and an equivalence
K ≃ Fin q; all arithmetic is transported through the coding (encodeScalar,
decodeScalar, addCoord, ...). This file instantiates that setup for our finite field
F: the parameters lidtParams F m d (with q = Fintype.card F) and the field model
with K := F, and it records how the coding interacts with points, lines and the
arithmetic of F.
The MIPStarRE parameters of the (m, q, d) test, q = |F|.
Equations
- MIPRE.LIDT.Bridge.lidtParams F m d = { m := m, q := Fintype.card F, d := d, hm := ⋯, hq := ⋯, hqPrimePower := ⋯ }
Instances For
The field model with carrier F itself, coded by an arbitrary enumeration.
Equations
- MIPRE.LIDT.Bridge.fieldModel F = { K := F, instField := inferInstance, instFintype := inferInstance, instDecidableEq := inferInstance, equiv := Fintype.equivFin F }
Coding of scalars and points #
Encode a scalar of F into the coded field of the parameters.
Equations
Instances For
Decode a coded scalar into F.
Equations
Instances For
Encode a point of F^m.
Equations
- MIPRE.LIDT.Bridge.encP u i = MIPRE.LIDT.Bridge.enc (u i)
Instances For
Decode a coded point.
Equations
- MIPRE.LIDT.Bridge.decP u i = MIPRE.LIDT.Bridge.dec (u i)
Instances For
The coding of points, as an equivalence.
Equations
- MIPRE.LIDT.Bridge.pointEquiv = { toFun := MIPRE.LIDT.Bridge.encP, invFun := MIPRE.LIDT.Bridge.decP, left_inv := ⋯, right_inv := ⋯ }
Instances For
The coding of scalars, as an equivalence.
Equations
- MIPRE.LIDT.Bridge.scalarEquiv = { toFun := MIPRE.LIDT.Bridge.enc, invFun := MIPRE.LIDT.Bridge.dec, left_inv := ⋯, right_inv := ⋯ }
Instances For
Arithmetic through the coding #
The decoded point at parameter t of an axis-parallel line.
The decoded point at parameter t of a diagonal line.