ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AffineEquiv.toAffineMap_injective
theorem toAffineMap_injective : Injective (toAffineMap : (P₁ ≃ᵃ[k] P₂) → P₁ →ᵃ[k] P₂) 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂]
Goal: Function.Injective AffineEquiv.toAffineMap
-- AffineEquiv.toAffineMap_inj
@[simp]
theorem toAffineMap_inj {e e' : P₁ ≃ᵃ[k] P₂} : e.toAffineMap = e'.toAffineMap ↔ e = e' 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] {e e' : P₁ ≃ᵃ[k] P₂}
Goal: ↑e = ↑e' ↔ e = e'
-- AffineEquiv.map_vadd
@[simp]
theorem map_vadd (e : P₁ ≃ᵃ[k] P₂) (p : P₁) (v : V₁) : e (v +ᵥ p) = e.linear v +ᵥ e p 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂) (p : P₁) (v : V₁)
Goal: e (v +ᵥ p) = e.linear v +ᵥ e p
-- AffineEquiv.coe_toEquiv
@[simp]
theorem coe_toEquiv (e : P₁ ≃ᵃ[k] P₂) : ⇑e.toEquiv = e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: ⇑e.toEquiv = ⇑e
-- AffineEquiv.coe_toAffineMap
@[simp]
theorem coe_toAffineMap (e : P₁ ≃ᵃ[k] P₂) : (e.toAffineMap : P₁ → P₂) = (e : P₁ → P₂) 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: ⇑↑e = ⇑e
-- AffineEquiv.coe_coe
@[norm_cast, simp]
theorem coe_coe (e : P₁ ≃ᵃ[k] P₂) : ((e : P₁ →ᵃ[k] P₂) : P₁ → P₂) = e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: ⇑↑e = ⇑e
-- AffineEquiv.coe_linear
@[simp]
theorem coe_linear (e : P₁ ≃ᵃ[k] P₂) : (e : P₁ →ᵃ[k] P₂).linear = e.linear 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: (↑e).linear = ↑e.linear
-- AffineEquiv.ext
@[ext]
theorem ext {e e' : P₁ ≃ᵃ[k] P₂} (h : ∀ x, e x = e' x) : e = e' 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] {e e' : P₁ ≃ᵃ[k] P₂} (h : ∀ (x : P₁), e x = e' x)
Goal: e = e'
-- AffineEquiv.coeFn_injective
theorem coeFn_injective : @Injective (P₁ ≃ᵃ[k] P₂) (P₁ → P₂) (⇑) 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂]
Goal: Function.Injective DFunLike.coe
-- AffineEquiv.coeFn_inj
@[norm_cast]
-- Porting note: removed `simp`: proof is `simp only [DFunLike.coe_fn_eq]`
theorem coeFn_inj {e e' : P₁ ≃ᵃ[k] P₂} : (e : P₁ → P₂) = e' ↔ e = e' 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] {e e' : P₁ ≃ᵃ[k] P₂}
Goal: ⇑e = ⇑e' ↔ e = e'
-- AffineEquiv.toEquiv_injective
theorem toEquiv_injective : Injective (toEquiv : (P₁ ≃ᵃ[k] P₂) → P₁ ≃ P₂) 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂]
Goal: Function.Injective AffineEquiv.toEquiv
-- AffineEquiv.toEquiv_inj
@[simp]
theorem toEquiv_inj {e e' : P₁ ≃ᵃ[k] P₂} : e.toEquiv = e'.toEquiv ↔ e = e' 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] {e e' : P₁ ≃ᵃ[k] P₂}
Goal: e.toEquiv = e'.toEquiv ↔ e = e'
-- AffineEquiv.coe_mk
@[simp]
theorem coe_mk (e : P₁ ≃ P₂) (e' : V₁ ≃ₗ[k] V₂) (h) : ((⟨e, e', h⟩ : P₁ ≃ᵃ[k] P₂) : P₁ → P₂) = e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ P₂) (e' : V₁ ≃ₗ[k] V₂) (h : ∀ (p : P₁) (v : V₁), e (v +ᵥ p) = e' v +ᵥ e p)
Goal: ⇑{ toEquiv := e, linear := e', map_vadd' := h } = ⇑e
-- AffineEquiv.coe_mk'
@[simp]
theorem coe_mk' (e : P₁ ≃ P₂) (e' : V₁ ≃ₗ[k] V₂) (p h) : ⇑(mk' e e' p h) = e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ P₂) (e' : V₁ ≃ₗ[k] V₂) (p : P₁) (h : ∀ (p' : P₁), e p' = e' (p' -ᵥ p) +ᵥ e p)
Goal: ⇑(AffineEquiv.mk' (⇑e) e' p h) = ⇑e
-- AffineEquiv.linear_mk'
@[simp]
theorem linear_mk' (e : P₁ ≃ P₂) (e' : V₁ ≃ₗ[k] V₂) (p h) : (mk' e e' p h).linear = e' 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ P₂) (e' : V₁ ≃ₗ[k] V₂) (p : P₁) (h : ∀ (p' : P₁), e p' = e' (p' -ᵥ p) +ᵥ e p)
Goal: (AffineEquiv.mk' (⇑e) e' p h).linear = e'
-- AffineEquiv.symm_toEquiv
@[simp]
theorem symm_toEquiv (e : P₁ ≃ᵃ[k] P₂) : e.toEquiv.symm = e.symm.toEquiv 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: e.symm = e.symm.toEquiv
-- AffineEquiv.symm_linear
@[simp]
theorem symm_linear (e : P₁ ≃ᵃ[k] P₂) : e.linear.symm = e.symm.linear 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: e.linear.symm = e.symm.linear
-- AffineEquiv.bijective
protected theorem bijective (e : P₁ ≃ᵃ[k] P₂) : Bijective e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: Function.Bijective ⇑e
-- AffineEquiv.surjective
protected theorem surjective (e : P₁ ≃ᵃ[k] P₂) : Surjective e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: Function.Surjective ⇑e
-- AffineEquiv.injective
protected theorem injective (e : P₁ ≃ᵃ[k] P₂) : Injective e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: Function.Injective ⇑e
-- AffineEquiv.linear_ofBijective
@[simps! linear apply]
noncomputable def ofBijective {φ : P₁ →ᵃ[k] P₂} (hφ : Function.Bijective φ) : P₁ ≃ᵃ[k] P₂ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] {φ : P₁ →ᵃ[k] P₂} (hφ : Function.Bijective ⇑φ)
Goal: (AffineEquiv.ofBijective hφ).linear = LinearEquiv.ofBijective φ.linear ⋯
-- AffineEquiv.ofBijective_apply
@[simps! linear apply]
noncomputable def ofBijective {φ : P₁ →ᵃ[k] P₂} (hφ : Function.Bijective φ) : P₁ ≃ᵃ[k] P₂ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] {φ : P₁ →ᵃ[k] P₂} (hφ : Function.Bijective ⇑φ) (a : P₁)
Goal: (AffineEquiv.ofBijective hφ) a = φ a
-- AffineEquiv.ofBijective.symm_eq
theorem ofBijective.symm_eq {φ : P₁ →ᵃ[k] P₂} (hφ : Function.Bijective φ) :
    (ofBijective hφ).symm.toEquiv = (Equiv.ofBijective _ hφ).symm 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] {φ : P₁ →ᵃ[k] P₂} (hφ : Function.Bijective ⇑φ)
Goal: (AffineEquiv.ofBijective hφ).symm.toEquiv = (Equiv.ofBijective (⇑φ) hφ).symm
-- AffineEquiv.range_eq
@[simp]
theorem range_eq (e : P₁ ≃ᵃ[k] P₂) : range e = univ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: Set.range ⇑e = Set.univ
-- AffineEquiv.apply_symm_apply
@[simp]
theorem apply_symm_apply (e : P₁ ≃ᵃ[k] P₂) (p : P₂) : e (e.symm p) = p 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂) (p : P₂)
Goal: e (e.symm p) = p
-- AffineEquiv.symm_apply_apply
@[simp]
theorem symm_apply_apply (e : P₁ ≃ᵃ[k] P₂) (p : P₁) : e.symm (e p) = p 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂) (p : P₁)
Goal: e.symm (e p) = p
-- AffineEquiv.apply_eq_iff_eq_symm_apply
theorem apply_eq_iff_eq_symm_apply (e : P₁ ≃ᵃ[k] P₂) {p₁ p₂} : e p₁ = p₂ ↔ p₁ = e.symm p₂ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂) {p₁ : P₁} {p₂ : P₂}
Goal: e p₁ = p₂ ↔ p₁ = e.symm p₂
-- AffineEquiv.apply_eq_iff_eq
theorem apply_eq_iff_eq (e : P₁ ≃ᵃ[k] P₂) {p₁ p₂ : P₁} : e p₁ = e p₂ ↔ p₁ = p₂ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂) {p₁ p₂ : P₁}
Goal: e p₁ = e p₂ ↔ p₁ = p₂
-- AffineEquiv.image_symm
@[simp]
theorem image_symm (f : P₁ ≃ᵃ[k] P₂) (s : Set P₂) : f.symm '' s = f ⁻¹' s 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (f : P₁ ≃ᵃ[k] P₂) (s : Set P₂)
Goal: ⇑f.symm '' s = ⇑f ⁻¹' s
-- AffineEquiv.preimage_symm
@[simp]
theorem preimage_symm (f : P₁ ≃ᵃ[k] P₂) (s : Set P₁) : f.symm ⁻¹' s = f '' s 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (f : P₁ ≃ᵃ[k] P₂) (s : Set P₁)
Goal: ⇑f.symm ⁻¹' s = ⇑f '' s
-- AffineEquiv.coe_refl
@[simp]
theorem coe_refl : ⇑(refl k P₁) = id 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁]
Goal: ⇑(AffineEquiv.refl k P₁) = id
-- AffineEquiv.coe_refl_to_affineMap
@[simp]
theorem coe_refl_to_affineMap : ↑(refl k P₁) = AffineMap.id k P₁ 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁]
Goal: ↑(AffineEquiv.refl k P₁) = AffineMap.id k P₁
-- AffineEquiv.refl_apply
@[simp]
theorem refl_apply (x : P₁) : refl k P₁ x = x 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (x : P₁)
Goal: (AffineEquiv.refl k P₁) x = x
-- AffineEquiv.toEquiv_refl
@[simp]
theorem toEquiv_refl : (refl k P₁).toEquiv = Equiv.refl P₁ 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁]
Goal: (AffineEquiv.refl k P₁).toEquiv = Equiv.refl P₁
-- AffineEquiv.linear_refl
@[simp]
theorem linear_refl : (refl k P₁).linear = LinearEquiv.refl k V₁ 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁]
Goal: (AffineEquiv.refl k P₁).linear = LinearEquiv.refl k V₁
-- AffineEquiv.symm_refl
@[simp]
theorem symm_refl : (refl k P₁).symm = refl k P₁ 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁]
Goal: (AffineEquiv.refl k P₁).symm = AffineEquiv.refl k P₁
-- AffineEquiv.coe_trans
@[simp]
theorem coe_trans (e : P₁ ≃ᵃ[k] P₂) (e' : P₂ ≃ᵃ[k] P₃) : ⇑(e.trans e') = e' ∘ e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {P₃ : Type u_4} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] [AddCommGroup V₃] [Module k V₃] [AffineSpace V₃ P₃] (e : P₁ ≃ᵃ[k] P₂) (e' : P₂ ≃ᵃ[k] P₃)
Goal: ⇑(e.trans e') = ⇑e' ∘ ⇑e
-- AffineEquiv.coe_trans_to_affineMap
@[simp]
theorem coe_trans_to_affineMap (e : P₁ ≃ᵃ[k] P₂) (e' : P₂ ≃ᵃ[k] P₃) :
    (e.trans e' : P₁ →ᵃ[k] P₃) = (e' : P₂ →ᵃ[k] P₃).comp e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {P₃ : Type u_4} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] [AddCommGroup V₃] [Module k V₃] [AffineSpace V₃ P₃] (e : P₁ ≃ᵃ[k] P₂) (e' : P₂ ≃ᵃ[k] P₃)
Goal: ↑(e.trans e') = (↑e').comp ↑e
-- AffineEquiv.trans_apply
@[simp]
theorem trans_apply (e : P₁ ≃ᵃ[k] P₂) (e' : P₂ ≃ᵃ[k] P₃) (p : P₁) : e.trans e' p = e' (e p) 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {P₃ : Type u_4} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] [AddCommGroup V₃] [Module k V₃] [AffineSpace V₃ P₃] (e : P₁ ≃ᵃ[k] P₂) (e' : P₂ ≃ᵃ[k] P₃) (p : P₁)
Goal: (e.trans e') p = e' (e p)
-- AffineEquiv.trans_assoc
theorem trans_assoc (e₁ : P₁ ≃ᵃ[k] P₂) (e₂ : P₂ ≃ᵃ[k] P₃) (e₃ : P₃ ≃ᵃ[k] P₄) :
    (e₁.trans e₂).trans e₃ = e₁.trans (e₂.trans e₃) 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {P₃ : Type u_4} {P₄ : Type u_5} {V₁ : Type u_6} {V₂ : Type u_7} {V₃ : Type u_8} {V₄ : Type u_9} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] [AddCommGroup V₃] [Module k V₃] [AffineSpace V₃ P₃] [AddCommGroup V₄] [Module k V₄] [AffineSpace V₄ P₄] (e₁ : P₁ ≃ᵃ[k] P₂) (e₂ : P₂ ≃ᵃ[k] P₃) (e₃ : P₃ ≃ᵃ[k] P₄)
Goal: (e₁.trans e₂).trans e₃ = e₁.trans (e₂.trans e₃)
-- AffineEquiv.trans_refl
@[simp]
theorem trans_refl (e : P₁ ≃ᵃ[k] P₂) : e.trans (refl k P₂) = e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: e.trans (AffineEquiv.refl k P₂) = e
-- AffineEquiv.refl_trans
@[simp]
theorem refl_trans (e : P₁ ≃ᵃ[k] P₂) : (refl k P₁).trans e = e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: (AffineEquiv.refl k P₁).trans e = e
-- AffineEquiv.self_trans_symm
@[simp]
theorem self_trans_symm (e : P₁ ≃ᵃ[k] P₂) : e.trans e.symm = refl k P₁ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: e.trans e.symm = AffineEquiv.refl k P₁
-- AffineEquiv.symm_trans_self
@[simp]
theorem symm_trans_self (e : P₁ ≃ᵃ[k] P₂) : e.symm.trans e = refl k P₂ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂)
Goal: e.symm.trans e = AffineEquiv.refl k P₂
-- AffineEquiv.apply_lineMap
@[simp]
theorem apply_lineMap (e : P₁ ≃ᵃ[k] P₂) (a b : P₁) (c : k) :
    e (AffineMap.lineMap a b c) = AffineMap.lineMap (e a) (e b) c 
Arguments: {k : Type u_1} {P₁ : Type u_2} {P₂ : Type u_3} {V₁ : Type u_6} {V₂ : Type u_7} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] [AddCommGroup V₂] [Module k V₂] [AffineSpace V₂ P₂] (e : P₁ ≃ᵃ[k] P₂) (a b : P₁) (c : k)
Goal: e ((AffineMap.lineMap a b) c) = (AffineMap.lineMap (e a) (e b)) c
-- AffineEquiv.one_def
theorem one_def : (1 : P₁ ≃ᵃ[k] P₁) = refl k P₁ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁]
Goal: 1 = AffineEquiv.refl k P₁
-- AffineEquiv.coe_one
@[simp]
theorem coe_one : ⇑(1 : P₁ ≃ᵃ[k] P₁) = id 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁]
Goal: ⇑1 = id
-- AffineEquiv.mul_def
theorem mul_def (e e' : P₁ ≃ᵃ[k] P₁) : e * e' = e'.trans e 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (e e' : P₁ ≃ᵃ[k] P₁)
Goal: e * e' = e'.trans e
-- AffineEquiv.coe_mul
@[simp]
theorem coe_mul (e e' : P₁ ≃ᵃ[k] P₁) : ⇑(e * e') = e ∘ e' 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (e e' : P₁ ≃ᵃ[k] P₁)
Goal: ⇑(e * e') = ⇑e ∘ ⇑e'
-- AffineEquiv.inv_def
theorem inv_def (e : P₁ ≃ᵃ[k] P₁) : e⁻¹ = e.symm 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (e : P₁ ≃ᵃ[k] P₁)
Goal: e⁻¹ = e.symm
-- AffineEquiv.linearHom_apply
@[simps]
def linearHom : (P₁ ≃ᵃ[k] P₁) →* V₁ ≃ₗ[k] V₁ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (self : P₁ ≃ᵃ[k] P₁)
Goal: AffineEquiv.linearHom self = self.linear
-- AffineEquiv.linear_equivUnitsAffineMap_symm_apply
@[simps]
def equivUnitsAffineMap : (P₁ ≃ᵃ[k] P₁) ≃* (P₁ →ᵃ[k] P₁)ˣ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (u : (P₁ →ᵃ[k] P₁)ˣ)
Goal: (AffineEquiv.equivUnitsAffineMap.symm u).linear =
  (LinearMap.GeneralLinearGroup.generalLinearEquiv k V₁) ((Units.map AffineMap.linearHom) u)
-- AffineEquiv.equivUnitsAffineMap_symm_apply_toFun
@[simps]
def equivUnitsAffineMap : (P₁ ≃ᵃ[k] P₁) ≃* (P₁ →ᵃ[k] P₁)ˣ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (u : (P₁ →ᵃ[k] P₁)ˣ) (a : P₁)
Goal: (AffineEquiv.equivUnitsAffineMap.symm u) a = ↑u a
-- AffineEquiv.val_equivUnitsAffineMap_apply
@[simps]
def equivUnitsAffineMap : (P₁ ≃ᵃ[k] P₁) ≃* (P₁ →ᵃ[k] P₁)ˣ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (e : P₁ ≃ᵃ[k] P₁)
Goal: ↑(AffineEquiv.equivUnitsAffineMap e) = ↑e
-- AffineEquiv.val_inv_equivUnitsAffineMap_apply
@[simps]
def equivUnitsAffineMap : (P₁ ≃ᵃ[k] P₁) ≃* (P₁ →ᵃ[k] P₁)ˣ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (e : P₁ ≃ᵃ[k] P₁)
Goal: ↑(AffineEquiv.equivUnitsAffineMap e)⁻¹ = ↑e.symm
-- AffineEquiv.equivUnitsAffineMap_symm_apply_invFun
@[simps]
def equivUnitsAffineMap : (P₁ ≃ᵃ[k] P₁) ≃* (P₁ →ᵃ[k] P₁)ˣ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (u : (P₁ →ᵃ[k] P₁)ˣ) (a : P₁)
Goal: (AffineEquiv.equivUnitsAffineMap.symm u).invFun a = ↑u⁻¹ a
-- AffineEquiv.equivUnitsAffineMap_symm_apply_symm_apply
@[simps]
def equivUnitsAffineMap : (P₁ ≃ᵃ[k] P₁) ≃* (P₁ →ᵃ[k] P₁)ˣ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (u : (P₁ →ᵃ[k] P₁)ˣ) (a : P₁)
Goal: (AffineEquiv.equivUnitsAffineMap.symm u).symm a = ↑u⁻¹ a
-- AffineEquiv.equivUnitsAffineMap_symm_apply_apply
@[simps]
def equivUnitsAffineMap : (P₁ ≃ᵃ[k] P₁) ≃* (P₁ →ᵃ[k] P₁)ˣ 
Arguments: {k : Type u_1} {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (u : (P₁ →ᵃ[k] P₁)ˣ) (a : P₁)
Goal: (AffineEquiv.equivUnitsAffineMap.symm u) a = ↑u a
-- AffineEquiv.linear_vaddConst
@[simps! linear apply symm_apply]
def vaddConst (b : P₁) : V₁ ≃ᵃ[k] P₁ 
Arguments: (k : Type u_1) {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (b : P₁)
Goal: (AffineEquiv.vaddConst k b).linear = LinearEquiv.refl k V₁
-- AffineEquiv.vaddConst_symm_apply
@[simps! linear apply symm_apply]
def vaddConst (b : P₁) : V₁ ≃ᵃ[k] P₁ 
Arguments: (k : Type u_1) {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (b p' : P₁)
Goal: (AffineEquiv.vaddConst k b).symm p' = p' -ᵥ b
-- AffineEquiv.vaddConst_apply
@[simps! linear apply symm_apply]
def vaddConst (b : P₁) : V₁ ≃ᵃ[k] P₁ 
Arguments: (k : Type u_1) {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (b : P₁) (v : V₁)
Goal: (AffineEquiv.vaddConst k b) v = v +ᵥ b
-- AffineEquiv.coe_constVSub
@[simp]
theorem coe_constVSub (p : P₁) : ⇑(constVSub k p) = (p -ᵥ ·) 
Arguments: (k : Type u_1) {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (p : P₁)
Goal: ⇑(AffineEquiv.constVSub k p) = fun x => p -ᵥ x
-- AffineEquiv.coe_constVSub_symm
@[simp]
theorem coe_constVSub_symm (p : P₁) : ⇑(constVSub k p).symm = fun v : V₁ => -v +ᵥ p 
Arguments: (k : Type u_1) {P₁ : Type u_2} {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (p : P₁)
Goal: ⇑(AffineEquiv.constVSub k p).symm = fun v => -v +ᵥ p
-- AffineEquiv.linear_constVAdd
@[simps! apply linear]
def constVAdd (v : V₁) : P₁ ≃ᵃ[k] P₁ 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (v : V₁)
Goal: (AffineEquiv.constVAdd k P₁ v).linear = LinearEquiv.refl k V₁
-- AffineEquiv.constVAdd_apply
@[simps! apply linear]
def constVAdd (v : V₁) : P₁ ≃ᵃ[k] P₁ 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (v : V₁)
Goal: ∀ (x : P₁), (AffineEquiv.constVAdd k P₁ v) x = v +ᵥ x
-- AffineEquiv.constVAdd_zero
@[simp]
theorem constVAdd_zero : constVAdd k P₁ 0 = AffineEquiv.refl _ _ 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁]
Goal: AffineEquiv.constVAdd k P₁ 0 = AffineEquiv.refl k P₁
-- AffineEquiv.constVAdd_add
@[simp]
theorem constVAdd_add (v w : V₁) :
    constVAdd k P₁ (v + w) = (constVAdd k P₁ w).trans (constVAdd k P₁ v) 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (v w : V₁)
Goal: AffineEquiv.constVAdd k P₁ (v + w) = (AffineEquiv.constVAdd k P₁ w).trans (AffineEquiv.constVAdd k P₁ v)
-- AffineEquiv.constVAdd_symm
@[simp]
theorem constVAdd_symm (v : V₁) : (constVAdd k P₁ v).symm = constVAdd k P₁ (-v) 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (v : V₁)
Goal: (AffineEquiv.constVAdd k P₁ v).symm = AffineEquiv.constVAdd k P₁ (-v)
-- AffineEquiv.constVAddHom_apply
@[simps]
def constVAddHom : Multiplicative V₁ →* P₁ ≃ᵃ[k] P₁ 
Arguments: (k : Type u_1) (P₁ : Type u_2) {V₁ : Type u_6} [Ring k] [AddCommGroup V₁] [Module k V₁] [AffineSpace V₁ P₁] (v : Multiplicative V₁)
Goal: (AffineEquiv.constVAddHom k P₁) v = AffineEquiv.constVAdd k P₁ (Multiplicative.toAdd v)