Imports
/- Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Joseph Tooby-Smith -/ module public import Physlib.Relativity.Tensors.RealTensor.Basic public import Physlib.Relativity.Tensors.MetricTensor

Metrics as real Lorentz tensors

@[expose] public section

Definitions.

The metric ηᵢᵢ as a complex Lorentz tensor.

abbrev coMetric (d : := 3) : ℝT[d, .down, .down] := (realLorentzTensor d).metricTensor .down

The metric ηⁱⁱ as a complex Lorentz tensor.

abbrev contrMetric (d : := 3) : ℝT[d, .up, .up] := (realLorentzTensor d).metricTensor .up

Notation

The metric ηᵢᵢ as a complex Lorentz tensors.

scoped[realLorentzTensor] notation "η'" => @coMetric

The metric ηⁱⁱ as a complex Lorentz tensors.

scoped[realLorentzTensor] notation "η" => @contrMetric

Equivalent forms of the metrics

lemma coMetric_eq_fromConstPair {d : } : η' d = fromConstPair (S := realLorentzTensor d) (c1 := .down) (c2 := .down) (Lorentz.preCoMetric d) := d:coMetric d = fromConstPair (Lorentz.preCoMetric d) All goals completed! 🐙lemma contrMetric_eq_fromConstPair {d : } : η d = fromConstPair (S := realLorentzTensor d) (c1 := .up) (c2 := .up) (Lorentz.preContrMetric d) := d:contrMetric d = fromConstPair (Lorentz.preContrMetric d) All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙

The tensor coMetric is invariant under the action of LorentzGroup d.

@[simp] lemma actionT_coMetric {d : } (g : LorentzGroup d) : g η' d = η' d:= d:g:(LorentzGroup d)g coMetric d = coMetric d erw [d:g:(LorentzGroup d)metricTensor Color.down = coMetric dAll goals completed! 🐙

The tensor contrMetric is invariant under the action of LorentzGroup d.

@[simp] lemma actionT_contrMetric {d} (g : LorentzGroup d) : g η d = η d := d:g:(LorentzGroup d)g contrMetric d = contrMetric d erw [d:g:(LorentzGroup d)metricTensor Color.up = contrMetric dAll goals completed! 🐙
d:b:ComponentIdx ![Color.down, Color.down]minkowskiMatrix (b 0) (b 0) * ((if b 0 = b 1 then 1 else 0) * if b 0 = b 0 then 1 else 0) = minkowskiMatrix (b 0) (b 1)d:b:ComponentIdx ![Color.down, Color.down] b_1 Finset.univ, b_1 b 0 minkowskiMatrix b_1 b_1 * ((if b_1 = b 1 then 1 else 0) * if b_1 = b 0 then 1 else 0) = 0d:b:ComponentIdx ![Color.down, Color.down]b 0 Finset.univ minkowskiMatrix (b 0) (b 0) * ((if b 0 = b 1 then 1 else 0) * if b 0 = b 0 then 1 else 0) = 0 d:b:ComponentIdx ![Color.down, Color.down]minkowskiMatrix (b 0) (b 0) * ((if b 0 = b 1 then 1 else 0) * if b 0 = b 0 then 1 else 0) = minkowskiMatrix (b 0) (b 1)d:b:ComponentIdx ![Color.down, Color.down] b_1 Finset.univ, b_1 b 0 minkowskiMatrix b_1 b_1 * ((if b_1 = b 1 then 1 else 0) * if b_1 = b 0 then 1 else 0) = 0d:b:ComponentIdx ![Color.down, Color.down]b 0 Finset.univ minkowskiMatrix (b 0) (b 0) * ((if b 0 = b 1 then 1 else 0) * if b 0 = b 0 then 1 else 0) = 0 All goals completed! 🐙d:b:ComponentIdx ![Color.up, Color.up]minkowskiMatrix (b 0) (b 0) * ((if b 0 = b 1 then 1 else 0) * if b 0 = b 0 then 1 else 0) = minkowskiMatrix (b 0) (b 1)d:b:ComponentIdx ![Color.up, Color.up] b_1 Finset.univ, b_1 b 0 minkowskiMatrix b_1 b_1 * ((if b_1 = b 1 then 1 else 0) * if b_1 = b 0 then 1 else 0) = 0d:b:ComponentIdx ![Color.up, Color.up]b 0 Finset.univ minkowskiMatrix (b 0) (b 0) * ((if b 0 = b 1 then 1 else 0) * if b 0 = b 0 then 1 else 0) = 0 d:b:ComponentIdx ![Color.up, Color.up]minkowskiMatrix (b 0) (b 0) * ((if b 0 = b 1 then 1 else 0) * if b 0 = b 0 then 1 else 0) = minkowskiMatrix (b 0) (b 1)d:b:ComponentIdx ![Color.up, Color.up] b_1 Finset.univ, b_1 b 0 minkowskiMatrix b_1 b_1 * ((if b_1 = b 1 then 1 else 0) * if b_1 = b 0 then 1 else 0) = 0d:b:ComponentIdx ![Color.up, Color.up]b 0 Finset.univ minkowskiMatrix (b 0) (b 0) * ((if b 0 = b 1 then 1 else 0) * if b 0 = b 0 then 1 else 0) = 0 All goals completed! 🐙