Exact rational numbers represented as a pair of numerator and denominator.
Instances For
Equations
- ISAR.instReprRational = { reprPrec := ISAR.instReprRational.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ISAR.instReprDimBase = { reprPrec := ISAR.instReprDimBase.repr }
Equations
- ISAR.instReprDimBase.repr ISAR.DimBase.L prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.DimBase.L")).group prec✝
- ISAR.instReprDimBase.repr ISAR.DimBase.T prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.DimBase.T")).group prec✝
- ISAR.instReprDimBase.repr ISAR.DimBase.M prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.DimBase.M")).group prec✝
- ISAR.instReprDimBase.repr ISAR.DimBase.I prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.DimBase.I")).group prec✝
- ISAR.instReprDimBase.repr ISAR.DimBase.Θ prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.DimBase.Θ")).group prec✝
- ISAR.instReprDimBase.repr ISAR.DimBase.N prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.DimBase.N")).group prec✝
- ISAR.instReprDimBase.repr ISAR.DimBase.J prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.DimBase.J")).group prec✝
Instances For
Equations
- One or more equations did not get rendered due to their size.
- ISAR.instDecidableEqDimExpr.decEq ISAR.DimExpr.DimUnit ISAR.DimExpr.DimUnit = isTrue ⋯
- ISAR.instDecidableEqDimExpr.decEq ISAR.DimExpr.DimUnit (ISAR.DimExpr.DimBase a a_1) = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq ISAR.DimExpr.DimUnit (a.DimMul a_1) = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq ISAR.DimExpr.DimUnit a.DimInv = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq (ISAR.DimExpr.DimBase a a_1) ISAR.DimExpr.DimUnit = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq (ISAR.DimExpr.DimBase a a_1) (ISAR.DimExpr.DimBase b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq (ISAR.DimExpr.DimBase a a_1) (a_2.DimMul a_3) = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq (ISAR.DimExpr.DimBase a a_1) a_2.DimInv = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq (a.DimMul a_1) ISAR.DimExpr.DimUnit = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq (a.DimMul a_1) (ISAR.DimExpr.DimBase a_2 a_3) = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq (a.DimMul a_1) a_2.DimInv = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq a.DimInv ISAR.DimExpr.DimUnit = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq a.DimInv (ISAR.DimExpr.DimBase a_1 a_2) = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq a.DimInv (a_1.DimMul a_2) = isFalse ⋯
- ISAR.instDecidableEqDimExpr.decEq a.DimInv b.DimInv = if h : a = b then h ▸ have inst := ISAR.instDecidableEqDimExpr.decEq a a; isTrue ⋯ else isFalse ⋯
Instances For
Equations
- ISAR.instReprDimExpr = { reprPrec := ISAR.instReprDimExpr.repr }
Equations
- One or more equations did not get rendered due to their size.
- ISAR.instReprDimExpr.repr ISAR.DimExpr.DimUnit prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.DimExpr.DimUnit")).group prec✝
Instances For
Symbolic base constants and expressions.
- Pi : SymbolBase
- E : SymbolBase
- Sqrt : Rational → SymbolBase
- Symbolic : String → SymbolBase
Instances For
Equations
- ISAR.instDecidableEqSymbolBase.decEq ISAR.SymbolBase.Pi ISAR.SymbolBase.Pi = isTrue ⋯
- ISAR.instDecidableEqSymbolBase.decEq ISAR.SymbolBase.Pi ISAR.SymbolBase.E = isFalse ISAR.instDecidableEqSymbolBase.decEq._proof_1
- ISAR.instDecidableEqSymbolBase.decEq ISAR.SymbolBase.Pi (ISAR.SymbolBase.Sqrt a) = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq ISAR.SymbolBase.Pi (ISAR.SymbolBase.Symbolic a) = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq ISAR.SymbolBase.E ISAR.SymbolBase.Pi = isFalse ISAR.instDecidableEqSymbolBase.decEq._proof_4
- ISAR.instDecidableEqSymbolBase.decEq ISAR.SymbolBase.E ISAR.SymbolBase.E = isTrue ⋯
- ISAR.instDecidableEqSymbolBase.decEq ISAR.SymbolBase.E (ISAR.SymbolBase.Sqrt a) = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq ISAR.SymbolBase.E (ISAR.SymbolBase.Symbolic a) = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq (ISAR.SymbolBase.Sqrt a) ISAR.SymbolBase.Pi = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq (ISAR.SymbolBase.Sqrt a) ISAR.SymbolBase.E = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq (ISAR.SymbolBase.Sqrt a) (ISAR.SymbolBase.Sqrt b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq (ISAR.SymbolBase.Sqrt a) (ISAR.SymbolBase.Symbolic a_1) = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq (ISAR.SymbolBase.Symbolic a) ISAR.SymbolBase.Pi = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq (ISAR.SymbolBase.Symbolic a) ISAR.SymbolBase.E = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq (ISAR.SymbolBase.Symbolic a) (ISAR.SymbolBase.Sqrt a_1) = isFalse ⋯
- ISAR.instDecidableEqSymbolBase.decEq (ISAR.SymbolBase.Symbolic a) (ISAR.SymbolBase.Symbolic b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
- ISAR.instReprSymbolBase.repr ISAR.SymbolBase.Pi prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.SymbolBase.Pi")).group prec✝
- ISAR.instReprSymbolBase.repr ISAR.SymbolBase.E prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.SymbolBase.E")).group prec✝
Instances For
Equations
- ISAR.instReprSymbolBase = { reprPrec := ISAR.instReprSymbolBase.repr }
Symbolic relational layer allowing exact algebraic manipulations.
- Rational : ISAR.Rational → SymbolExpr
- Add : SymbolExpr → SymbolExpr → SymbolExpr
- Mul : SymbolExpr → SymbolExpr → SymbolExpr
- Pow : SymbolExpr → SymbolExpr → SymbolExpr
- Symbol : SymbolBase → SymbolExpr
Instances For
Equations
- One or more equations did not get rendered due to their size.
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Rational a) (ISAR.SymbolExpr.Rational b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Rational a) (a_1.Add a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Rational a) (a_1.Mul a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Rational a) (a_1.Pow a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Rational a) (ISAR.SymbolExpr.Symbol a_1) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Add a_1) (ISAR.SymbolExpr.Rational a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Add a_1) (a_2.Mul a_3) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Add a_1) (a_2.Pow a_3) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Add a_1) (ISAR.SymbolExpr.Symbol a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Mul a_1) (ISAR.SymbolExpr.Rational a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Mul a_1) (a_2.Add a_3) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Mul a_1) (a_2.Pow a_3) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Mul a_1) (ISAR.SymbolExpr.Symbol a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Pow a_1) (ISAR.SymbolExpr.Rational a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Pow a_1) (a_2.Add a_3) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Pow a_1) (a_2.Mul a_3) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (a.Pow a_1) (ISAR.SymbolExpr.Symbol a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Symbol a) (ISAR.SymbolExpr.Rational a_1) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Symbol a) (a_1.Add a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Symbol a) (a_1.Mul a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Symbol a) (a_1.Pow a_2) = isFalse ⋯
- ISAR.instDecidableEqSymbolExpr.decEq (ISAR.SymbolExpr.Symbol a) (ISAR.SymbolExpr.Symbol b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ISAR.instReprSymbolExpr = { reprPrec := ISAR.instReprSymbolExpr.repr }
Metric representation layer, mapping to numerical magnitude.
- MetricExact : Rational → MetricExpr
- MetricApprox : Float → MetricExpr
- MetricSymbolic : SymbolExpr → MetricExpr
Instances For
Equations
- ISAR.instReprMetricExpr = { reprPrec := ISAR.instReprMetricExpr.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Map MetricExpr to SymbolExpr for symbolic propagation.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ISAR.instReprUncertainty = { reprPrec := ISAR.instReprUncertainty.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ISAR.instReprCorrelation = { reprPrec := ISAR.instReprCorrelation.repr }
Epistemic layer representing uncertainties and correlations.
- uncertainties : List (ℕ × Uncertainty)
- correlations : List Correlation
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ISAR.instReprEpistemicExpr = { reprPrec := ISAR.instReprEpistemicExpr.repr }
The unified Quantity type, stacking structural, symbolic, metric, and epistemic.
- dim : DimExpr
- sym : SymbolExpr
- mag : MetricExpr
- epis : EpistemicExpr
Instances For
Equations
- ISAR.instReprQuantity = { reprPrec := ISAR.instReprQuantity.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Linearized variance propagation for addition: var(A + B) = var(A) + var(B) + 2 * covar(A,B).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Linearized variance propagation for multiplication: var(A * B) = B^2 * var(A) + A^2 * var(B) + 2 * A * B * covar(A,B).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Exact core without SymbolBase.Symbolic (String) or MetricExpr.MetricApprox
(Float). The four quantityToNat axioms on the full Quantity stay named.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ISAR.instReprQuantityCore = { reprPrec := ISAR.instReprQuantityCore.repr }
Equations
- ISAR.intToNat (Int.ofNat k) = Nat.pair k 0
- ISAR.intToNat (Int.negSucc k) = Nat.pair k 1
Instances For
Equations
- ISAR.natToInt n = if (Nat.unpair n).2 = 0 then Int.ofNat (Nat.unpair n).1 else Int.negSucc (Nat.unpair n).1
Instances For
Equations
- ISAR.quantityCoreToNat q = Nat.pair q.dimCode (Nat.pair (ISAR.intToNat q.num) q.den)
Instances For
Equations
- ISAR.natToQuantityCore n = { dimCode := (Nat.unpair n).1, num := ISAR.natToInt (Nat.unpair (Nat.unpair n).2).1, den := (Nat.unpair (Nat.unpair n).2).2 }
Instances For
Constructed left inverse: QuantityCore is encodable. Not a bijection on
the full Quantity (those four axioms stay named).
Mapping from substrate to Quantity.
Equations
Instances For
Mapping from Quantity back to substrate.
Equations
Instances For
Equivalence on Quantity is standard equality.
QuantityKernel definition as an admissible semantic kernel.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Stable addition on the Invariant Layer quotient class.
Equations
- q1.add q2 = ISAR.natToLayer (ISAR.layerToNat q1 + ISAR.layerToNat q2)
Instances For
Theorem proving that InvariantLayer.add is a stable invariant preserving arithmetic addition.