Theorem: Zlattice.covolume_eq_det
File: Mathlib/Algebra/Module/Zlattice/Covolume.lean

Proof steps:
state_before: E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
inst✝⁸ : MeasurableSpace E
inst✝⁷ : BorelSpace E
L✝ : AddSubgroup E
inst✝⁶ : DiscreteTopology ↥L✝
inst✝⁵ : IsZlattice ℝ L✝
μ : autoParam (Measure E) _auto✝
inst✝⁴ : Measure.IsAddHaarMeasure μ
ι : Type u_2
inst✝³ : Fintype ι
inst✝² : DecidableEq ι
L : AddSubgroup (ι → ℝ)
inst✝¹ : DiscreteTopology ↥L
inst✝ : IsZlattice ℝ L
b : Basis ι ℤ ↥L
⊢ covolume L volume = |(Matrix.of (Subtype.val ∘ ⇑b)).det|
state_after: E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
inst✝⁸ : MeasurableSpace E
inst✝⁷ : BorelSpace E
L✝ : AddSubgroup E
inst✝⁶ : DiscreteTopology ↥L✝
inst✝⁵ : IsZlattice ℝ L✝
μ : autoParam (Measure E) _auto✝
inst✝⁴ : Measure.IsAddHaarMeasure μ
ι : Type u_2
inst✝³ : Fintype ι
inst✝² : DecidableEq ι
L : AddSubgroup (ι → ℝ)
inst✝¹ : DiscreteTopology ↥L
inst✝ : IsZlattice ℝ L
b : Basis ι ℤ ↥L
⊢ |(Matrix.of ⇑(Basis.ofZlatticeBasis ℝ L b)).det| = |(Matrix.of (Subtype.val ∘ ⇑b)).det|
tactic: rw [covolume_eq_measure_fundamentalDomain L volume (isAddFundamentalDomain b volume),
    Zspan.volume_fundamentalDomain, ENNReal.toReal_ofReal (by positivity)]
state_before: E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
inst✝⁸ : MeasurableSpace E
inst✝⁷ : BorelSpace E
L✝ : AddSubgroup E
inst✝⁶ : DiscreteTopology ↥L✝
inst✝⁵ : IsZlattice ℝ L✝
μ : autoParam (Measure E) _auto✝
inst✝⁴ : Measure.IsAddHaarMeasure μ
ι : Type u_2
inst✝³ : Fintype ι
inst✝² : DecidableEq ι
L : AddSubgroup (ι → ℝ)
inst✝¹ : DiscreteTopology ↥L
inst✝ : IsZlattice ℝ L
b : Basis ι ℤ ↥L
⊢ |(Matrix.of ⇑(Basis.ofZlatticeBasis ℝ L b)).det| = |(Matrix.of (Subtype.val ∘ ⇑b)).det|
state_after: case e_a.e_M.h.e_6.h
E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
inst✝⁸ : MeasurableSpace E
inst✝⁷ : BorelSpace E
L✝ : AddSubgroup E
inst✝⁶ : DiscreteTopology ↥L✝
inst✝⁵ : IsZlattice ℝ L✝
μ : autoParam (Measure E) _auto✝
inst✝⁴ : Measure.IsAddHaarMeasure μ
ι : Type u_2
inst✝³ : Fintype ι
inst✝² : DecidableEq ι
L : AddSubgroup (ι → ℝ)
inst✝¹ : DiscreteTopology ↥L
inst✝ : IsZlattice ℝ L
b : Basis ι ℤ ↥L
⊢ ⇑(Basis.ofZlatticeBasis ℝ L b) = Subtype.val ∘ ⇑b
tactic: congr
state_before: case e_a.e_M.h.e_6.h
E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
inst✝⁸ : MeasurableSpace E
inst✝⁷ : BorelSpace E
L✝ : AddSubgroup E
inst✝⁶ : DiscreteTopology ↥L✝
inst✝⁵ : IsZlattice ℝ L✝
μ : autoParam (Measure E) _auto✝
inst✝⁴ : Measure.IsAddHaarMeasure μ
ι : Type u_2
inst✝³ : Fintype ι
inst✝² : DecidableEq ι
L : AddSubgroup (ι → ℝ)
inst✝¹ : DiscreteTopology ↥L
inst✝ : IsZlattice ℝ L
b : Basis ι ℤ ↥L
⊢ ⇑(Basis.ofZlatticeBasis ℝ L b) = Subtype.val ∘ ⇑b
state_after: case e_a.e_M.h.e_6.h.h
E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
inst✝⁸ : MeasurableSpace E
inst✝⁷ : BorelSpace E
L✝ : AddSubgroup E
inst✝⁶ : DiscreteTopology ↥L✝
inst✝⁵ : IsZlattice ℝ L✝
μ : autoParam (Measure E) _auto✝
inst✝⁴ : Measure.IsAddHaarMeasure μ
ι : Type u_2
inst✝³ : Fintype ι
inst✝² : DecidableEq ι
L : AddSubgroup (ι → ℝ)
inst✝¹ : DiscreteTopology ↥L
inst✝ : IsZlattice ℝ L
b : Basis ι ℤ ↥L
x✝ : ι
⊢ (Basis.ofZlatticeBasis ℝ L b) x✝ = (Subtype.val ∘ ⇑b) x✝
tactic: ext1
state_before: case e_a.e_M.h.e_6.h.h
E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : FiniteDimensional ℝ E
inst✝⁸ : MeasurableSpace E
inst✝⁷ : BorelSpace E
L✝ : AddSubgroup E
inst✝⁶ : DiscreteTopology ↥L✝
inst✝⁵ : IsZlattice ℝ L✝
μ : autoParam (Measure E) _auto✝
inst✝⁴ : Measure.IsAddHaarMeasure μ
ι : Type u_2
inst✝³ : Fintype ι
inst✝² : DecidableEq ι
L : AddSubgroup (ι → ℝ)
inst✝¹ : DiscreteTopology ↥L
inst✝ : IsZlattice ℝ L
b : Basis ι ℤ ↥L
x✝ : ι
⊢ (Basis.ofZlatticeBasis ℝ L b) x✝ = (Subtype.val ∘ ⇑b) x✝
state_after: no goals
tactic: exact b.ofZlatticeBasis_apply ℝ L _