feat: Position & momentum unbounded operators#963
feat: Position & momentum unbounded operators#963gloges wants to merge 6 commits intoleanprover-community:masterfrom
Conversation
|
Apologies for not getting to this sooner, but I have been thinking about your PR. I think everything you've done here is reasonable in terms of the existing API and how the literature is written but I wonder if it makes sense for us to change up how /-- The position operators defined on the Schwartz submodule. -/
def positionOperatorSchwartz : schwartzSubmodule d →ₗ[ℂ] schwartzSubmodule d :=
(schwartzEquiv (d := d)) ∘ₗ 𝐱[i].toLinearMap ∘ₗ (schwartzEquiv (d := d)).symmLike I said, why you'd do this makes sense with how things are designed, but needing to use Unfortunately that would delay this PR but I think it might save some headaches in the long run. Does this reasoning make sense, and do you think this would be a productive change? |
|
@morrison-daniel Could you give your suggested definition for UnboundedOperator here? |
I think this change, structure UnboundedOperator ... extends LinearPMap ℂ HS1 HS2 where ...could be done relatively easily, but this wouldn't remove the need to map between Schwartz maps and their |
|
You are correct, I realized what I was suggesting wouldn't actually remove what I wanted to remove. I have a tendency to be overly cautious to whether something is being done in the best way which is overkill at this point... Ignore my previous statement I'll review, but it's already looking pretty good! |
| obtain ⟨_, rfl⟩ := schwartzEquiv_exists ψ | ||
| obtain ⟨_, rfl⟩ := schwartzEquiv_exists ψ' |
There was a problem hiding this comment.
| obtain ⟨_, rfl⟩ := schwartzEquiv_exists ψ | |
| obtain ⟨_, rfl⟩ := schwartzEquiv_exists ψ' | |
| obtain ⟨_, rfl⟩ := schwartzEquiv.surjective ψ | |
| obtain ⟨_, rfl⟩ := schwartzEquiv.surjective ψ' |
|
|
||
| lemma schwartzIncl_injective {d : ℕ} : Function.Injective (schwartzIncl (d := d)) := | ||
| injective_toLp (E := Space d) 2 | ||
| variable {d : ℕ} |
There was a problem hiding this comment.
| variable {d : ℕ} | |
| variable (d : ℕ) |
I wonder if it'd make sense to make this explicit because, while d can be inferred when applying to a specific function, we're using it a lot for operators and need to include (d := d) a lot. I can see it either way, you can choose which you prefer.
You can also decide if you'd like to make the same change on the operators.
| lemma schwartzEquiv_exists (ψ : schwartzSubmodule d) : ∃ f, ψ = schwartzEquiv f := by | ||
| use schwartzEquiv.symm ψ | ||
| exact (LinearEquiv.apply_symm_apply _ _).symm |
There was a problem hiding this comment.
This is basically identical to schwartzEquiv.surjective so I think this is redundant.
| obtain ⟨f, rfl⟩ := schwartzEquiv_exists ψ | ||
| obtain ⟨f', rfl⟩ := schwartzEquiv_exists ψ' |
There was a problem hiding this comment.
| obtain ⟨f, rfl⟩ := schwartzEquiv_exists ψ | |
| obtain ⟨f', rfl⟩ := schwartzEquiv_exists ψ' | |
| obtain ⟨f, rfl⟩ := schwartzEquiv.surjective ψ | |
| obtain ⟨f', rfl⟩ := schwartzEquiv.surjective ψ' |
Continues on from #957 and makes progress on #851.
Introduces
schwartzEquiv, theLinearEquivbetween Schwartz functions and their image in the Hilbert space, along with some basic properties. This bijection is then used to define three symmetric unbounded operators with Schwartz submodule for domain, using the previously-defined continuous linear maps on Schwartz functions. These are the position and momentum unbounded operators, defined component-wise, and the (regularized) radius operator to any real power.There remains one sorry which will have to be revisited. Showing that the momentum operator on Schwartz functions is symmetric requires two results for
Space.deriv: integration-by-parts over all ofSpace dand commutation through complex conjugation.