Built with Alectryon. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl. Hover-Settings: Show types: Show goals:
polar_self: ∀ {R : Type u_3} {M : Type u_4} {N : Type u_5} [inst : CommRing R] [inst_1 : AddCommGroup M] [inst_2 : AddCommGroup N]
[inst_3 : Module R M] [inst_4 : Module R N] (Q : QuadraticMap R M N) (x : M), polar (⇑Q) x x = 2 • Q x
polar_selfuniverse uκuRuMuι
variable {
κ: Type uκ
κ :
Type uκ: Type (uκ + 1)
Typeuκ}
variable {
R: Type uR
R :
Type uR: Type (uR + 1)
TypeuR}[
CommRing: Type uR → Type uR
CommRing
R: Type uR
R][
Invertible: {α : Type uR} → [inst : Mul α] → [inst : One α] → α → Type uR
Invertible (
2: R
2 :
R: Type uR
R)][
Nontrivial: Type uR → Prop
Nontrivial
R: Type uR
R]
variable {
M: Type uM
M :
Type uM: Type (uM + 1)
TypeuM}[
AddCommGroup: Type uM → Type uM
AddCommGroup
M: Type uM
M][
Module: (R : Type uR) → (M : Type uM) → [inst : Semiring R] → [inst : AddCommMonoid M] → Type (max uR uM)
Module
R: Type uR
R
M: Type uM
M]
-- variable {B : BilinForm R M}variable (
Q: QuadraticForm R M
Q :
QuadraticForm: (R : Type uR) →
(M : Type uM) → [inst : CommSemiring R] → [inst_1 : AddCommMonoid M] → [inst : Module R M] → Type (max uR uM)
QuadraticForm
R: Type uR
R
M: Type uM
M){
Cl: CliffordAlgebra Q
Cl :
CliffordAlgebra: {R : Type uR} →
[inst : CommRing R] →
{M : Type uM} → [inst_1 : AddCommGroup M] → [inst_2 : Module R M] → QuadraticForm R M → Type (max uM uR)
CliffordAlgebra
Q: QuadraticForm R M
Q}{
Ex: ExteriorAlgebra R M
Ex :
ExteriorAlgebra: (R : Type uR) → [inst : CommRing R] → (M : Type uM) → [inst_1 : AddCommGroup M] → [inst : Module R M] → Type (max uM uR)
ExteriorAlgebra
R: Type uR
R
M: Type uM
M}
variable [
Module.Finite: (R : Type uR) → (M : Type uM) → [inst : Semiring R] → [inst_1 : AddCommMonoid M] → [inst : Module R M] → Prop
Module.Finite
R: Type uR
R
M: Type uM
M][
Module.Free: (R : Type uR) → (M : Type uM) → [inst : Semiring R] → [inst_1 : AddCommMonoid M] → [inst : Module R M] → Prop
Module.Free
R: Type uR
R
M: Type uM
M]
variable {
ι: Type uι
ι :
Type uι: Type (uι + 1)
Typeuι}
variable [
DecidableEq: Type uι → Type (max 0 uι)
DecidableEq
ι: Type uι
ι][
AddMonoid: Type uι → Type uι
AddMonoid
ι: Type uι
ι]
variable (
𝒜: ι → Submodule R (ExteriorAlgebra R M)
𝒜 :
ι: Type uι
ι→
Submodule: (R : Type uR) →
(M : Type (max uM uR)) → [inst : Semiring R] → [inst_1 : AddCommMonoid M] → [inst : Module R M] → Type (max uM uR)
Submodule
R: Type uR
R (
ExteriorAlgebra: (R : Type uR) → [inst : CommRing R] → (M : Type uM) → [inst_1 : AddCommGroup M] → [inst : Module R M] → Type (max uM uR)
ExteriorAlgebra
R: Type uR
R
M: Type uM
M))
noncomputabledef
QuadraticForm.B: {R : Type uR} →
[inst : CommRing R] →
{M : Type uM} → [inst_1 : AddCommGroup M] → [inst_2 : Module R M] → QuadraticForm R M → LinearMap.BilinMap R M R
QuadraticForm.B :=
Classical.choose: {α : Type (max uM uR)} → {p : α → Prop} → (∃ x, p x) → α
Classical.choose
Q: QuadraticForm R M
Q.
exists_companion: ∀ {R : Type uR} {M : Type uM} {N : Type uR} [inst : CommSemiring R] [inst_1 : AddCommMonoid M] [inst_2 : Module R M]
[inst_3 : AddCommMonoid N] [inst_4 : Module R N] (Q : QuadraticMap R M N),
∃ B, ∀ (x y : M), Q (x + y) = Q x + Q y + (B x) y
Module.finrank_directSum: ∀ (R : Type u) [inst : Ring R] [inst_1 : StrongRankCondition R] {ι : Type v} [inst_2 : Fintype ι] (M : ι → Type w)
[inst_3 : (i : ι) → AddCommGroup (M i)] [inst_4 : (i : ι) → Module R (M i)] [inst_5 : ∀ (i : ι), Module.Free R (M i)]
[inst_6 : ∀ (i : ι), Module.Finite R (M i)],
Module.finrank R (DirectSum ι fun i => M i) = ∑ i : ι, Module.finrank R (M i)
rank_directSum: ∀ (R : Type u) [inst : Ring R] [inst_1 : StrongRankCondition R] {ι : Type v} (M : ι → Type w)
[inst_2 : (i : ι) → AddCommGroup (M i)] [inst_3 : (i : ι) → Module R (M i)] [inst_4 : ∀ (i : ι), Module.Free R (M i)],
Module.rank R (DirectSum ι fun i => M i) = Cardinal.sum fun i => Module.rank R (M i)
Module.Free.directSum: ∀ (R : Type u) [inst : Semiring R] {ι : Type u_2} (M : ι → Type u_3) [inst_1 : (i : ι) → AddCommMonoid (M i)]
[inst_2 : (i : ι) → Module R (M i)] [inst_3 : ∀ (i : ι), Module.Free R (M i)],
Module.Free R (DirectSum ι fun i => M i)
Module.rank: (R : Type u_1) →
(M : Type u_2) → [inst : Semiring R] → [inst_1 : AddCommMonoid M] → [inst : Module R M] → Cardinal.{u_2}
Module.rank
Q.B:LinearMap.BilinMapRMR
Q: QuadraticForm R M
Q.
B: {R : Type uR} →
[inst : CommRing R] →
{M : Type uM} → [inst_1 : AddCommGroup M] → [inst_2 : Module R M] → QuadraticForm R M → LinearMap.BilinMap R M R
TensorAlgebra.rank_eq: ∀ {R : Type uR} {M : Type uM} [inst : CommRing R] [inst_1 : AddCommGroup M] [inst_2 : Module R M]
[inst_3 : Nontrivial R] [inst_4 : Module.Free R M],
Module.rank R (TensorAlgebra R M) = Cardinal.lift.{uR, uM} (Cardinal.sum fun n => Module.rank R M ^ n)
TensorAlgebra.equivFreeAlgebra: {κ : Type uκ} →
{R : Type uR} →
{M : Type uM} →
[inst : CommSemiring R] →
[inst_1 : AddCommMonoid M] → [inst_2 : Module R M] → Basis κ R M → TensorAlgebra R M ≃ₐ[R] FreeAlgebra R κ
TensorAlgebra.toExterior: {R : Type u1} →
[inst : CommRing R] →
{M : Type u2} → [inst_1 : AddCommGroup M] → [inst_2 : Module R M] → TensorAlgebra R M →ₐ[R] ExteriorAlgebra R M
ExteriorAlgebra.gradedAlgebra: (R : Type u_1) →
(M : Type u_2) →
[inst : CommRing R] → [inst_1 : AddCommGroup M] → [inst_2 : Module R M] → GradedAlgebra fun i => ⋀[R]^i M
ExteriorAlgebra.gradedAlgebra
gradedAlgebraRM:GradedAlgebrafuni=>⋀[R]^iM
ExteriorAlgebra.gradedAlgebra: (R : Type uR) →
(M : Type uM) →
[inst : CommRing R] → [inst_1 : AddCommGroup M] → [inst_2 : Module R M] → GradedAlgebra fun i => ⋀[R]^i M
ExteriorAlgebra.gradedAlgebra
R: Type uR
R
M: Type uM
M-- example : Module.Free R (ExteriorAlgebra R M) := by-- done-- example : (∀ i, M [Λ^Fin i]→ₗ[R] M) = (∀ i, AlternatingMap R M M i) := by-- done
example: ∀ {R : Type uR} [inst : CommRing R] [inst_1 : Nontrivial R] {M : Type uM} [inst_2 : AddCommGroup M]
[inst_3 : Module R M] [inst_4 : Module.Finite R M], Module.rank R M = ↑(Module.finrank R M)
example :
Module.rank: (R : Type uR) → (M : Type uM) → [inst : Semiring R] → [inst_1 : AddCommMonoid M] → [inst : Module R M] → Cardinal.{uM}
Module.rank
R: Type uR
R
M: Type uM
M=
Module.finrank: (R : Type uR) → (M : Type uM) → [inst : Semiring R] → [inst_1 : AddCommGroup M] → [inst : Module R M] → ℕ
Module.finrank
R: Type uR
R
M: Type uM
M :=
Goalsaccomplished!🐙
Goalsaccomplished!🐙
-- example : finrank R (TensorAlgebra R M) = 2^(finrank R M) := by-- done-- example : finrank R (CliffordAlgebra Q) = 2^(finrank R M) := by-- -- let em := CliffordAlgebra.equivExterior Q-- -- let Ex := em Cl-- have h1 : finrank R (CliffordAlgebra Q) = finrank R (ExteriorAlgebra R M) := by-- apply LinearEquiv.finrank_eq-- exact CliffordAlgebra.equivExterior Q-- have h2 : finrank R (ExteriorAlgebra R M) = finrank R (∀ i, M [Λ^Fin i]→ₗ[R] M) := by-- apply LinearEquiv.finrank_eq-- exact ExteriorAlgebra.liftAlternatingEquiv R M-- have h3 : finrank R (ExteriorAlgebra R M) = 2^(finrank R M) := by-- done-- done-- noncomputable def ExteriorAlgebra.equivFreeAlgebra (b : Basis κ R M) :-- ExteriorAlgebra R M ≃ₐ[R] FreeAlgebra R κ := by-- apply AlgEquiv.ofAlgHom-- . apply ExteriorAlgebra.lift-- done-- -- (ExteriorAlgebra.lift _ (Finsupp.total _ _ _ (FreeAlgebra.ι _) ∘ₗ b.repr.toLinearMap))-- -- (FreeAlgebra.lift _ (ι R ∘ b))-- -- (by ext; simp)-- -- (hom_ext <| b.ext <| fun i => by simp)
-- lemma rank_eq' :-- Module.rank R (ExteriorAlgebra R M) = Cardinal.lift.{uR} (Cardinal.sum fun n ↦ Module.rank R M ^ n) := by-- let ⟨⟨κ, b⟩⟩ := Module.Free.exists_basis (R := R) (M := M)-- rw [(ExteriorAlgebra.equivFreeAlgebra b).toLinearEquiv.rank_eq, FreeAlgebra.rank_eq, Cardinal.mk_list_eq_sum_pow,-- Basis.mk_eq_rank'' b]-- doneexample:Module.rankRM=Module.rankRM:=rfl
-- example : Module.rank R (CliffordAlgebra Q) = Module.rank R M := by-- done-- example (x y : M) : Q.B x y + Q.B y x = 2 * Q.B x y := by-- have h1: Q (x + y) = Q x + Q y + Q.B x y := by-- obtain ⟨b, hb⟩ := Q.exists_companion-- done-- have h2 : Q.B x y = Q (x + y) - Q x - Q y := by-- have h : Q.B x y = Q.B y x := by-- done-- done