Documentation

BourbakiLean2.Equivalence

@[reducible, inline]
abbrev Relation.IsEquivalence {α : Type u_1} (r : Relation α α) :
Equations
Instances For
    theorem Relation.equiv_refl {α : Type u_1} {r : Relation α α} [inst : r.IsEquivalence] {a : α} :
    (a, a) r
    theorem Relation.equiv_symm {α : Type u_1} {r : Relation α α} [inst : r.IsEquivalence] {a b : α} (h : (a, b) r) :
    (b, a) r
    theorem Relation.equiv_trans {α : Type u_1} {r : Relation α α} [inst : r.IsEquivalence] {a b c : α} (h : (a, b) r) (h' : (b, c) r) :
    (a, c) r
    Equations
    • =
    instance Relation.instIsEquivalenceDiag {α : Type u_1} :
    Relation.diag.IsEquivalence
    Equations
    • =
    instance Relation.instIsEquivalenceInverse_image {α : Type u_1} {γ : Type u_2} {r : Relation α α} {f : γα} [inst : r.IsEquivalence] :
    (r.inverse_image f).IsEquivalence
    Equations
    • =
    instance Relation.instIsEquivalenceSubtypeMemSetRestrict {α : Type u_1} {r : Relation α α} {x : Set α} [inst : r.IsEquivalence] :
    (r.restrict x).IsEquivalence
    Equations
    • =
    instance Relation.instIsEquivalenceIInterProd {α : Type u_1} {ι : Type u_3} {r : ιRelation α α} [inst : ∀ (x : ι), (r x).IsEquivalence] :
    Relation.IsEquivalence (⋂ i : ι, r i)
    Equations
    • =
    theorem Relation.isEquivalence_in_set_or_compl {α : Type u_1} (x : Set α) :
    Relation.IsEquivalence fun (x_1 : α × α) => match x_1 with | (a, b) => a x b x
    theorem Relation.isEquivalence_iff {α : Type u_1} {r : Relation α α} :
    r.IsEquivalence r.domain = Set.univ r.inv = r r.comp r = r
    theorem Relation.isEquivalence_iff' {α : Type u_1} {r : Relation α α} :
    r.IsEquivalence r.comp (r.inv.comp r) = r Relation.diag r
    theorem Relation.isEquivalence_comp_of_comp_eq_left {α : Type u_1} {r : Relation α α} (h : r.domain = Set.univ) (h' : r.comp (r.inv.comp r) = r) :
    (r.inv.comp r).IsEquivalence
    theorem Relation.isEquivalence_comp_of_comp_eq_right {α : Type u_1} {r : Relation α α} (h : r.range = Set.univ) (h' : r.comp (r.inv.comp r) = r) :
    (r.comp r.inv).IsEquivalence
    theorem Relation.IsEquivalence.comp_right {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {s : Relation α α} (h : s r) (h' : s.domain = Set.univ) :
    r.comp s = r
    theorem Relation.IsEquivalence.comp_left {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {s : Relation α α} (h : s r) (h' : s.range = Set.univ) :
    s.comp r = r
    theorem Relation.IsEquivalence.inter_comp_commute {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {s t : Relation α α} (h : s r) :
    (r t).comp s = r t.comp s
    theorem Relation.IsEquivalence.comp_inter {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {s t : Relation α α} (h : s r) :
    s.comp (r t) = r s.comp t
    theorem Relation.IsEquivalence.comp_isEquivalence_iff_commute {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {s : Relation α α} [inst' : s.IsEquivalence] :
    (r.comp s).IsEquivalence r.comp s = s.comp r
    @[reducible]
    def Function.identified_under {α : Type u_3} {β : Type u_4} (f : αβ) :
    Relation α α
    Equations
    Instances For
      @[simp]
      theorem Function.mem_identified_under {α : Type u_3} {β : Type u_4} {f : αβ} {a a' : α} :
      (a, a') Function.identified_under f f a = f a'
      instance Function.identified_under.isEquivalence {α : Type u_3} {β : Type u_4} {f : αβ} :
      (Function.identified_under f).IsEquivalence
      Equations
      • =
      @[simp]
      theorem Quot.mk_eq_iff_rel {α : Type u_3} {r : Relation α α} [h : r.IsEquivalence] {a b : α} :
      @[simp]
      theorem Quot.mk_surj {α : Type u_3} {r : Relation α α} :
      @[simp]
      theorem Relation.IsEquivalence.eq_identified_under {α : Type u_3} {r : Relation α α} [h : r.IsEquivalence] :
      def Relation.equiv_class {α : Type u_3} (r : Relation α α) (a : α) :
      Set α
      Equations
      • r.equiv_class a = {a' : α | (a, a') r (a', a) r}
      Instances For
        @[simp]
        theorem Relation.IsEquivalence.mem_equiv_class_iff {α : Type u_3} {r : Relation α α} [h : r.IsEquivalence] {a a' : α} :
        a r.equiv_class a' (a', a) r
        @[simp]
        theorem Relation.IsEquivalence.equiv_class_eq_iff {α : Type u_3} {r : Relation α α} {a a' : α} [h : r.IsEquivalence] :
        r.equiv_class a = r.equiv_class a' (a, a') r
        @[simp]
        theorem Relation.IsEquivalence.mem_equiv_class {α : Type u_3} {r : Relation α α} [h : r.IsEquivalence] {a : α} :
        a r.equiv_class a
        theorem Relation.IsEquivalence.mem_equiv_class_swap {α : Type u_3} {r : Relation α α} [h : r.IsEquivalence] {a a' : α} :
        a r.equiv_class a' a' r.equiv_class a
        def Relation.IsEquivalence.quot_equiv_class_bij {α : Type u_3} {r : Relation α α} [h : r.IsEquivalence] :
        Function.Bijection (Quot (Function.curry r)) (r.equiv_class '' Set.univ)
        Equations
        Instances For
          @[simp]
          theorem Relation.equiv_class_diag {α : Type u_3} {a : α} :
          Relation.diag.equiv_class a = {a}
          @[simp]
          theorem Relation.equiv_class_univ {α : Type u_3} {a : α} :
          Relation.equiv_class Set.univ a = Set.univ
          theorem Set.IsPartition.in_same_equiv {α : Type u_3} {ι : Type u_5} {p : ιSet α} (h : Set.IsPartition p) :
          Relation.IsEquivalence fun (x : α × α) => match x with | (x, y) => ∃ (i : ι), x p i y p i
          def Relation.compatible {α : Type u_3} {β : Type u_4} {r : Relation α α} (p : αβ) :
          Equations
          Instances For
            @[simp]
            theorem Relation.diag_compatible {α : Type u_3} {β : Type u_4} {p : αβ} :
            def Relation.compatible.lift {α : Type u_3} {β : Type u_4} {r : Relation α α} {p : αβ} [inst : r.IsEquivalence] (h : Relation.compatible p) :
            Quot (Function.curry r)β
            Equations
            Instances For
              @[simp]
              theorem Relation.compatible.lift_iff {α : Type u_3} {β : Type u_4} {r : Relation α α} {p : αβ} {a : α} [r.IsEquivalence] (h : Relation.compatible p) :
              h.lift (Quot.mk (Function.curry r) a) = p a
              def Relation.saturated {α : Type u_3} {r : Relation α α} (x : Set α) :
              Equations
              Instances For
                @[simp]
                theorem Relation.IsEquivalence.saturated_iff {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {x : Set α} :
                Relation.saturated x ∀ (a : α), a xr.equiv_class a x
                theorem Relation.saturated_iUnion {α : Type u_3} {r : Relation α α} {ι : Type u_5} {x : ιSet α} (h : ∀ (i : ι), Relation.saturated (x i)) :
                Relation.saturated (⋃ i : ι, x i)
                theorem Relation.saturated_iInter {α : Type u_3} {r : Relation α α} {ι : Type u_5} {x : ιSet α} (h : ∀ (i : ι), Relation.saturated (x i)) :
                Relation.saturated (⋂ i : ι, x i)
                theorem Relation.saturated.inter {α : Type u_3} {r : Relation α α} {x y : Set α} (h : Relation.saturated x) (h' : Relation.saturated y) :
                theorem Relation.saturated.union {α : Type u_3} {r : Relation α α} {x y : Set α} (h : Relation.saturated x) (h' : Relation.saturated y) :
                theorem Relation.saturated.compl {α : Type u_3} {r : Relation α α} {x : Set α} (h : Relation.saturated x) :
                def Relation.saturation {α : Type u_3} {r : Relation α α} (x : Set α) :
                Set α
                Equations
                Instances For
                  @[simp]
                  theorem Relation.isEquivalence.saturation_saturated {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {x : Set α} :
                  @[simp]
                  theorem Relation.subset_saturation {α : Type u_3} {r : Relation α α} {x : Set α} :
                  theorem Relation.IsEquivalence.saturation_smallest {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {x y : Set α} (h : Relation.saturated y) :
                  theorem Relation.IsEquivalence.saturation_eq_equivalence_class_union {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {x : Set α} :
                  Relation.saturation x = i : x, r.equiv_class i.val
                  theorem Relation.IsEquivalence.compatible_iff_factors {α : Type u_3} {β : Type u_4} {r : Relation α α} [inst : r.IsEquivalence] {f : αβ} :
                  @[simp]
                  theorem Function.identified_under_compatible {α : Type u_3} {β : Type u_4} (f : αβ) :
                  @[simp]
                  theorem Relation.identified_under_compatible_lift_image {α : Type u_3} {β : Type u_4} {f : αβ} :
                  Relation.compatible.lift '' Set.univ = f '' Set.univ
                  theorem Function.decompose_inj_bij_surj {α : Type u_3} {β : Type u_4} (f : αβ) :
                  def Relation.compatible_lift2 {α : Type u_3} {β : Type u_4} {r : Relation α α} {f : αβ} {s : Relation β β} [inst1 : s.IsEquivalence] (h : ∀ (x x' : α), (x, x') r(f x, f x') s) :
                  Equations
                  Instances For
                    theorem Relation.compatible_lift2_commutes {α : Type u_3} {β : Type u_4} {r : Relation α α} {f : αβ} {s : Relation β β} [inst1 : s.IsEquivalence] (h : ∀ (x x' : α), (x, x') r(f x, f x') s) :
                    @[simp]
                    theorem Relation.compatible_lift2_apply {α : Type u_3} {β : Type u_4} {r : Relation α α} {a : α} {f : αβ} {s : Relation β β} [inst1 : s.IsEquivalence] (h : ∀ (x x' : α), (x, x') r(f x, f x') s) :
                    theorem Relation.IsEquivalence.inverse_image_eq_identified_under {γ : Type u_2} {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {f : γα} :
                    @[simp]
                    theorem Relation.compatible_lift2_of_subtype_inj {α : Type u_3} {r : Relation α α} {x : Set α} [inst : r.IsEquivalence] :
                    @[simp]
                    theorem Relation.IsEquivalence.diag_subset {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] :
                    Relation.diag r
                    def Relation.IsEquivalence.quotient_subset_map {α : Type u_3} {r : Relation α α} [r.IsEquivalence] {s : Relation α α} (h : r s) :
                    Equations
                    Instances For
                      def Relation.IsEquivalence.quotient {α : Type u_3} {r : Relation α α} [r.IsEquivalence] {s : Relation α α} (h : r s) :
                      Equations
                      Instances For
                        theorem Relation.IsEquivalence.equiv_quotient_iff {α : Type u_3} {r : Relation α α} {a a' : α} [inst : r.IsEquivalence] {s : Relation α α} [inst' : s.IsEquivalence] (h : r s) :
                        def Relation.IsEquivalence.quotient_quotient {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {s : Relation α α} [inst' : s.IsEquivalence] (h : r s) :
                        Equations
                        Instances For
                          @[simp]
                          theorem Relation.IsEquivalence.quotient_quotient_bij {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {s : Relation α α} [inst' : s.IsEquivalence] (h : r s) :
                          theorem Relation.IsEquivalence.is_quotient_quotient {α : Type u_3} {r : Relation α α} [inst : r.IsEquivalence] {s : Relation (Quot (Function.curry r)) (Quot (Function.curry r))} [inst1 : s.IsEquivalence] :
                          instance instIsEquivalenceProdProd_rel {α : Type u_3} {β : Type u_4} {r : Relation α α} {s : Relation β β} [inst : r.IsEquivalence] [inst' : s.IsEquivalence] :
                          (r.prod_rel s).IsEquivalence
                          Equations
                          • =
                          @[simp]
                          theorem Relation.IsEquivalence.prod_rel_equivalence_class {α : Type u_3} {β : Type u_4} {r : Relation α α} {s : Relation β β} [inst : r.IsEquivalence] [inst' : s.IsEquivalence] {a : α} {b : β} :
                          (r.prod_rel s).equiv_class (a, b) = (r.equiv_class a).prod (s.equiv_class b)
                          theorem Relation.IsEquivalence.prod_rel_is_identified_under {α : Type u_3} {β : Type u_4} {r : Relation α α} {s : Relation β β} [inst : r.IsEquivalence] [inst' : s.IsEquivalence] :
                          def Relation.IsEquivalence.prod_quotient {α : Type u_3} {β : Type u_4} {r : Relation α α} {s : Relation β β} [inst : r.IsEquivalence] [inst' : s.IsEquivalence] :
                          Equations
                          Instances For
                            theorem Relation.IsEquivalence.prod_quotient_bij {α : Type u_3} {β : Type u_4} {r : Relation α α} {s : Relation β β} [inst : r.IsEquivalence] [inst' : s.IsEquivalence] :
                            Function.Bijective Relation.IsEquivalence.prod_quotient
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Relation.IsEquivalence.quotient_image_bij_inverse_image {α : Type u_3} {β : Type u_4} {f : αβ} {r : Relation β β} [inst : r.IsEquivalence] :
                              Function.Bijection (Quot (Function.curry (r.inverse_image f))) (Quot (Function.curry (r.restrict (f '' Set.univ))))
                              Equations
                              Instances For
                                def Quot.lift2_same {α : Type u_3} {β : Type u_4} (f : ααβ) {r : ααProp} [inst : Equivalence r] (h : ∀ (x x' y y' : α), r x x'r y y'f x y = f x' y') :
                                Quot rQuot rβ
                                Equations
                                Instances For
                                  @[simp]
                                  theorem Quot.lift2_same_val {α : Type u_3} {β : Type u_4} {f : ααβ} {r : ααProp} [inst : Equivalence r] (h : ∀ (x x' y y' : α), r x x'r y y'f x y = f x' y') {a b : α} :
                                  Quot.lift2_same f h (Quot.mk r a) (Quot.mk r b) = f a b