Closed fingolfin closed 5 years ago
These are in fact three questions. Let me answer them one by one.
1) You are right, we have to change the true methods for IsALoop
and IsMiddleALoop
.
2) I don't think that these true methods are necessary, since by definition, loop objects are parts of the IsLoop
category.
3) We were not aware of these recommendations. We will move InstallTureMethod
invocations in the .gd
files. :-)
I am afraid you are mistaken on point 2. The command DeclareProperty( "IsMiddleALoop", IsLoop );
does not install an automatic implication from IsMiddleALoop
to IsLoop
. Indeed, this would be wrong for many properties that are defined for multiple classes of objects.
You can easily verify this:
gap> ShowImpliedFilters(IsALoop);
Implies:
HasTwosidedInverses
HasAntiautomorphicInverseProperty
IsFlexible
IsLeftALoop
IsMiddleALoop
IsRightALoop
May imply with:
+IsLeftAlternative
IsPowerAssociative
IsDiassociative
HasLeftInverseProperty
...
Note that IsLoop
is not in the list of implied filters.
Regarding point 3: I don't think this recommendation is spelled out explicitly anywhere (though perhaps it should be). It will also be less important with GAP 4.10, which has some major changes in how method ranking is done over the life time of a GAP session (indeed, it is those changes which lead us to discover this bug in the LOOPS package).
The problem is that implications affect the ranking of methods; but (up to and including GAP 4.9) they only affect method installations the come after they were declared. By putting the implications into the .gd files, you ensure that they are executed before any of your method installations are called, thus ensuring they are all consistently ranked.
With GAP 4.10, we recompute ranks of previously installed methods if new implications are added, but that reveals problems like the one in point 1 of this issue.
Point 3 is clear now, thanks. For point 2:
IsLoop
is a category. Basically any loop object L
is created by the method LoopByCayleyTable
in gap/quasigroups.gi
...
# creating the loop
L := Objectify( NewType( FamilyObj( elms ),
IsLoop and IsAttributeStoringRep ), rec() );
...
Doesn't this mean that IsLoop(L)
and IsAttributeStoringRep(L)
are true by definition??
Regarding point 3, see 76.12 Declaration and Implementation Part of a Package: https://www.gap-system.org/Manuals/doc/ref/chap76.html#X7A7835A5797AF766
When GAP packages require each other in a circular way, a "bootstrapping" problem arises of defining functions before they are called. The same problem occurs in the GAP library, and it is resolved there by separating declarations (which define global variables such as filters and operations) and implementations (which install global functions and methods) in different files. Any implementation file may use global variables defined in any declaration file. GAP initially reads all declaration files (in the library they have a .gd suffix) and afterwards reads all implementation files (which have a .gi suffix).
I think this is also mentioned elsewhere.
@nagygp First, let me clarify that point 1 really is my only concern, as that broke a lot of things. The other two points only affect users of LOOPS, and as I am not one of them, I won't complain whatever you choose to do.
That all said, yes, if you are very careful to create all your loops with the IsLoop
filter set, then in practice you are fine. But I'd still recommend adding these implications, in order to make GAP explicitly aware of them. This will ensure, for example, that the filter rank heuristic of GAP will keep working: For example, if GAP knows that IsALoop
implies IsLoop
, then any method that takes an IsALoop
as argument is ranked higher than one taking any IsLoop
. So this is crucial to the idea of being able to provide more specialized methods for inputs about which more information is known, and allowing GAP to choose those.
Now, right now, this actually does work (in the sense that all those more specialized filters have rank higher than IsLoop
) due to a feature called "hidden implications"; but we actually would like to remove this in a future GAP release, and instead convince all package authors to make their implications explicit.
So, even if you don't add this now, we may one day get back to you and ask for it again ;-). However, it might then actually come in a slightly different form: the current (tentative) plan is to add a new function, say DeclarePropertyWithImplication(A, B)
, which calls both DeclareProperty(A, B)
and also InstallTrueMethod(B, A);
, kinda like you (and probably many other people) assumed DeclareProperty
already worked.
For details, see also https://github.com/gap-system/gap/issues/2336
@fingolfin I merged a pull request which fixes point 1 (indeed a bug, thanks) and point 3 (hope that this will be useful in the future). For point 2, I kept things as they are now, let us come back to it later when GAP's hidden implications change.
Can we close this issue now?
Thanks - please let me know when you will publish a new release then!
The new release is not yet published - I am reopening this issue to keep it as a reminder. I have checked that having the latest FR release made today with the fresh clone of LOOPS fixes most of diffs in https://github.com/gap-system/gap/issues/2818 (diffs may be seen in https://travis-ci.org/gap-system/gap-docker-master-testsuite). @nagygp how we can help to make a release? Part of the setup for https://github.com/gap-system/ReleaseTools is already in place, and if you don't have time to make a release now, I can publish it for you.
@alex-konovalov I managed to make the new release 3.4.1 using ReleaseTools and GitHubPagesForGAP. Please have a look if things are as needed. If so, then we can close this issue.
Thanks - picked up! I will close this subject to passing tests.
* loops - new version 3.4.1 discovered!!!
============================================
Getting new archives from
https://github.com/gap-packages/loops/releases/download/v3.4.1/loops-3.4.1
[ ".tar.gz" ]
unpacking loops-3.4.1.tar.gz
Validation of the info file successful!
Package loops 3.4.1 from 06/11/2018 has dependencies:
* GAP >=4.8
finding text files . . .
=====================text files==========================
loops-3.4.1/PackageInfo.g
loops-3.4.1/makedoc.g
loops-3.4.1/init.g
loops-3.4.1/LICENSE
loops-3.4.1/read.g
loops-3.4.1/README
loops-3.4.1/gap/convert.gi
loops-3.4.1/gap/iso.gd
loops-3.4.1/gap/memory.gi
loops-3.4.1/gap/quasigroups.gi
loops-3.4.1/gap/examples.gd
loops-3.4.1/gap/examples.gi
loops-3.4.1/gap/core_methods.gd
loops-3.4.1/gap/random.gi
loops-3.4.1/gap/mlt_search.gd
loops-3.4.1/gap/quasigroups.gd
loops-3.4.1/gap/moufang_triality.gd
loops-3.4.1/gap/bol_core_methods.gi
loops-3.4.1/gap/moufang_modifications.gi
loops-3.4.1/gap/elements.gi
loops-3.4.1/gap/core_methods.gi
loops-3.4.1/gap/bol_core_methods.gd
loops-3.4.1/gap/moufang_triality.gi
loops-3.4.1/gap/extensions.gd
loops-3.4.1/gap/classes.gi
loops-3.4.1/gap/mlt_search.gi
loops-3.4.1/gap/moufang_modifications.gd
loops-3.4.1/gap/memory.gd
loops-3.4.1/gap/elements.gd
loops-3.4.1/gap/random.gd
loops-3.4.1/gap/extensions.gi
loops-3.4.1/gap/convert.gd
loops-3.4.1/gap/classes.gd
loops-3.4.1/gap/iso.gi
loops-3.4.1/doc/chapB_mj.html
loops-3.4.1/doc/chap9_mj.html
loops-3.4.1/doc/chap5_mj.html
loops-3.4.1/doc/chap6.txt
loops-3.4.1/doc/chooser.html
loops-3.4.1/doc/chapBib_mj.html
loops-3.4.1/doc/chap3_mj.html
loops-3.4.1/doc/chapA.html
loops-3.4.1/doc/chap2.txt
loops-3.4.1/doc/loops.xml
loops-3.4.1/doc/chap8.html
loops-3.4.1/doc/chap0.txt
loops-3.4.1/doc/chapInd.txt
loops-3.4.1/doc/chap0.html
loops-3.4.1/doc/chap2_mj.html
loops-3.4.1/doc/chap7_mj.html
loops-3.4.1/doc/chap4.html
loops-3.4.1/doc/chapInd.html
loops-3.4.1/doc/chapBib.txt
loops-3.4.1/doc/nocolorprompt.css
loops-3.4.1/doc/chap8_mj.html
loops-3.4.1/doc/chap9.txt
loops-3.4.1/doc/chap5.html
loops-3.4.1/doc/chap7.txt
loops-3.4.1/doc/chap2.html
loops-3.4.1/doc/chap1_mj.html
loops-3.4.1/doc/times.css
loops-3.4.1/doc/ragged.css
loops-3.4.1/doc/chapA.txt
loops-3.4.1/doc/chap4.txt
loops-3.4.1/doc/manual.css
loops-3.4.1/doc/chap5.txt
loops-3.4.1/doc/lefttoc.css
loops-3.4.1/doc/chap1.html
loops-3.4.1/doc/chapB.txt
loops-3.4.1/doc/chap9.html
loops-3.4.1/doc/chapInd_mj.html
loops-3.4.1/doc/chap6_mj.html
loops-3.4.1/doc/title.xml
loops-3.4.1/doc/chap7.html
loops-3.4.1/doc/chap3.html
loops-3.4.1/doc/chap1.txt
loops-3.4.1/doc/chapA_mj.html
loops-3.4.1/doc/chap8.txt
loops-3.4.1/doc/chap4_mj.html
loops-3.4.1/doc/chap0_mj.html
loops-3.4.1/doc/chapB.html
loops-3.4.1/doc/chap3.txt
loops-3.4.1/doc/chap6.html
loops-3.4.1/doc/toggless.css
loops-3.4.1/doc/loops_bib.xml.bib
loops-3.4.1/doc/loops_bib.xml
loops-3.4.1/doc/chapBib.html
loops-3.4.1/tst/bol.tst
loops-3.4.1/tst/testall.g
loops-3.4.1/tst/lib.tst
loops-3.4.1/tst/core_methods.tst
loops-3.4.1/tst/iso.tst
loops-3.4.1/tst/nilpot.tst
=====================end of the list of text files=======
=====================binary files========================
loops-3.4.1/.codecov.yml
loops-3.4.1/.travis.yml
loops-3.4.1/.release
loops-3.4.1/doc/manual.js
loops-3.4.1/doc/manual.pdf
loops-3.4.1/doc/manual.six
loops-3.4.1/doc/rainbow.js
loops-3.4.1/doc/toggless.js
loops-3.4.1/data/leftbol.tbl
loops-3.4.1/data/steiner.tbl
loops-3.4.1/data/rightbruck.tbl
loops-3.4.1/data/moufang.tbl
loops-3.4.1/data/small.tbl
loops-3.4.1/data/nilpotent.tbl
loops-3.4.1/data/cc.tbl
loops-3.4.1/data/interesting.tbl
loops-3.4.1/data/automorphic.tbl
loops-3.4.1/data/code.tbl
loops-3.4.1/data/paige.tbl
loops-3.4.1/data/rcc.tbl
loops-3.4.1/data/itp_small.tbl
loops-3.4.1/data/rcc/sections24.705.tbl
loops-3.4.1/data/rcc/sections24.21.tbl
loops-3.4.1/data/rcc/sections22.4.tbl
loops-3.4.1/data/rcc/sections16.30.tbl
loops-3.4.1/data/rcc/sections8.13.tbl
loops-3.4.1/data/rcc/sections24.20.tbl
loops-3.4.1/data/rcc/sections12.15.tbl
loops-3.4.1/data/rcc/sections24.142.tbl
loops-3.4.1/data/rcc/sections27.27.tbl
loops-3.4.1/data/rcc/sections16.118.tbl
loops-3.4.1/data/rcc/sections24.228.tbl
loops-3.4.1/data/rcc/sections16.29.tbl
loops-3.4.1/data/rcc/sections16.68.tbl
loops-3.4.1/data/rcc/sections24.232.tbl
loops-3.4.1/data/rcc/sections16.114.tbl
loops-3.4.1/data/rcc/sections16.103.tbl
loops-3.4.1/data/rcc/sections16.254.tbl
loops-3.4.1/data/rcc/sections27.57.tbl
loops-3.4.1/data/rcc/sections16.122.tbl
loops-3.4.1/data/rcc/sections24.119.tbl
loops-3.4.1/data/rcc/sections16.73.tbl
loops-3.4.1/data/rcc/sections16.161.tbl
loops-3.4.1/data/rcc/sections18.11.tbl
loops-3.4.1/data/rcc/sections16.126.tbl
loops-3.4.1/data/rcc/sections16.296.tbl
loops-3.4.1/data/rcc/sections20.8.tbl
loops-3.4.1/data/rcc/sections24.226.tbl
loops-3.4.1/data/rcc/sections16.93.tbl
loops-3.4.1/data/rcc/sections25.13.tbl
loops-3.4.1/data/rcc/sections16.16.tbl
loops-3.4.1/data/rcc/sections24.211.tbl
loops-3.4.1/data/rcc/sections12.6.tbl
loops-3.4.1/data/rcc/sections24.609.tbl
loops-3.4.1/data/rcc/sections16.18.tbl
loops-3.4.1/data/rcc/sections14.5.tbl
loops-3.4.1/data/rcc/sections24.671.tbl
loops-3.4.1/data/rcc/sections24.141.tbl
loops-3.4.1/data/rcc/sections20.16.tbl
loops-3.4.1/data/rcc/sections16.48.tbl
loops-3.4.1/data/rcc/sections24.112.tbl
loops-3.4.1/data/rcc/sections24.123.tbl
loops-3.4.1/data/rcc/sections12.37.tbl
loops-3.4.1/data/rcc/sections24.49.tbl
loops-3.4.1/data/rcc/sections10.6.tbl
loops-3.4.1/data/rcc/sections24.360.tbl
loops-3.4.1/data/rcc/sections24.235.tbl
loops-3.4.1/data/rcc/sections27.109.tbl
loops-3.4.1/data/rcc/sections16.26.tbl
loops-3.4.1/data/rcc/sections16.58.tbl
loops-3.4.1/data/rcc/sections24.28.tbl
loops-3.4.1/data/rcc/sections12.19.tbl
loops-3.4.1/data/rcc/sections16.44.tbl
loops-3.4.1/data/rcc/sections16.189.tbl
loops-3.4.1/data/rcc/sections24.109.tbl
loops-3.4.1/data/rcc/sections24.1353.tbl
loops-3.4.1/data/rcc/sections24.588.tbl
loops-3.4.1/data/rcc/sections16.20.tbl
loops-3.4.1/data/rcc/sections16.108.tbl
loops-3.4.1/data/rcc/sections20.13.tbl
loops-3.4.1/data/rcc/sections16.51.tbl
loops-3.4.1/data/rcc/sections16.120.tbl
loops-3.4.1/data/rcc/sections24.271.tbl
loops-3.4.1/data/rcc/sections24.576.tbl
loops-3.4.1/data/rcc/sections27.17.tbl
loops-3.4.1/data/rcc/sections20.182.tbl
loops-3.4.1/data/rcc/sections24.361.tbl
loops-3.4.1/data/rcc/sections12.39.tbl
loops-3.4.1/data/rcc/sections16.70.tbl
loops-3.4.1/data/rcc/sections24.140.tbl
loops-3.4.1/data/rcc/sections24.134.tbl
loops-3.4.1/data/rcc/sections16.22.tbl
loops-3.4.1/data/rcc/sections27.95.tbl
loops-3.4.1/data/rcc/sections16.50.tbl
loops-3.4.1/data/rcc/sections8.23.tbl
loops-3.4.1/data/rcc/sections12.124.tbl
loops-3.4.1/data/rcc/sections18.19.tbl
loops-3.4.1/data/rcc/sections16.28.tbl
loops-3.4.1/data/rcc/sections16.23.tbl
loops-3.4.1/data/rcc/sections24.17.tbl
loops-3.4.1/data/rcc/sections16.52.tbl
loops-3.4.1/data/rcc/sections20.42.tbl
loops-3.4.1/data/rcc/sections21.3.tbl
loops-3.4.1/data/rcc/sections24.685.tbl
loops-3.4.1/data/rcc/sections14.8.tbl
loops-3.4.1/data/rcc/sections16.46.tbl
loops-3.4.1/data/rcc/sections27.12.tbl
loops-3.4.1/data/rcc/sections24.626.tbl
loops-3.4.1/data/rcc/sections24.1384.tbl
loops-3.4.1/data/rcc/sections27.101.tbl
loops-3.4.1/data/rcc/sections12.11.tbl
loops-3.4.1/data/rcc/sections21.7.tbl
loops-3.4.1/data/rcc/sections25.14.tbl
loops-3.4.1/data/rcc/sections24.42.tbl
loops-3.4.1/data/rcc/sections12.14.tbl
loops-3.4.1/data/rcc/sections16.32.tbl
loops-3.4.1/data/rcc/sections16.204.tbl
loops-3.4.1/data/rcc/sections24.69.tbl
loops-3.4.1/data/rcc/sections16.116.tbl
loops-3.4.1/data/rcc/sections20.11.tbl
loops-3.4.1/data/rcc/sections27.113.tbl
loops-3.4.1/data/rcc/rcc_transitive_groups.tbl
loops-3.4.1/data/rcc/sections24.608.tbl
loops-3.4.1/data/rcc/sections16.80.tbl
loops-3.4.1/data/rcc/sections24.41.tbl
loops-3.4.1/data/rcc/sections24.84.tbl
loops-3.4.1/data/rcc/sections16.31.tbl
loops-3.4.1/data/rcc/sections16.95.tbl
loops-3.4.1/data/rcc/sections18.6.tbl
loops-3.4.1/data/rcc/sections24.362.tbl
loops-3.4.1/data/rcc/sections16.105.tbl
loops-3.4.1/data/rcc/sections27.28.tbl
loops-3.4.1/data/rcc/sections24.610.tbl
loops-3.4.1/data/rcc/sections16.57.tbl
loops-3.4.1/data/rcc/sections18.21.tbl
loops-3.4.1/data/rcc/sections15.4.tbl
loops-3.4.1/data/rcc/sections21.6.tbl
loops-3.4.1/data/rcc/sections24.668.tbl
loops-3.4.1/data/rcc/sections18.29.tbl
loops-3.4.1/data/rcc/sections24.117.tbl
loops-3.4.1/data/rcc/sections16.100.tbl
loops-3.4.1/data/rcc/sections27.20.tbl
loops-3.4.1/data/rcc/sections26.8.tbl
loops-3.4.1/data/rcc/sections21.13.tbl
loops-3.4.1/data/rcc/sections18.79.tbl
loops-3.4.1/data/rcc/sections20.22.tbl
loops-3.4.1/data/rcc/sections16.17.tbl
loops-3.4.1/data/rcc/sections24.229.tbl
loops-3.4.1/data/rcc/sections24.83.tbl
loops-3.4.1/data/rcc/sections24.673.tbl
loops-3.4.1/data/rcc/sections16.59.tbl
loops-3.4.1/data/rcc/sections16.41.tbl
loops-3.4.1/data/rcc/sections10.4.tbl
loops-3.4.1/data/rcc/sections16.19.tbl
loops-3.4.1/data/rcc/sections24.1298.tbl
loops-3.4.1/data/rcc/sections24.16.tbl
loops-3.4.1/data/rcc/sections20.25.tbl
loops-3.4.1/data/rcc/sections12.85.tbl
loops-3.4.1/data/rcc/sections24.237.tbl
loops-3.4.1/data/rcc/sections27.23.tbl
loops-3.4.1/data/rcc/sections27.75.tbl
loops-3.4.1/data/rcc/sections16.89.tbl
loops-3.4.1/data/rcc/sections16.21.tbl
loops-3.4.1/data/rcc/sections24.40.tbl
loops-3.4.1/data/rcc/sections24.125.tbl
loops-3.4.1/data/rcc/sections18.10.tbl
loops-3.4.1/data/rcc/sections15.15.tbl
loops-3.4.1/data/rcc/sections24.65.tbl
loops-3.4.1/data/rcc/sections9.7.tbl
loops-3.4.1/data/rcc/sections24.27.tbl
loops-3.4.1/data/rcc/sections20.21.tbl
loops-3.4.1/data/rcc/sections20.58.tbl
loops-3.4.1/data/rcc/sections24.39.tbl
loops-3.4.1/data/rcc/sections16.325.tbl
loops-3.4.1/data/rcc/sections24.143.tbl
loops-3.4.1/data/rcc/sections16.79.tbl
loops-3.4.1/data/rcc/sections16.87.tbl
loops-3.4.1/data/rcc/sections24.31.tbl
loops-3.4.1/data/rcc/sections24.23.tbl
loops-3.4.1/data/rcc/sections20.51.tbl
loops-3.4.1/data/rcc/sections12.117.tbl
loops-3.4.1/data/rcc/sections16.211.tbl
loops-3.4.1/data/rcc/sections24.363.tbl
loops-3.4.1/data/rcc/sections16.113.tbl
loops-3.4.1/data/rcc/sections24.250.tbl
loops-3.4.1/data/rcc/sections24.245.tbl
loops-3.4.1/data/rcc/sections24.616.tbl
loops-3.4.1/data/rcc/sections24.2824.tbl
loops-3.4.1/data/rcc/sections24.24.tbl
loops-3.4.1/data/rcc/sections21.4.tbl
loops-3.4.1/data/rcc/sections24.611.tbl
loops-3.4.1/data/rcc/sections16.289.tbl
loops-3.4.1/data/rcc/sections16.82.tbl
loops-3.4.1/data/rcc/sections27.36.tbl
loops-3.4.1/data/rcc/sections24.1300.tbl
loops-3.4.1/data/rcc/sections24.678.tbl
loops-3.4.1/data/rcc/sections27.33.tbl
loops-3.4.1/data/rcc/sections24.222.tbl
loops-3.4.1/data/rcc/sections24.335.tbl
loops-3.4.1/data/rcc/sections12.26.tbl
loops-3.4.1/data/rcc/sections27.18.tbl
loops-3.4.1/data/rcc/sections24.670.tbl
loops-3.4.1/data/rcc/sections12.42.tbl
loops-3.4.1/data/rcc/sections24.136.tbl
loops-3.4.1/data/rcc/sections24.627.tbl
loops-3.4.1/data/rcc/sections24.19.tbl
loops-3.4.1/data/rcc/sections12.18.tbl
loops-3.4.1/data/rcc/sections18.17.tbl
loops-3.4.1/data/rcc/sections25.3.tbl
loops-3.4.1/data/rcc/sections20.12.tbl
loops-3.4.1/data/rcc/sections16.125.tbl
loops-3.4.1/data/rcc/sections16.179.tbl
loops-3.4.1/data/rcc/sections24.25.tbl
loops-3.4.1/data/rcc/sections12.20.tbl
loops-3.4.1/data/rcc/sections24.102.tbl
loops-3.4.1/data/rcc/sections27.97.tbl
loops-3.4.1/data/rcc/sections26.6.tbl
loops-3.4.1/data/rcc/sections27.9.tbl
loops-3.4.1/data/rcc/sections16.27.tbl
loops-3.4.1/data/rcc/sections24.236.tbl
loops-3.4.1/data/rcc/sections18.96.tbl
loops-3.4.1/data/rcc/sections20.53.tbl
loops-3.4.1/data/rcc/sections24.700.tbl
loops-3.4.1/data/rcc/sections27.13.tbl
loops-3.4.1/data/rcc/sections24.32.tbl
loops-3.4.1/data/rcc/sections16.102.tbl
loops-3.4.1/data/rcc/sections9.6.tbl
loops-3.4.1/data/rcc/sections27.78.tbl
loops-3.4.1/data/rcc/sections24.282.tbl
loops-3.4.1/data/rcc/sections16.42.tbl
loops-3.4.1/data/rcc/sections16.33.tbl
loops-3.4.1/data/rcc/sections24.146.tbl
loops-3.4.1/data/rcc/sections26.4.tbl
loops-3.4.1/data/rcc/sections24.2622.tbl
loops-3.4.1/data/rcc/sections24.247.tbl
loops-3.4.1/data/rcc/sections24.269.tbl
loops-3.4.1/data/rcc/sections16.106.tbl
loops-3.4.1/data/rcc/sections18.43.tbl
loops-3.4.1/data/rcc/sections16.119.tbl
loops-3.4.1/data/rcc/sections16.197.tbl
loops-3.4.1/data/rcc/sections16.107.tbl
loops-3.4.1/data/rcc/sections24.46.tbl
loops-3.4.1/data/rcc/sections24.29.tbl
loops-3.4.1/data/rcc/sections24.231.tbl
loops-3.4.1/data/rcc/sections24.118.tbl
loops-3.4.1/data/rcc/sections20.102.tbl
loops-3.4.1/data/rcc/sections24.2625.tbl
loops-3.4.1/data/rcc/sections27.22.tbl
loops-3.4.1/data/rcc/sections27.114.tbl
loops-3.4.1/data/rcc/sections24.38.tbl
loops-3.4.1/data/rcc/sections16.39.tbl
loops-3.4.1/data/rcc/sections24.55.tbl
loops-3.4.1/data/rcc/sections16.15.tbl
loops-3.4.1/data/rcc/sections16.180.tbl
loops-3.4.1/data/rcc/sections24.227.tbl
loops-3.4.1/data/rcc/sections8.11.tbl
loops-3.4.1/data/rcc/sections16.45.tbl
loops-3.4.1/data/rcc/sections16.72.tbl
loops-3.4.1/data/rcc/sections24.106.tbl
loops-3.4.1/data/rcc/sections27.86.tbl
loops-3.4.1/data/rcc/sections24.45.tbl
loops-3.4.1/data/rcc/sections16.121.tbl
loops-3.4.1/data/rcc/sections18.22.tbl
loops-3.4.1/data/rcc/sections14.4.tbl
loops-3.4.1/data/rcc/sections22.7.tbl
loops-3.4.1/data/rcc/sections16.60.tbl
loops-3.4.1/data/rcc/sections24.101.tbl
loops-3.4.1/data/rcc/sections24.1348.tbl
loops-3.4.1/data/rcc/sections24.1303.tbl
loops-3.4.1/data/rcc/sections16.69.tbl
loops-3.4.1/data/rcc/sections24.43.tbl
loops-3.4.1/data/rcc/sections20.24.tbl
loops-3.4.1/data/rcc/sections24.210.tbl
loops-3.4.1/data/rcc/sections16.47.tbl
loops-3.4.1/data/rcc/sections16.198.tbl
loops-3.4.1/data/rcc/sections27.73.tbl
loops-3.4.1/data/rcc/sections24.64.tbl
loops-3.4.1/data/rcc/sections24.2624.tbl
loops-3.4.1/data/rcc/sections16.260.tbl
loops-3.4.1/data/rcc/sections27.89.tbl
loops-3.4.1/data/rcc/sections21.21.tbl
loops-3.4.1/data/rcc/sections24.223.tbl
loops-3.4.1/data/rcc/sections24.607.tbl
loops-3.4.1/data/rcc/sections16.188.tbl
loops-3.4.1/data/rcc/sections16.109.tbl
loops-3.4.1/data/rcc/sections22.5.tbl
loops-3.4.1/data/rcc/sections24.95.tbl
loops-3.4.1/data/rcc/sections16.110.tbl
loops-3.4.1/data/rcc/sections16.35.tbl
loops-3.4.1/data/rcc/sections18.81.tbl
loops-3.4.1/data/rcc/sections15.8.tbl
loops-3.4.1/data/rcc/sections18.83.tbl
loops-3.4.1/data/rcc/sections18.28.tbl
loops-3.4.1/data/rcc/sections27.11.tbl
loops-3.4.1/data/rcc/sections18.15.tbl
loops-3.4.1/data/rcc/sections18.78.tbl
loops-3.4.1/data/rcc/sections24.684.tbl
loops-3.4.1/data/rcc/sections24.1346.tbl
loops-3.4.1/data/rcc/sections18.74.tbl
loops-3.4.1/data/rcc/sections24.1355.tbl
loops-3.4.1/data/rcc/sections24.114.tbl
loops-3.4.1/data/rcc/sections24.246.tbl
loops-3.4.1/data/rcc/sections27.21.tbl
loops-3.4.1/data/rcc/sections16.76.tbl
loops-3.4.1/data/rcc/sections24.252.tbl
loops-3.4.1/data/rcc/sections24.230.tbl
loops-3.4.1/data/rcc/sections16.38.tbl
loops-3.4.1/data/rcc/sections24.1296.tbl
loops-3.4.1/data/rcc/sections24.2623.tbl
loops-3.4.1/data/rcc/sections12.28.tbl
loops-3.4.1/data/rcc/sections24.224.tbl
loops-3.4.1/data/rcc/sections16.422.tbl
loops-3.4.1/data/rcc/sections24.225.tbl
loops-3.4.1/data/rcc/sections24.145.tbl
loops-3.4.1/data/rcc/sections24.221.tbl
loops-3.4.1/data/rcc/sections27.60.tbl
loops-3.4.1/data/rcc/sections27.16.tbl
loops-3.4.1/data/rcc/sections24.67.tbl
loops-3.4.1/data/rcc/sections16.54.tbl
loops-3.4.1/data/rcc/sections25.7.tbl
loops-3.4.1/data/rcc/sections24.71.tbl
loops-3.4.1/data/rcc/sections16.207.tbl
loops-3.4.1/data/rcc/sections16.34.tbl
loops-3.4.1/data/rcc/sections20.29.tbl
loops-3.4.1/data/rcc/sections16.196.tbl
loops-3.4.1/data/rcc/sections24.144.tbl
loops-3.4.1/data/rcc/sections8.17.tbl
loops-3.4.1/data/rcc/sections27.105.tbl
loops-3.4.1/data/rcc/sections24.208.tbl
loops-3.4.1/data/rcc/sections16.115.tbl
loops-3.4.1/data/rcc/sections24.54.tbl
loops-3.4.1/data/rcc/sections8.10.tbl
loops-3.4.1/data/rcc/sections16.163.tbl
loops-3.4.1/data/rcc/sections24.113.tbl
loops-3.4.1/data/rcc/sections6.5.tbl
loops-3.4.1/data/rcc/sections16.37.tbl
loops-3.4.1/data/rcc/sections24.26.tbl
loops-3.4.1/data/rcc/sections24.606.tbl
loops-3.4.1/data/rcc/sections24.104.tbl
loops-3.4.1/data/rcc/sections16.84.tbl
loops-3.4.1/data/rcc/sections16.24.tbl
loops-3.4.1/data/rcc/sections27.110.tbl
loops-3.4.1/data/rcc/sections16.123.tbl
loops-3.4.1/data/rcc/sections16.25.tbl
loops-3.4.1/data/rcc/sections16.199.tbl
loops-3.4.1/data/rcc/sections27.15.tbl
loops-3.4.1/data/rcc/sections24.78.tbl
loops-3.4.1/data/rcc/sections24.33.tbl
loops-3.4.1/data/rcc/sections16.155.tbl
loops-3.4.1/data/rcc/sections16.96.tbl
loops-3.4.1/data/rcc/sections24.1301.tbl
loops-3.4.1/data/rcc/sections24.629.tbl
loops-3.4.1/data/rcc/sections18.18.tbl
loops-3.4.1/data/rcc/sections24.137.tbl
loops-3.4.1/data/rcc/sections24.563.tbl
loops-3.4.1/data/rcc/sections24.44.tbl
loops-3.4.1/data/rcc/sections16.124.tbl
loops-3.4.1/data/rcc/sections18.14.tbl
loops-3.4.1/data/rcc/sections20.59.tbl
loops-3.4.1/data/rcc/sections20.6.tbl
loops-3.4.1/data/rcc/sections24.253.tbl
loops-3.4.1/data/rcc/sections16.97.tbl
loops-3.4.1/data/rcc/sections18.46.tbl
loops-3.4.1/data/rcc/sections24.68.tbl
loops-3.4.1/data/rcc/sections16.77.tbl
loops-3.4.1/data/rcc/sections18.23.tbl
loops-3.4.1/data/rcc/sections24.628.tbl
loops-3.4.1/data/rcc/sections24.1507.tbl
loops-3.4.1/data/rcc/sections16.111.tbl
loops-3.4.1/data/rcc/sections16.81.tbl
loops-3.4.1/data/rcc/sections24.116.tbl
loops-3.4.1/data/rcc/sections24.209.tbl
loops-3.4.1/data/rcc/sections24.115.tbl
loops-3.4.1/data/rcc/sections16.75.tbl
loops-3.4.1/data/rcc/sections24.51.tbl
loops-3.4.1/data/rcc/sections24.1338.tbl
loops-3.4.1/data/rcc/sections20.14.tbl
loops-3.4.1/data/rcc/sections16.43.tbl
loops-3.4.1/data/rcc/sections24.92.tbl
loops-3.4.1/data/rcc/sections16.74.tbl
loops-3.4.1/data/rcc/sections27.107.tbl
loops-3.4.1/data/rcc/sections24.66.tbl
loops-3.4.1/data/rcc/sections16.328.tbl
loops-3.4.1/data/rcc/sections24.70.tbl
loops-3.4.1/data/rcc/sections24.1299.tbl
loops-3.4.1/data/rcc/sections18.80.tbl
loops-3.4.1/data/rcc/sections16.67.tbl
loops-3.4.1/data/rcc/sections12.10.tbl
loops-3.4.1/data/rcc/sections9.4.tbl
loops-3.4.1/data/rcc/sections26.5.tbl
loops-3.4.1/data/rcc/sections24.77.tbl
loops-3.4.1/data/rcc/sections21.9.tbl
loops-3.4.1/data/rcc/sections24.100.tbl
loops-3.4.1/data/rcc/sections27.14.tbl
loops-3.4.1/data/rcc/sections24.18.tbl
loops-3.4.1/data/rcc/sections24.1294.tbl
loops-3.4.1/data/rcc/sections16.91.tbl
loops-3.4.1/data/rcc/sections24.30.tbl
loops-3.4.1/data/rcc/sections24.52.tbl
loops-3.4.1/data/rcc/sections26.11.tbl
loops-3.4.1/data/rcc/sections8.7.tbl
loops-3.4.1/data/rcc/sections16.205.tbl
loops-3.4.1/data/rcc/sections20.9.tbl
loops-3.4.1/data/rcc/sections18.16.tbl
loops-3.4.1/data/rcc/sections16.201.tbl
loops-3.4.1/data/rcc/sections16.49.tbl
loops-3.4.1/data/rcc/sections24.139.tbl
loops-3.4.1/data/rcc/sections24.53.tbl
loops-3.4.1/data/rcc/sections20.20.tbl
loops-3.4.1/data/rcc/sections15.3.tbl
loops-3.4.1/data/rcc/sections24.1297.tbl
loops-3.4.1/data/rcc/sections24.1295.tbl
loops-3.4.1/data/rcc/sections24.1302.tbl
loops-3.4.1/data/rcc/sections8.9.tbl
loops-3.4.1/data/rcc/sections24.248.tbl
loops-3.4.1/data/rcc/sections16.117.tbl
loops-3.4.1/data/cc/cc_cocycles_5.tbl
loops-3.4.1/data/cc/cc_cocycles_3.tbl
loops-3.4.1/data/cc/cc_cocycles_7.tbl
loops-3.4.1/data/cc/cc_cocycles_2.tbl
loops-3.4.1/scripts/run_tests.sh
loops-3.4.1/scripts/build_pkg.sh
loops-3.4.1/scripts/build_gap.sh
loops-3.4.1/scripts/gather-coverage.sh
=====================end of the list of binary files=====
Excellent, LOOPS tests now pass (https://travis-ci.org/gap-system/gap-docker-pkg-tests-master-staging/jobs/451498863), and the release eliminates a number of diffs in GAP package integration tests in https://travis-ci.org/gap-system/gap-docker-master-testsuite. Thanks!
The LOOPS package does this:
As a result, any associative and commutative magma is marked as being a loop. But that seems mathematically wrong, as there are such magmas which don't have a neutral element (e.g. take any set, designate one element as "zero", then use the multiplication a*b:=0).
To fix this, one could use
At the same time, some "obvious" implications seem to be missing, e.g. these (which you might want to add)
Lastly, I'd like to point out that the recommended place for
InstallTrueMethod
invocations is in the.gd
files, right after the declaration of the properties involved; this helps (IMHO) to organize them and makes it easy to see if any natural ones are missing.