File: pperm.gd

package info (click to toggle)
gap 4.15.1-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 110,212 kB
  • sloc: ansic: 97,261; xml: 48,343; cpp: 13,946; sh: 4,900; perl: 1,650; javascript: 255; makefile: 252; ruby: 9
file content (89 lines) | stat: -rw-r--r-- 4,387 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#############################################################################
##
##  This file is part of GAP, a system for computational discrete algebra.
##  This file's authors include James D. Mitchell.
##
##  Copyright of GAP belongs to its developers, whose names are too numerous
##  to list here. Please refer to the COPYRIGHT file for details.
##
##  SPDX-License-Identifier: GPL-2.0-or-later

DeclareUserPreference(rec(
  name := ["PartialPermDisplayLimit", "NotationForPartialPerms"],
  description := ["options for the display of partial perms"],
  default := [100, "component"],
  check := function(a, b)
    return IsPosInt(a)
           or (IsString(b) and b in ["component", "domainimage", "input"]);
  end));

DeclareGlobalFunction("ComponentStringOfPartialPerm");

# creating partial perms
DeclareGlobalFunction("PartialPerm");
DeclareGlobalFunction("PartialPermNC");
DeclareGlobalFunction("RandomPartialPerm");

# attributes
DeclareAttribute("DomainOfPartialPerm", IsPartialPerm);
DeclareAttribute("ImageListOfPartialPerm", IsPartialPerm);
DeclareSynonym("CodegreeOfPartialPerm", CoDegreeOfPartialPerm);
DeclareAttribute("ImageSetOfPartialPerm", IsPartialPerm);
DeclareAttribute("IndexPeriodOfPartialPerm", IsPartialPerm);
DeclareAttribute("ComponentRepsOfPartialPerm", IsPartialPerm);
DeclareAttribute("NrComponentsOfPartialPerm", IsPartialPerm);
DeclareAttribute("ComponentsOfPartialPerm", IsPartialPerm);
DeclareAttribute("FixedPointsOfPartialPerm", IsPartialPerm);
DeclareAttribute("FixedPointsOfPartialPerm", IsPartialPermCollection);
DeclareAttribute("NrFixedPoints", IsPartialPerm);
DeclareAttribute("NrFixedPoints", IsPartialPermCollection);
DeclareAttribute("MovedPoints", IsPartialPerm);
DeclareAttribute("MovedPoints", IsPartialPermCollection);
DeclareAttribute("NrMovedPoints", IsPartialPerm);
DeclareAttribute("NrMovedPoints", IsPartialPermCollection);
DeclareAttribute("LargestMovedPoint", IsPartialPerm);
DeclareAttribute("LargestMovedPoint", IsPartialPermCollection);
DeclareAttribute("SmallestMovedPoint", IsPartialPerm);
DeclareAttribute("SmallestMovedPoint", IsPartialPermCollection);
DeclareAttribute("LargestImageOfMovedPoint", IsPartialPerm);
DeclareAttribute("LargestImageOfMovedPoint", IsPartialPermCollection);
DeclareAttribute("SmallestImageOfMovedPoint", IsPartialPerm);
DeclareAttribute("SmallestImageOfMovedPoint", IsPartialPermCollection);

# operations
DeclareOperation("PreImagePartialPerm", [IsPartialPerm, IsPosInt]);
DeclareOperation("ComponentPartialPermInt", [IsPartialPerm, IsPosInt]);
DeclareOperation("AsPartialPerm", [IsAssociativeElement, IsList]);
DeclareOperation("AsPartialPerm", [IsAssociativeElement]);
DeclareOperation("AsPartialPerm", [IsAssociativeElement, IsPosInt]);
DeclareOperation("AsPartialPerm", [IsAssociativeElement, IsZeroCyc]);
DeclareGlobalFunction("JoinOfPartialPerms");
DeclareGlobalFunction("JoinOfIdempotentPartialPermsNC");
DeclareGlobalFunction("MeetOfPartialPerms");
DeclareOperation("RestrictedPartialPerm", [IsPartialPerm, IsList]);
DeclareOperation("RestrictedPartialPerm", [IsPartialPerm]);
DeclareOperation("PermLeftQuoPartialPermNC", [IsPartialPerm, IsPartialPerm]);
DeclareOperation("PermLeftQuoPartialPerm", [IsPartialPerm, IsPartialPerm]);
DeclareOperation("TrimPartialPerm", [IsPartialPerm]);
DeclareOperation("PartialPermOp", [IsObject, IsList, IsFunction]);
DeclareOperation("PartialPermOp", [IsObject, IsList]);
DeclareOperation("PartialPermOp", [IsObject, IsDomain]);
DeclareOperation("PartialPermOp", [IsObject, IsDomain, IsFunction]);

DeclareOperation("PartialPermOpNC", [IsObject, IsList, IsFunction]);
DeclareOperation("PartialPermOpNC", [IsObject, IsList]);
DeclareOperation("PartialPermOpNC", [IsObject, IsDomain]);
DeclareOperation("PartialPermOpNC", [IsObject, IsDomain, IsFunction]);

# collections

DeclareAttribute("DegreeOfPartialPermCollection", IsPartialPermCollection);
DeclareAttribute("CodegreeOfPartialPermCollection", IsPartialPermCollection);
DeclareAttribute("RankOfPartialPermCollection", IsPartialPermCollection);
DeclareAttribute("DomainOfPartialPermCollection", IsPartialPermCollection);
DeclareAttribute("ImageOfPartialPermCollection", IsPartialPermCollection);

DeclareAttribute("OneImmutable", IsPartialPermCollection);
DeclareOperation("OneMutable", [IsPartialPermCollection]);

InstallTrueMethod(IsGeneratorsOfInverseSemigroup, IsPartialPermCollection);