Documentation

ConNF.ModelData.Enumeration

Enumerations #

In this file, we define enumerations of a type.

Main declarations #

structure ConNF.Enumeration [Params] (X : Type u) :
Instances For
    theorem ConNF.Enumeration.ext {inst✝ : Params} {X : Type u} {x y : Enumeration X} (bound : x.bound = y.bound) (rel : x.rel = y.rel) :
    x = y
    theorem ConNF.Enumeration.mem_iff [Params] {X : Type u} (x : X) (E : Enumeration X) :
    x E x E.rel.codom
    theorem ConNF.Enumeration.mem_congr [Params] {X : Type u} {E F : Enumeration X} (h : E = F) (x : X) :
    x E x F
    noncomputable def ConNF.Enumeration.empty [Params] {X : Type u} :
    Equations
    Instances For
      @[simp]
      theorem ConNF.Enumeration.not_mem_empty [Params] {X : Type u} (x : X) :
      xempty
      noncomputable def ConNF.Enumeration.singleton [Params] {X : Type u} (x : X) :
      Equations
      Instances For
        @[simp]
        theorem ConNF.Enumeration.mem_singleton_iff [Params] {X : Type u} (x y : X) :
        y singleton x y = x

        Cardinality bounds on enumerations #

        Equations
        Instances For

          Enumerations from sets #

          theorem ConNF.Enumeration.exists_equiv [Params] {X : Type u} (s : Set X) (hs : Small s) :
          Nonempty ((i : κ) × (s (Set.Iio i)))
          noncomputable def ConNF.Enumeration.ofSet [Params] {X : Type u} (s : Set X) (hs : Small s) :
          Equations
          Instances For
            @[simp]
            theorem ConNF.Enumeration.mem_ofSet_iff [Params] {X : Type u} (s : Set X) (hs : Small s) (x : X) :
            x ofSet s hs x s
            @[simp]
            theorem ConNF.Enumeration.ofSet_coe [Params] {X : Type u} (s : Set X) (hs : Small s) :
            (ofSet s hs).rel.codom = s

            Operations on enumerations #

            def ConNF.Enumeration.image [Params] {X Y : Type u} (E : Enumeration X) (f : XY) :
            Equations
            • E.image f = { bound := E.bound, rel := fun (i : ConNF.κ) (y : Y) => ∃ (x : X), E.rel i x f x = y, lt_bound := , rel_coinjective := }
            Instances For
              @[simp]
              theorem ConNF.Enumeration.image_bound [Params] {X Y : Type u} {E : Enumeration X} {f : XY} :
              (E.image f).bound = E.bound
              theorem ConNF.Enumeration.image_rel [Params] {X Y : Type u} {E : Enumeration X} {f : XY} (i : κ) (y : Y) :
              (E.image f).rel i y ∃ (x : X), E.rel i x f x = y
              @[simp]
              theorem ConNF.Enumeration.mem_image [Params] {X Y : Type u} {E : Enumeration X} {f : XY} (y : Y) :
              y E.image f y f '' E.rel.codom
              def ConNF.Enumeration.invImage [Params] {X Y : Type u} (E : Enumeration X) (f : YX) (hf : Function.Injective f) :
              Equations
              • E.invImage f hf = { bound := E.bound, rel := fun (i : ConNF.κ) (y : Y) => E.rel i (f y), lt_bound := , rel_coinjective := }
              Instances For
                theorem ConNF.Enumeration.invImage_rel [Params] {X Y : Type u} {E : Enumeration X} {f : YX} {hf : Function.Injective f} (i : κ) (y : Y) :
                (E.invImage f hf).rel i y E.rel i (f y)
                @[simp]
                theorem ConNF.Enumeration.mem_invImage [Params] {X Y : Type u} {E : Enumeration X} {f : YX} {hf : Function.Injective f} (y : Y) :
                y E.invImage f hf f y E
                def ConNF.Enumeration.comp [Params] {X Y : Type u} (E : Enumeration X) (r : Rel X Y) (hr : r.Coinjective) :
                Equations
                • E.comp r hr = { bound := E.bound, rel := E.rel.comp r, lt_bound := , rel_coinjective := }
                Instances For
                  Equations
                  @[simp]
                  theorem ConNF.Enumeration.smul_rel [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] (π : G) (E : Enumeration X) (i : κ) (x : X) :
                  (π E).rel i x E.rel i (π⁻¹ x)
                  @[simp]
                  theorem ConNF.Enumeration.mem_smul [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] (π : G) (E : Enumeration X) (x : X) :
                  x π E π⁻¹ x E
                  @[simp]
                  theorem ConNF.Enumeration.smul_rel_dom [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] (π : G) (E : Enumeration X) :
                  (π E).rel.dom = E.rel.dom
                  @[simp]
                  theorem ConNF.Enumeration.smul_rel_codom [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] (π : G) (E : Enumeration X) :
                  (π E).rel.codom = π E.rel.codom
                  @[simp]
                  theorem ConNF.Enumeration.smul_coe [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] (π : G) (E : Enumeration X) :
                  (π E).rel.codom = π E.rel.codom
                  theorem ConNF.Enumeration.mem_smul_iff [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] (x : X) (g : G) (E : Enumeration X) :
                  x g E g⁻¹ x E
                  theorem ConNF.Enumeration.eq_of_smul_eq_smul [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] {g₁ g₂ : G} {E : Enumeration X} (h : g₁ E = g₂ E) (x : X) (hx : x E) :
                  g₁ x = g₂ x
                  theorem ConNF.Enumeration.eq_of_smul_eq [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] {g : G} {E : Enumeration X} (h : g E = E) (x : X) (hx : x E) :
                  g x = x
                  @[simp]
                  theorem ConNF.Enumeration.smul_singleton [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] {g : G} {x : X} :

                  Concatenation of enumerations #

                  noncomputable instance ConNF.Enumeration.instAdd [Params] {X : Type u} :
                  Equations
                  • One or more equations did not get rendered due to their size.
                  @[simp]
                  theorem ConNF.Enumeration.add_bound [Params] {X : Type u} (E F : Enumeration X) :
                  (E + F).bound = E.bound + F.bound
                  theorem ConNF.Enumeration.rel_add_iff [Params] {X : Type u} {E F : Enumeration X} (i : κ) (x : X) :
                  (E + F).rel i x E.rel i x ∃ (j : κ), E.bound + j = i F.rel j x
                  theorem ConNF.Enumeration.add_rel_dom [Params] {X : Type u} (E F : Enumeration X) :
                  (E + F).rel.dom = E.rel.dom (fun (x : κ) => E.bound + x) '' F.rel.dom
                  @[simp]
                  theorem ConNF.Enumeration.mem_add_iff [Params] {X : Type u} {E F : Enumeration X} (x : X) :
                  x E + F x E x F
                  @[simp]
                  theorem ConNF.Enumeration.coe_add [Params] {X : Type u} {E F : Enumeration X} :
                  @[simp]
                  theorem ConNF.Enumeration.add_empty [Params] {X : Type u} (E : Enumeration X) :
                  E + empty = E
                  theorem ConNF.Enumeration.add_inj_of_bound_eq_bound [Params] {X : Type u} {E F G H : Enumeration X} (h : E.bound = F.bound) (h' : E + G = F + H) :
                  E = F G = H
                  theorem ConNF.Enumeration.add_inj_iff_of_bound_eq_bound [Params] {X : Type u} {E F G H : Enumeration X} (h : E.bound = F.bound) :
                  E + G = F + H E = F G = H
                  theorem ConNF.Enumeration.smul_add [Params] {G : Type u_1} {X : Type u} [Group G] [MulAction G X] (g : G) (E F : Enumeration X) :
                  g (E + F) = g E + g F