Theorem: affineSpan_coe_preimage_eq_top
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: rw [eq_top_iff]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
⊢ affineSpan k (Subtype.val ⁻¹' A) = ⊤
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
⊢ ⊤ ≤ affineSpan k (Subtype.val ⁻¹' A)

tactic: rintro ⟨x, hx⟩ -
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
⊢ ⊤ ≤ affineSpan k (Subtype.val ⁻¹' A)
state_after: case mk
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
x : P
hx : x ∈ ↑(affineSpan k A)
⊢ ⟨x, hx⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A))

tactic: refine affineSpan_induction' (fun y hy ↦ ?_) (fun c u hu v hv w hw ↦ ?_) hx
state_before: case mk
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
x : P
hx : x ∈ ↑(affineSpan k A)
⊢ ⟨x, hx⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A))
state_after: case mk.refine_1
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
x : P
hx : x ∈ ↑(affineSpan k A)
y : P
hy : y ∈ A
⊢ ⟨y, ⋯⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A))

case mk.refine_2
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
x : P
hx : x ∈ ↑(affineSpan k A)
c : k
u : P
hu : u ∈ affineSpan k A
v : P
hv : v ∈ affineSpan k A
w : P
hw : w ∈ affineSpan k A
⊢ ⟨u, hu⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A)) →
    ⟨v, hv⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A)) →
      ⟨w, hw⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A)) → ⟨c • (u -ᵥ v) +ᵥ w, ⋯⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A))

tactic: exact subset_affineSpan _ _ hy
state_before: case mk.refine_1
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
x : P
hx : x ∈ ↑(affineSpan k A)
y : P
hy : y ∈ A
⊢ ⟨y, ⋯⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A))
state_after: no goals

tactic: exact AffineSubspace.smul_vsub_vadd_mem _ _
state_before: case mk.refine_2
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
A : Set P
inst✝ : Nonempty ↑A
x : P
hx : x ∈ ↑(affineSpan k A)
c : k
u : P
hu : u ∈ affineSpan k A
v : P
hv : v ∈ affineSpan k A
w : P
hw : w ∈ affineSpan k A
⊢ ⟨u, hu⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A)) →
    ⟨v, hv⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A)) →
      ⟨w, hw⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A)) → ⟨c • (u -ᵥ v) +ᵥ w, ⋯⟩ ∈ ↑(affineSpan k (Subtype.val ⁻¹' A))
state_after: no goals