FLT/Patching/Ultraproduct.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
47 declarations, 0 contain sorry, 0 declared as axioms
Ultraproducts of submodules
For a filter F on the index set, we define eventuallyProd F N as the
submodule of Πᵢ M i consisting of elements eventually in the submodule
N i. Basic monotonicity and lattice properties.
Imports (4)
Imported by 4 files
- def
eventuallyProdGiven a filterFon the index set and a family of submodulesN i ≤ M i, the submodule ofΠ i, M iconsisting of those tuplesvfor whichv i ∈ N iholdsF-eventually line 34 sourceSource documentation
Given a filter
Fon the index set and a family of submodulesN i ≤ M i, the submodule ofΠ i, M iconsisting of those tuplesvfor whichv i ∈ N iholdsF-eventually.standard axioms: Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,FilterProof uses:
Submodule.mk,AddSubmonoid.mk,AddSubsemigroup.mk,Set.ofPred,Filter.Eventually,Membership.mem,Set22 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
def eventuallyProd (F : Filter ι) : Submodule (Π i, R i) (Π i, M i) where …
- lemma
mem_eventuallyProdline 42 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,Filter,Iff,Membership.mem, eventuallyProd,Filter.EventuallyProof uses:
Iff.rfl16 instances, coercions and auxiliary constants left out.
- lemma
eventuallyProd_mono_leftline 46 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Submodule,LE.le, eventuallyProdProof uses:
Membership.mem,Filter.Eventually.mp,of_eq_true,Filter.Eventually,Eq.trans,True,congrFun',congrArg,funext,implies_congr_ctx,Eq.refl,eq_true,Eq.mp,forall_congr,implies_true26 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
eventuallyProd_mono_rightline 52 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,Filter,LE.le, eventuallyProdProof uses:
Filter.Eventually.filter_mono,Membership.mem18 instances, coercions and auxiliary constants left out.
- lemma
eventuallyProd_eq_supline 56 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Submodule,Filter,Eq, eventuallyProd,Max.max,Bot.bot, Submodule.pi'Proof uses:
le_antisymm,Membership.mem,Exists,And,Filter.Eventually,OfNat.ofNat,HSub.hSub,Exists.intro,ite,Classical.propDecidable,And.intro,Filter.mp_mem,Set.ofPred,Eq.mp,Filter.univ_mem',Set,id,ite_eq_left,dite,Eq.mprand 19 more60 instances, coercions and auxiliary constants left out.
Tactic trace: 21 steps
Open to load the checked before-and-after goal states.
- instance
eventuallyProd.isPrimeline 72 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Ideal,Ultrafilter,Ideal.IsPrime, eventuallyProdProof uses:
Ideal.IsPrime.mk,Eq.mpr,Ne,Top.top,Not,Eq,id,congrArg,ne_eq,Membership.mem,OfNat.ofNat,propext,Ideal.eq_top_iff_one,Filter.Frequently,Submodule,Eq.trans,Filter.Eventually,of_eq_true,True,congrFun'and 11 more41 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- def
UltraProductThe ultraproduct of a family of additive groupsM ialong a filterF: the quotient ofΠ i, M iby tuples that are zeroF-eventually line 87 sourceSource documentation
The ultraproduct of a family of additive groups
M ialong a filterF: the quotient ofΠ i, M iby tuples that are zeroF-eventually.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
AddCommGroup,FilterProof uses:
HasQuotient.Quotient,Submodule,Int, eventuallyProd,Bot.bot15 instances, coercions and auxiliary constants left out.
def UltraProduct : Type _ := …
- instance
(instance at line 93)line 93 sourceSource documentation
The ultraproduct of AddCommGroups is an AddCommGroup.
instance : AddCommGroup (UltraProduct M F) := inferInstanceAs …
Mentions: UltraProduct
- instance
(instance at line 97)line 97 sourceSource documentation
The ultraproduct of CommRings is a CommRing.
instance : CommRing (UltraProduct R F) := inferInstanceAs …
Mentions: UltraProduct
- def
UltraProduct.πThe canonical projection from the productΠ i, R ito the ultraproduct as a ring homomorphism line 103 sourceSource documentation
The canonical projection from the product
Π i, R ito the ultraproduct as a ring homomorphism.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Filter,RingHom, UltraProductProof uses:
Ideal.Quotient.mk, eventuallyProd,Bot.bot,Submodule18 instances, coercions and auxiliary constants left out.
def UltraProduct.π : (Π i, R i) →+* UltraProduct R F := …
Mentions: UltraProduct
- instance
(instance at line 106)line 106 source - def
UltraProduct.πₗThe canonical projection from the productΠ i, M iofR i-modules to the ultraproduct as aΠ i, R i-linear map line 112 sourceSource documentation
The canonical projection from the product
Π i, M iofR i-modules to the ultraproduct as aΠ i, R i-linear map.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,LinearMap,RingHom.id, UltraProductProof uses:
Submodule.mkQ, eventuallyProd,Bot.bot,Submodule19 instances, coercions and auxiliary constants left out.
def UltraProduct.πₗ : (Π i, M i) →ₗ[Π i, R i] UltraProduct M F := …
Mentions: UltraProduct
- lemma
UltraProduct.π_surjectiveline 115 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Filter,Function.Surjective, UltraProduct,RingHom, UltraProduct.πProof uses:
Submodule.mkQ_surjective, eventuallyProd,Bot.bot,Submodule20 instances, coercions and auxiliary constants left out.
- lemma
UltraProduct.πₗ_surjectiveline 119 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Function.Surjective, UltraProduct,LinearMap,RingHom.id, UltraProduct.πₗProof uses:
Submodule.mkQ_surjective, eventuallyProd,Bot.bot,Submodule21 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- instance
(instance at line 124)line 124 source - instance
(instance at line 138)line 138 source - lemma
UltraProduct.instIsScalarTowermaking this an instance timesout everything line 142 sourceSource comment
making this an instance timesout everything.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Filter,Module,Algebra,IsScalarTower, UltraProduct33 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
lemma UltraProduct.instIsScalarTower {R₁ : Type*} [CommRing R₁] [∀ i, Module R₁ (M i)] [Algebra R₀ R₁] [∀ i, IsScalarTower R₀ R₁ (M i)] : IsScalarTower R₀ R₁ (UltraProduct M F) := …Mentions: UltraProduct
- instance
(instance at line 148)line 148 source - instance
(instance at line 152)line 152 source - lemma
UltraProduct.πₗ_eq_zeroline 164 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Iff,Eq, UltraProduct,LinearMap,RingHom.id, UltraProduct.πₗ,OfNat.ofNat,Filter.EventuallyProof uses:
Submodule.Quotient.mk_eq_zero, eventuallyProd,Bot.bot,Submodule27 instances, coercions and auxiliary constants left out.
- lemma
UltraProduct.πₗ_eq_iffline 168 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,Iff,Eq, UltraProduct,LinearMap,RingHom.id, UltraProduct.πₗ,Filter.EventuallyProof uses:
Iff.trans,HasQuotient.Quotient,Submodule, eventuallyProd,Bot.bot,Submodule.Quotient.mk,Membership.mem,HSub.hSub,Submodule.Quotient.eq,of_eq_true,Eq.trans,True,congrFun',congrArg,funext,OfNat.ofNat,iff_self39 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
UltraProduct.π_eq_iffline 172 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Filter,Iff,Eq, UltraProduct,RingHom, UltraProduct.π,Filter.EventuallyProof uses:
Iff.trans,HasQuotient.Quotient,Submodule, eventuallyProd,Bot.bot,Submodule.Quotient.mk,Membership.mem,HSub.hSub,Submodule.Quotient.eq,of_eq_true,Eq.trans,True,congrFun',congrArg,funext,OfNat.ofNat,iff_self40 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
UltraProduct.π_eq_zero_iffline 176 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Filter,Iff,Eq, UltraProduct,RingHom, UltraProduct.π,OfNat.ofNat,Filter.EventuallyProof uses: UltraProduct.π_eq_iff
21 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- instance
(instance at line 179)line 179 source - lemma
UltraProduct.π_smulline 188 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter, UltraProduct,Eq,HSMul.hSMul,RingHom, UltraProduct.πProof uses:
rfl39 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- instance
(instance at line 190)line 190 source - instance
(instance at line 195)line 195 source - instance
(instance at line 203)line 203 source - instance
(instance at line 211)line 211 source - instance
(instance at line 212)line 212 source - instance
(instance at line 213)line 213 source - instance
(instance at line 214)line 214 source - def
UltraProduct.mapA family of linear mapsf i : M i →ₗ[R i] N iinduces a linear map between the corresponding ultraproducts line 221 sourceSource documentation
A family of linear maps
f i : M i →ₗ[R i] N iinduces a linear map between the corresponding ultraproducts.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,LinearMap,RingHom.id, UltraProductProof uses:
Submodule.mapQ, eventuallyProd,Bot.bot,Submodule, LinearMap.piMap',Membership.mem23 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
def UltraProduct.map (f : ∀ i, M i →ₗ[R i] N i) : UltraProduct M F →ₗ[∀ i, R i] UltraProduct N F := …Mentions: UltraProduct
- lemma
UltraProduct.map_πₗline 228 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,LinearMap,RingHom.id,Eq, UltraProduct, UltraProduct.map, UltraProduct.πₗProof uses:
rfl24 instances, coercions and auxiliary constants left out.
- def
UltraProduct.mapRingHomA family of ring homomorphismsf i : R i →+* S iinduces a ring homomorphism between the corresponding ultraproducts line 234 sourceSource documentation
A family of ring homomorphisms
f i : R i →+* S iinduces a ring homomorphism between the corresponding ultraproducts.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Filter,RingHom, UltraProductProof uses:
Ideal.quotientMap, eventuallyProd,Bot.bot,Submodule,RingHom.pi,RingHom.comp,Pi.evalRingHom21 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
def UltraProduct.mapRingHom {S : ι → Type*} [∀ i, CommRing (S i)] (f : ∀ i, R i →+* S i) : UltraProduct R F →+* UltraProduct S F := …Mentions: UltraProduct
- lemma
UltraProduct.mapRingHom_πline 241 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Filter,RingHom,Eq, UltraProduct, UltraProduct.mapRingHom, UltraProduct.πProof uses:
rfl18 instances, coercions and auxiliary constants left out.
- lemma
UltraProduct.map_surjectiveline 245 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Filter,LinearMap,RingHom.id,Function.Surjective, UltraProduct, UltraProduct.mapProof uses:
Eq, UltraProduct.πₗ,Exists, UltraProduct.πₗ_surjective,Exists.intro,of_eq_true,Eq.trans,True,congrFun',congrArg,funext,eq_self,Classical.choose,Classical.choose_spec24 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
UltraProduct.mapRingHom_surjectiveline 254 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Filter,RingHom,Function.Surjective, UltraProduct, UltraProduct.mapRingHomProof uses: UltraProduct.map_surjective,
Int,AddMonoidHom.toIntLinearMap,RingHom.toAddMonoidHom17 instances, coercions and auxiliary constants left out.
- lemma
UltraProduct.surjective_of_eventually_surjectiveline 262 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,LinearMap,RingHom.id,Finite,Ultrafilter,Filter.Eventually,Function.Surjective, UltraProduct,LinearMap.comp, UltraProduct.πₗ,LinearMap.piProof uses:
Eq,Exists, UltraProduct.πₗ_surjective,Filter.mp_mem,Set.ofPred,Filter.univ_mem',Membership.mem,Set,id,Iff.mp,Ultrafilter.eventually_exists_iff,Exists.intro,Iff.mpr, UltraProduct.πₗ_eq_iff86 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
UltraProduct.bijective_of_eventually_bijectiveline 271 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,LinearMap,RingHom.id,Finite,Ultrafilter,Filter.Eventually,Function.Bijective, UltraProduct,LinearMap.comp, UltraProduct.πₗ,LinearMap.piProof uses:
And.intro,Function.Injective,Function.Surjective,Eq.mpr,Eq,OfNat.ofNat,id,congrArg,propext,injective_iff_map_eq_zero,RingHom,Eq.mp,And,Exists,Filter.Eventually.exists,Filter.Eventually.and,And.left,Eq.trans,Eq.symm,LinearMap.map_zeroand 12 more100 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- lemma
UltraProduct.isUnit_π_iffline 286 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Filter,Iff,IsUnit, UltraProduct,RingHom, UltraProduct.π,Filter.EventuallyProof uses:
Eq.mpr,Exists,Eq,HMul.hMul,OfNat.ofNat,id,congr,congrArg,congrFun',funext,propext,Function.Surjective.exists, UltraProduct.π_surjective,Eq.symm,map_one,Iff.symm,Filter.skolem49 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- instance
(instance at line 291)line 291 source - lemma
UltraProduct.exists_bijective_of_bddAbove_cardline 301 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,AddCommGroup,Module,Algebra.FiniteType,Int,Ultrafilter,Nat,Filter.Eventually,And,Finite,LT.lt,Nat.card,Nonempty,LinearEquiv,RingHom.id,Function.Bijective, UltraProduct,LinearMap,LinearMap.comp, UltraProduct.πₗ and 6 moreProof uses:
Exists, ModuleTypeCardLT,Fin,Sigma.fst,Sigma,Filter.mp_mem,Set.ofPred,Filter.univ_mem',Membership.mem,Set,id,Exists.intro, ModuleTypeCardLT.ofModule,Nonempty.intro, ModuleTypeCardLT.equivOfModule,Iff.mp,Ultrafilter.eventually_exists_iff,Iff.mpr,Equiv.finite_iff,LinearEquiv.toEquivand 10 more109 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
UltraProduct.exists_algEquiv_of_bddAbove_cardLetR₀be a topological ring, topologically of finite type (overℤ) line 327 sourceSource documentation
Let
R₀be a topological ring, topologically of finite type (overℤ). Consider a family of (cardinality) finite continuousR₀-algebrasR iwith the discrete topology whose cardinalites are unifomly bounded.Then
𝒰(Rᵢ) ≃ₐ[R] R iforF-manyi.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Algebra,TopologicalSpace,IsTopologicalRing, Algebra.TopologicallyFG,Int,T2Space,Ultrafilter,Nat,Filter.Eventually,And,Finite,LT.lt,Nat.card,ContinuousSMul,Nonempty,AlgEquiv, UltraProductProof uses:
Exists, TopologicalAlgebraTypeCardLT,Fin,PSigma.fst,PSigma,Ring,IsHomeomorph,Filter.mp_mem,Set.ofPred,Membership.mem,Set,Filter.univ_mem',id,Exists.intro, TopologicalAlgebraTypeCardLT.ofAlgebra, TopologicalAlgebraTypeCardLT.equivOfAlgebra, TopologicalAlgebraTypeCardLT.isHomeomorph_equivOfAlgebra,Iff.mp,Ultrafilter.eventually_exists_iff,LinearMapand 41 more114 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
lemma UltraProduct.exists_algEquiv_of_bddAbove_card [TopologicalSpace R₀] [IsTopologicalRing R₀] [Algebra.TopologicallyFG ℤ R₀] [∀ i, TopologicalSpace (R i)] [∀ i, T2Space (R i)] (F : Ultrafilter ι) (N : ℕ) (H : ∀ᶠ i in F, Finite (R i) ∧ Nat.card (R i) < N) (hcont : ∀ᶠ i in F, ContinuousSMul R₀ (R i)) : ∀ᶠ i in F, Nonempty (UltraProduct R F ≃ₐ[R₀] R i) := by …Mentions: Algebra.TopologicallyFG, UltraProduct
- lemma
UltraProduct.exists_ringEquiv_of_bddAbove_cardLetR₀be a topological ring, topologically of finite type (overℤ) line 374 sourceSource documentation
Let
R₀be a topological ring, topologically of finite type (overℤ). Consider a family of (cardinality) finite ringsR iwith the discrete topology whose cardinalites are unifomly bounded.Given a family of continuous ring homs
f i : R →+* R i, there existsF-manyisuch that𝒰(Rᵢ) ≃+* R iand this map is compatible withf.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,IsTopologicalRing, Algebra.TopologicallyFG,Int,T2Space,Ultrafilter,Nat,Filter.Eventually,And,Finite,LT.lt,Nat.card,RingHom,Continuous,Exists,RingEquiv, UltraProduct,Eq,RingHom.compand 3 moreProof uses:
Algebra,RingHom.toAlgebra,Nonempty,AlgEquiv, UltraProduct.exists_algEquiv_of_bddAbove_card,Filter.mp_mem,Set.ofPred,ContinuousSMul,Filter.univ_mem',Membership.mem,Set,id,ContinuousSMul.mk,Prod,HMul.hMul,Prod.fst,Prod.snd,Eq.mp,Continuous.fun_mul,Continuous.comp'and 5 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
lemma UltraProduct.exists_ringEquiv_of_bddAbove_card [TopologicalSpace R₀] [IsTopologicalRing R₀] [Algebra.TopologicallyFG ℤ R₀] [∀ i, TopologicalSpace (R i)] [∀ i, IsTopologicalRing (R i)] [∀ i, T2Space (R i)] (F : Ultrafilter ι) (N : ℕ) (H : ∀ᶠ i in F, Finite (R i) ∧ Nat.card (R i) < N) (f : ∀ i, R₀ →+* R i) (hf : ∀ᶠ i in F, Continuous (f i)) : ∀ᶠ i in F, ∃ e : UltraProduct R F ≃+* R i, e.toRingHom.comp ((π R F).comp (RingHom.pi f)) = f i := by …Mentions: Algebra.TopologicallyFG, UltraProduct, UltraProduct.π
- lemma
UltraProduct.continuous_of_bddAbove_cardLetR₀be a topological ring, topologically of finite type (overℤ) line 401 sourceSource documentation
Let
R₀be a topological ring, topologically of finite type (overℤ). Consider a family of (cardinality) finite ringsR iwith the discrete topology whose cardinalites are unifomly bounded.Given a family of continuous ring homs
f i : R →+* R i, the liftR →+* 𝒰(Rᵢ)is also continuous.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,IsTopologicalRing, Algebra.TopologicallyFG,Int,T2Space,Ultrafilter,Nat,Filter.Eventually,And,Finite,LT.lt,Nat.card,RingHom,Continuous, UltraProduct,RingHom.comp, UltraProduct.π,RingHom.piProof uses:
IsOpen,Ideal,RingHom.ker,Exists,RingEquiv,Eq,RingEquiv.toRingHom,Filter.Eventually.exists,Filter.Eventually.and, UltraProduct.exists_ringEquiv_of_bddAbove_card,RingEquiv.symm,Eq.mpr,id,congrArg,Eq.symm,RingHom.comp_assoc,of_eq_true,Eq.trans,True,congrFun'and 30 more78 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
lemma UltraProduct.continuous_of_bddAbove_card [TopologicalSpace R₀] [IsTopologicalRing R₀] [Algebra.TopologicallyFG ℤ R₀] [∀ i, TopologicalSpace (R i)] [∀ i, IsTopologicalRing (R i)] [∀ i, T2Space (R i)] (F : Ultrafilter ι) (N : ℕ) (H : ∀ᶠ i in F, Finite (R i) ∧ Nat.card (R i) < N) (f : ∀ i, R₀ →+* R i) (hf : ∀ᶠ i in F, Continuous (f i)) : Continuous ((π R F).comp (RingHom.pi f)) := by …Mentions: Algebra.TopologicallyFG, UltraProduct.π
- lemma
UltraProduct.surjective_of_bddAbove_cardLetR₀be a topological ring, topologically of finite type (overℤ) line 432 sourceSource documentation
Let
R₀be a topological ring, topologically of finite type (overℤ). Consider a family of (cardinality) finite ringsR iwith the discrete topology whose cardinalites are unifomly bounded.Given a family of continuous surjective ring homs
f i : R →+* R i, the liftR →+* 𝒰(Rᵢ)is also surjective.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,TopologicalSpace,IsTopologicalRing, Algebra.TopologicallyFG,Int,T2Space,Ultrafilter,Nat,Filter.Eventually,And,Finite,LT.lt,Nat.card,RingHom,Continuous,Function.Surjective, UltraProduct,RingHom.comp, UltraProduct.π,RingHom.piProof uses:
Exists,RingEquiv,Eq,RingEquiv.toRingHom,Filter.Eventually.exists,Filter.Eventually.and, UltraProduct.exists_ringEquiv_of_bddAbove_card,RingEquiv.symm,Eq.mpr,id,congrArg,Eq.symm,RingHom.comp_assoc,of_eq_true,Eq.trans,True,congrFun',RingHom.id,RingEquiv.symm_comp,RingHomCompTriple.comp_eqand 3 more41 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma UltraProduct.surjective_of_bddAbove_card [TopologicalSpace R₀] [IsTopologicalRing R₀] [Algebra.TopologicallyFG ℤ R₀] [∀ i, TopologicalSpace (R i)] [∀ i, IsTopologicalRing (R i)] [∀ i, T2Space (R i)] (F : Ultrafilter ι) (N : ℕ) (H : ∀ᶠ i in F, Finite (R i) ∧ Nat.card (R i) < N) (f : ∀ i, R₀ →+* R i) (hf : ∀ᶠ i in F, Continuous (f i)) (hf' : ∀ᶠ i in F, Function.Surjective (f i)) : Function.Surjective ((π R F).comp (RingHom.pi f)) := by …Mentions: Algebra.TopologicallyFG, UltraProduct.π