pith. machine review for the scientific record. sign in
theorem

hpOperator_isSymm

proved
show as:
view math explainer →
module
IndisputableMonolith.NumberTheory.HilbertPolyaFunctionField
domain
NumberTheory
line
56 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.NumberTheory.HilbertPolyaFunctionField on GitHub at line 56.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  53  !![0, frobeniusAngle q a; frobeniusAngle q a, 0]
  54
  55/-- The operator is symmetric: `T_E^T = T_E`. -/
  56theorem hpOperator_isSymm (q : ℕ) (a : ℤ) :
  57    (hpOperator q a).IsSymm := by
  58  unfold hpOperator Matrix.IsSymm
  59  ext i j
  60  fin_cases i <;> fin_cases j <;> rfl
  61
  62/-! ## Eigenvalues
  63
  64The characteristic polynomial of `[[0, θ], [θ, 0]]` is `λ² - θ²`, with
  65roots `±θ`.  We exhibit eigenvectors directly. -/
  66
  67/-- The vector `(1, 1)` is an eigenvector with eigenvalue `+θ`. -/
  68theorem hpOperator_eigenvector_pos (q : ℕ) (a : ℤ) :
  69    (hpOperator q a).mulVec ![1, 1] = frobeniusAngle q a • ![1, 1] := by
  70  ext i
  71  fin_cases i <;>
  72    simp [hpOperator, Matrix.mulVec, Matrix.cons_val', Matrix.empty_val',
  73          Matrix.cons_val_fin_one, Matrix.cons_val_zero, Matrix.cons_val_one,
  74          Matrix.head_cons, Matrix.head_fin_const,
  75          Matrix.cons_dotProduct, Matrix.dotProduct_empty, Fin.sum_univ_two] <;>
  76    ring
  77
  78/-- The vector `(1, -1)` is an eigenvector with eigenvalue `-θ`. -/
  79theorem hpOperator_eigenvector_neg (q : ℕ) (a : ℤ) :
  80    (hpOperator q a).mulVec ![1, -1] = (-frobeniusAngle q a) • ![1, -1] := by
  81  ext i
  82  fin_cases i <;>
  83    simp [hpOperator, Matrix.mulVec, Matrix.cons_val', Matrix.empty_val',
  84          Matrix.cons_val_fin_one, Matrix.cons_val_zero, Matrix.cons_val_one,
  85          Matrix.head_cons, Matrix.head_fin_const,
  86          Matrix.cons_dotProduct, Matrix.dotProduct_empty, Fin.sum_univ_two] <;>