Theorem: AffineBasis.coe_coord_of_subsingleton_eq_one
File: Mathlib/LinearAlgebra/AffineSpace/Basis.lean

tactic: ext q
state_before: ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
⊢ ↑(coord b i) = 1

tactic: have hp : (range b).Subsingleton := by
  rw [← image_univ]
  apply Subsingleton.image
  apply subsingleton_of_subsingleton
state_before: case h
ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
⊢ ↑(coord b i) q = OfNat.ofNat 1 q

tactic: haveI := AffineSubspace.subsingleton_of_subsingleton_span_eq_top hp b.tot
state_before: case h
ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
⊢ ↑(coord b i) q = OfNat.ofNat 1 q

tactic: let s : Finset ι := {i}
state_before: case h
ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
this : Subsingleton P
⊢ ↑(coord b i) q = OfNat.ofNat 1 q

tactic: have hi : i ∈ s := by simp
state_before: case h
ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s✝ : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
this : Subsingleton P
s : Finset ι := {i}
⊢ ↑(coord b i) q = OfNat.ofNat 1 q

tactic: have hw : s.sum (Function.const ι (1 : k)) = 1 := by simp
state_before: case h
ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s✝ : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
this : Subsingleton P
s : Finset ι := {i}
hi : i ∈ s
⊢ ↑(coord b i) q = OfNat.ofNat 1 q

tactic: have hq : q = s.affineCombination k b (Function.const ι (1 : k)) := by simp
state_before: case h
ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s✝ : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
this : Subsingleton P
s : Finset ι := {i}
hi : i ∈ s
hw : Finset.sum s (Function.const ι 1) = 1
⊢ ↑(coord b i) q = OfNat.ofNat 1 q

tactic: rw [Pi.one_apply, hq, b.coord_apply_combination_of_mem hi hw, Function.const_apply]
state_before: case h
ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s✝ : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
this : Subsingleton P
s : Finset ι := {i}
hi : i ∈ s
hw : Finset.sum s (Function.const ι 1) = 1
hq : q = ↑(Finset.affineCombination k s ↑b) (Function.const ι 1)
⊢ ↑(coord b i) q = OfNat.ofNat 1 q

tactic: rw [← image_univ]
state_before: ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
⊢ Set.Subsingleton (range ↑b)

tactic: apply Subsingleton.image
state_before: ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
⊢ Set.Subsingleton (↑b '' univ)

tactic: apply subsingleton_of_subsingleton
state_before: case hs
ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
⊢ Set.Subsingleton univ

tactic: simp
state_before: ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s✝ : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
this : Subsingleton P
s : Finset ι := {i}
⊢ i ∈ s

tactic: simp
state_before: ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s✝ : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
this : Subsingleton P
s : Finset ι := {i}
hi : i ∈ s
⊢ Finset.sum s (Function.const ι 1) = 1

tactic: simp
state_before: ι : Type u_1
ι' : Type ?u.129150
k : Type u_2
V : Type u_4
P : Type u_3
inst✝⁴ : AddCommGroup V
inst✝³ : AffineSpace V P
inst✝² : Ring k
inst✝¹ : Module k V
b : AffineBasis ι k P
s✝ : Finset ι
i✝ j : ι
e : ι ≃ ι'
inst✝ : Subsingleton ι
i : ι
q : P
hp : Set.Subsingleton (range ↑b)
this : Subsingleton P
s : Finset ι := {i}
hi : i ∈ s
hw : Finset.sum s (Function.const ι 1) = 1
⊢ q = ↑(Finset.affineCombination k s ↑b) (Function.const ι 1)