Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: quantale homomorphisms #19291

Open
wants to merge 103 commits into
base: master
Choose a base branch
from

Conversation

PieterCuijpers
Copy link
Collaborator

@PieterCuijpers PieterCuijpers commented Nov 20, 2024

Definition of quantale homomorphisms as functions that are both semigroup homomorphisms and complete lattice homomorphisms.


Open in Gitpod

PieterCuijpers and others added 30 commits September 24, 2024 16:00
Different bullet style

Co-authored-by: Jireh Loreaux <[email protected]>
Style change, including 'left'

Co-authored-by: Jireh Loreaux <[email protected]>
…esiduation to solve doc-string problem in to_additive.
…ify all derived classes. Turned IsIntegral into a mix-in, removed Comm- and Idem- classes as they are now moved to semigroups.
@github-actions github-actions bot added new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-algebra Algebra (groups, rings, fields, etc) labels Nov 20, 2024
Copy link

github-actions bot commented Nov 20, 2024

PR summary 5189bc2bfd

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Algebra.Order.Hom.Quantale (new file) 423

Declarations diff

+ AddQuantaleHom
+ QuantaleHom
+ coe_MulHom
+ coe_QuantaleHom
+ coe_SupBotHom
+ coe_mk
+ coe_orderHom
+ ext
+ instance : FunLike (α →ₙ*q β) α β
+ instance : MulHomClass (α →ₙ*q β) α β
+ instance : sSupHomClass (α →ₙ*q β) α β
+ instance [MulHomClass F α β] [sSupHomClass F α β] : CoeTC F (α →ₙ*q β)
+ mk_coe
+ toFun_eq_coe
+ toMulHom_injective
+ toOrderHom
+ toOrderHom_injective
+ toQuantaleHom_injective
+ toSupBotHom
++ toQuantaleHom

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@YaelDillies YaelDillies changed the title Quantale homomorphisms feat: quantale homomorphisms Nov 20, 2024
Mathlib/Algebra/Group/IsIdem.lean Outdated Show resolved Hide resolved
Mathlib/Algebra/Order/Hom/Quantale.lean Outdated Show resolved Hide resolved
PieterCuijpers and others added 17 commits November 20, 2024 17:19
Don't know what went wrong on the merge. But now it's gone.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ile.

Added QuantaleHom definitions.

Note that the doc_strings speak of `AddQuantale` and `Quantale` in anticipation of the variable_alias.
… (Renaming to OrderMulIso should be considered.)
… on Mul. Added proof that any OrderMonoidIso is a QuantaleHom
…r PR.

Added a number of theorems inspired by MonoidHom, but frankly I don't understand what I'm doing there yet.
Comment on lines +154 to +156
theorem mk_coe (f : α →ₙ*q β) (h) : QuantaleHom.mk (f : α →ₙ* β) h = f := by
ext
rfl
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
theorem mk_coe (f : α →ₙ*q β) (h) : QuantaleHom.mk (f : α →ₙ* β) h = f := by
ext
rfl
theorem mk_coe (f : α →ₙ*q β) (h) : QuantaleHom.mk (f : α →ₙ* β) h = f := rfl

Comment on lines +158 to +181
/-- Reinterpret a quantale homomorphism as a supsemilattice homomorphism-/
@[to_additive "Reinterpret an additive quantale homomorphism as a supsemilattice homomorphism."]
def toSupBotHom (f : α →ₙ*q β) : SupBotHom α β where
toFun := f
map_sup':= sSupHomClass.toSupBotHomClass.map_sup f
map_bot':= sSupHomClass.toSupBotHomClass.map_bot f

@[to_additive (attr := simp)]
theorem coe_SupBotHom (f : α →ₙ*q β) : ((f : SupBotHom α β) : α → β) = f :=
rfl

/-- Reinterpret a quantale homomorphism as an order homomorphism. -/
@[to_additive "Reinterpret an additive quantale homomorphism as an order homomorphism."]
def toOrderHom (f : α →ₙ*q β) : α →o β where
toFun := f
monotone' := by
-- This should not be so elaborate, what am I overlooking? --
intro x y h
apply le_of_sup_eq
rw [← (f : SupBotHom α β).map_sup']
dsimp only [toFun_eq_coe]
congr
apply sup_of_le_right
exact h
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you actually need these definitions? They come automatically from sSupHomClass.toSupBotHomClass and alike

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-algebra Algebra (groups, rings, fields, etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants