case h
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
x✝ : M →ₗ[A] M
⊢ ↑LinearMap.det x✝ =
    ↑(if H : ∃ s, Nonempty (Basis { x // x ∈ s } A M) then
          detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose H } A M))))
        else 1)
      x✝
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
⊢ ↑LinearMap.det =
    ↑(if H : ∃ s, Nonempty (Basis { x // x ∈ s } A M) then
        detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose H } A M))))
      else 1)
ext
case h
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
x✝ : M →ₗ[A] M
⊢ ↑(if H : ∃ s, Nonempty (Basis { x // x ∈ s } A M) then
          detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose H } A M))))
        else 1)
      x✝ =
    ↑(if H : ∃ s, Nonempty (Basis { x // x ∈ s } A M) then
          detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose H } A M))))
        else 1)
      x✝
case h
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
x✝ : M →ₗ[A] M
⊢ ↑LinearMap.det x✝ =
    ↑(if H : ∃ s, Nonempty (Basis { x // x ∈ s } A M) then
          detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose H } A M))))
        else 1)
      x✝
rw [LinearMap.det_def]
case h.inl
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
x✝ : M →ₗ[A] M
h✝ : ∃ s, Nonempty (Basis { x // x ∈ s } A M)
⊢ ↑(detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose h✝ } A M))))) x✝ =
    ↑(detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose h✝ } A M))))) x✝

case h.inr
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
x✝ : M →ₗ[A] M
h✝ : ¬∃ s, Nonempty (Basis { x // x ∈ s } A M)
⊢ ↑1 x✝ = ↑1 x✝
case h
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
x✝ : M →ₗ[A] M
⊢ ↑(if H : ∃ s, Nonempty (Basis { x // x ∈ s } A M) then
          detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose H } A M))))
        else 1)
      x✝ =
    ↑(if H : ∃ s, Nonempty (Basis { x // x ∈ s } A M) then
          detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose H } A M))))
        else 1)
      x✝
split_ifs
no goals
case h.inr
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
x✝ : M →ₗ[A] M
h✝ : ¬∃ s, Nonempty (Basis { x // x ∈ s } A M)
⊢ ↑1 x✝ = ↑1 x✝
rfl
no goals
case h.inl
R : Type ?u.298780
inst✝¹⁰ : CommRing R
M : Type u_1
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.299371
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type ?u.299913
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_2
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type ?u.300889
inst✝¹ : Fintype κ
inst✝ : DecidableEq M
x✝ : M →ₗ[A] M
h✝ : ∃ s, Nonempty (Basis { x // x ∈ s } A M)
⊢ ↑(detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose h✝ } A M))))) x✝ =
    ↑(detAux (Trunc.mk (Nonempty.some (_ : Nonempty (Basis { x // x ∈ Exists.choose h✝ } A M))))) x✝
congr