@@ -574,7 +574,7 @@ def dual(self):
574
574
sage: H.is_isomorphic( H.dual() ) # optional - sage.combinat
575
575
False
576
576
"""
577
- H = self .reverse ()
577
+ H = self .reverse (immutable = False )
578
578
H .relabel (perm = list (range (H .num_verts () - 1 , - 1 , - 1 )), inplace = True )
579
579
return HasseDiagram (H )
580
580
@@ -1068,28 +1068,27 @@ def moebius_function_matrix(self, algorithm='cython'):
1068
1068
1069
1069
TESTS::
1070
1070
1071
- sage: H.moebius_function_matrix().is_immutable() # optional - sage.libs.flint sage.modules
1071
+ sage: # needs sage.modules sage.libs.flint
1072
+ sage: H.moebius_function_matrix().is_immutable()
1072
1073
True
1073
- sage: hasattr(H,'_moebius_function_matrix') # optional - sage.libs.flint sage.modules
1074
+ sage: hasattr(H,'_moebius_function_matrix')
1074
1075
True
1075
-
1076
- sage: H.moebius_function == H._moebius_function_from_matrix # optional - sage.libs.flint sage.modules
1076
+ sage: H.moebius_function == H._moebius_function_from_matrix
1077
1077
True
1078
-
1079
1078
sage: H = posets.TamariLattice(3)._hasse_diagram
1080
- sage: M = H.moebius_function_matrix('matrix'); M # optional - sage.modules
1079
+ sage: M = H.moebius_function_matrix('matrix'); M
1081
1080
[ 1 -1 -1 0 1]
1082
1081
[ 0 1 0 0 -1]
1083
1082
[ 0 0 1 -1 0]
1084
1083
[ 0 0 0 1 -1]
1085
1084
[ 0 0 0 0 1]
1086
- sage: _ = H.__dict__.pop('_moebius_function_matrix') # optional - sage.modules
1087
- sage: H.moebius_function_matrix('cython') == M # optional - sage.libs.flint sage.modules
1085
+ sage: _ = H.__dict__.pop('_moebius_function_matrix')
1086
+ sage: H.moebius_function_matrix('cython') == M
1088
1087
True
1089
- sage: _ = H.__dict__.pop('_moebius_function_matrix') # optional - sage.libs.flint sage.modules
1090
- sage: H.moebius_function_matrix('recursive') == M # optional - sage.modules
1088
+ sage: _ = H.__dict__.pop('_moebius_function_matrix')
1089
+ sage: H.moebius_function_matrix('recursive') == M
1091
1090
True
1092
- sage: _ = H.__dict__.pop('_moebius_function_matrix') # optional - sage.modules
1091
+ sage: _ = H.__dict__.pop('_moebius_function_matrix')
1093
1092
sage: H.moebius_function_matrix('banana')
1094
1093
Traceback (most recent call last):
1095
1094
...
@@ -1160,25 +1159,27 @@ def coxeter_transformation(self, algorithm='cython'):
1160
1159
1161
1160
EXAMPLES::
1162
1161
1163
- sage: P = posets.PentagonPoset()._hasse_diagram # optional - sage.modules
1164
- sage: M = P.coxeter_transformation(); M # optional - sage.libs.flint sage.modules
1162
+ sage: # needs sage.libs.flint sage.modules
1163
+ sage: P = posets.PentagonPoset()._hasse_diagram
1164
+ sage: M = P.coxeter_transformation(); M
1165
1165
[ 0 0 0 0 -1]
1166
1166
[ 0 0 0 1 -1]
1167
1167
[ 0 1 0 0 -1]
1168
1168
[-1 1 1 0 -1]
1169
1169
[-1 1 0 1 -1]
1170
- sage: P.__dict__['coxeter_transformation'].clear_cache() # optional - sage.libs.flint sage.modules
1171
- sage: P.coxeter_transformation(algorithm="matrix") == M # optional - sage.libs.flint sage.modules
1170
+ sage: P.__dict__['coxeter_transformation'].clear_cache()
1171
+ sage: P.coxeter_transformation(algorithm="matrix") == M
1172
1172
True
1173
1173
1174
1174
TESTS::
1175
1175
1176
- sage: P = posets.PentagonPoset()._hasse_diagram # optional - sage.modules
1177
- sage: M = P.coxeter_transformation() # optional - sage.libs.flint sage.modules
1178
- sage: M**8 == 1 # optional - sage.libs.flint sage.modules
1176
+ sage: # needs sage.libs.flint sage.modules
1177
+ sage: P = posets.PentagonPoset()._hasse_diagram
1178
+ sage: M = P.coxeter_transformation()
1179
+ sage: M**8 == 1
1179
1180
True
1180
- sage: P.__dict__['coxeter_transformation'].clear_cache() # optional - sage.libs.flint sage.modules
1181
- sage: P.coxeter_transformation(algorithm="banana") # optional - sage.libs.flint sage.modules
1181
+ sage: P.__dict__['coxeter_transformation'].clear_cache()
1182
+ sage: P.coxeter_transformation(algorithm="banana")
1182
1183
Traceback (most recent call last):
1183
1184
...
1184
1185
ValueError: unknown algorithm
@@ -2222,24 +2223,22 @@ def antichains_iterator(self):
2222
2223
2223
2224
EXAMPLES::
2224
2225
2225
- sage: P = posets.PentagonPoset() # optional - sage.modules
2226
- sage: H = P._hasse_diagram # optional - sage.modules
2227
- sage: H.antichains_iterator() # optional - sage.modules
2226
+ sage: # needs sage.modules
2227
+ sage: P = posets.PentagonPoset()
2228
+ sage: H = P._hasse_diagram
2229
+ sage: H.antichains_iterator()
2228
2230
<generator object ...antichains_iterator at ...>
2229
- sage: list(H.antichains_iterator()) # optional - sage.modules
2231
+ sage: list(H.antichains_iterator())
2230
2232
[[], [4], [3], [2], [1], [1, 3], [1, 2], [0]]
2231
-
2232
2233
sage: from sage.combinat.posets.hasse_diagram import HasseDiagram
2233
2234
sage: H = HasseDiagram({0:[1,2],1:[4],2:[3],3:[4]})
2234
- sage: list(H.antichains_iterator()) # optional - sage.modules
2235
+ sage: list(H.antichains_iterator())
2235
2236
[[], [4], [3], [2], [1], [1, 3], [1, 2], [0]]
2236
-
2237
2237
sage: H = HasseDiagram({0:[],1:[],2:[]})
2238
- sage: list(H.antichains_iterator()) # optional - sage.modules
2238
+ sage: list(H.antichains_iterator())
2239
2239
[[], [2], [1], [1, 2], [0], [0, 2], [0, 1], [0, 1, 2]]
2240
-
2241
2240
sage: H = HasseDiagram({0:[1],1:[2],2:[3],3:[4]})
2242
- sage: list(H.antichains_iterator()) # optional - sage.modules
2241
+ sage: list(H.antichains_iterator())
2243
2242
[[], [4], [3], [2], [1], [0]]
2244
2243
2245
2244
TESTS::
@@ -2279,12 +2278,13 @@ def are_incomparable(self, i, j):
2279
2278
2280
2279
EXAMPLES::
2281
2280
2282
- sage: P = posets.PentagonPoset() # optional - sage.modules
2283
- sage: H = P._hasse_diagram # optional - sage.modules
2284
- sage: H.are_incomparable(1,2) # optional - sage.modules
2281
+ sage: # needs sage.modules
2282
+ sage: P = posets.PentagonPoset()
2283
+ sage: H = P._hasse_diagram
2284
+ sage: H.are_incomparable(1,2)
2285
2285
True
2286
- sage: V = H.vertices(sort=True) # optional - sage.modules
2287
- sage: [ (i,j) for i in V for j in V if H.are_incomparable(i,j)] # optional - sage.modules
2286
+ sage: V = H.vertices(sort=True)
2287
+ sage: [ (i,j) for i in V for j in V if H.are_incomparable(i,j)]
2288
2288
[(1, 2), (1, 3), (2, 1), (3, 1)]
2289
2289
"""
2290
2290
if i == j :
@@ -2304,12 +2304,13 @@ def are_comparable(self, i, j):
2304
2304
2305
2305
EXAMPLES::
2306
2306
2307
- sage: P = posets.PentagonPoset() # optional - sage.modules
2308
- sage: H = P._hasse_diagram # optional - sage.modules
2309
- sage: H.are_comparable(1,2) # optional - sage.modules
2307
+ sage: # needs sage.modules
2308
+ sage: P = posets.PentagonPoset()
2309
+ sage: H = P._hasse_diagram
2310
+ sage: H.are_comparable(1,2)
2310
2311
False
2311
- sage: V = H.vertices(sort=True) # optional - sage.modules
2312
- sage: [ (i,j) for i in V for j in V if H.are_comparable(i,j)] # optional - sage.modules
2312
+ sage: V = H.vertices(sort=True)
2313
+ sage: [ (i,j) for i in V for j in V if H.are_comparable(i,j)]
2313
2314
[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 4),
2314
2315
(2, 0), (2, 2), (2, 3), (2, 4), (3, 0), (3, 2), (3, 3), (3, 4),
2315
2316
(4, 0), (4, 1), (4, 2), (4, 3), (4, 4)]
@@ -2331,26 +2332,27 @@ def antichains(self, element_class=list):
2331
2332
2332
2333
EXAMPLES::
2333
2334
2334
- sage: P = posets.PentagonPoset() # optional - sage.modules
2335
- sage: H = P._hasse_diagram # optional - sage.modules
2336
- sage: A = H.antichains() # optional - sage.modules
2337
- sage: list(A) # optional - sage.modules
2335
+ sage: # needs sage.modules
2336
+ sage: P = posets.PentagonPoset()
2337
+ sage: H = P._hasse_diagram
2338
+ sage: A = H.antichains()
2339
+ sage: list(A)
2338
2340
[[], [0], [1], [1, 2], [1, 3], [2], [3], [4]]
2339
- sage: A.cardinality() # optional - sage.modules
2341
+ sage: A.cardinality()
2340
2342
8
2341
- sage: [1,3] in A # optional - sage.modules
2343
+ sage: [1,3] in A
2342
2344
True
2343
- sage: [1,4] in A # optional - sage.modules
2345
+ sage: [1,4] in A
2344
2346
False
2345
2347
2346
2348
TESTS::
2347
2349
2348
- sage: TestSuite(A).run() # optional - sage.modules
2349
-
2350
- sage: A = Poset()._hasse_diagram.antichains() # optional - sage.modules
2351
- sage: list(A) # optional - sage.modules
2350
+ sage: # needs sage.modules
2351
+ sage: TestSuite(A).run()
2352
+ sage: A = Poset()._hasse_diagram.antichains()
2353
+ sage: list(A)
2352
2354
[[]]
2353
- sage: TestSuite(A).run() # optional - sage.modules
2355
+ sage: TestSuite(A).run()
2354
2356
"""
2355
2357
from sage .combinat .subsets_pairwise import PairwiseCompatibleSubsets
2356
2358
return PairwiseCompatibleSubsets (self .vertices (sort = True ),
@@ -2382,23 +2384,25 @@ def chains(self, element_class=list, exclude=None, conversion=None):
2382
2384
2383
2385
EXAMPLES::
2384
2386
2385
- sage: P = posets.PentagonPoset() # optional - sage.modules
2386
- sage: H = P._hasse_diagram # optional - sage.modules
2387
- sage: A = H.chains() # optional - sage.modules
2388
- sage: list(A) # optional - sage.modules
2387
+ sage: # needs sage.modules
2388
+ sage: P = posets.PentagonPoset()
2389
+ sage: H = P._hasse_diagram
2390
+ sage: A = H.chains()
2391
+ sage: list(A)
2389
2392
[[], [0], [0, 1], [0, 1, 4], [0, 2], [0, 2, 3], [0, 2, 3, 4], [0, 2, 4],
2390
2393
[0, 3], [0, 3, 4], [0, 4], [1], [1, 4], [2], [2, 3], [2, 3, 4], [2, 4],
2391
2394
[3], [3, 4], [4]]
2392
- sage: A.cardinality() # optional - sage.modules
2395
+ sage: A.cardinality()
2393
2396
20
2394
- sage: [1,3] in A # optional - sage.modules
2397
+ sage: [1,3] in A
2395
2398
False
2396
- sage: [1,4] in A # optional - sage.modules
2399
+ sage: [1,4] in A
2397
2400
True
2398
2401
2399
2402
One can exclude some vertices::
2400
2403
2401
- sage: list(H.chains(exclude=[4, 3])) # optional - sage.modules
2404
+ sage: # needs sage.modules
2405
+ sage: list(H.chains(exclude=[4, 3]))
2402
2406
[[], [0], [0, 1], [0, 2], [1], [2]]
2403
2407
2404
2408
The ``element_class`` keyword determines how the chains are
@@ -2426,16 +2430,16 @@ def is_linear_interval(self, t_min, t_max) -> bool:
2426
2430
This means that this interval is a total order.
2427
2431
2428
2432
EXAMPLES::
2429
-
2430
- sage: P = posets.PentagonPoset() # optional - sage.modules
2431
- sage: H = P._hasse_diagram # optional - sage.modules
2432
- sage: H.is_linear_interval(0, 4) # optional - sage.modules
2433
+ sage: # needs sage.modules
2434
+ sage: P = posets.PentagonPoset()
2435
+ sage: H = P._hasse_diagram
2436
+ sage: H.is_linear_interval(0, 4)
2433
2437
False
2434
- sage: H.is_linear_interval(0, 3) # optional - sage.modules
2438
+ sage: H.is_linear_interval(0, 3)
2435
2439
True
2436
- sage: H.is_linear_interval(1, 3) # optional - sage.modules
2440
+ sage: H.is_linear_interval(1, 3)
2437
2441
False
2438
- sage: H.is_linear_interval(1, 1) # optional - sage.modules
2442
+ sage: H.is_linear_interval(1, 1)
2439
2443
True
2440
2444
2441
2445
TESTS::
0 commit comments