This module defines the class ManinSymbol. A Manin Symbol of weight , level has the form where is homogeneous of weight and The ManinSymbol class holds a “monomial Manin Symbol” of the simpler form , which is stored as a triple ; the weight and level are obtained from the parent structure, which is a ManinSymbolList.
Integer matrices act on Manin Symbols on the right, sending to . Diagonal matrices (with , such as and ) and anti-diagonal matrices (with , such as ) map monomial Manin Symbols to monomial Manin Symbols, up to a scalar factor. For general matrices (such as and ) the image of a monomial Manin Symbol is expressed as a formal sum of monomial Manin Symbols, with integer coefficients.
There are various different classes holding lists of Manin symbols of different types. The hierarchy is as follows:
class ManinSymbolList(SageObject)
class ManinSymbolList_group(ManinSymbolList)
class ManinSymbolList_gamma0(ManinSymbolList_group)
class ManinSymbolList_gamma1(ManinSymbolList_group)
class ManinSymbolList_gamma_h(ManinSymbolList_group)
class ManinSymbolList_character(ManinSymbolList)
Bases: sage.structure.sage_object.SageObject
A Manin symbol .
INPUT:
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,2)
sage: s = ManinSymbol(m,(2,2,3)); s
(2,3)
sage: s == loads(dumps(s))
True
::
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3)); s
[X^2*Y^4,(2,3)]
Return the image of self under the matrix .
Not implemented for raw ManinSymbol objects, only for members of ManinSymbolLists.
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,2)
sage: m.apply(10,[1,0,0,1]) # not implemented for base class
Returns cusps , such that this Manin symbol, viewed as a symbol for level , is .
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3)); s
[X^2*Y^4,(2,3)]
sage: s.endpoints()
(1/3, 1/2)
Return the field of this ManinSymbol .
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s._ManinSymbol__get_i()
2
sage: s.i
2
Return the level of this ManinSymbol.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s.level()
5
Returns a lift of this Manin Symbol to .
If this Manin symbol is and is its level, this function returns a list that defines a 2x2 matrix with determinant 1 and integer entries, such that (mod ) and (mod ).
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s
[X^2*Y^4,(2,3)]
sage: s.lift_to_sl2z()
[1, 1, 2, 3]
Returns a representation of self as a formal sum of modular symbols.
The result is not cached.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s.modular_symbol_rep()
144*X^6*{1/3, 1/2} - 384*X^5*Y*{1/3, 1/2} + 424*X^4*Y^2*{1/3, 1/2} - 248*X^3*Y^3*{1/3, 1/2} + 81*X^2*Y^4*{1/3, 1/2} - 14*X*Y^5*{1/3, 1/2} + Y^6*{1/3, 1/2}
Return the parent of this ManinSymbol.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s.parent()
Manin Symbol List of weight 8 for Gamma0(5)
Return the 3-tuple of this ManinSymbol.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s.tuple()
(2, 2, 3)
Return the field of this ManinSymbol .
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s.u # indirect doctest
2
Return the field of this ManinSymbol .
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s.v # indirect doctest
3
Return the weight of this ManinSymbol.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: s = ManinSymbol(m,(2,2,3))
sage: s.weight()
8
Bases: sage.structure.sage_object.SageObject
Base class for lists of all Manin symbols for a given weight, group or character.
Apply the matrix to the -th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.apply(10, [1,2,0,1])
...
NotImplementedError: Only implemented in derived classes
Apply the matrix to the -th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.apply_I(10)
...
NotImplementedError: Only implemented in derived classes
Apply the matrix to the -th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.apply_S(10)
...
NotImplementedError: Only implemented in derived classes
Apply the matrix to the -th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.apply_T(10)
...
NotImplementedError: Only implemented in derived classes
Apply the matrix to the -th Manin symbol.
Implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.apply_TT(10)
...
NotImplementedError: Only implemented in derived classes
Return the index of x in the list of Manin symbols, where x is a 3-tuple of ints. If x is not in the list, then return -1.
INPUT:
OUTPUT:
(int) the index of the normalized Manin symbol equivalent to .
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.index(m[2])
2
sage: all([i == m.index(m[i]) for i in xrange(len(m))])
True
Returns the i’th ManinSymbol in this ManinSymbolList.
INPUT:
OUTPUT:
ManinSymbol - the ‘th Manin symbol in the list.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.manin_symbol(3) # not implemented for base class
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(6, 4)
sage: s = m.manin_symbol(3); s
[Y^2,(1,2)]
sage: type(s)
<class 'sage.modular.modsym.manin_symbols.ManinSymbol'>
Returns all the ManinSymbols in this ManinSymbolList as a list
Cached for subsequent calls.
OUTPUT:
a list of ManinSymbol objects, which is a copy of the complete list of Manin symbols.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.manin_symbol_list() # not implemented for the base class
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(6, 4)
sage: m.manin_symbol_list()
[[Y^2,(0,1)],
[Y^2,(1,0)],
[Y^2,(1,1)],
...
[X^2,(3,1)],
[X^2,(3,2)]]
Returns a normalized ManinSymbol from x.
To be implemented in derived classes.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList
sage: m = ManinSymbolList(6,P1List(11))
sage: m.normalize((0,6,7)) # not implemented in base class
Returns the weight of the ManinSymbols in this ManinSymbolList.
OUTPUT:
integer - the weight of the Manin symbols in the list.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(6, 4)
sage: m.weight()
4
Bases: sage.modular.modsym.manin_symbols.ManinSymbolList
List of Manin Symbols with character.
INPUT:
EXAMPLE:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,2); m
Manin Symbol List of weight 2 for Gamma1(4) with character [-1]
sage: m.manin_symbol_list()
[(0,1), (1,0), (1,1), (1,2), (1,3), (2,1)]
sage: m == loads(dumps(m))
True
Apply the integer matrix to the -th Manin symbol.
INPUT:
OUTPUT:
A list of pairs , where each is an integer, is an integer (the -th Manin symbol), and the sum is the image of self under the right action of the matrix . Here the right action of on a Manin symbol is by definition .
EXAMPLES:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,4)
sage: m[6]
(1, 0, 1)
sage: m.apply(4, [1,0,0,1])
[(4, 1)]
sage: m.apply(1, [-1,0,0,1])
[(1, -1)]
Apply the matrix to the -th Manin symbol.
INPUT:
OUTPUT:
(k, s) where is the index of the symbol obtained by acting on the ‘th symbol with , and is the parity of of the ‘th symbol.
EXAMPLE:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,2); m
Manin Symbol List of weight 2 for Gamma1(4) with character [-1]
sage: m.apply_I(4)
(2, -1)
sage: [m.apply_I(i) for i in xrange(len(m))]
[(0, 1), (1, -1), (4, -1), (3, -1), (2, -1), (5, 1)]
Apply the matrix to the -th Manin symbol.
INPUT:
OUTPUT:
(k, s) where is the index of the symbol obtained by acting on the ‘th symbol with , and is the parity of of the ‘th symbol.
EXAMPLE:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,2); m
Manin Symbol List of weight 2 for Gamma1(4) with character [-1]
sage: m.apply_S(4)
(2, -1)
sage: [m.apply_S(i) for i in xrange(len(m))]
[(1, 1), (0, -1), (4, 1), (5, -1), (2, -1), (3, 1)]
Apply the matrix to the j-th Manin symbol.
INPUT:
OUTPUT:
A list of pairs , where each is an integer, is an integer (the -th Manin symbol), and the sum is the image of self under the right action of the matrix .
EXAMPLE:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,2); m
Manin Symbol List of weight 2 for Gamma1(4) with character [-1]
sage: m.apply_T(4)
[(1, -1)]
sage: [m.apply_T(i) for i in xrange(len(m))]
[[(4, 1)], [(0, -1)], [(3, 1)], [(5, 1)], [(1, -1)], [(2, 1)]]
Apply the matrix to the -th Manin symbol.
INPUT:
OUTPUT:
A list of pairs , where each is an integer, is an integer (the -th Manin symbol), and the sum is the image of self under the right action of the matrix .
EXAMPLE:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,2); m
Manin Symbol List of weight 2 for Gamma1(4) with character [-1]
sage: m.apply_TT(4)
[(0, 1)]
sage: [m.apply_TT(i) for i in xrange(len(m))]
[[(1, -1)], [(4, -1)], [(5, 1)], [(2, 1)], [(0, 1)], [(3, 1)]]
Return the character of this ManinSymbolList_character object.
OUTPUT:
The Dirichlet character of this Manin symbol list.
EXAMPLE:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,2); m
Manin Symbol List of weight 2 for Gamma1(4) with character [-1]
sage: m.character()
Dirichlet character modulo 4 of conductor 4 mapping 3 |--> -1
Returns the index in the list of standard Manin symbols of a symbol that is equivalent, modulo a scalar , to x. Returns the index and the scalar.
If x is not in the list, return (-1, 0).
INPUT:
OUTPUT:
(i, s) where i (int) is the index of the Manin symbol equivalent to (or -1) and s is the scalar (an element of the base field) or the int 0.
EXAMPLE:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,4); m
Manin Symbol List of weight 4 for Gamma1(4) with character [-1]
sage: [m.index(s.tuple()) for s in m.manin_symbol_list()]
[(0, 1),
(1, 1),
(2, 1),
(3, 1),
...
(16, 1),
(17, 1)]
Return the level of this ManinSymbolList.
OUTPUT:
integer - the level of the symbols in this list.
EXAMPLES:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: ManinSymbolList_character(eps,4).level()
4
Returns the normalization of the Manin Symbol x with respect to this list, together with the normalizing scalar.
INPUT:
OUTPUT:
((i,u,v),s), where (i,u,v) is the normalized Manin symbol equivalent to x, and s is the normalizing scalar.
EXAMPLE:
sage: eps = DirichletGroup(4).gen(0)
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_character
sage: m = ManinSymbolList_character(eps,4); m
Manin Symbol List of weight 4 for Gamma1(4) with character [-1]
sage: [m.normalize(s.tuple()) for s in m.manin_symbol_list()]
[((0, 0, 1), 1),
((0, 1, 0), 1),
((0, 1, 1), 1),
...
((2, 1, 3), 1),
((2, 2, 1), 1)]
Bases: sage.modular.modsym.manin_symbols.ManinSymbolList_group
Class for Manin Symbols for .
INPUT:
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,2); m
Manin Symbol List of weight 2 for Gamma0(5)
sage: m.manin_symbol_list()
[(0,1), (1,0), (1,1), (1,2), (1,3), (1,4)]
sage: m = ManinSymbolList_gamma0(6,4); m
Manin Symbol List of weight 4 for Gamma0(6)
sage: len(m)
36
Bases: sage.modular.modsym.manin_symbols.ManinSymbolList_group
Class for Manin Symbols for .
INPUT:
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma1
sage: m = ManinSymbolList_gamma1(5,2); m
Manin Symbol List of weight 2 for Gamma1(5)
sage: m.manin_symbol_list()
[(0,1),
(0,2),
(0,3),
...
(4,3),
(4,4)]
sage: m = ManinSymbolList_gamma1(6,4); m
Manin Symbol List of weight 4 for Gamma1(6)
sage: len(m)
72
sage: m == loads(dumps(m))
True
Bases: sage.modular.modsym.manin_symbols.ManinSymbolList_group
Class for Manin Symbols for .
INPUT:
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma_h
sage: G = GammaH(117, [4])
sage: m = ManinSymbolList_gamma_h(G,2); m
Manin Symbol List of weight 2 for Congruence Subgroup Gamma_H(117) with H generated by [4]
sage: m.manin_symbol_list()[100:110]
[(1,88),
(1,89),
(1,90),
(1,91),
(1,92),
(1,93),
(1,94),
(1,95),
(1,96),
(1,97)]
sage: len(m.manin_symbol_list())
2016
sage: m == loads(dumps(m))
True
Return the group associated to self.
EXAMPLES:
sage: ModularSymbols(GammaH(12, [5]), 2).manin_symbols().group()
Congruence Subgroup Gamma_H(12) with H generated by [5]
Bases: sage.modular.modsym.manin_symbols.ManinSymbolList
Base class for Manin symbol lists for a given group.
INPUT:
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_group
sage: ManinSymbolList_group(11, 2, P1List(11))
<class 'sage.modular.modsym.manin_symbols.ManinSymbolList_group'>
Apply the matrix to the -th Manin symbol.
INPUT:
OUTPUT:
a list of pairs , where each is a nonzero integer, is an integer (index of the -th Manin symbol), and is the image of the j-th Manin symbol under the right action of the matrix [a,b;c,d]. Here the right action of g=[a,b;c,d] on a Manin symbol is .
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: m.apply(40,[2,3,1,1])
[(0, 729), (6, 2916), (12, 4860), (18, 4320), (24, 2160), (30, 576), (36, 64)]
Apply the matrix to the -th Manin symbol.
INPUT:
OUTPUT:
(k, s) where k is the index of the symbol obtained by acting on the ‘th symbol with , and is the parity of of the ‘th symbol (a Python int, either 1 or -1)
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: m.apply_I(4)
(3, 1)
sage: [m.apply_I(i) for i in xrange(10)]
[(0, 1),
(1, 1),
(5, 1),
(4, 1),
(3, 1),
(2, 1),
(6, -1),
(7, -1),
(11, -1),
(10, -1)]
Apply the matrix to the -th Manin symbol.
INPUT:
OUTPUT:
(k, s) where k is the index of the symbol obtained by acting on the ‘th symbol with , and is the parity of of the ‘th symbol (a Python int, either 1 or -1).
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: m.apply_S(4)
(40, 1)
sage: [m.apply_S(i) for i in xrange(len(m))]
[(37, 1),
(36, 1),
(41, 1),
(39, 1),
(40, 1),
(38, 1),
(31, -1),
(30, -1),
(35, -1),
(33, -1),
(34, -1),
(32, -1),
...
(4, 1),
(2, 1)]
Apply the matrix to the -th Manin symbol.
INPUT:
OUTPUT: see documentation for apply()
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: m.apply_T(4)
[(3, 1), (9, -6), (15, 15), (21, -20), (27, 15), (33, -6), (39, 1)]
sage: [m.apply_T(i) for i in xrange(10)]
[[(5, 1), (11, -6), (17, 15), (23, -20), (29, 15), (35, -6), (41, 1)],
[(0, 1), (6, -6), (12, 15), (18, -20), (24, 15), (30, -6), (36, 1)],
[(4, 1), (10, -6), (16, 15), (22, -20), (28, 15), (34, -6), (40, 1)],
[(2, 1), (8, -6), (14, 15), (20, -20), (26, 15), (32, -6), (38, 1)],
[(3, 1), (9, -6), (15, 15), (21, -20), (27, 15), (33, -6), (39, 1)],
[(1, 1), (7, -6), (13, 15), (19, -20), (25, 15), (31, -6), (37, 1)],
[(5, 1), (11, -5), (17, 10), (23, -10), (29, 5), (35, -1)],
[(0, 1), (6, -5), (12, 10), (18, -10), (24, 5), (30, -1)],
[(4, 1), (10, -5), (16, 10), (22, -10), (28, 5), (34, -1)],
[(2, 1), (8, -5), (14, 10), (20, -10), (26, 5), (32, -1)]]
Apply the matrix to the -th Manin symbol.
INPUT:
OUTPUT: see documentation for apply()
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: m.apply_TT(4)
[(38, 1)]
sage: [m.apply_TT(i) for i in xrange(10)]
[[(37, 1)],
[(41, 1)],
[(39, 1)],
[(40, 1)],
[(38, 1)],
[(36, 1)],
[(31, -1), (37, 1)],
[(35, -1), (41, 1)],
[(33, -1), (39, 1)],
[(34, -1), (40, 1)]]
Return the level of this ManinSymbolList.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: ManinSymbolList_gamma0(5,2).level()
5
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma1
sage: ManinSymbolList_gamma1(51,2).level()
51
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma_h
sage: ManinSymbolList_gamma_h(GammaH(117, [4]),2).level()
117
Returns the normalization of the ModSym x with respect to this list.
INPUT:
OUTPUT:
(i,u,v) - (3-tuple of ints) another tuple defining the associated normalized ManinSymbol.
EXAMPLE:
sage: from sage.modular.modsym.manin_symbols import ManinSymbolList_gamma0
sage: m = ManinSymbolList_gamma0(5,8)
sage: [m.normalize(s.tuple()) for s in m.manin_symbol_list()][:10]
[(0, 0, 1),
(0, 1, 0),
(0, 1, 1),
(0, 1, 2),
(0, 1, 3),
(0, 1, 4),
(1, 0, 1),
(1, 1, 0),
(1, 1, 1),
(1, 1, 2)]
Returns True if x is a ManinSymbol.
EXAMPLES:
sage: from sage.modular.modsym.manin_symbols import ManinSymbol, ManinSymbolList_gamma0, is_ManinSymbol
sage: m = ManinSymbolList_gamma0(6, 4)
sage: is_ManinSymbol(m[3])
False
sage: s = ManinSymbol(m,m[3])
sage: s
[Y^2,(1,2)]
sage: is_ManinSymbol(s)
True