Computational realization of filters (experimental) #
This file provides infrastructure to compute with filters.
Main declarations #
A CFilter α σ
is a realization of a filter (base) on α
,
represented by a type σ
together with operations for the top element and
the binary inf
operation.
- f : σ → α
- pt : σ
- inf : σ → σ → σ
- inf_le_left : ∀ (a b : σ), self.f (self.inf a b) ≤ self.f a
- inf_le_right : ∀ (a b : σ), self.f (self.inf a b) ≤ self.f b
Instances For
Equations
- CFilter.instCoeFunForall = { coe := CFilter.f }
Map a CFilter
to an equivalent representation type.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The filter represented by a CFilter
is the collection of supersets of
elements of the filter base.
Equations
Instances For
Transfer a realizer along an equality of filter. This has better definitional equalities than
the Eq.rec
proof.
Equations
- Filter.Realizer.ofEq e F = { σ := F.σ, F := F.F, eq := ⋯ }
Instances For
A filter realizes itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transfer a filter realizer to another realizer on a different base type.
Equations
- F.ofEquiv E = { σ := τ, F := CFilter.ofEquiv E F.F, eq := ⋯ }
Instances For
Equations
- Filter.Realizer.instInhabitedPrincipal s = { default := Filter.Realizer.principal s }
Unit
is a realizer for the top filter
Equations
- Filter.Realizer.top = Filter.Realizer.ofEq ⋯ (Filter.Realizer.principal Set.univ)
Instances For
Unit
is a realizer for the bottom filter
Equations
- Filter.Realizer.bot = Filter.Realizer.ofEq ⋯ (Filter.Realizer.principal ∅)
Instances For
Construct a realizer for map m f
given a realizer for f
Equations
- Filter.Realizer.map m F = { σ := F.σ, F := { f := fun (s : F.σ) => m '' F.F.f s, pt := F.F.pt, inf := F.F.inf, inf_le_left := ⋯, inf_le_right := ⋯ }, eq := ⋯ }
Instances For
Construct a realizer for comap m f
given a realizer for f
Equations
- Filter.Realizer.comap m F = { σ := F.σ, F := { f := fun (s : F.σ) => m ⁻¹' F.F.f s, pt := F.F.pt, inf := F.F.inf, inf_le_left := ⋯, inf_le_right := ⋯ }, eq := ⋯ }
Instances For
Construct a realizer for the sup of two filters
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a realizer for the inf of two filters
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a realizer for the cofinite filter
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a realizer for indexed supremum
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a realizer for the product of filters
Equations
- F.prod G = (Filter.Realizer.comap Prod.fst F).inf (Filter.Realizer.comap Prod.snd G)