Documentation

Projects.Util.Quotient

theorem Quot.lift_mk_of {α : Type u_1} {P : ααProp} {f : αProp} {a : α} (h₁ : ∀ (a b : α), P a bf a = f b) (h₂ : (∀ (a₁ a₂ : α), P a₁ a₂f a₁ = f a₂)f a) :
lift f h₁ (mk P a)
theorem Setoid.commFn {α : Type u_1} (s : Setoid α) :
s = fun (x y : α) => s y x
theorem liftWith_aux₁ {α : Type u_1} {β : Type u_2} {s : Setoid α} {f : αβ} {x y : α} (h : x y) :
(fun (x_1 : ∀ (a b : α), s x.out as x.out bf a = f b) => f x) fun (x : ∀ (a b : α), s y.out as y.out bf a = f b) => f y
def Quotient.liftWith {α : Type u_1} {β : Type u_2} {s : Setoid α} (q : Quotient s) (f : αβ) (h : ∀ (x y : α), s q.out xs q.out yf x = f y) :
β
Equations
Instances For
    theorem Quotient.apply_of {α : Type u_1} [s : Setoid α] {p : αProp} {q : Quotient s} {h : ∀ (a b : α), a bp a = p b} :
    @[simp]
    theorem Quotient.mk_out_eq {α : Type u_1} {s : Setoid α} {q : Quotient s} :
    Quot.mk (⇑s) q.out = q
    theorem Quotient.eq_mk_out {α : Type u_1} {s : Setoid α} {q : Quotient s} :
    q = Quot.mk (⇑s) q.out
    theorem Quotient.mk_eq_mk {α : Type u_1} {s : Setoid α} {x y : α} :
    x = y s x y
    theorem Quot.mk_eq_mk {α : Type u_1} {s : Setoid α} {x y : α} :
    mk (⇑s) x = mk (⇑s) y s x y
    @[simp]
    theorem Quot.mk_out_equiv {α : Type u_1} {s : Setoid α} {x : α} :
    s (mk (⇑s) x).out x
    @[simp]
    theorem Quot.equiv_mk_out {α : Type u_1} {s : Setoid α} {x : α} :
    s x (mk (⇑s) x).out
    theorem quot_aux₁ {α : Type u_1} {β : αType u_2} {s : Setoid α} {f : (i : α) → β i} (h : ∀ (x y : α), s x yf x f y) (x : α) :
    β x = β (Quot.mk (⇑s) x).out
    theorem quot_aux₂ {α : Type u_1} {β : αType u_2} {s : Setoid α} {f : (i : α) → β i} (h : ∀ (x y : α), s x yf x f y) (a b : α) (p : s a b) :
    (fun (x : α) => cast (f x)) a = (fun (x : α) => cast (f x)) b
    theorem Quot.rec_eq_apply_out {α : Type u_1} {β : αType u_2} {s : Setoid α} {q : Quot s} {f : (i : α) → β i} (h : ∀ (x y : α), s x yf x f y) :
    Quot.rec (fun (x : α) => cast (f x)) q = f q.out
    theorem Quot.ndrec_eq_apply_out {α : Type u_1} {β : Type u_2} {s : Setoid α} {q : Quot s} {f : αβ} {h : ∀ (a b : α) (p : s a b), f a = f b} :
    Quot.rec f h q = f q.out
    theorem Quotient.rec_eq_apply_out {α : Type u_1} {β : αType u_2} {s : Setoid α} {q : Quotient s} {f : (i : α) → β i} (h : ∀ (x y : α), s x yf x f y) :
    Quotient.rec (fun (x : α) => cast (f x)) q = f q.out
    theorem Quotient.ndrec_eq_apply_out {α : Type u_1} {β : Type u_2} {s : Setoid α} {q : Quotient s} {f : αβ} {h : ∀ (a b : α) (p : a b), f a = f b} :
    Quotient.rec f h q = f q.out
    @[simp]
    theorem Quot.mk_out_equiv_iff {α : Type u_1} {s : Setoid α} {x y : α} :
    s (mk (⇑s) x).out y s x y
    @[simp]
    theorem Quot.equiv_mk_out_iff {α : Type u_1} {s : Setoid α} {x y : α} :
    s x (mk (⇑s) y).out s x y
    def liftWith_aux₂ {α : Type u_1} {β : Type u_2} {s : Setoid α} (q : Quotient s) (f : αβ) (h : ∀ (x y : α), s x q.outs y q.outf x = f y) :
    β
    Equations
    Instances For
      @[simp]
      theorem liftWith_aux₃ {α : Type u_1} {β : Type u_2} {s : Setoid α} {q : Quotient s} {f : αβ} {h : ∀ (x y : α), s x q.outs y q.outf x = f y} :
      @[simp]
      theorem Quotient.liftWith_eq {α : Type u_1} {β : Type u_2} {s : Setoid α} {q : Quotient s} {f : αβ} {h : ∀ (x y : α), s q.out xs q.out yf x = f y} :
      q.liftWith f h = f q.out
      theorem Quotient.lift_eq {α : Type u_1} {β : Type u_2} {s : Setoid α} {q : Quotient s} {f : αβ} {h : ∀ (x y : α), s x yf x = f y} :
      Quotient.lift f h q = f q.out
      @[simp]
      theorem Quotient.out_equiv {α : Type u_1} {s : Setoid α} {x : α} :
      @[simp]
      theorem Quotient.equiv_out {α : Type u_1} {s : Setoid α} {x : α} :
      theorem Quotient.apply_lift {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Setoid α} {q : Quotient s} {f : βγ} {g : αβ} {h₁ : ∀ (a b : α), a bg a = g b} (h₂ : ∀ (a b : α), a bf (g a) = f (g b)) :
      f (Quotient.lift g h₁ q) = Quotient.lift (f g) h₂ q