3 ms·
```case class Bidual[V](v: V) { def apply(f: Dual[V]) = f(v) } def unwrap[V](ff: Bidual[V]): V = ff.v``` There's both directions of the isomorphism explic
by ndriscoll 2y ago
```case class Bidual[V](v: V) {
def apply(f: Dual[V]) = f(v)
}
def unwrap[V](ff: Bidual[V]): V = ff.v```
There's both directions of the isomorphism explicitly defined in a programming language. No choice of basis needed to define the maps, only to prove that the constructor for Bidual really gives you all linear functionals on the dual.