Skip to content

feat(QM): AddZeroClass for UnboundedOperator#999

Open
gloges wants to merge 3 commits intoleanprover-community:masterfrom
gloges:operators
Open

feat(QM): AddZeroClass for UnboundedOperator#999
gloges wants to merge 3 commits intoleanprover-community:masterfrom
gloges:operators

Conversation

@gloges
Copy link
Contributor

@gloges gloges commented Mar 20, 2026

  • Defines zero as the zero map with full domain.

  • Defines addition of unbounded operators, using two junk values:

    • When D(U1) ∩ D(U2) is not dense, use the zero with full domain.
    • When D(U1) ∩ D(U2) is dense but U1 + U2 is not closable, use the zero map on D(U1) ∩ D(U2).

    This second junk value will be needed so that smul distributes over addition in all cases. It ensures that c • (U1 + U2) = c • U1 + c • U2 holds for (c : ℂ) = 0 when D(U1) ∩ D(U2) is dense, since the RHS is the zero map on D(U1) ∩ D(U2) regardless of whether U1 + U2 is closable or not.

  • add_assoc proves associativity holds when no junk values are encountered

(cf. #957, #978)

@gloges
Copy link
Contributor Author

gloges commented Mar 20, 2026

t-quantum-mechanics

@gloges
Copy link
Contributor Author

gloges commented Mar 20, 2026

RFC

@github-actions github-actions bot added t-quantum-mechanics Quantum mechanics RFC Request for comment labels Mar 20, 2026
Copy link
Member

@jstoobysmith jstoobysmith left a comment

Choose a reason for hiding this comment

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

Looks mainly good to me. Couple of comments

rw [← add_zero U.toLinearPMap]
exact add_toLinearPMap_of_dense_closable (by simp [U.dense_domain]) (by simp [U.is_closable])

lemma add_assoc {U₁ U₂ U₃ : UnboundedOperator H H'}
Copy link
Member

Choose a reason for hiding this comment

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

Could we maybe put some comments on these lemmas. For instance, I think this is the statement that if addition does not give a junk value, then it is associative?

(hD : Dense (U₁.domain ⊓ U₂.domain ⊓ U₃.domain : Set H)) (hC₁₂ : (U₁.1 + U₂.1).IsClosable)
(hC₂₃ : (U₂.1 + U₃.1).IsClosable) : U₁ + U₂ + U₃ = U₁ + (U₂ + U₃) := by
have hD' : Dense (U₁.domain ⊓ (U₂.domain ⊓ U₃.domain) : Set H) := by simp_all [Set.inter_assoc]
have hD₁₂ : Dense (U₁.domain ⊓ U₂.domain : Set H) := Dense.mono Set.inter_subset_left hD
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
have hD₁₂ : Dense (U₁.domain ⊓ U₂.domain : Set H) := Dense.mono Set.inter_subset_left hD
have hD₁₂ : Dense (U₁.domain ⊓ U₂.domain : Set H) := hD.mono Set.inter_subset_left

Copy link
Member

Choose a reason for hiding this comment

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

etc.

@jstoobysmith
Copy link
Member

awaiting-author

@github-actions github-actions bot added the awaiting-author A reviewer has asked the author a question or requested changes label Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-author A reviewer has asked the author a question or requested changes RFC Request for comment t-quantum-mechanics Quantum mechanics

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants