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

Proof steps:
state_before: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι) (x : φv i), f (Pi.single i x) = g (Pi.single i x)
⊢ f = g
state_after: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι) (x : φv i), f (Pi.single i x) = g (Pi.single i x)
⊢ f 0 = g 0
tactic: apply pi_ext_zero h
state_before: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι) (x : φv i), f (Pi.single i x) = g (Pi.single i x)
⊢ f 0 = g 0
state_after: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι) (x : φv i), f (Pi.single i x) = g (Pi.single i x)
inhabited_h : Inhabited ι
⊢ f 0 = g 0
tactic: inhabit ι
state_before: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι) (x : φv i), f (Pi.single i x) = g (Pi.single i x)
inhabited_h : Inhabited ι
⊢ f 0 = g 0
state_after: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι) (x : φv i), f (Pi.single i x) = g (Pi.single i x)
inhabited_h : Inhabited ι
⊢ f (Pi.single default 0) = g (Pi.single default 0)
tactic: rw [← Pi.single_zero default]
state_before: R : Type u_1
k : Type u_2
V1 : Type u_3
P1 : Type u_4
V2 : Type u_5
P2 : Type u_6
V3 : Type u_7
P3 : Type u_8
inst✝¹⁵ : Ring k
inst✝¹⁴ : AddCommGroup V1
inst✝¹³ : AffineSpace V1 P1
inst✝¹² : AddCommGroup V2
inst✝¹¹ : AffineSpace V2 P2
inst✝¹⁰ : AddCommGroup V3
inst✝⁹ : AffineSpace V3 P3
inst✝⁸ : Module k V1
inst✝⁷ : Module k V2
inst✝⁶ : Module k V3
ι : Type u_9
φv : ι → Type u_10
φp : ι → Type u_11
inst✝⁵ : (i : ι) → AddCommGroup (φv i)
inst✝⁴ : (i : ι) → Module k (φv i)
inst✝³ : (i : ι) → AffineSpace (φv i) (φp i)
fp : (i : ι) → P1 →ᵃ[k] φp i
fv : (i : ι) → P1 →ᵃ[k] φv i
f' : ι → P1 →ᵃ[k] P2
inst✝² : Finite ι
inst✝¹ : DecidableEq ι
f g : ((i : ι) → φv i) →ᵃ[k] P2
inst✝ : Nonempty ι
h : ∀ (i : ι) (x : φv i), f (Pi.single i x) = g (Pi.single i x)
inhabited_h : Inhabited ι
⊢ f (Pi.single default 0) = g (Pi.single default 0)
state_after: no goals
tactic: apply h