Download lean/Hcalc/RealStub.lean from Snapkitty/hcalc: direct link, hf CLI and curl.
- Browser
- Download file 3.72 kB
-
https://huggingface.co/Snapkitty/hcalc/resolve/main/lean/Hcalc/RealStub.lean
- Command line
-
hf download hf://Snapkitty/hcalc/lean/Hcalc/RealStub.lean
-
curl -L -o RealStub.lean https://huggingface.co/Snapkitty/hcalc/resolve/main/lean/Hcalc/RealStub.lean
3.72 kB
| /- | |
| Copyright (C) 2026 HCALC contributors | |
| SPDX-License-Identifier: AGPL-3.0-only | |
| Minimal Real stub (no Mathlib). Infrastructure Gap-Real-arith only. | |
| Production domain symbols are defs in other modules (PRODUCTION.md). | |
| -/ | |
| namespace Hcalc | |
| axiom Real : Type | |
| axiom realZero : Real | |
| axiom realOne : Real | |
| axiom realAdd : Real → Real → Real | |
| axiom realMul : Real → Real → Real | |
| axiom realNeg : Real → Real | |
| axiom realAbs : Real → Real | |
| axiom realLt : Real → Real → Prop | |
| axiom realDiv : Real → Real → Real | |
| axiom natToReal : Nat → Real | |
| axiom realLog : Real → Real | |
| axiom realMin : Real → Real → Real | |
| axiom finMax : {n : Nat} → (Fin n → Real) → Real | |
| noncomputable instance : Zero Real := ⟨realZero⟩ | |
| noncomputable instance : One Real := ⟨realOne⟩ | |
| noncomputable instance : Add Real := ⟨realAdd⟩ | |
| noncomputable instance : Mul Real := ⟨realMul⟩ | |
| noncomputable instance : Neg Real := ⟨realNeg⟩ | |
| noncomputable def realSub (a b : Real) : Real := realAdd a (realNeg b) | |
| noncomputable instance : Sub Real := ⟨realSub⟩ | |
| infix:50 " <ᵣ " => realLt | |
| notation "‖" x "‖ᵣ" => realAbs x | |
| def realLe (a b : Real) : Prop := realLt a b ∨ a = b | |
| infix:50 " ≤ᵣ " => realLe | |
| axiom real_add_comm (a b : Real) : a + b = b + a | |
| axiom real_add_assoc (a b c : Real) : (a + b) + c = a + (b + c) | |
| axiom real_mul_comm (a b : Real) : a * b = b * a | |
| axiom real_mul_assoc (a b c : Real) : (a * b) * c = a * (b * c) | |
| axiom real_zero_add (a : Real) : (0 : Real) + a = a | |
| axiom real_add_zero (a : Real) : a + (0 : Real) = a | |
| axiom real_one_mul (a : Real) : (1 : Real) * a = a | |
| axiom real_mul_one (a : Real) : a * (1 : Real) = a | |
| axiom real_zero_mul (a : Real) : (0 : Real) * a = (0 : Real) | |
| axiom real_mul_zero (a : Real) : a * (0 : Real) = (0 : Real) | |
| axiom real_neg_add_cancel (a : Real) : a + (-a) = (0 : Real) | |
| axiom real_abs_nonneg (a : Real) : (0 : Real) ≤ᵣ ‖a‖ᵣ | |
| axiom real_abs_zero : ‖(0 : Real)‖ᵣ = (0 : Real) | |
| axiom real_abs_abs (a : Real) : ‖‖a‖ᵣ‖ᵣ = ‖a‖ᵣ | |
| axiom real_lt_irrefl (a : Real) : ¬ (a <ᵣ a) | |
| axiom real_lt_asymm {a b : Real} : a <ᵣ b → ¬ b <ᵣ a | |
| axiom real_abs_eq_zero_iff (a : Real) : ‖a‖ᵣ = (0 : Real) ↔ a = (0 : Real) | |
| axiom real_mul_add (a b c : Real) : a * (b + c) = a * b + a * c | |
| axiom real_abs_mul (a b : Real) : ‖a * b‖ᵣ = ‖a‖ᵣ * ‖b‖ᵣ | |
| axiom natToReal_pos {n : Nat} (h : 0 < n) : (0 : Real) <ᵣ natToReal n | |
| axiom natToReal_zero : natToReal 0 = (0 : Real) | |
| axiom natToReal_one : natToReal 1 = (1 : Real) | |
| axiom softScaleFactor : Real → Real → Real | |
| axiom softScaleFactor_of_le (ε q : Real) | |
| (_h : q <ᵣ ((1 : Real) - ε) ∨ q = ((1 : Real) - ε)) : | |
| softScaleFactor ε q = (1 : Real) | |
| axiom softScaleFactor_of_gt (ε q : Real) | |
| (_h : ((1 : Real) - ε) <ᵣ q) : | |
| softScaleFactor ε q = realDiv ((1 : Real) - ε) q | |
| axiom realMin_le_left (a b : Real) : realMin a b ≤ᵣ a | |
| axiom realMin_le_right (a b : Real) : realMin a b ≤ᵣ b | |
| axiom finMax_abs_eq_zero_of {n : Nat} (x : Fin n → Real) | |
| (h : finMax (fun j => ‖x j‖ᵣ) = (0 : Real)) : ∀ j, x j = (0 : Real) | |
| axiom real_contract_force_zero (a q : Real) | |
| (hnn : (0 : Real) ≤ᵣ a) (hq : q <ᵣ (1 : Real)) (hle : a ≤ᵣ q * a) : a = (0 : Real) | |
| axiom real_le_of_eq (a b : Real) (h : a = b) : a ≤ᵣ b | |
| axiom deltaGuard : Real | |
| axiom deltaGuard_pos : (0 : Real) <ᵣ deltaGuard | |
| axiom tolDefault : Real | |
| axiom tolDefault_pos : (0 : Real) <ᵣ tolDefault | |
| noncomputable def epsDefault : Real := realDiv realOne (natToReal 20) | |
| noncomputable def oneSub (ε : Real) : Real := (1 : Real) - ε | |
| theorem real_sub_self (a : Real) : a - a = (0 : Real) := by | |
| change a + (-a) = (0 : Real) | |
| exact real_neg_add_cancel a | |
| abbrev Scalar := Real | |
| end Hcalc | |