give up on cataloguing all properties we expect elements might have, it's just too many
This commit is contained in:
parent
2d0e6740ba
commit
030ed9d114
1 changed files with 6 additions and 23 deletions
|
@ -306,54 +306,37 @@ InstallMethod(ViewString, "for a right quasigroup with generators",
|
||||||
## Opposite structures
|
## Opposite structures
|
||||||
OFDir@ := NewDictionary("strings", true);
|
OFDir@ := NewDictionary("strings", true);
|
||||||
# What property does the Opposite family have for each property of the
|
# What property does the Opposite family have for each property of the
|
||||||
# underlying elements? (or fail if there is no implied property)
|
# underlying elements? Hopefully we have gotten all of the relevant
|
||||||
|
# properties. What we really want is the implied (and maybe the required)
|
||||||
|
# properties of the family of the elements that we are taking the Opposite of,
|
||||||
|
# but there is not any documented way of obtaining those.
|
||||||
AddDictionary(OFDir@, "CanEasilyCompareElements", CanEasilyCompareElements);
|
AddDictionary(OFDir@, "CanEasilyCompareElements", CanEasilyCompareElements);
|
||||||
AddDictionary(OFDir@, "CanEasilySortElements", CanEasilySortElements);
|
AddDictionary(OFDir@, "CanEasilySortElements", CanEasilySortElements);
|
||||||
AddDictionary(OFDir@, "IsAdditiveElement", fail);
|
|
||||||
AddDictionary(OFDir@, "IsAdditivelyCommutativeElement", fail);
|
|
||||||
AddDictionary(OFDir@, "IsAssociativeElement", IsAssociativeElement);
|
AddDictionary(OFDir@, "IsAssociativeElement", IsAssociativeElement);
|
||||||
AddDictionary(OFDir@, "IsCommutativeElement", IsCommutativeElement);
|
AddDictionary(OFDir@, "IsCommutativeElement", IsCommutativeElement);
|
||||||
AddDictionary(OFDir@, "IsCyc", fail);
|
|
||||||
AddDictionary(OFDir@, "IsCyclotomic", fail);
|
|
||||||
AddDictionary(OFDir@, "IsExtAElement", fail);
|
|
||||||
AddDictionary(OFDir@, "IsExtLElement", IsExtRElement);
|
AddDictionary(OFDir@, "IsExtLElement", IsExtRElement);
|
||||||
AddDictionary(OFDir@, "IsExtRElement", IsExtLElement);
|
AddDictionary(OFDir@, "IsExtRElement", IsExtLElement);
|
||||||
AddDictionary(OFDir@, "IsFiniteOrderElement", IsFiniteOrderElement);
|
AddDictionary(OFDir@, "IsFiniteOrderElement", IsFiniteOrderElement);
|
||||||
AddDictionary(OFDir@, "IsInt", fail);
|
|
||||||
AddDictionary(OFDir@, "IsLeftQuotientElement", IsRightQuotientElement);
|
AddDictionary(OFDir@, "IsLeftQuotientElement", IsRightQuotientElement);
|
||||||
AddDictionary(OFDir@, "IsList", fail);
|
|
||||||
AddDictionary(OFDir@, "IsLSelfDistElement", IsRSelfDistElement);
|
AddDictionary(OFDir@, "IsLSelfDistElement", IsRSelfDistElement);
|
||||||
AddDictionary(OFDir@, "IsMultiplicativeElement", fail);
|
|
||||||
AddDictionary(OFDir@, "IsMultiplicativeElementWithInverse",
|
AddDictionary(OFDir@, "IsMultiplicativeElementWithInverse",
|
||||||
IsMultiplicativeElementWithInverse);
|
IsMultiplicativeElementWithInverse);
|
||||||
AddDictionary(OFDir@, "IsMultiplicativeElementWithOne",
|
AddDictionary(OFDir@, "IsMultiplicativeElementWithOne",
|
||||||
IsMultiplicativeElementWithOne);
|
IsMultiplicativeElementWithOne);
|
||||||
AddDictionary(OFDir@, "IsNearAdditiveElement", fail);
|
|
||||||
AddDictionary(OFDir@, "IsNearAdditiveElementWithInverse", fail);
|
|
||||||
AddDictionary(OFDir@, "IsNearAdditiveElementWithZero", fail);
|
|
||||||
AddDictionary(OFDir@, "IsPerm", fail);
|
|
||||||
AddDictionary(OFDir@, "IsPosRat", fail);
|
|
||||||
AddDictionary(OFDir@, "IsRat", fail);
|
|
||||||
AddDictionary(OFDir@, "IsRightQuotientElement", IsLeftQuotientElement);
|
AddDictionary(OFDir@, "IsRightQuotientElement", IsLeftQuotientElement);
|
||||||
AddDictionary(OFDir@, "IsRSelfDistElement", IsLSelfDistElement);
|
AddDictionary(OFDir@, "IsRSelfDistElement", IsLSelfDistElement);
|
||||||
AddDictionary(OFDir@, "IsZDFRE", fail);
|
|
||||||
|
|
||||||
InstallMethod(OppositeFamily, "for a family",
|
InstallMethod(OppositeFamily, "for a family",
|
||||||
[IsFamily],
|
[IsFamily],
|
||||||
function(fam)
|
function(fam)
|
||||||
local F, elt, elt_props, opp_props, prop, filt, opp_filt;
|
local F, elt, elt_props, opp_props, prop, opp_filt;
|
||||||
elt := Representative(fam);
|
elt := Representative(fam);
|
||||||
elt_props := CategoriesOfObject(elt);
|
elt_props := CategoriesOfObject(elt);
|
||||||
Append(elt_props, KnownTruePropertiesOfObject(elt));
|
Append(elt_props, KnownTruePropertiesOfObject(elt));
|
||||||
opp_props := [];
|
opp_props := [];
|
||||||
for prop in elt_props do
|
for prop in elt_props do
|
||||||
if KnowsDictionary(OFDir@, prop) then
|
if KnowsDictionary(OFDir@, prop) then
|
||||||
filt := LookupDictionary(OFDir@, prop);
|
Add(opp_props, LookupDictionary(OFDir@, prop);
|
||||||
if filt <> fail then Add(opp_props, filt); fi;
|
|
||||||
else
|
|
||||||
Info(InfoRAQ, 0,
|
|
||||||
"Note: RAQ unfamiliar with element property ", prop,
|
|
||||||
", ignoring.");
|
|
||||||
fi;
|
fi;
|
||||||
od;
|
od;
|
||||||
opp_filt := IsMultiplicativeElement;
|
opp_filt := IsMultiplicativeElement;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue