FLT/Mathlib/Algebra/FixedPoints/Basic.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
13 declarations, 0 contain sorry, 0 declared as axioms
Fixed points of actions
We define types representing fixed points of actions on types, and define inherited typeclasses on these fixed point types. For example the fixed points of an action on an additive group is an additive group.
Main definitions
Given types M and A, with [SMul M A],
MulAction.FixedPoints M Ais the subtype ofAconsisting of theasuch that∀ m, m • a = a.
Similarly, with [VAdd M A],
AddAction.FixedPoints M Ais the subtype ofAconsisting of theasatisfying the unlikely-looking equation∀ m, m +ᵥ a = a.
Notes
Note that the type MulAction.FixedPoints is the coercion to a type
of the term MulAction.fixedPoints (which, presumably for historical
reasons, is defined under a spurious extra hypothesis that M is a monoid).
The motivation for this file is that using ↥fixedPoints can lead
typeclass inference on a wild goose chase.
Imports (3)
Imported by 1 file
- def
MulAction.FixedPointsIfMacts onAthenFixedPoints M Ais the type of elements ofAwhich are fixed elementwise by all ofMline 42 sourceSource documentation
If
Macts onAthenFixedPoints M Ais the type of elements ofAwhich are fixed elementwise by all ofM.no axioms what this means
Statement uses:
SMulProof uses:
Subtype,Eq,HSMul.hSMul1 instances, coercions and auxiliary constants left out.
def MulAction.FixedPoints (M A : Type*) [SMul M A] : Type _ := …
- def
AddAction.FixedPointsIfMacts onAthenFixedPoints M Ais the type of elements ofAwhich are fixed elementwise by all ofMline 47 sourceSource documentation
If
Macts onAthenFixedPoints M Ais the type of elements ofAwhich are fixed elementwise by all ofM.no axioms what this means
Statement uses:
VAddProof uses:
Subtype,Eq,HVAdd.hVAdd1 instances, coercions and auxiliary constants left out.
def AddAction.FixedPoints (M A : Type*) [VAdd M A] : Type _ := …
- lemma
MulAction.FixedPoints.extline 57 sourceno axioms what this means
Statement uses:
SMul, MulAction.FixedPoints,Eq,HSMul.hSMulProof uses:
Subtype,Subtype.mk,Eq.refl,Eq.symm6 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- instance
MulAction.FixedPoints.(instance at line 62)line 62 sourceSource comment
TODO: don't know what I'm doing but Coe doesn't work because of semioutparaminstance [SMul M A] : CoeHead (FixedPoints M A) A where …
Mentions: MulAction.FixedPoints
- instance
MulAction.FixedPoints.addZeroClassline 65 sourceno axioms what this means
Statement uses:
AddZeroClass,DistribSMul, MulAction.FixedPointsProof uses:
AddZeroClass.mk,Zero.mk,Subtype.mk,Eq,HSMul.hSMul,OfNat.ofNat,Add.mk,HAdd.hAdd17 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
MulAction.FixedPoints.zero_defline 76 sourceno axioms what this means
Statement uses:
AddZeroClass,DistribSMul,Eq, MulAction.FixedPoints,OfNat.ofNat,Subtype.mk,HSMul.hSMul,smul_zeroProof uses:
rfl13 instances, coercions and auxiliary constants left out.
- lemma
MulAction.FixedPoints.coe_addline 78 sourceno axioms what this means
Statement uses:
AddZeroClass,DistribSMul, MulAction.FixedPoints,Eq,HSMul.hSMul,HAdd.hAddProof uses:
rfl18 instances, coercions and auxiliary constants left out.
- instance
MulAction.FixedPoints.addMonoidTODO: I could use FixedPoints.addSubmonoid + coercion to addMonoid, but Is mynsmulbetter? line 83 sourceSource comment
TODO: I could use FixedPoints.addSubmonoid + coercion to addMonoid, but Is my `nsmul` better?standard axioms: propext what this means
Statement uses:
AddMonoid,DistribSMul, MulAction.FixedPointsProof uses:
AddZeroClass,AddMonoid.mk,AddZeroClass.toZero,AddZeroClass.toAdd,NSMul.mk,Nat,Subtype.mk,Eq,HSMul.hSMul,NSMul.nsmul20 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
instance addMonoid [AddMonoid A] [DistribSMul M A] : AddMonoid (FixedPoints M A) where …
Mentions: MulAction.FixedPoints
- instance
MulAction.FixedPoints.addCommMonoidline 102 sourcestandard axioms: propext what this means
Statement uses:
AddCommMonoid,DistribSMul, MulAction.FixedPointsProof uses:
AddMonoid,AddCommMonoid.mk14 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
MulAction.FixedPoints.smul_negshould be in mathlib; current version assumes M a monoid but same proof line 109 sourceSource comment
should be in mathlib; current version assumes M a monoid but same proofstandard axioms: propext what this means
Statement uses:
AddGroup,DistribSMul,Eq,HSMul.hSMul,Neg.negProof uses:
eq_neg_of_add_eq_zero_left,Eq.mpr,HAdd.hAdd,OfNat.ofNat,id,congrArg,Eq.symm,smul_add,neg_add_cancel,smul_zero,Eq.refl29 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem smul_neg [AddGroup A] [DistribSMul M A] (r : M) (x : A) : r • -x = -(r • x) := …
- instance
MulAction.FixedPoints.addGroupline 113 sourcestandard axioms: propext what this means
Statement uses:
AddGroup,DistribSMul, MulAction.FixedPointsProof uses:
AddMonoid,AddGroup.mk,SubNegMonoid.mk,Neg.mk,Subtype.mk,Eq,HSMul.hSMul,Neg.neg,Sub.mk,SubNegMonoid.sub',ZSMul.mk,Int,ZSMul.zsmul,Nat29 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- instance
MulAction.FixedPoints.addCommGroupline 139 sourcestandard axioms: propext what this means
Statement uses:
AddCommGroup,DistribSMul, MulAction.FixedPointsProof uses:
AddGroup,AddCommGroup.mk18 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- instance
MulAction.FixedPoints.moduleline 146 sourcestandard axioms: propext what this means
Statement uses:
CommRing,AddCommGroup,Module,DistribSMul,SMulCommClass, MulAction.FixedPointsProof uses:
Module.mk,DistribMulAction.mk,MulAction.mk,SemigroupAction.mk,SMul.mk,Subtype.mk,Eq,HSMul.hSMul42 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.