ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- BddBelow.range_neg
@[to_additive]
lemma BddBelow.range_inv {α : Type*} {f : α → G} (hf : BddBelow (range f)) :
    BddAbove (range (fun x => (f x)⁻¹)) 
Arguments: {G : Type u_1} [AddGroup G] [Preorder G] [CovariantClass G G (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass G G (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {α : Type u_2} {f : α → G} (hf : BddBelow (Set.range f))
Goal: BddAbove (Set.range fun x => -f x)
-- BddBelow.range_inv
@[to_additive]
lemma BddBelow.range_inv {α : Type*} {f : α → G} (hf : BddBelow (range f)) :
    BddAbove (range (fun x => (f x)⁻¹)) 
Arguments: {G : Type u_1} [Group G] [Preorder G] [CovariantClass G G (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass G G (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {α : Type u_2} {f : α → G} (hf : BddBelow (Set.range f))
Goal: BddAbove (Set.range fun x => (f x)⁻¹)
-- BddAbove.range_inv
@[to_additive]
lemma BddAbove.range_inv {α : Type*} {f : α → G} (hf : BddAbove (range f)) :
    BddBelow (range (fun x => (f x)⁻¹)) 
Arguments: {G : Type u_1} [Group G] [Preorder G] [CovariantClass G G (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass G G (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {α : Type u_2} {f : α → G} (hf : BddAbove (Set.range f))
Goal: BddBelow (Set.range fun x => (f x)⁻¹)
-- BddAbove.range_neg
@[to_additive]
lemma BddAbove.range_inv {α : Type*} {f : α → G} (hf : BddAbove (range f)) :
    BddBelow (range (fun x => (f x)⁻¹)) 
Arguments: {G : Type u_1} [AddGroup G] [Preorder G] [CovariantClass G G (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass G G (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {α : Type u_2} {f : α → G} (hf : BddAbove (Set.range f))
Goal: BddBelow (Set.range fun x => -f x)
-- mul_mem_upperBounds_mul
@[to_additive]
theorem mul_mem_upperBounds_mul {s t : Set M} {a b : M} (ha : a ∈ upperBounds s)
    (hb : b ∈ upperBounds t) : a * b ∈ upperBounds (s * t) 
Arguments: {M : Type u_1} [Mul M] [Preorder M] [CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {s t : Set M} {a b : M} (ha : a ∈ upperBounds s) (hb : b ∈ upperBounds t)
Goal: a * b ∈ upperBounds (s * t)
-- add_mem_upperBounds_add
@[to_additive]
theorem mul_mem_upperBounds_mul {s t : Set M} {a b : M} (ha : a ∈ upperBounds s)
    (hb : b ∈ upperBounds t) : a * b ∈ upperBounds (s * t) 
Arguments: {M : Type u_1} [Add M] [Preorder M] [CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {s t : Set M} {a b : M} (ha : a ∈ upperBounds s) (hb : b ∈ upperBounds t)
Goal: a + b ∈ upperBounds (s + t)
-- subset_upperBounds_mul
@[to_additive]
theorem subset_upperBounds_mul (s t : Set M) :
    upperBounds s * upperBounds t ⊆ upperBounds (s * t) 
Arguments: {M : Type u_1} [Mul M] [Preorder M] [CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] (s t : Set M)
Goal: upperBounds s * upperBounds t ⊆ upperBounds (s * t)
-- subset_upperBounds_add
@[to_additive]
theorem subset_upperBounds_mul (s t : Set M) :
    upperBounds s * upperBounds t ⊆ upperBounds (s * t) 
Arguments: {M : Type u_1} [Add M] [Preorder M] [CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] (s t : Set M)
Goal: upperBounds s + upperBounds t ⊆ upperBounds (s + t)
-- mul_mem_lowerBounds_mul
@[to_additive]
theorem mul_mem_lowerBounds_mul {s t : Set M} {a b : M} (ha : a ∈ lowerBounds s)
    (hb : b ∈ lowerBounds t) : a * b ∈ lowerBounds (s * t) 
Arguments: {M : Type u_1} [Mul M] [Preorder M] [CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {s t : Set M} {a b : M} (ha : a ∈ lowerBounds s) (hb : b ∈ lowerBounds t)
Goal: a * b ∈ lowerBounds (s * t)
-- add_mem_lowerBounds_add
@[to_additive]
theorem mul_mem_lowerBounds_mul {s t : Set M} {a b : M} (ha : a ∈ lowerBounds s)
    (hb : b ∈ lowerBounds t) : a * b ∈ lowerBounds (s * t) 
Arguments: {M : Type u_1} [Add M] [Preorder M] [CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {s t : Set M} {a b : M} (ha : a ∈ lowerBounds s) (hb : b ∈ lowerBounds t)
Goal: a + b ∈ lowerBounds (s + t)
-- subset_lowerBounds_mul
@[to_additive]
theorem subset_lowerBounds_mul (s t : Set M) :
    lowerBounds s * lowerBounds t ⊆ lowerBounds (s * t) 
Arguments: {M : Type u_1} [Mul M] [Preorder M] [CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] (s t : Set M)
Goal: lowerBounds s * lowerBounds t ⊆ lowerBounds (s * t)
-- subset_lowerBounds_add
@[to_additive]
theorem subset_lowerBounds_mul (s t : Set M) :
    lowerBounds s * lowerBounds t ⊆ lowerBounds (s * t) 
Arguments: {M : Type u_1} [Add M] [Preorder M] [CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] (s t : Set M)
Goal: lowerBounds s + lowerBounds t ⊆ lowerBounds (s + t)
-- BddAbove.add
@[to_additive]
theorem BddAbove.mul {s t : Set M} (hs : BddAbove s) (ht : BddAbove t) : BddAbove (s * t) 
Arguments: {M : Type u_1} [Add M] [Preorder M] [CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {s t : Set M} (hs : BddAbove s) (ht : BddAbove t)
Goal: BddAbove (s + t)
-- BddAbove.mul
@[to_additive]
theorem BddAbove.mul {s t : Set M} (hs : BddAbove s) (ht : BddAbove t) : BddAbove (s * t) 
Arguments: {M : Type u_1} [Mul M] [Preorder M] [CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {s t : Set M} (hs : BddAbove s) (ht : BddAbove t)
Goal: BddAbove (s * t)
-- BddBelow.add
@[to_additive]
theorem BddBelow.mul {s t : Set M} (hs : BddBelow s) (ht : BddBelow t) : BddBelow (s * t) 
Arguments: {M : Type u_1} [Add M] [Preorder M] [CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {s t : Set M} (hs : BddBelow s) (ht : BddBelow t)
Goal: BddBelow (s + t)
-- BddBelow.mul
@[to_additive]
theorem BddBelow.mul {s t : Set M} (hs : BddBelow s) (ht : BddBelow t) : BddBelow (s * t) 
Arguments: {M : Type u_1} [Mul M] [Preorder M] [CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {s t : Set M} (hs : BddBelow s) (ht : BddBelow t)
Goal: BddBelow (s * t)
-- BddAbove.range_mul
@[to_additive]
lemma BddAbove.range_mul {α : Type*} {f g : α → M} (hf : BddAbove (range f))
    (hg : BddAbove (range g)) : BddAbove (range (fun x => f x * g x)) 
Arguments: {M : Type u_1} [Mul M] [Preorder M] [CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {α : Type u_2} {f g : α → M} (hf : BddAbove (Set.range f)) (hg : BddAbove (Set.range g))
Goal: BddAbove (Set.range fun x => f x * g x)
-- BddAbove.range_add
@[to_additive]
lemma BddAbove.range_mul {α : Type*} {f g : α → M} (hf : BddAbove (range f))
    (hg : BddAbove (range g)) : BddAbove (range (fun x => f x * g x)) 
Arguments: {M : Type u_1} [Add M] [Preorder M] [CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {α : Type u_2} {f g : α → M} (hf : BddAbove (Set.range f)) (hg : BddAbove (Set.range g))
Goal: BddAbove (Set.range fun x => f x + g x)
-- BddBelow.range_mul
@[to_additive]
lemma BddBelow.range_mul {α : Type*} {f g : α → M} (hf : BddBelow (range f))
    (hg : BddBelow (range g)) : BddBelow (range (fun x => f x * g x)) 
Arguments: {M : Type u_1} [Mul M] [Preorder M] [CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] {α : Type u_2} {f g : α → M} (hf : BddBelow (Set.range f)) (hg : BddBelow (Set.range g))
Goal: BddBelow (Set.range fun x => f x * g x)
-- BddBelow.range_add
@[to_additive]
lemma BddBelow.range_mul {α : Type*} {f g : α → M} (hf : BddBelow (range f))
    (hg : BddBelow (range g)) : BddBelow (range (fun x => f x * g x)) 
Arguments: {M : Type u_1} [Add M] [Preorder M] [CovariantClass M M (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass M M (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] {α : Type u_2} {f g : α → M} (hf : BddBelow (Set.range f)) (hg : BddBelow (Set.range g))
Goal: BddBelow (Set.range fun x => f x + g x)
-- ciSup_mul
@[to_additive]
theorem ciSup_mul (hf : BddAbove (range f)) (a : G) : (⨆ i, f i) * a = ⨆ i, f i * a 
Arguments: {ι : Type u_1} {G : Type u_2} [Group G] [ConditionallyCompleteLattice G] [CovariantClass G G (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddAbove (Set.range f)) (a : G)
Goal: (⨆ i, f i) * a = ⨆ i, f i * a
-- ciSup_add
@[to_additive]
theorem ciSup_mul (hf : BddAbove (range f)) (a : G) : (⨆ i, f i) * a = ⨆ i, f i * a 
Arguments: {ι : Type u_1} {G : Type u_2} [AddGroup G] [ConditionallyCompleteLattice G] [CovariantClass G G (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddAbove (Set.range f)) (a : G)
Goal: (⨆ i, f i) + a = ⨆ i, f i + a
-- ciSup_div
@[to_additive]
theorem ciSup_div (hf : BddAbove (range f)) (a : G) : (⨆ i, f i) / a = ⨆ i, f i / a 
Arguments: {ι : Type u_1} {G : Type u_2} [Group G] [ConditionallyCompleteLattice G] [CovariantClass G G (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddAbove (Set.range f)) (a : G)
Goal: (⨆ i, f i) / a = ⨆ i, f i / a
-- ciSup_sub
@[to_additive]
theorem ciSup_div (hf : BddAbove (range f)) (a : G) : (⨆ i, f i) / a = ⨆ i, f i / a 
Arguments: {ι : Type u_1} {G : Type u_2} [AddGroup G] [ConditionallyCompleteLattice G] [CovariantClass G G (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddAbove (Set.range f)) (a : G)
Goal: (⨆ i, f i) - a = ⨆ i, f i - a
-- ciInf_add
@[to_additive]
theorem ciInf_mul (hf : BddBelow (range f)) (a : G) : (⨅ i, f i) * a = ⨅ i, f i * a 
Arguments: {ι : Type u_1} {G : Type u_2} [AddGroup G] [ConditionallyCompleteLattice G] [CovariantClass G G (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddBelow (Set.range f)) (a : G)
Goal: (⨅ i, f i) + a = ⨅ i, f i + a
-- ciInf_mul
@[to_additive]
theorem ciInf_mul (hf : BddBelow (range f)) (a : G) : (⨅ i, f i) * a = ⨅ i, f i * a 
Arguments: {ι : Type u_1} {G : Type u_2} [Group G] [ConditionallyCompleteLattice G] [CovariantClass G G (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddBelow (Set.range f)) (a : G)
Goal: (⨅ i, f i) * a = ⨅ i, f i * a
-- ciInf_div
@[to_additive]
theorem ciInf_div (hf : BddBelow (range f)) (a : G) : (⨅ i, f i) / a = ⨅ i, f i / a 
Arguments: {ι : Type u_1} {G : Type u_2} [Group G] [ConditionallyCompleteLattice G] [CovariantClass G G (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddBelow (Set.range f)) (a : G)
Goal: (⨅ i, f i) / a = ⨅ i, f i / a
-- ciInf_sub
@[to_additive]
theorem ciInf_div (hf : BddBelow (range f)) (a : G) : (⨅ i, f i) / a = ⨅ i, f i / a 
Arguments: {ι : Type u_1} {G : Type u_2} [AddGroup G] [ConditionallyCompleteLattice G] [CovariantClass G G (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddBelow (Set.range f)) (a : G)
Goal: (⨅ i, f i) - a = ⨅ i, f i - a
-- mul_ciSup
@[to_additive]
theorem mul_ciSup (hf : BddAbove (range f)) (a : G) : (a * ⨆ i, f i) = ⨆ i, a * f i 
Arguments: {ι : Sort u_1} {G : Type u_2} [Group G] [ConditionallyCompleteLattice G] [CovariantClass G G (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddAbove (Set.range f)) (a : G)
Goal: a * ⨆ i, f i = ⨆ i, a * f i
-- add_ciSup
@[to_additive]
theorem mul_ciSup (hf : BddAbove (range f)) (a : G) : (a * ⨆ i, f i) = ⨆ i, a * f i 
Arguments: {ι : Sort u_1} {G : Type u_2} [AddGroup G] [ConditionallyCompleteLattice G] [CovariantClass G G (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddAbove (Set.range f)) (a : G)
Goal: a + ⨆ i, f i = ⨆ i, a + f i
-- mul_ciInf
@[to_additive]
theorem mul_ciInf (hf : BddBelow (range f)) (a : G) : (a * ⨅ i, f i) = ⨅ i, a * f i 
Arguments: {ι : Sort u_1} {G : Type u_2} [Group G] [ConditionallyCompleteLattice G] [CovariantClass G G (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddBelow (Set.range f)) (a : G)
Goal: a * ⨅ i, f i = ⨅ i, a * f i
-- add_ciInf
@[to_additive]
theorem mul_ciInf (hf : BddBelow (range f)) (a : G) : (a * ⨅ i, f i) = ⨅ i, a * f i 
Arguments: {ι : Sort u_1} {G : Type u_2} [AddGroup G] [ConditionallyCompleteLattice G] [CovariantClass G G (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [Nonempty ι] {f : ι → G} (hf : BddBelow (Set.range f)) (a : G)
Goal: a + ⨅ i, f i = ⨅ i, a + f i
-- NonUnitalRingHom.inverse_apply
@[simps] def NonUnitalRingHom.inverse
    [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S]
    (f : R →ₙ+* S) (g : S → R)
    (h₁ : Function.LeftInverse g f) (h₂ : Function.RightInverse g f) : S →ₙ+* R 
Arguments: {R : Type u_4} {S : Type u_5} [NonUnitalNonAssocSemiring R] [NonUnitalNonAssocSemiring S] (f : R →ₙ+* S) (g : S → R) (h₁ : Function.LeftInverse g ⇑f) (h₂ : Function.RightInverse g ⇑f)
Goal: ∀ (a : S), (f.inverse g h₁ h₂) a = g a
-- RingHom.inverse_apply
@[simps] def RingHom.inverse [NonAssocSemiring R] [NonAssocSemiring S]
    (f : RingHom R S) (g : S → R)
    (h₁ : Function.LeftInverse g f) (h₂ : Function.RightInverse g f) : S →+* R 
Arguments: {R : Type u_4} {S : Type u_5} [NonAssocSemiring R] [NonAssocSemiring S] (f : R →+* S) (g : S → R) (h₁ : Function.LeftInverse g ⇑f) (h₂ : Function.RightInverse g ⇑f)
Goal: ∀ (a : S), (f.inverse g h₁ h₂) a = g a
-- RingEquivClass.map_add
class RingEquivClass (F R S : Type*) [Mul R] [Add R] [Mul S] [Add S] [EquivLike F R S]
  extends MulEquivClass F R S : Prop where
    map_add : ∀ (f : F) (a b), f (a + b) = f a + f b
Arguments: {F : Type u_7} {R : Type u_8} {S : Type u_9} [Mul R] [Add R] [Mul S] [Add S] [EquivLike F R S] [self : RingEquivClass F R S] (f : F) (a b : R)
Goal: f (a + b) = f a + f b
-- RingEquiv.toEquiv_eq_coe
@[simp]
theorem toEquiv_eq_coe (f : R ≃+* S) : f.toEquiv = f 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (f : R ≃+* S)
Goal: f.toEquiv = ↑f
-- RingEquiv.coe_toEquiv
@[simp]
theorem coe_toEquiv (f : R ≃+* S) : ⇑(f : R ≃ S) = f 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (f : R ≃+* S)
Goal: ⇑↑f = ⇑f
-- RingEquiv.map_mul
protected theorem map_mul (e : R ≃+* S) (x y : R) : e (x * y) = e x * e y 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S) (x y : R)
Goal: e (x * y) = e x * e y
-- RingEquiv.map_add
protected theorem map_add (e : R ≃+* S) (x y : R) : e (x + y) = e x + e y 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S) (x y : R)
Goal: e (x + y) = e x + e y
-- RingEquiv.ext
@[ext]
theorem ext {f g : R ≃+* S} (h : ∀ x, f x = g x) : f = g 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] {f g : R ≃+* S} (h : ∀ (x : R), f x = g x)
Goal: f = g
-- RingEquiv.coe_mk
@[simp]
theorem coe_mk (e h₃ h₄) : ⇑(⟨e, h₃, h₄⟩ : R ≃+* S) = e 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃ S) (h₃ : ∀ (x y : R), e.toFun (x * y) = e.toFun x * e.toFun y) (h₄ : ∀ (x y : R), e.toFun (x + y) = e.toFun x + e.toFun y)
Goal: ⇑{ toEquiv := e, map_mul' := h₃, map_add' := h₄ } = ⇑e
-- RingEquiv.mk_coe
@[simp]
theorem mk_coe (e : R ≃+* S) (e' h₁ h₂ h₃ h₄) : (⟨⟨e, e', h₁, h₂⟩, h₃, h₄⟩ : R ≃+* S) = e 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S) (e' : S → R) (h₁ : Function.LeftInverse e' ⇑e) (h₂ : Function.RightInverse e' ⇑e) (h₃ :
  ∀ (x y : R),
    { toFun := ⇑e, invFun := e', left_inv := h₁, right_inv := h₂ }.toFun (x * y) =
      { toFun := ⇑e, invFun := e', left_inv := h₁, right_inv := h₂ }.toFun x *
        { toFun := ⇑e, invFun := e', left_inv := h₁, right_inv := h₂ }.toFun y) (h₄ :
  ∀ (x y : R),
    { toFun := ⇑e, invFun := e', left_inv := h₁, right_inv := h₂ }.toFun (x + y) =
      { toFun := ⇑e, invFun := e', left_inv := h₁, right_inv := h₂ }.toFun x +
        { toFun := ⇑e, invFun := e', left_inv := h₁, right_inv := h₂ }.toFun y)
Goal: { toFun := ⇑e, invFun := e', left_inv := h₁, right_inv := h₂, map_mul' := h₃, map_add' := h₄ } = e
-- RingEquiv.congr_arg
protected theorem congr_arg {f : R ≃+* S} {x x' : R} : x = x' → f x = f x' 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] {f : R ≃+* S} {x x' : R}
Goal: x = x' → f x = f x'
-- RingEquiv.congr_fun
protected theorem congr_fun {f g : R ≃+* S} (h : f = g) (x : R) : f x = g x 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] {f g : R ≃+* S} (h : f = g) (x : R)
Goal: f x = g x
-- RingEquiv.ext_iff
protected theorem ext_iff {f g : R ≃+* S} : f = g ↔ ∀ x, f x = g x 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] {f g : R ≃+* S}
Goal: f = g ↔ ∀ (x : R), f x = g x
-- RingEquiv.toAddEquiv_eq_coe
@[simp]
theorem toAddEquiv_eq_coe (f : R ≃+* S) : f.toAddEquiv = ↑f 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (f : R ≃+* S)
Goal: f.toAddEquiv = ↑f
-- RingEquiv.toMulEquiv_eq_coe
@[simp]
theorem toMulEquiv_eq_coe (f : R ≃+* S) : f.toMulEquiv = ↑f 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (f : R ≃+* S)
Goal: f.toMulEquiv = ↑f
-- RingEquiv.coe_toMulEquiv
@[simp, norm_cast]
theorem coe_toMulEquiv (f : R ≃+* S) : ⇑(f : R ≃* S) = f 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (f : R ≃+* S)
Goal: ⇑↑f = ⇑f
-- RingEquiv.coe_toAddEquiv
@[simp]
theorem coe_toAddEquiv (f : R ≃+* S) : ⇑(f : R ≃+ S) = f 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (f : R ≃+* S)
Goal: ⇑↑f = ⇑f
-- RingEquiv.refl_apply
@[simp]
theorem refl_apply (x : R) : RingEquiv.refl R x = x 
Arguments: (R : Type u_4) [Mul R] [Add R] (x : R)
Goal: (RingEquiv.refl R) x = x
-- RingEquiv.coe_addEquiv_refl
@[simp]
theorem coe_addEquiv_refl : (RingEquiv.refl R : R ≃+ R) = AddEquiv.refl R 
Arguments: (R : Type u_4) [Mul R] [Add R]
Goal: ↑(RingEquiv.refl R) = AddEquiv.refl R
-- RingEquiv.coe_mulEquiv_refl
@[simp]
theorem coe_mulEquiv_refl : (RingEquiv.refl R : R ≃* R) = MulEquiv.refl R 
Arguments: (R : Type u_4) [Mul R] [Add R]
Goal: ↑(RingEquiv.refl R) = MulEquiv.refl R
-- RingEquiv.invFun_eq_symm
@[simp]
theorem invFun_eq_symm (f : R ≃+* S) : EquivLike.inv f = f.symm 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (f : R ≃+* S)
Goal: EquivLike.inv f = ⇑f.symm
-- RingEquiv.symm_symm
@[simp]
theorem symm_symm (e : R ≃+* S) : e.symm.symm = e 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S)
Goal: e.symm.symm = e
-- RingEquiv.symm_refl
@[simp]
theorem symm_refl : (RingEquiv.refl R).symm = RingEquiv.refl R 
Arguments: {R : Type u_4} [Mul R] [Add R]
Goal: (RingEquiv.refl R).symm = RingEquiv.refl R
-- RingEquiv.coe_toEquiv_symm
@[simp]
theorem coe_toEquiv_symm (e : R ≃+* S) : (e.symm : S ≃ R) = (e : R ≃ S).symm 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S)
Goal: ↑e.symm = (↑e).symm
-- RingEquiv.symm_bijective
theorem symm_bijective : Function.Bijective (RingEquiv.symm : (R ≃+* S) → S ≃+* R) 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S]
Goal: Function.Bijective RingEquiv.symm
-- RingEquiv.mk_coe'
@[simp]
theorem mk_coe' (e : R ≃+* S) (f h₁ h₂ h₃ h₄) :
    (⟨⟨f, ⇑e, h₁, h₂⟩, h₃, h₄⟩ : S ≃+* R) = e.symm 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S) (f : S → R) (h₁ : Function.LeftInverse (⇑e) f) (h₂ : Function.RightInverse (⇑e) f) (h₃ :
  ∀ (x y : S),
    { toFun := f, invFun := ⇑e, left_inv := h₁, right_inv := h₂ }.toFun (x * y) =
      { toFun := f, invFun := ⇑e, left_inv := h₁, right_inv := h₂ }.toFun x *
        { toFun := f, invFun := ⇑e, left_inv := h₁, right_inv := h₂ }.toFun y) (h₄ :
  ∀ (x y : S),
    { toFun := f, invFun := ⇑e, left_inv := h₁, right_inv := h₂ }.toFun (x + y) =
      { toFun := f, invFun := ⇑e, left_inv := h₁, right_inv := h₂ }.toFun x +
        { toFun := f, invFun := ⇑e, left_inv := h₁, right_inv := h₂ }.toFun y)
Goal: { toFun := f, invFun := ⇑e, left_inv := h₁, right_inv := h₂, map_mul' := h₃, map_add' := h₄ } = e.symm
-- RingEquiv.symm_mk
@[simp]
theorem symm_mk (f : R → S) (g h₁ h₂ h₃ h₄) :
    (mk ⟨f, g, h₁, h₂⟩ h₃ h₄).symm =
      { symm_mk.aux f g h₁ h₂ h₃ h₄ with
        toFun := g
        invFun := f } 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (f : R → S) (g : S → R) (h₁ : Function.LeftInverse g f) (h₂ : Function.RightInverse g f) (h₃ :
  ∀ (x y : R),
    { toFun := f, invFun := g, left_inv := h₁, right_inv := h₂ }.toFun (x * y) =
      { toFun := f, invFun := g, left_inv := h₁, right_inv := h₂ }.toFun x *
        { toFun := f, invFun := g, left_inv := h₁, right_inv := h₂ }.toFun y) (h₄ :
  ∀ (x y : R),
    { toFun := f, invFun := g, left_inv := h₁, right_inv := h₂ }.toFun (x + y) =
      { toFun := f, invFun := g, left_inv := h₁, right_inv := h₂ }.toFun x +
        { toFun := f, invFun := g, left_inv := h₁, right_inv := h₂ }.toFun y)
Goal: { toFun := f, invFun := g, left_inv := h₁, right_inv := h₂, map_mul' := h₃, map_add' := h₄ }.symm =
  let __src := RingEquiv.symm_mk.aux f g h₁ h₂ h₃ h₄;
  { toFun := g, invFun := f, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯ }
-- RingEquiv.trans_apply
theorem trans_apply (e₁ : R ≃+* S) (e₂ : S ≃+* S') (a : R) : e₁.trans e₂ a = e₂ (e₁ a) 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [Mul R] [Mul S] [Add R] [Add S] [Mul S'] [Add S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S') (a : R)
Goal: (e₁.trans e₂) a = e₂ (e₁ a)
-- RingEquiv.coe_trans
@[simp]
theorem coe_trans (e₁ : R ≃+* S) (e₂ : S ≃+* S') : (e₁.trans e₂ : R → S') = e₂ ∘ e₁ 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [Mul R] [Mul S] [Add R] [Add S] [Mul S'] [Add S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: ⇑(e₁.trans e₂) = ⇑e₂ ∘ ⇑e₁
-- RingEquiv.symm_trans_apply
@[simp]
theorem symm_trans_apply (e₁ : R ≃+* S) (e₂ : S ≃+* S') (a : S') :
    (e₁.trans e₂).symm a = e₁.symm (e₂.symm a) 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [Mul R] [Mul S] [Add R] [Add S] [Mul S'] [Add S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S') (a : S')
Goal: (e₁.trans e₂).symm a = e₁.symm (e₂.symm a)
-- RingEquiv.symm_trans
theorem symm_trans (e₁ : R ≃+* S) (e₂ : S ≃+* S') : (e₁.trans e₂).symm = e₂.symm.trans e₁.symm 
Arguments: {R : Type u_4} {S : Type u_5} {S' : Type u_6} [Mul R] [Mul S] [Add R] [Add S] [Mul S'] [Add S'] (e₁ : R ≃+* S) (e₂ : S ≃+* S')
Goal: (e₁.trans e₂).symm = e₂.symm.trans e₁.symm
-- RingEquiv.bijective
protected theorem bijective (e : R ≃+* S) : Function.Bijective e 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S)
Goal: Function.Bijective ⇑e
-- RingEquiv.injective
protected theorem injective (e : R ≃+* S) : Function.Injective e 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S)
Goal: Function.Injective ⇑e
-- RingEquiv.surjective
protected theorem surjective (e : R ≃+* S) : Function.Surjective e 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S)
Goal: Function.Surjective ⇑e
-- RingEquiv.apply_symm_apply
@[simp]
theorem apply_symm_apply (e : R ≃+* S) : ∀ x, e (e.symm x) = x 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S) (x : S)
Goal: e (e.symm x) = x
-- RingEquiv.symm_apply_apply
@[simp]
theorem symm_apply_apply (e : R ≃+* S) : ∀ x, e.symm (e x) = x 
Arguments: {R : Type u_4} {S : Type u_5} [Mul R] [Mul S] [Add R] [Add S] (e : R ≃+* S) (x : R)
Goal: e.symm (e x) = x