Theorem: AffineMap.image_uIcc
File: Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean

tactic: have : ⇑f = (fun x => x + f 0) ∘ fun x => x * (f 1 - f 0) := by
  ext x
  change f x = x • (f 1 -ᵥ f 0) +ᵥ f 0
  rw [← f.linearMap_vsub, ← f.linear.map_smul, ← f.map_vadd]
  simp only [vsub_eq_sub, add_zero, mul_one, vadd_eq_add, sub_zero, smul_eq_mul]
state_before: k✝ : Type ?u.614974
V1 : Type ?u.614977
P1 : Type ?u.614980
V2 : Type ?u.614983
P2 : Type ?u.614986
V3 : Type ?u.614989
P3 : Type ?u.614992
V4 : Type ?u.614995
P4 : Type ?u.614998
inst✝¹³ : Ring k✝
inst✝¹² : AddCommGroup V1
inst✝¹¹ : Module k✝ V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : Module k✝ V2
inst✝⁷ : AffineSpace V2 P2
inst✝⁶ : AddCommGroup V3
inst✝⁵ : Module k✝ V3
inst✝⁴ : AffineSpace V3 P3
inst✝³ : AddCommGroup V4
inst✝² : Module k✝ V4
inst✝¹ : AffineSpace V4 P4
k : Type u_1
inst✝ : LinearOrderedField k
f : k →ᵃ[k] k
a b : k
⊢ ↑f '' Set.uIcc a b = Set.uIcc (↑f a) (↑f b)

tactic: rw [this, Set.image_comp]
state_before: k✝ : Type ?u.614974
V1 : Type ?u.614977
P1 : Type ?u.614980
V2 : Type ?u.614983
P2 : Type ?u.614986
V3 : Type ?u.614989
P3 : Type ?u.614992
V4 : Type ?u.614995
P4 : Type ?u.614998
inst✝¹³ : Ring k✝
inst✝¹² : AddCommGroup V1
inst✝¹¹ : Module k✝ V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : Module k✝ V2
inst✝⁷ : AffineSpace V2 P2
inst✝⁶ : AddCommGroup V3
inst✝⁵ : Module k✝ V3
inst✝⁴ : AffineSpace V3 P3
inst✝³ : AddCommGroup V4
inst✝² : Module k✝ V4
inst✝¹ : AffineSpace V4 P4
k : Type u_1
inst✝ : LinearOrderedField k
f : k →ᵃ[k] k
a b : k
this : ↑f = (fun x => x + ↑f 0) ∘ fun x => x * (↑f 1 - ↑f 0)
⊢ ↑f '' Set.uIcc a b = Set.uIcc (↑f a) (↑f b)

tactic: simp only [Set.image_add_const_uIcc, Set.image_mul_const_uIcc, Function.comp_apply]
state_before: k✝ : Type ?u.614974
V1 : Type ?u.614977
P1 : Type ?u.614980
V2 : Type ?u.614983
P2 : Type ?u.614986
V3 : Type ?u.614989
P3 : Type ?u.614992
V4 : Type ?u.614995
P4 : Type ?u.614998
inst✝¹³ : Ring k✝
inst✝¹² : AddCommGroup V1
inst✝¹¹ : Module k✝ V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : Module k✝ V2
inst✝⁷ : AffineSpace V2 P2
inst✝⁶ : AddCommGroup V3
inst✝⁵ : Module k✝ V3
inst✝⁴ : AffineSpace V3 P3
inst✝³ : AddCommGroup V4
inst✝² : Module k✝ V4
inst✝¹ : AffineSpace V4 P4
k : Type u_1
inst✝ : LinearOrderedField k
f : k →ᵃ[k] k
a b : k
this : ↑f = (fun x => x + ↑f 0) ∘ fun x => x * (↑f 1 - ↑f 0)
⊢ (fun x => x + ↑f 0) '' ((fun x => x * (↑f 1 - ↑f 0)) '' Set.uIcc a b) =
    Set.uIcc (((fun x => x + ↑f 0) ∘ fun x => x * (↑f 1 - ↑f 0)) a)
      (((fun x => x + ↑f 0) ∘ fun x => x * (↑f 1 - ↑f 0)) b)

tactic: ext x
state_before: k✝ : Type ?u.614974
V1 : Type ?u.614977
P1 : Type ?u.614980
V2 : Type ?u.614983
P2 : Type ?u.614986
V3 : Type ?u.614989
P3 : Type ?u.614992
V4 : Type ?u.614995
P4 : Type ?u.614998
inst✝¹³ : Ring k✝
inst✝¹² : AddCommGroup V1
inst✝¹¹ : Module k✝ V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : Module k✝ V2
inst✝⁷ : AffineSpace V2 P2
inst✝⁶ : AddCommGroup V3
inst✝⁵ : Module k✝ V3
inst✝⁴ : AffineSpace V3 P3
inst✝³ : AddCommGroup V4
inst✝² : Module k✝ V4
inst✝¹ : AffineSpace V4 P4
k : Type u_1
inst✝ : LinearOrderedField k
f : k →ᵃ[k] k
a b : k
⊢ ↑f = (fun x => x + ↑f 0) ∘ fun x => x * (↑f 1 - ↑f 0)

tactic: change f x = x • (f 1 -ᵥ f 0) +ᵥ f 0
state_before: case h
k✝ : Type ?u.614974
V1 : Type ?u.614977
P1 : Type ?u.614980
V2 : Type ?u.614983
P2 : Type ?u.614986
V3 : Type ?u.614989
P3 : Type ?u.614992
V4 : Type ?u.614995
P4 : Type ?u.614998
inst✝¹³ : Ring k✝
inst✝¹² : AddCommGroup V1
inst✝¹¹ : Module k✝ V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : Module k✝ V2
inst✝⁷ : AffineSpace V2 P2
inst✝⁶ : AddCommGroup V3
inst✝⁵ : Module k✝ V3
inst✝⁴ : AffineSpace V3 P3
inst✝³ : AddCommGroup V4
inst✝² : Module k✝ V4
inst✝¹ : AffineSpace V4 P4
k : Type u_1
inst✝ : LinearOrderedField k
f : k →ᵃ[k] k
a b x : k
⊢ ↑f x = ((fun x => x + ↑f 0) ∘ fun x => x * (↑f 1 - ↑f 0)) x

tactic: rw [← f.linearMap_vsub, ← f.linear.map_smul, ← f.map_vadd]
state_before: case h
k✝ : Type ?u.614974
V1 : Type ?u.614977
P1 : Type ?u.614980
V2 : Type ?u.614983
P2 : Type ?u.614986
V3 : Type ?u.614989
P3 : Type ?u.614992
V4 : Type ?u.614995
P4 : Type ?u.614998
inst✝¹³ : Ring k✝
inst✝¹² : AddCommGroup V1
inst✝¹¹ : Module k✝ V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : Module k✝ V2
inst✝⁷ : AffineSpace V2 P2
inst✝⁶ : AddCommGroup V3
inst✝⁵ : Module k✝ V3
inst✝⁴ : AffineSpace V3 P3
inst✝³ : AddCommGroup V4
inst✝² : Module k✝ V4
inst✝¹ : AffineSpace V4 P4
k : Type u_1
inst✝ : LinearOrderedField k
f : k →ᵃ[k] k
a b x : k
⊢ ↑f x = x • (↑f 1 -ᵥ ↑f 0) +ᵥ ↑f 0

tactic: simp only [vsub_eq_sub, add_zero, mul_one, vadd_eq_add, sub_zero, smul_eq_mul]
state_before: case h
k✝ : Type ?u.614974
V1 : Type ?u.614977
P1 : Type ?u.614980
V2 : Type ?u.614983
P2 : Type ?u.614986
V3 : Type ?u.614989
P3 : Type ?u.614992
V4 : Type ?u.614995
P4 : Type ?u.614998
inst✝¹³ : Ring k✝
inst✝¹² : AddCommGroup V1
inst✝¹¹ : Module k✝ V1
inst✝¹⁰ : AffineSpace V1 P1
inst✝⁹ : AddCommGroup V2
inst✝⁸ : Module k✝ V2
inst✝⁷ : AffineSpace V2 P2
inst✝⁶ : AddCommGroup V3
inst✝⁵ : Module k✝ V3
inst✝⁴ : AffineSpace V3 P3
inst✝³ : AddCommGroup V4
inst✝² : Module k✝ V4
inst✝¹ : AffineSpace V4 P4
k : Type u_1
inst✝ : LinearOrderedField k
f : k →ᵃ[k] k
a b x : k
⊢ ↑f x = ↑f (x • (1 -ᵥ 0) +ᵥ 0)