27
27
from sage .combinat .sf .sf import SymmetricFunctions
28
28
from sage .data_structures .stream import Stream_function , Stream_cauchy_compose
29
29
from sage .functions .other import factorial
30
- from sage .misc .cachefunc import cached_function
30
+ from sage .misc .cachefunc import cached_function , cached_method
31
31
from sage .misc .misc_c import prod
32
32
from sage .rings .infinity import PlusInfinity
33
33
from sage .rings .integer_ring import ZZ
37
37
from sage .sets .non_negative_integers import NonNegativeIntegers
38
38
from sage .structure .sage_object import SageObject
39
39
40
+
40
41
class FermionicFockSpace (CombinatorialFreeModule ):
41
42
r"""
42
43
A model of the Fermionic Fock space `\mathcal{H}_F`. As a vector space, `\mathcal{H}_F`
@@ -61,9 +62,14 @@ def _repr_term(self, m):
61
62
def BosonicFockSpace (names = ('w' ,)):
62
63
return LaurentPolynomialRing (SymmetricFunctions (QQ ).s (), names = names )
63
64
65
+
64
66
def BFMap ():
65
67
r"""
66
-
68
+ Returns a map that compute the image of an element of the Fermionic Fock space
69
+ under the Boson-Fermion correspondence. The basis element `|\lambda, n \rangle`
70
+ gets mapped to `w^ns_\lambda`, where `w` is the charge variable and `s_\lambda`
71
+ is the Schur function corresponding to `\lambda`.
72
+
67
73
TESTS::
68
74
69
75
sage: from sage.algebras.vertex_operators import *
@@ -76,7 +82,8 @@ def BFMap():
76
82
B = BosonicFockSpace ()
77
83
w = B .gen ()
78
84
s = B .base_ring ()
79
- return F .module_morphism (on_basis = lambda b : w ** (b [1 ])* s (b [0 ]), codomain = B )
85
+ return F .module_morphism (on_basis = lambda b : w ** (b [1 ])* s (b [0 ]), codomain = B )
86
+
80
87
81
88
class Current (Action ):
82
89
r"""
@@ -247,6 +254,7 @@ def __init__(self, pos, neg, cutoff=lambda x: max(x.degree(), 1), dcharge=1, foc
247
254
# def act_on_fock_space_element(self, x):
248
255
# return self.spectral(lambda n: self.act_by_mode(n,x), valuation = -1)
249
256
257
+ @cached_method
250
258
def act_by_mode (self , i , x ):
251
259
r"""
252
260
Action of the ``i``'th Fourier mode of ``self`` on element ``x`` of
@@ -349,8 +357,7 @@ def get_monomial_coefficient(self, mon, x):
349
357
350
358
def matrix_coefficient (self , bra , ket , cutoff = 4 ):
351
359
r"""
352
- Approximate the matrix coefficient <bra|X|ket>, where X is the vertex operator
353
- represented by ``self``
360
+ Approximate the matrix coefficient `\langle` ``bra`` `|` ``self`` `|` ``ket`` `\rangle`.
354
361
355
362
INPUT:
356
363
@@ -380,7 +387,9 @@ def matrix_coefficient(self, bra, ket, cutoff=4):
380
387
return res
381
388
382
389
def vacuum_expectation (self , cutoff = 4 ):
383
- """
390
+ r"""
391
+ Computes the matrix coefficient `\langle \varnothing | X | \varnothing \rangle`
392
+
384
393
EXAMPLES::
385
394
386
395
sage: from sage.algebras.vertex_operators import *
@@ -393,14 +402,23 @@ def vacuum_expectation(self, cutoff=4):
393
402
sage: P = ProductOfVertexOperators([Cre, Ann])
394
403
sage: P.vacuum_expectation()
395
404
{(-4, 4): 1, (-3, 3): 1, (-2, 2): 1, (-1, 1): 1}
405
+
406
+ This verifies that, letting `\psi(z), \psi^*(w)` denote the fermionic fields,
407
+ the matrix coefficient of their product is given by `\langle \varnothing | \psi^*(w)\psi^(z)|\varnothing\rangle = \frac{w}{w-z}`
396
408
"""
397
409
return self .matrix_coefficient (([], 0 ), ([], 0 ), cutoff )
398
410
399
411
400
412
class CreationOperator (VertexOperator ):
401
413
r"""
402
- The generating series for (bosonic) creation operators.
403
-
414
+ The image under the boson-fermion correspond of the fermionic field `\psi^*(z)`.
415
+
416
+ Explicitly, the action on the bosonic fock space is given by the series
417
+
418
+ .. MATH::
419
+
420
+ \exp \left( \sum_{j \geq 1} x_j z^j \right) \exp\left(\sum_{j \geq 1} (-dx_j/j)z^{-j}\right)wz^{Q}
421
+
404
422
EXAMPLES::
405
423
406
424
sage: from sage.algebras.vertex_operators import *
@@ -459,11 +477,17 @@ def _repr_(self):
459
477
460
478
class AnnihilationOperator (VertexOperator ):
461
479
r"""
462
- The generating series for (bosonic) annihilation operators.
463
-
480
+ The image under the boson-fermion correspond of the fermionic field `\psi^*(z)`.
481
+
482
+ Explicitly, the action on the bosonic fock space is given by the series
483
+
484
+ .. MATH::
485
+
486
+ \exp \left( \sum_{j \geq 1} -x_j z^j \right) \exp\left(\sum_{j \geq 1} (dx_j/j)z^{-j}\right)z^{-Q}w^{-1}
487
+
464
488
.. WARNING::
465
489
466
- Following the literature, the operator corresponding to the coefficient of
490
+ Following the literature, the operator corresponding to the coefficient of
467
491
`z^i` is `\psi_{-i}`, **not** `\psi_i`.
468
492
469
493
EXAMPLES::
@@ -514,11 +538,11 @@ def _get_operator(self, i, cutoff, c):
514
538
op += self .pos [j + i + c - 1 ]* self .neg [j ]
515
539
return op
516
540
517
- def act_by_clifford_gen (self ,i , x ):
541
+ def act_by_clifford_gen (self , i , x ):
518
542
"""
519
- Action of the coefficient of z^{-i} on Fock space element ``x``.
543
+ Action of the coefficient of ` z^{-i}` on Fock space element ``x``.
520
544
"""
521
545
return self .act_by_mode (- i , x )
522
-
546
+
523
547
def _repr_ (self ):
524
548
return f"The annihilation vertex operator acting on { self .fockspace } "
0 commit comments