Documentation

PFR.ForMathlib.FiniteRange.Defs

class FiniteRange {Ω : Type u_1} {G : Type u_2} (X : ΩG) :

The property of having a finite range.

Instances
    theorem FiniteRange.finite {Ω : Type u_1} {G : Type u_2} {X : ΩG} [self : FiniteRange X] :
    (Set.range X).Finite
    noncomputable def FiniteRange.fintype {Ω : Type u_1} {G : Type u_2} (X : ΩG) [hX : FiniteRange X] :

    fintype structure on the range of a finite range map.

    Equations
    Instances For
      noncomputable def FiniteRange.toFinset {Ω : Type u_1} {G : Type u_2} (X : ΩG) [hX : FiniteRange X] :

      The range of a finite range map, as a finset.

      Equations
      Instances For
        instance instFiniteRangeOfFintype {Ω : Type u_1} {G : Type u_2} (X : ΩG) [Fintype G] :

        If the codomain of X is finite, then X has finite range.

        Equations
        • =
        theorem finiteRange_of_finset {Ω : Type u_1} {G : Type u_2} (f : ΩG) (A : Finset G) (h : ∀ (ω : Ω), f ω A) :

        Functions ranging in a Finset have finite range

        theorem FiniteRange.range {Ω : Type u_1} {G : Type u_2} (X : ΩG) [hX : FiniteRange X] :
        theorem FiniteRange.mem {Ω : Type u_1} {G : Type u_2} (X : ΩG) [FiniteRange X] (ω : Ω) :
        @[simp]
        theorem FiniteRange.mem_iff {Ω : Type u_1} {G : Type u_2} (X : ΩG) [FiniteRange X] (x : G) :
        x FiniteRange.toFinset X ∃ (ω : Ω), X ω = x
        instance instFiniteRange {Ω : Type u_1} {G : Type u_2} (c : G) :
        FiniteRange fun (x : Ω) => c

        Constants have finite range

        Equations
        • =
        instance instFiniteRangeComp {Ω : Type u_1} {G : Type u_2} {H : Type u_3} (X : ΩG) (f : GH) [hX : FiniteRange X] :

        If X has finite range, then any function of X has finite range.

        Equations
        • =
        instance instFiniteRangeComp_1 {Ω : Type u_1} {Ω' : Type u_2} {G : Type u_3} (X : ΩG) (f : Ω'Ω) [hX : FiniteRange X] :

        If X has finite range, then X of any function has finite range.

        Equations
        • =
        instance instFiniteRangeProdMk {Ω : Type u_1} {G : Type u_2} {H : Type u_3} (X : ΩG) (Y : ΩH) [hX : FiniteRange X] [hY : FiniteRange Y] :
        FiniteRange fun (ω : Ω) => (X ω, Y ω)

        If X, Y have finite range, then so does the pair ⟨X, Y⟩.

        Equations
        • =
        instance FiniteRange.mul {Ω : Type u_1} {G : Type u_2} (X : ΩG) (Y : ΩG) [Mul G] [hX : FiniteRange X] [hY : FiniteRange Y] :

        The product of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.add {Ω : Type u_1} {G : Type u_2} (X : ΩG) (Y : ΩG) [Add G] [hX : FiniteRange X] [hY : FiniteRange Y] :

        The sum of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.mul' {Ω : Type u_1} {G : Type u_2} (X : ΩG) (Y : ΩG) [Mul G] [FiniteRange X] [FiniteRange Y] :
        FiniteRange fun (ω : Ω) => X ω * Y ω

        The product of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.add' {Ω : Type u_1} {G : Type u_2} (X : ΩG) (Y : ΩG) [Add G] [FiniteRange X] [FiniteRange Y] :
        FiniteRange fun (ω : Ω) => X ω + Y ω

        The sum of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.div {Ω : Type u_1} {G : Type u_2} (X : ΩG) (Y : ΩG) [Div G] [hX : FiniteRange X] [hY : FiniteRange Y] :

        The quotient of two functions with finite range, has finite range.

        Equations
        • =
        instance FiniteRange.sub {Ω : Type u_1} {G : Type u_2} (X : ΩG) (Y : ΩG) [Sub G] [hX : FiniteRange X] [hY : FiniteRange Y] :

        The difference of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.div' {Ω : Type u_1} {G : Type u_2} (X : ΩG) (Y : ΩG) [Div G] [FiniteRange X] [FiniteRange Y] :
        FiniteRange fun (ω : Ω) => X ω / Y ω

        The product of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.sub' {Ω : Type u_1} {G : Type u_2} (X : ΩG) (Y : ΩG) [Sub G] [FiniteRange X] [FiniteRange Y] :
        FiniteRange fun (ω : Ω) => X ω - Y ω

        The sum of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.inv {Ω : Type u_1} {G : Type u_2} (X : ΩG) [Inv G] [hX : FiniteRange X] :

        The inverse of a function of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.neg {Ω : Type u_1} {G : Type u_2} (X : ΩG) [Neg G] [hX : FiniteRange X] :

        The negation of a function of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.inv' {Ω : Type u_1} {G : Type u_2} (X : ΩG) [Inv G] [FiniteRange X] :
        FiniteRange fun (ω : Ω) => (X ω)⁻¹

        The product of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.neg' {Ω : Type u_1} {G : Type u_2} (X : ΩG) [Neg G] [FiniteRange X] :
        FiniteRange fun (ω : Ω) => -X ω

        The sum of functions of finite range, has finite range.

        Equations
        • =
        instance FiniteRange.zpow {Ω : Type u_1} {G : Type u_2} (X : ΩG) [Pow G ] [hX : FiniteRange X] (n : ) :

        A function of finite range raised to a constant power, has finite range.

        Equations
        • =
        instance FiniteRange.zsmul {Ω : Type u_1} {G : Type u_2} (X : ΩG) [SMul G] [hX : FiniteRange X] (n : ) :

        The multiple of a function of finite range by a constant, has finite range.

        Equations
        • =
        instance FiniteRange.zpow' {Ω : Type u_1} {G : Type u_2} (X : ΩG) [Pow G ] [FiniteRange X] (n : ) :
        FiniteRange fun (ω : Ω) => X ω ^ n

        A function of finite range raised to a constant power, has finite range.

        Equations
        • =
        instance FiniteRange.zsmul' {Ω : Type u_1} {G : Type u_2} (X : ΩG) [SMul G] [FiniteRange X] (n : ) :
        FiniteRange fun (ω : Ω) => n X ω

        The multiple of a function of finite range by a constant, has finite range.

        Equations
        • =
        instance FiniteRange.finprod {Ω : Type u_1} {G : Type u_2} {I : Type u_3} [CommMonoid G] {s : Finset I} (X : IΩG) [∀ (i : I), FiniteRange (X i)] :
        FiniteRange (∏ is, X i)

        The product of a finite number of functions with finite range, has finite range.

        Equations
        • =
        instance FiniteRange.finsum {Ω : Type u_1} {G : Type u_2} {I : Type u_3} [AddCommMonoid G] {s : Finset I} (X : IΩG) [∀ (i : I), FiniteRange (X i)] :
        FiniteRange (∑ is, X i)

        The sum of a finite number of functions with finite range, has finite range.

        Equations
        • =
        theorem FiniteRange.full {Ω : Type u_1} {G : Type u_2} [MeasurableSpace Ω] [MeasurableSpace G] [MeasurableSingletonClass G] {X : ΩG} (hX : Measurable X) [FiniteRange X] (μ : MeasureTheory.Measure Ω) :