Continuous perfect pairings #
This file defines continuous perfect pairings.
For a topological ring R
and two topological modules M
and N
, a continuous perfect pairing is
a continuous bilinear map M × N → R
that is bijective in both arguments.
We require continuity in the forward direction only so that we can put several different topologies
on the continuous dual (e.g., strong, weak, weak-*). For example, if M
is weakly reflexive then
there is a continuous perfect pairing between M
and WeakDual R M
, even though the map
WeakDual R M ≃ₗ[R] (M →L[R] R)
(where M →L[R] R
is equipped with its strong topology) is not in
general a homeomorphism.
TODO #
Adapt PerfectPairing
to this Prop-valued typeclass paradigm
For a topological ring R
and two topological modules M
and N
, a continuous perfect pairing
is a continuous bilinear map M × N → R
that is bijective in both arguments.
We require continuity in the forward direction only so that we can put several different topologies on the continuous dual: strong, weak, weak-* topology...
- continuous_uncurry : Continuous fun (x : M × N) => match x with | (x, y) => (p x) y
- bijective_left : Function.Bijective fun (x : M) => { toLinearMap := p x, cont := ⋯ }
- bijective_right : Function.Bijective fun (y : N) => { toLinearMap := p.flip y, cont := ⋯ }
Instances
Given a perfect pairing between M
and N
, we may interchange the roles of M
and N
.
Turn a continuous perfect pairing between M
and N
into a map from M
to continuous linear
maps N → R
.
Equations
- p.toContPerfPair = LinearEquiv.ofBijective { toFun := fun (x : M) => { toLinearMap := p x, cont := ⋯ }, map_add' := ⋯, map_smul' := ⋯ } ⋯