ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- RelEmbedding.injective
theorem injective (f : r ↪r s) : Injective f 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s)
Goal: Function.Injective ⇑f
-- RelEmbedding.inj
theorem inj (f : r ↪r s) {a b} : f a = f b ↔ a = b 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) {a b : α}
Goal: f a = f b ↔ a = b
-- RelEmbedding.map_rel_iff
theorem map_rel_iff (f : r ↪r s) {a b} : s (f a) (f b) ↔ r a b 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) {a b : α}
Goal: s (f a) (f b) ↔ r a b
-- RelEmbedding.coe_mk
@[simp]
theorem coe_mk {f} {h} : ⇑(⟨f, h⟩ : r ↪r s) = f 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} {f : α ↪ β} {h : ∀ {a b : α}, s (f a) (f b) ↔ r a b}
Goal: ⇑{ toEmbedding := f, map_rel_iff' := h } = ⇑f
-- RelEmbedding.coe_fn_injective
theorem coe_fn_injective : Injective fun f : r ↪r s => (f : α → β) 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: Function.Injective fun f => ⇑f
-- RelEmbedding.ext
@[ext]
theorem ext ⦃f g : r ↪r s⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} ⦃f g : r ↪r s⦄ (h : ∀ (x : α), f x = g x)
Goal: f = g
-- RelEmbedding.ext_iff
theorem ext_iff {f g : r ↪r s} : f = g ↔ ∀ x, f x = g x 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} {f g : r ↪r s}
Goal: f = g ↔ ∀ (x : α), f x = g x
-- RelEmbedding.refl_apply
@[refl, simps!]
protected def refl (r : α → α → Prop) : r ↪r r 
Arguments: {α : Type u_1} (r : α → α → Prop) (a : α)
Goal: (RelEmbedding.refl r) a = a
-- RelEmbedding.trans_apply
theorem trans_apply (f : r ↪r s) (g : s ↪r t) (a : α) : (f.trans g) a = g (f a) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {r : α → α → Prop} {s : β → β → Prop} {t : γ → γ → Prop} (f : r ↪r s) (g : s ↪r t) (a : α)
Goal: (f.trans g) a = g (f a)
-- RelEmbedding.coe_trans
@[simp]
theorem coe_trans (f : r ↪r s) (g : s ↪r t) : (f.trans g) = g ∘ f 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {r : α → α → Prop} {s : β → β → Prop} {t : γ → γ → Prop} (f : r ↪r s) (g : s ↪r t)
Goal: ⇑(f.trans g) = ⇑g ∘ ⇑f
-- RelEmbedding.eq_preimage
theorem eq_preimage (f : r ↪r s) : r = f ⁻¹'o s 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s)
Goal: r = ⇑f ⁻¹'o s
-- RelEmbedding.isIrrefl
protected theorem isIrrefl (f : r ↪r s) [IsIrrefl β s] : IsIrrefl α r 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) [IsIrrefl β s]
Goal: IsIrrefl α r
-- RelEmbedding.isRefl
protected theorem isRefl (f : r ↪r s) [IsRefl β s] : IsRefl α r 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) [IsRefl β s]
Goal: IsRefl α r
-- RelEmbedding.isSymm
protected theorem isSymm (f : r ↪r s) [IsSymm β s] : IsSymm α r 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) [IsSymm β s]
Goal: IsSymm α r
-- RelEmbedding.isAsymm
protected theorem isAsymm (f : r ↪r s) [IsAsymm β s] : IsAsymm α r 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) [IsAsymm β s]
Goal: IsAsymm α r
-- RelEmbedding.isAntisymm
protected theorem isAntisymm : ∀ (_ : r ↪r s) [IsAntisymm β s], IsAntisymm α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsAntisymm β s], IsAntisymm α r
-- RelEmbedding.isTrans
protected theorem isTrans : ∀ (_ : r ↪r s) [IsTrans β s], IsTrans α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsTrans β s], IsTrans α r
-- RelEmbedding.isTotal
protected theorem isTotal : ∀ (_ : r ↪r s) [IsTotal β s], IsTotal α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsTotal β s], IsTotal α r
-- RelEmbedding.isPreorder
protected theorem isPreorder : ∀ (_ : r ↪r s) [IsPreorder β s], IsPreorder α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsPreorder β s], IsPreorder α r
-- RelEmbedding.isPartialOrder
protected theorem isPartialOrder : ∀ (_ : r ↪r s) [IsPartialOrder β s], IsPartialOrder α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsPartialOrder β s], IsPartialOrder α r
-- RelEmbedding.isLinearOrder
protected theorem isLinearOrder : ∀ (_ : r ↪r s) [IsLinearOrder β s], IsLinearOrder α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsLinearOrder β s], IsLinearOrder α r
-- RelEmbedding.isStrictOrder
protected theorem isStrictOrder : ∀ (_ : r ↪r s) [IsStrictOrder β s], IsStrictOrder α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsStrictOrder β s], IsStrictOrder α r
-- RelEmbedding.isTrichotomous
protected theorem isTrichotomous : ∀ (_ : r ↪r s) [IsTrichotomous β s], IsTrichotomous α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsTrichotomous β s], IsTrichotomous α r
-- RelEmbedding.isStrictTotalOrder
protected theorem isStrictTotalOrder : ∀ (_ : r ↪r s) [IsStrictTotalOrder β s],
    IsStrictTotalOrder α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsStrictTotalOrder β s], IsStrictTotalOrder α r
-- RelEmbedding.acc
protected theorem acc (f : r ↪r s) (a : α) : Acc s (f a) → Acc r a 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) (a : α)
Goal: Acc s (f a) → Acc r a
-- RelEmbedding.wellFounded
protected theorem wellFounded : ∀ (_ : r ↪r s) (_ : WellFounded s), WellFounded r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → WellFounded s → WellFounded r
-- RelEmbedding.isWellFounded
protected theorem isWellFounded (f : r ↪r s) [IsWellFounded β s] : IsWellFounded α r 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) [IsWellFounded β s]
Goal: IsWellFounded α r
-- RelEmbedding.isWellOrder
protected theorem isWellOrder : ∀ (_ : r ↪r s) [IsWellOrder β s], IsWellOrder α r
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: r ↪r s → ∀ [inst : IsWellOrder β s], IsWellOrder α r
-- Quotient.mkRelHom_apply
@[simps]
def Quotient.mkRelHom [Setoid α] {r : α → α → Prop}
    (H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂) : r →r Quotient.lift₂ r H 
Arguments: {α : Type u_1} [Setoid α] {r : α → α → Prop} (H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂) (a : α)
Goal: (Quotient.mkRelHom H) a = Quotient.mk' a
-- Quotient.outRelEmbedding_apply
@[simps!]
noncomputable def Quotient.outRelEmbedding [Setoid α] {r : α → α → Prop}
    (H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂) : Quotient.lift₂ r H ↪r r 
Arguments: {α : Type u_1} [Setoid α] {r : α → α → Prop} (H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂)
Goal: ∀ (a : Quotient inst✝), (Quotient.outRelEmbedding H) a = a.out
-- Quotient.out'RelEmbedding_apply
@[simps]
noncomputable def Quotient.out'RelEmbedding {_ : Setoid α} {r : α → α → Prop}
    (H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂) :
    (fun a b => Quotient.liftOn₂' a b r H) ↪r r 
Arguments: {α : Type u_1}
Goal: ∀ {x : Setoid α} {r : α → α → Prop} (H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂) (a : Quotient x),
  (Quotient.out'RelEmbedding H) a = a.out'
-- acc_lift₂_iff
@[simp]
theorem acc_lift₂_iff [Setoid α] {r : α → α → Prop}
    {H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂} {a} :
    Acc (Quotient.lift₂ r H) ⟦a⟧ ↔ Acc r a 
Arguments: {α : Type u_1} [Setoid α] {r : α → α → Prop} {H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂} {a : α}
Goal: Acc (Quotient.lift₂ r H) ⟦a⟧ ↔ Acc r a
-- acc_liftOn₂'_iff
@[simp]
theorem acc_liftOn₂'_iff {s : Setoid α} {r : α → α → Prop} {H} {a} :
    Acc (fun x y => Quotient.liftOn₂' x y r H) (Quotient.mk'' a : Quotient s) ↔ Acc r a 
Arguments: {α : Type u_1} {s : Setoid α} {r : α → α → Prop} {H : ∀ (a₁ a₂ b₁ b₂ : α), Setoid.r a₁ b₁ → Setoid.r a₂ b₂ → r a₁ a₂ = r b₁ b₂} {a : α}
Goal: Acc (fun x y => x.liftOn₂' y r H) (Quotient.mk'' a) ↔ Acc r a
-- wellFounded_lift₂_iff
@[simp]
theorem wellFounded_lift₂_iff [Setoid α] {r : α → α → Prop}
    {H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂} :
    WellFounded (Quotient.lift₂ r H) ↔ WellFounded r 
Arguments: {α : Type u_1} [Setoid α] {r : α → α → Prop} {H : ∀ (a₁ b₁ a₂ b₂ : α), a₁ ≈ a₂ → b₁ ≈ b₂ → r a₁ b₁ = r a₂ b₂}
Goal: WellFounded (Quotient.lift₂ r H) ↔ WellFounded r
-- wellFounded_liftOn₂'_iff
@[simp]
theorem wellFounded_liftOn₂'_iff {s : Setoid α} {r : α → α → Prop} {H} :
    (WellFounded fun x y : Quotient s => Quotient.liftOn₂' x y r H) ↔ WellFounded r 
Arguments: {α : Type u_1} {s : Setoid α} {r : α → α → Prop} {H : ∀ (a₁ a₂ b₁ b₂ : α), Setoid.r a₁ b₁ → Setoid.r a₂ b₂ → r a₁ a₂ = r b₁ b₂}
Goal: (WellFounded fun x y => x.liftOn₂' y r H) ↔ WellFounded r
-- RelEmbedding.ofMapRelIff_coe
@[simp]
theorem ofMapRelIff_coe (f : α → β) [IsAntisymm α r] [IsRefl β s]
    (hf : ∀ a b, s (f a) (f b) ↔ r a b) :
    (ofMapRelIff f hf : r ↪r s) = f 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : α → β) [IsAntisymm α r] [IsRefl β s] (hf : ∀ (a b : α), s (f a) (f b) ↔ r a b)
Goal: ⇑(RelEmbedding.ofMapRelIff f hf) = f
-- RelEmbedding.ofMonotone_coe
@[simp]
theorem ofMonotone_coe [IsTrichotomous α r] [IsAsymm β s] (f : α → β) (H) :
    (@ofMonotone _ _ r s _ _ f H : α → β) = f 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} [IsTrichotomous α r] [IsAsymm β s] (f : α → β) (H : ∀ (a b : α), r a b → s (f a) (f b))
Goal: ⇑(RelEmbedding.ofMonotone f H) = f
-- RelEmbedding.sumLiftRelInl_apply
@[simps]
def sumLiftRelInl (r : α → α → Prop) (s : β → β → Prop) : r ↪r Sum.LiftRel r s 
Arguments: {α : Type u_1} {β : Type u_2} (r : α → α → Prop) (s : β → β → Prop) (val : α)
Goal: (RelEmbedding.sumLiftRelInl r s) val = Sum.inl val
-- RelEmbedding.sumLiftRelInr_apply
@[simps]
def sumLiftRelInr (r : α → α → Prop) (s : β → β → Prop) : s ↪r Sum.LiftRel r s 
Arguments: {α : Type u_1} {β : Type u_2} (r : α → α → Prop) (s : β → β → Prop) (val : β)
Goal: (RelEmbedding.sumLiftRelInr r s) val = Sum.inr val
-- RelEmbedding.sumLiftRelMap_apply
@[simps]
def sumLiftRelMap (f : r ↪r s) (g : t ↪r u) : Sum.LiftRel r t ↪r Sum.LiftRel s u 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {r : α → α → Prop} {s : β → β → Prop} {t : γ → γ → Prop} {u : δ → δ → Prop} (f : r ↪r s) (g : t ↪r u)
Goal: ∀ (a : α ⊕ γ), (f.sumLiftRelMap g) a = Sum.map (⇑f) (⇑g) a
-- RelEmbedding.sumLexInl_apply
@[simps]
def sumLexInl (r : α → α → Prop) (s : β → β → Prop) : r ↪r Sum.Lex r s 
Arguments: {α : Type u_1} {β : Type u_2} (r : α → α → Prop) (s : β → β → Prop) (val : α)
Goal: (RelEmbedding.sumLexInl r s) val = Sum.inl val
-- RelEmbedding.sumLexInr_apply
@[simps]
def sumLexInr (r : α → α → Prop) (s : β → β → Prop) : s ↪r Sum.Lex r s 
Arguments: {α : Type u_1} {β : Type u_2} (r : α → α → Prop) (s : β → β → Prop) (val : β)
Goal: (RelEmbedding.sumLexInr r s) val = Sum.inr val
-- RelEmbedding.sumLexMap_apply
@[simps]
def sumLexMap (f : r ↪r s) (g : t ↪r u) : Sum.Lex r t ↪r Sum.Lex s u 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {r : α → α → Prop} {s : β → β → Prop} {t : γ → γ → Prop} {u : δ → δ → Prop} (f : r ↪r s) (g : t ↪r u)
Goal: ∀ (a : α ⊕ γ), (f.sumLexMap g) a = Sum.map (⇑f) (⇑g) a
-- RelEmbedding.prodLexMkLeft_apply
@[simps]
def prodLexMkLeft (s : β → β → Prop) {a : α} (h : ¬r a a) : s ↪r Prod.Lex r s 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} (s : β → β → Prop) {a : α} (h : ¬r a a) (snd : β)
Goal: (RelEmbedding.prodLexMkLeft s h) snd = (a, snd)
-- RelEmbedding.prodLexMkRight_apply
@[simps]
def prodLexMkRight (r : α → α → Prop) {b : β} (h : ¬s b b) : r ↪r Prod.Lex r s 
Arguments: {α : Type u_1} {β : Type u_2} {s : β → β → Prop} (r : α → α → Prop) {b : β} (h : ¬s b b) (a : α)
Goal: (RelEmbedding.prodLexMkRight r h) a = (a, b)
-- RelEmbedding.prodLexMap_apply
@[simps]
def prodLexMap (f : r ↪r s) (g : t ↪r u) : Prod.Lex r t ↪r Prod.Lex s u 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {δ : Type u_4} {r : α → α → Prop} {s : β → β → Prop} {t : γ → γ → Prop} {u : δ → δ → Prop} (f : r ↪r s) (g : t ↪r u)
Goal: ∀ (a : α × γ), (f.prodLexMap g) a = Prod.map (⇑f) (⇑g) a
-- RelIso.map_rel_iff'
structure RelIso {α β : Type*} (r : α → α → Prop) (s : β → β → Prop) extends α ≃ β where
    map_rel_iff' : ∀ {a b}, s (toEquiv a) (toEquiv b) ↔ r a b
Arguments: {α : Type u_5} {β : Type u_6} {r : α → α → Prop} {s : β → β → Prop} (self : r ≃r s) {a b : α}
Goal: s (self.toEquiv a) (self.toEquiv b) ↔ r a b
-- RelIso.toEquiv_injective
theorem toEquiv_injective : Injective (toEquiv : r ≃r s → α ≃ β)
  
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: Function.Injective RelIso.toEquiv
-- RelIso.coe_toRelEmbedding
@[simp]
theorem coe_toRelEmbedding (f : r ≃r s) : (f.toRelEmbedding : α → β) = f 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ≃r s)
Goal: ⇑f.toRelEmbedding = ⇑f
-- RelIso.coe_toEmbedding
@[simp]
theorem coe_toEmbedding (f : r ≃r s) : (f.toEmbedding : α → β) = f 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ≃r s)
Goal: ⇑f.toEmbedding = ⇑f
-- RelIso.map_rel_iff
theorem map_rel_iff (f : r ≃r s) {a b} : s (f a) (f b) ↔ r a b 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ≃r s) {a b : α}
Goal: s (f a) (f b) ↔ r a b
-- RelIso.coe_fn_mk
@[simp]
theorem coe_fn_mk (f : α ≃ β) (o : ∀ ⦃a b⦄, s (f a) (f b) ↔ r a b) :
    (RelIso.mk f @o : α → β) = f 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : α ≃ β) (o : ∀ ⦃a b : α⦄, s (f a) (f b) ↔ r a b)
Goal: ⇑{ toEquiv := f, map_rel_iff' := o } = ⇑f
-- RelIso.coe_fn_toEquiv
@[simp]
theorem coe_fn_toEquiv (f : r ≃r s) : (f.toEquiv : α → β) = f 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ≃r s)
Goal: ⇑f.toEquiv = ⇑f
-- RelIso.coe_fn_injective
theorem coe_fn_injective : Injective fun f : r ≃r s => (f : α → β) 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop}
Goal: Function.Injective fun f => ⇑f
-- RelIso.ext
@[ext]
theorem ext ⦃f g : r ≃r s⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} ⦃f g : r ≃r s⦄ (h : ∀ (x : α), f x = g x)
Goal: f = g
-- RelIso.ext_iff
theorem ext_iff {f g : r ≃r s} : f = g ↔ ∀ x, f x = g x 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} {f g : r ≃r s}
Goal: f = g ↔ ∀ (x : α), f x = g x
-- RelIso.refl_apply
@[refl, simps! apply]
protected def refl (r : α → α → Prop) : r ≃r r 
Arguments: {α : Type u_1} (r : α → α → Prop) (a : α)
Goal: (RelIso.refl r) a = a
-- RelIso.trans_apply
@[simps! apply]
protected def trans (f₁ : r ≃r s) (f₂ : s ≃r t) : r ≃r t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {r : α → α → Prop} {s : β → β → Prop} {t : γ → γ → Prop} (f₁ : r ≃r s) (f₂ : s ≃r t)
Goal: ∀ (a : α), (f₁.trans f₂) a = f₂ (f₁ a)
-- RelIso.default_def
@[simp]
theorem default_def (r : α → α → Prop) : default = RelIso.refl r 
Arguments: {α : Type u_1} (r : α → α → Prop)
Goal: default = RelIso.refl r
-- RelIso.cast_toEquiv
@[simps! toEquiv apply]
protected def cast {α β : Type u} {r : α → α → Prop} {s : β → β → Prop} (h₁ : α = β)
    (h₂ : HEq r s) : r ≃r s 
Arguments: {α β : Type u} {r : α → α → Prop} {s : β → β → Prop} (h₁ : α = β) (h₂ : HEq r s)
Goal: (RelIso.cast h₁ h₂).toEquiv = Equiv.cast h₁
-- RelIso.cast_apply
@[simps! toEquiv apply]
protected def cast {α β : Type u} {r : α → α → Prop} {s : β → β → Prop} (h₁ : α = β)
    (h₂ : HEq r s) : r ≃r s 
Arguments: {α β : Type u} {r : α → α → Prop} {s : β → β → Prop} (h₁ : α = β) (h₂ : HEq r s) (a : α)
Goal: (RelIso.cast h₁ h₂) a = cast h₁ a
-- RelIso.cast_symm
@[simp]
protected theorem cast_symm {α β : Type u} {r : α → α → Prop} {s : β → β → Prop} (h₁ : α = β)
    (h₂ : HEq r s) : (RelIso.cast h₁ h₂).symm = RelIso.cast h₁.symm h₂.symm 
Arguments: {α β : Type u} {r : α → α → Prop} {s : β → β → Prop} (h₁ : α = β) (h₂ : HEq r s)
Goal: (RelIso.cast h₁ h₂).symm = RelIso.cast ⋯ ⋯
-- RelIso.cast_refl
@[simp]
protected theorem cast_refl {α : Type u} {r : α → α → Prop} (h₁ : α = α := rfl)
    (h₂ : HEq r r := HEq.rfl) : RelIso.cast h₁ h₂ = RelIso.refl r 
Arguments: {α : Type u} {r : α → α → Prop} (h₁ : α = α := ⋯) (h₂ : HEq r r := ⋯)
Goal: RelIso.cast h₁ h₂ = RelIso.refl r
-- RelIso.cast_trans
@[simp]
protected theorem cast_trans {α β γ : Type u} {r : α → α → Prop} {s : β → β → Prop}
    {t : γ → γ → Prop} (h₁ : α = β) (h₁' : β = γ) (h₂ : HEq r s) (h₂' : HEq s t) :
    (RelIso.cast h₁ h₂).trans (RelIso.cast h₁' h₂') = RelIso.cast (h₁.trans h₁') (h₂.trans h₂') 
Arguments: {α β γ : Type u} {r : α → α → Prop} {s : β → β → Prop} {t : γ → γ → Prop} (h₁ : α = β) (h₁' : β = γ) (h₂ : HEq r s) (h₂' : HEq s t)
Goal: (RelIso.cast h₁ h₂).trans (RelIso.cast h₁' h₂') = RelIso.cast ⋯ ⋯
-- RelIso.coe_fn_symm_mk
@[simp]
theorem coe_fn_symm_mk (f o) : ((@RelIso.mk _ _ r s f @o).symm : β → α) = f.symm 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : α ≃ β) (o : ∀ {a b : α}, s (f a) (f b) ↔ r a b)
Goal: ⇑{ toEquiv := f, map_rel_iff' := o }.symm = ⇑f.symm
-- RelIso.apply_symm_apply
@[simp]
theorem apply_symm_apply (e : r ≃r s) (x : β) : e (e.symm x) = x 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s) (x : β)
Goal: e (e.symm x) = x
-- RelIso.symm_apply_apply
@[simp]
theorem symm_apply_apply (e : r ≃r s) (x : α) : e.symm (e x) = x 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s) (x : α)
Goal: e.symm (e x) = x
-- RelIso.rel_symm_apply
theorem rel_symm_apply (e : r ≃r s) {x y} : r x (e.symm y) ↔ s (e x) y 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s) {x : α} {y : β}
Goal: r x (e.symm y) ↔ s (e x) y
-- RelIso.symm_apply_rel
theorem symm_apply_rel (e : r ≃r s) {x y} : r (e.symm x) y ↔ s x (e y) 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s) {x : β} {y : α}
Goal: r (e.symm x) y ↔ s x (e y)
-- RelIso.self_trans_symm
@[simp]
theorem self_trans_symm (e : r ≃r s) : e.trans e.symm = RelIso.refl r 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s)
Goal: e.trans e.symm = RelIso.refl r
-- RelIso.symm_trans_self
@[simp]
theorem symm_trans_self (e : r ≃r s) : e.symm.trans e = RelIso.refl s 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s)
Goal: e.symm.trans e = RelIso.refl s
-- RelIso.bijective
protected theorem bijective (e : r ≃r s) : Bijective e 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s)
Goal: Function.Bijective ⇑e
-- RelIso.injective
protected theorem injective (e : r ≃r s) : Injective e 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s)
Goal: Function.Injective ⇑e
-- RelIso.surjective
protected theorem surjective (e : r ≃r s) : Surjective e 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (e : r ≃r s)
Goal: Function.Surjective ⇑e
-- RelIso.eq_iff_eq
theorem eq_iff_eq (f : r ≃r s) {a b} : f a = f b ↔ a = b 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ≃r s) {a b : α}
Goal: f a = f b ↔ a = b
-- RelIso.ofSurjective_apply
@[simps! apply]
noncomputable def ofSurjective (f : r ↪r s) (H : Surjective f) : r ≃r s 
Arguments: {α : Type u_1} {β : Type u_2} {r : α → α → Prop} {s : β → β → Prop} (f : r ↪r s) (H : Function.Surjective ⇑f) (a : α)
Goal: (RelIso.ofSurjective f H) a = f a
-- le_mul_ciInf
@[to_additive]
theorem le_mul_ciInf [CovariantClass α α (· * ·) (· ≤ ·)] {a : α} {g : α} {h : ι → α}
    (H : ∀ j, a ≤ g * h j) : a ≤ g * iInf h 
Arguments: {α : Type u_1} {ι : Sort u_2} [Nonempty ι] [ConditionallyCompleteLattice α] [Group α] [CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {a g : α} {h : ι → α} (H : ∀ (j : ι), a ≤ g * h j)
Goal: a ≤ g * iInf h
-- le_add_ciInf
@[to_additive]
theorem le_mul_ciInf [CovariantClass α α (· * ·) (· ≤ ·)] {a : α} {g : α} {h : ι → α}
    (H : ∀ j, a ≤ g * h j) : a ≤ g * iInf h 
Arguments: {α : Type u_1} {ι : Sort u_2} [Nonempty ι] [ConditionallyCompleteLattice α] [AddGroup α] [CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {a g : α} {h : ι → α} (H : ∀ (j : ι), a ≤ g + h j)
Goal: a ≤ g + iInf h
-- add_ciSup_le
@[to_additive]
theorem mul_ciSup_le [CovariantClass α α (· * ·) (· ≤ ·)] {a : α} {g : α} {h : ι → α}
    (H : ∀ j, g * h j ≤ a) : g * iSup h ≤ a 
Arguments: {α : Type u_1} {ι : Sort u_2} [Nonempty ι] [ConditionallyCompleteLattice α] [AddGroup α] [CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {a g : α} {h : ι → α} (H : ∀ (j : ι), g + h j ≤ a)
Goal: g + iSup h ≤ a
-- mul_ciSup_le
@[to_additive]
theorem mul_ciSup_le [CovariantClass α α (· * ·) (· ≤ ·)] {a : α} {g : α} {h : ι → α}
    (H : ∀ j, g * h j ≤ a) : g * iSup h ≤ a 
Arguments: {α : Type u_1} {ι : Sort u_2} [Nonempty ι] [ConditionallyCompleteLattice α] [Group α] [CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {a g : α} {h : ι → α} (H : ∀ (j : ι), g * h j ≤ a)
Goal: g * iSup h ≤ a
-- le_ciInf_add
@[to_additive]
theorem le_ciInf_mul [CovariantClass α α (Function.swap (· * ·)) (· ≤ ·)] {a : α} {g : ι → α}
    {h : α} (H : ∀ i, a ≤ g i * h) : a ≤ iInf g * h 
Arguments: {α : Type u_1} {ι : Sort u_2} [Nonempty ι] [ConditionallyCompleteLattice α] [AddGroup α] [CovariantClass α α (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {a : α} {g : ι → α} {h : α} (H : ∀ (i : ι), a ≤ g i + h)
Goal: a ≤ iInf g + h
-- le_ciInf_mul
@[to_additive]
theorem le_ciInf_mul [CovariantClass α α (Function.swap (· * ·)) (· ≤ ·)] {a : α} {g : ι → α}
    {h : α} (H : ∀ i, a ≤ g i * h) : a ≤ iInf g * h 
Arguments: {α : Type u_1} {ι : Sort u_2} [Nonempty ι] [ConditionallyCompleteLattice α] [Group α] [CovariantClass α α (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {a : α} {g : ι → α} {h : α} (H : ∀ (i : ι), a ≤ g i * h)
Goal: a ≤ iInf g * h
-- ciSup_add_le
@[to_additive]
theorem ciSup_mul_le [CovariantClass α α (Function.swap (· * ·)) (· ≤ ·)] {a : α} {g : ι → α}
    {h : α} (H : ∀ i, g i * h ≤ a) : iSup g * h ≤ a 
Arguments: {α : Type u_1} {ι : Sort u_2} [Nonempty ι] [ConditionallyCompleteLattice α] [AddGroup α] [CovariantClass α α (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {a : α} {g : ι → α} {h : α} (H : ∀ (i : ι), g i + h ≤ a)
Goal: iSup g + h ≤ a
-- ciSup_mul_le
@[to_additive]
theorem ciSup_mul_le [CovariantClass α α (Function.swap (· * ·)) (· ≤ ·)] {a : α} {g : ι → α}
    {h : α} (H : ∀ i, g i * h ≤ a) : iSup g * h ≤ a 
Arguments: {α : Type u_1} {ι : Sort u_2} [Nonempty ι] [ConditionallyCompleteLattice α] [Group α] [CovariantClass α α (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {a : α} {g : ι → α} {h : α} (H : ∀ (i : ι), g i * h ≤ a)
Goal: iSup g * h ≤ a
-- le_ciInf_mul_ciInf
@[to_additive]
theorem le_ciInf_mul_ciInf [CovariantClass α α (· * ·) (· ≤ ·)]
    [CovariantClass α α (Function.swap (· * ·)) (· ≤ ·)] {a : α} {g : ι → α} {h : ι' → α}
    (H : ∀ i j, a ≤ g i * h j) : a ≤ iInf g * iInf h 
Arguments: {α : Type u_1} {ι : Sort u_2} {ι' : Sort u_3} [Nonempty ι] [Nonempty ι'] [ConditionallyCompleteLattice α] [Group α] [CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass α α (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {a : α} {g : ι → α} {h : ι' → α} (H : ∀ (i : ι) (j : ι'), a ≤ g i * h j)
Goal: a ≤ iInf g * iInf h