FormalConjecturesForMathlib/ModelTheory/Real.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1
15 declarations, 0 contain sorry, 0 declared as axioms
Expansions of the real field
This file makes ℝ a structure for the language of rings and for the language of orders. It
defines the language Language.exp with a single unary function symbol exp, the language
Language.orderedExpField of ordered exponential fields, and the real exponential field
(ℝ, +, *, -, 0, 1, ≤, exp) as a structure for that language.
Main declarations
FirstOrder.Language.exp: the language with one unary function symbolexp.FirstOrder.Language.orderedExpField: the language of ordered exponential fields.
Implementation notes
Mathlib deliberately does not make Ring.compatibleRingOfRing or orderStructure instances,
because for a general type R the round trip Ring R → Language.ring.Structure R → Ring R
need not commute definitionally. Here they are declared as instances for the single type ℝ.
Mathlib has no instance producing a Ring or LE structure from a first-order structure on a
concrete type, so no such round trip arises.
Imported by 1 file
- inductive
FirstOrder.expFuncThe type of function symbols ofLanguage.exp: a single unary symbolexpline 48 sourceSource documentation
The type of function symbols of
Language.exp: a single unary symbolexp.no axioms what this means
Statement uses:
Natinductive expFunc : ℕ → Type | exp : expFunc 1 deriving DecidableEq namespace Language /-- The language with a single unary function symbol `exp` and no relation symbols. -/
- def
FirstOrder.Language.expThe language with a single unary function symbolexpand no relation symbols line 55 sourceSource documentation
The language with a single unary function symbol
expand no relation symbols.no axioms what this means
Statement uses:
FirstOrder.LanguageProof uses:
FirstOrder.Language.mk, FirstOrder.expFunc,Nat,Emptyprotected def exp : Language := ⟨expFunc, fun _ => Empty⟩ …
Mentions: FirstOrder.expFunc
- abbrev
FirstOrder.Language.orderedExpFieldThe language of ordered exponential fields: the language of rings, together with a unary function symbolexpand the order relation≤line 60 sourceSource documentation
The language of ordered exponential fields: the language of rings, together with a unary function symbol
expand the order relation≤.no axioms what this means
Statement uses:
FirstOrder.LanguageProof uses:
FirstOrder.Language.sum,FirstOrder.Language.ring, FirstOrder.Language.exp,FirstOrder.Language.orderprotected abbrev orderedExpField : Language := …
- instance
FirstOrder.Language.orderedExpField.instIsOrderedThe language of ordered exponential fields contains the order symbol≤line 64 sourceSource documentation
The language of ordered exponential fields contains the order symbol
≤.no axioms what this means
Statement uses:
FirstOrder.Language.IsOrdered, FirstOrder.Language.orderedExpFieldProof uses:
FirstOrder.Language.IsOrdered.mk,Sum.inr,FirstOrder.Language.Relations,FirstOrder.Language.ring,OfNat.ofNat,Nat,FirstOrder.Language.sum, FirstOrder.Language.exp,FirstOrder.Language.order,FirstOrder.Language.IsOrdered.leSymb2 instances, coercions and auxiliary constants left out.
instance orderedExpField.instIsOrdered : Language.orderedExpField.IsOrdered := …
- instance
FirstOrder.Language.exp.encodableFunctionsThe function symbolexpis encoded as0line 68 sourceSource documentation
The function symbol
expis encoded as0.standard axioms: Quot.sound, propext what this means
Statement uses:
Encodable,Sigma,Nat,FirstOrder.Language.Functions, FirstOrder.Language.expProof uses:
Encodable.ofLeftInjection,OfNat.ofNat,Option.some,Sigma.mk,FirstOrder.expFunc.exp3 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
instance exp.encodableFunctions : Encodable (Σ n, Language.exp.Functions n) := …
- instance
FirstOrder.Language.compatibleRingRealℝas a structure for the language of rings, with the usual ring operations line 77 sourceSource documentation
ℝas a structure for the language of rings, with the usual ring operations.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
FirstOrder.Ring.CompatibleRing,RealProof uses:
FirstOrder.Ring.compatibleRingOfRing10 instances, coercions and auxiliary constants left out.
instance compatibleRingReal : Ring.CompatibleRing ℝ := Ring.compatibleRingOfRing ℝ
- instance
FirstOrder.Language.orderStructureRealℝas a structure for the language of orders, with≤interpreted as≤line 80 sourceSource documentation
ℝas a structure for the language of orders, with≤interpreted as≤.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
FirstOrder.Language.Structure,FirstOrder.Language.order,RealProof uses:
FirstOrder.Language.orderStructure1 instances, coercions and auxiliary constants left out.
instance orderStructureReal : Language.order.Structure ℝ := orderStructure ℝ
- instance
FirstOrder.Language.orderOrderedStructureRealline 82 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
FirstOrder.Language.OrderedStructure,FirstOrder.Language.order,RealProof uses:
FirstOrder.Language.OrderedStructure.mk,Fin,OfNat.ofNat,Nat,Iff.rfl,FirstOrder.Language.Structure.RelMap,FirstOrder.Language.IsOrdered.leSymb7 instances, coercions and auxiliary constants left out.
- instance
FirstOrder.Language.expStructureRealℝas a structure forLanguage.exp, withexpinterpreted as the exponential function line 85 sourceSource documentation
ℝas a structure forLanguage.exp, withexpinterpreted as the exponential function.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
FirstOrder.Language.Structure, FirstOrder.Language.exp,RealProof uses:
FirstOrder.Language.Structure.mk,Nat,FirstOrder.Language.Functions,FirstOrder.Language.expStructureReal.match_1,Fin,Unit,OfNat.ofNat,Real.exp,FirstOrder.Language.Relations,isEmptyElim4 instances, coercions and auxiliary constants left out.
instance expStructureReal : Language.exp.Structure ℝ where …
- theorem
FirstOrder.Language.funMap_expline 90 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,Real,Eq,FirstOrder.Language.Structure.funMap, FirstOrder.Language.exp,FirstOrder.expFunc.exp,Real.expProof uses:
rfl6 instances, coercions and auxiliary constants left out.
- instance
FirstOrder.Language.orderedExpFieldOrderedStructureRealIn the real exponential field,≤is interpreted as≤line 95 sourceSource documentation
In the real exponential field,
≤is interpreted as≤.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
FirstOrder.Language.OrderedStructure, FirstOrder.Language.orderedExpField,Real,FirstOrder.Language.ring,FirstOrder.Language.sum, FirstOrder.Language.exp,FirstOrder.Language.orderProof uses:
FirstOrder.Language.OrderedStructure.mk,Fin,OfNat.ofNat,Nat,Iff.rfl,FirstOrder.Language.Structure.RelMap,FirstOrder.Language.IsOrdered.leSymb25 instances, coercions and auxiliary constants left out.
instance orderedExpFieldOrderedStructureReal : Language.orderedExpField.OrderedStructure ℝ := …
- example
FirstOrder.Language.(example at line 99)line 99 sourceSource comment
In the real exponential field, the symbol `exp` is interpreted as the exponential function.example (x : ℝ) : Structure.funMap (L := Language.orderedExpField) (Sum.inr (Sum.inl expFunc.exp)) ![x] = …Mentions: FirstOrder.Language.orderedExpField
- example
FirstOrder.Language.(example at line 105)line 105 sourceSource comment
In the real exponential field, the symbol `+` is interpreted as addition.example (x y : ℝ) : Structure.funMap (L := Language.orderedExpField) (Sum.inl Ring.addFunc) ![x, y] = x + y := …Mentions: FirstOrder.Language.orderedExpField
- example
FirstOrder.Language.(example at line 110)line 110 sourceSource comment
In the real exponential field, the symbol `≤` is interpreted as the order of `ℝ`.example (x y : ℝ) : Structure.RelMap (L := Language.orderedExpField) leSymb ![x, y] ↔ x ≤ y := …Mentions: FirstOrder.Language.orderedExpField
- example
FirstOrder.Language.(example at line 115)line 115 sourceSource comment
The Gödel numbering of sentences of `Language.orderedExpField` is found by instance resolution.example : Encodable Language.orderedExpField.Sentence := inferInstance …