FLT/Mathlib/Algebra/IsDirectLimit.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, Pinned FLT blueprint introduction
20 declarations, 0 contain sorry, 0 declared as axioms
Is Direct Limit
Material destined for Mathlib.
Imports (1)
Imported by 3 files
- class
IsDirectLimitIsDirectLimit f gstates thatPis the direct limit of the system(M i, f i j hij)line 30 sourceSource documentation
IsDirectLimit f gstates thatPis the direct limit of the system(M i, f i j hij). It requires:surj: says every element ofPcomes from someM ivia the canonical mapg i.inj: says that if two elements of (possibly different) modulesM iandM jmap to the same element ofP, then they become equal after being mapped into a common later moduleM k.compatibility: ensures that the mapsg iandf i j hijare compatible with one another.
no axioms what this means
Statement uses:
Preorder,LE.le,DirectedSystem1 instances, coercions and auxiliary constants left out.
@[mk_iff] class IsDirectLimit [DirectedSystem M f] : Prop where …
- theorem
IsDirectLimit.compatibility'line 40 sourceno axioms what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit,EqProof uses:
IsDirectLimit.compatibility2 instances, coercions and auxiliary constants left out.
- theorem
IsDirectLimit.is_injectiveline 43 sourceno axioms what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit,Eq,ExistsProof uses:
IsDirectLimit.inj2 instances, coercions and auxiliary constants left out.
- theorem
IsDirectLimit.is_surjectiveline 48 sourceno axioms what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit,Exists,EqProof uses:
IsDirectLimit.surj2 instances, coercions and auxiliary constants left out.
- def
IsDirectLimit.preimageIndexDocumented declaration: preimageIndex line 55 sourceSource documentation
Given an element
p : Pin the direct limit,preimageIndex f g preturns an index inιsuch thatpis in the image of the mapg (preimageIndex f g p) : M (preimageIndex f g p) →ₗ[R] P.standard axioms: Classical.choice what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimitProof uses:
Exists.choose,Exists,Eq, IsDirectLimit.is_surjective2 instances, coercions and auxiliary constants left out.
noncomputable def preimageIndex (p : P) : ι := (is_surjective f g p).choose
Mentions: IsDirectLimit.is_surjective
- def
IsDirectLimit.preimageGiven an elementp : Pin the direct limit,preimage f g preturns an element ofM (preimageIndex f g p)that maps topunderg (preimageIndex f g p)line 61 sourceSource documentation
Given an element
p : Pin the direct limit,preimage f g preturns an element ofM (preimageIndex f g p)that maps topunderg (preimageIndex f g p).standard axioms: Classical.choice what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit, IsDirectLimit.preimageIndexProof uses:
Exists.choose,Exists,Eq, IsDirectLimit.is_surjective3 instances, coercions and auxiliary constants left out.
noncomputable def preimage (p : P) : M (preimageIndex f g p) := …
Mentions: IsDirectLimit.preimageIndex
- theorem
IsDirectLimit.image_preimageline 64 sourcestandard axioms: Classical.choice what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit,Eq, IsDirectLimit.preimageIndex, IsDirectLimit.preimageProof uses:
Exists.choose_spec,Exists.choose,Exists, IsDirectLimit.is_surjective2 instances, coercions and auxiliary constants left out.
- def
IsDirectLimit.liftConstruct a mapP₁ → P₂from a direct limit by sending each element to its preimage in some componentM iand applyingg₂ iline 74 sourceSource documentation
Construct a map
P₁ → P₂from a direct limit by sending each element to its preimage in some componentM iand applyingg₂ i. Used to define morphisms out of direct limits.standard axioms: Classical.choice what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimitProof uses: IsDirectLimit.preimageIndex, IsDirectLimit.preimage
2 instances, coercions and auxiliary constants left out.
noncomputable def lift [IsDirectLimit f g₁] (p : P₁) : P₂ := …
Mentions: IsDirectLimit
- theorem
IsDirectLimit.lift_ofline 78 sourcestandard axioms: Classical.choice what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit,Eq, IsDirectLimit.liftProof uses:
id,Exists, IsDirectLimit.preimageIndex, IsDirectLimit.preimage, IsDirectLimit.is_injective, IsDirectLimit.image_preimage,Eq.mpr,congrArg,Eq.symm,Eq.refl3 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- def
IsDirectLimit.EquivAny two direct limits of the same directed system are isomorphic line 85 sourceSource documentation
Any two direct limits of the same directed system are isomorphic.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit,EquivProof uses:
Equiv.mk, IsDirectLimit.lift4 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
noncomputable def Equiv [h₁ : IsDirectLimit f g₁] [h₂ : IsDirectLimit f g₂] : P₁ ≃ P₂ where …Mentions: IsDirectLimit
- lemma
IsDirectLimit.Equiv_applyline 99 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit,Eq,Equiv, IsDirectLimit.EquivProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg, IsDirectLimit.lift_of,forall_congr, IsDirectLimit.compatibility',eq_self,implies_true8 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
IsDirectLimit.linearEquiv_symm_applyline 104 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Preorder,LE.le,DirectedSystem, IsDirectLimit,Eq,Equiv,Equiv.symm, IsDirectLimit.EquivProof uses:
of_eq_true,Eq.trans,True,congrFun',congrArg, IsDirectLimit.lift_of,forall_congr, IsDirectLimit.compatibility',eq_self,implies_true8 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- instance
IsDirectLimit.Module.(instance at line 114)line 114 source - theorem
IsDirectLimit.Module.compatibility_moduleline 127 sourceno axioms what this means
Statement uses:
Preorder,Semiring,AddCommMonoid,Module,LE.le,LinearMap,RingHom.id,DirectedSystem, IsDirectLimit,EqProof uses: IsDirectLimit.compatibility'
8 instances, coercions and auxiliary constants left out.
- def
IsDirectLimit.Module.liftThe universal property of the direct limit: define a linear map from the direct limit by giving a compatible family of linear maps from the components line 135 sourceSource documentation
The universal property of the direct limit: define a linear map from the direct limit by giving a compatible family of linear maps from the components. Each element of the limit is sent according to its representative in some component.
standard axioms: Classical.choice, propext what this means
Statement uses:
Preorder,Semiring,AddCommMonoid,Module,LE.le,LinearMap,RingHom.id,DirectedSystem,IsDirected, IsDirectLimit,EqProof uses:
LinearMap.mk,AddHom.mk, IsDirectLimit.lift13 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
noncomputable def lift (Hg : ∀ i j hij x, g₂ j (f i j hij x) = g₂ i x) : P₁ →ₗ[R] P₂ where … - theorem
IsDirectLimit.Module.lift_ofline 161 sourcestandard axioms: Classical.choice, propext what this means
Statement uses:
Preorder,Semiring,AddCommMonoid,Module,LE.le,LinearMap,RingHom.id,DirectedSystem,IsDirected, IsDirectLimit,Eq, IsDirectLimit.Module.liftProof uses:
id, IsDirectLimit.lift_of8 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
IsDirectLimit.Module.lift_uniqueline 166 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Preorder,Semiring,AddCommMonoid,Module,LE.le,LinearMap,RingHom.id,DirectedSystem,IsDirected, IsDirectLimit,Eq, IsDirectLimit.Module.lift,LinearMap.compProof uses:
of_eq_true,Eq.trans,True,congrArg, IsDirectLimit.preimageIndex, IsDirectLimit.preimage, IsDirectLimit.image_preimage,eq_self12 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- def
IsDirectLimit.Module.linearEquivAny two direct limits of the same directed system are isomorphic line 177 sourceSource documentation
Any two direct limits of the same directed system are isomorphic.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Preorder,Semiring,AddCommMonoid,Module,LE.le,LinearMap,RingHom.id,DirectedSystem,IsDirected, IsDirectLimit,LinearEquivProof uses:
Equiv, IsDirectLimit.Equiv,LinearEquiv.mk,LinearMap.mk,AddHom.mk,Equiv.toFun,Equiv.invFun,Equiv.left_inv,Equiv.right_inv15 instances, coercions and auxiliary constants left out.
noncomputable def linearEquiv : P₁ ≃ₗ[R] P₂ := …
- lemma
IsDirectLimit.Module.linearEquiv_applyline 183 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Preorder,Semiring,AddCommMonoid,Module,LE.le,LinearMap,RingHom.id,DirectedSystem,IsDirected, IsDirectLimit,Eq,LinearEquiv, IsDirectLimit.Module.linearEquivProof uses: IsDirectLimit.Equiv_apply
11 instances, coercions and auxiliary constants left out.
- lemma
IsDirectLimit.Module.linearEquiv_symm_applyline 188 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Preorder,Semiring,AddCommMonoid,Module,LE.le,LinearMap,RingHom.id,DirectedSystem,IsDirected, IsDirectLimit,Eq,LinearEquiv,LinearEquiv.symm, IsDirectLimit.Module.linearEquivProof uses: IsDirectLimit.linearEquiv_symm_apply
11 instances, coercions and auxiliary constants left out.