The SI unit system. In order to permit fractional dimensions, we allow dimensions to be rational; but then to maintain defeq of various explicit dimensions, we need to unseal the arithmetic operations on the rationals.
- units_length : ℚ
- units_mass : ℚ
- units_time : ℚ
- units_current : ℚ
- units_temperature : ℚ
- units_amount : ℚ
- units_intensity : ℚ
Instances For
theorem
SI_dimensions.ext
{x y : SI_dimensions}
(units_length : x.units_length = y.units_length)
(units_mass : x.units_mass = y.units_mass)
(units_time : x.units_time = y.units_time)
(units_current : x.units_current = y.units_current)
(units_temperature : x.units_temperature = y.units_temperature)
(units_amount : x.units_amount = y.units_amount)
(units_intensity : x.units_intensity = y.units_intensity)
:
theorem
SI_dimensions.ext_iff
{x y : SI_dimensions}
:
x = y ↔ x.units_length = y.units_length ∧ x.units_mass = y.units_mass ∧ x.units_time = y.units_time ∧ x.units_current = y.units_current ∧ x.units_temperature = y.units_temperature ∧ x.units_amount = y.units_amount ∧ x.units_intensity = y.units_intensity
The addition structure here is simple enough that one gets a lot of definitional equalities, e.g., between d₁+d₂ and d₂+d₁ for explicit choices of d₁ and d₂,
which is convenient as it means we do not need to utilize the cast operator much.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- SI_dimensions.instAddCommGroup = { toAddGroup := SI_dimensions.instAddGroup, add_comm := SI_dimensions.instAddCommGroup._proof_1 }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
@[reducible, inline]
Equations
- SI = { Dimensions := SI_dimensions, addCommGroup := SI_dimensions.instAddCommGroup }
Instances For
Equations
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
- SI.length_unit = { units_length := 1, units_mass := 0, units_time := 0, units_current := 0, units_temperature := 0, units_amount := 0, units_intensity := 0 }
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
- SI.mass_unit = { units_length := 0, units_mass := 1, units_time := 0, units_current := 0, units_temperature := 0, units_amount := 0, units_intensity := 0 }
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
- SI.time_unit = { units_length := 0, units_mass := 0, units_time := 1, units_current := 0, units_temperature := 0, units_amount := 0, units_intensity := 0 }
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
- SI.current_unit = { units_length := 0, units_mass := 0, units_time := 0, units_current := 1, units_temperature := 0, units_amount := 0, units_intensity := 0 }
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
- SI.temperature_unit = { units_length := 0, units_mass := 0, units_time := 0, units_current := 0, units_temperature := 1, units_amount := 0, units_intensity := 0 }
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
- SI.amount_unit = { units_length := 0, units_mass := 0, units_time := 0, units_current := 0, units_temperature := 0, units_amount := 1, units_intensity := 0 }
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
- SI.intensity_unit = { units_length := 0, units_mass := 0, units_time := 0, units_current := 0, units_temperature := 0, units_amount := 0, units_intensity := 1 }
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
- SI.c = 299792458 • UnitsSystem.StandardUnit SI.speed_unit
Instances For
@[reducible, inline]
Equations
- SI.h = (6.62607015 * 10 ^ (-34)) • UnitsSystem.StandardUnit (SI.energy_unit + SI.time_unit)
Instances For
@[reducible, inline]
Equations
- SI.e = (1.602176634 * 10 ^ (-19)) • UnitsSystem.StandardUnit SI.charge_unit
Instances For
@[reducible, inline]
Equations
- SI.ε₀ = (8.854187817 * 10 ^ (-12)) • UnitsSystem.StandardUnit SI.capacitance_unit
Instances For
@[reducible, inline]
Equations
- SI.μ₀ = (4 * Real.pi * 10 ^ (-7)) • UnitsSystem.StandardUnit SI.inductance_unit
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
- SI.k = (1.380649 * 10 ^ (-23)) • UnitsSystem.StandardUnit (SI.energy_unit + SI.temperature_unit)
Instances For
@[reducible, inline]
Equations
- SI.N_A = (6.02214076 * 10 ^ 23) • UnitsSystem.StandardUnit SI.amount_unit