Instances
Instances For
Equations
- F.grains = Subtype.val '' ↑(have this := F; this)
Instances For
Equations
- F.grainsFinset = Finset.map { toFun := Subtype.val, inj' := ⋯ } F
Instances For
Instances For
Equations
- f.IsGranular = ∃ (F : GaudisCrypt.GranularFootprint), f = F.footprint
Instances For
Equations
- f.IsSubGranular = ∃ (F : GaudisCrypt.GranularFootprint), f ≤ F.footprint
Instances For
Equations
- GaudisCrypt.instPartialOrderGranularFootprint = { le := fun (f g : GaudisCrypt.GranularFootprint) => f.grains ⊆ g.grains, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯, le_antisymm := ⋯ }
Equations
- GaudisCrypt.instOrderBotGranularFootprint = { bot := Finset.empty, bot_le := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- GaudisCrypt.instSDiffGranularFootprint = { sdiff := fun (f g : GaudisCrypt.GranularFootprint) => f.toFinset \ g.toFinset }
GranularFootprint is a generalized Boolean algebra (a distributive lattice with ⊥ and a
relative complement \), inherited from Finset spec.grains via the identity injection
toFinset. There is no ⊤/ᶜ in general: complementing a finite grain family need not stay
finite when the granularity is infinite, so this does not extend to a BooleanAlgebra.
Infimum of a family of grain-sets: the intersection (grains common to every member). Only
meaningful when the family is nonempty; empty family reduces to ⊥ (junk, unconstrained by the
conditional axioms).
Equations
- One or more equations did not get rendered due to their size.
Supremum of a family of grain-sets: the union (grains touched by some member), which stays
finite exactly when the family is bounded above. Unbounded families reduce to ⊥ (junk); the
empty family also gives ⊥, so sSup ∅ = ⊥.
Equations
- One or more equations did not get rendered due to their size.
GranularFootprint is a conditionally complete lattice: any nonempty family of grain-sets
that is bounded below has a greatest lower bound (its intersection), and any nonempty family
bounded above has a least upper bound (its union — finite because contained in the bound). It
is not a CompleteLattice: there is no ⊤ when the granularity is infinite. Combined with the
existing OrderBot, sSup ∅ = ⊥ holds by construction.
Equations
- GaudisCrypt.instConditionallyCompleteLatticeGranularFootprint = { toLattice := inferInstance, toSupSet := inferInstance, toInfSet := inferInstance, isLUB_csSup := ⋯, isGLB_csInf := ⋯ }
A minimal granular cover of a sub-granular footprint: the sub-family of the grains of
exactly the atoms footprint genuinely touches. It is the least granular footprint containing
footprint — that every touched atom is needed is immediate, and that these atoms already cover
footprint is the product-corner argument inlined into
Footprint.IsSubGranular.granularCover_ge.
Equations
- h.granularCover = ⋯.toFinset
Instances For
A granular footprint is a join of finitely many pairwise-disjoint lens footprints, hence itself lens-derived.
Equations
Instances For
The minimal granular cover's footprint is the join of exactly the grains that f touches.