Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit d36f17f

Browse files
committed
feat(linear_algebra/sesquilinear_form): Add is_refl for sesq_form.is_alt (#10341)
Lemma `is_refl` shows that an alternating sesquilinear form is reflexive. Refactored `sesquilinear_form` in a similar way as `bilinear_form` will be in #10338.
1 parent 7f4b91b commit d36f17f

File tree

1 file changed

+27
-33
lines changed

1 file changed

+27
-33
lines changed

src/linear_algebra/sesquilinear_form.lean

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -262,60 +262,44 @@ end
262262

263263
end is_domain
264264

265-
end sesq_form
266-
267-
namespace refl_sesq_form
268-
269-
open refl_sesq_form sesq_form
270-
271265
variables {R : Type*} {M : Type*} [ring R] [add_comm_group M] [module R M]
272266
variables {I : R ≃+* Rᵒᵖ} {S : sesq_form R M I}
273267

274268
/-- The proposition that a sesquilinear form is reflexive -/
275269
def is_refl (S : sesq_form R M I) : Prop := ∀ (x y : M), S x y = 0 → S y x = 0
276270

277-
variable (H : is_refl S)
278-
279-
lemma eq_zero : ∀ {x y : M}, S x y = 0 → S y x = 0 := λ x y, H x y
280-
281-
lemma ortho_sym {x y : M} :
282-
is_ortho S x y ↔ is_ortho S y x := ⟨eq_zero H, eq_zero H⟩
271+
namespace is_refl
283272

284-
end refl_sesq_form
273+
variable (H : S.is_refl)
285274

286-
namespace sym_sesq_form
275+
lemma eq_zero : ∀ {x y : M}, S x y = 0 → S y x = 0 := λ x y, H x y
287276

288-
open sym_sesq_form sesq_form
277+
lemma ortho_comm {x y : M} : is_ortho S x y ↔ is_ortho S y x := ⟨eq_zero H, eq_zero H⟩
289278

290-
variables {R : Type*} {M : Type*} [ring R] [add_comm_group M] [module R M]
291-
variables {I : R ≃+* Rᵒᵖ} {S : sesq_form R M I}
279+
end is_refl
292280

293281
/-- The proposition that a sesquilinear form is symmetric -/
294-
def is_sym (S : sesq_form R M I) : Prop := ∀ (x y : M), (I (S x y)).unop = S y x
295-
296-
variable (H : is_sym S)
297-
include H
282+
def is_symm (S : sesq_form R M I) : Prop := ∀ (x y : M), (I (S x y)).unop = S y x
298283

299-
lemma sym (x y : M) : (I (S x y)).unop = S y x := H x y
284+
namespace is_symm
300285

301-
lemma is_refl : refl_sesq_form.is_refl S := λ x y H1, by { rw [←H], simp [H1], }
302-
303-
lemma ortho_sym {x y : M} :
304-
is_ortho S x y ↔ is_ortho S y x := refl_sesq_form.ortho_sym (is_refl H)
286+
variable (H : S.is_symm)
287+
include H
305288

306-
end sym_sesq_form
289+
protected lemma eq (x y : M) : (I (S x y)).unop = S y x := H x y
307290

308-
namespace alt_sesq_form
291+
lemma is_refl : S.is_refl := λ x y H1, by { rw [←H], simp [H1], }
309292

310-
open alt_sesq_form sesq_form
293+
lemma ortho_comm {x y : M} : is_ortho S x y ↔ is_ortho S y x := H.is_refl.ortho_comm
311294

312-
variables {R : Type*} {M : Type*} [ring R] [add_comm_group M] [module R M]
313-
variables {I : R ≃+* Rᵒᵖ} {S : sesq_form R M I}
295+
end is_symm
314296

315297
/-- The proposition that a sesquilinear form is alternating -/
316298
def is_alt (S : sesq_form R M I) : Prop := ∀ (x : M), S x x = 0
317299

318-
variable (H : is_alt S)
300+
namespace is_alt
301+
302+
variable (H : S.is_alt)
319303
include H
320304

321305
lemma self_eq_zero (x : M) : S x x = 0 := H x
@@ -331,4 +315,14 @@ begin
331315
exact H1,
332316
end
333317

334-
end alt_sesq_form
318+
lemma is_refl : S.is_refl :=
319+
begin
320+
intros x y h,
321+
rw [← neg H, h, neg_zero],
322+
end
323+
324+
lemma ortho_comm {x y : M} : is_ortho S x y ↔ is_ortho S y x := H.is_refl.ortho_comm
325+
326+
end is_alt
327+
328+
end sesq_form

0 commit comments

Comments
 (0)