gap-packages / loops

Computing with quasigroups and loops in GAP
https://gap-packages.github.io/loops/
GNU General Public License v2.0
4 stars 1 forks source link

Incorrect (?) use of InstallTrueMethod #5

Closed fingolfin closed 5 years ago

fingolfin commented 6 years ago

The LOOPS package does this:

InstallTrueMethod( IsALoop, IsAssociative );
InstallTrueMethod( IsMiddleALoop, IsCommutative );

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

InstallTrueMethod( IsALoop, IsAssociative and IsLoop );
InstallTrueMethod( IsMiddleALoop, IsCommutative and IsLoop );

At the same time, some "obvious" implications seem to be missing, e.g. these (which you might want to add)

InstallTrueMethod( IsLoop, IsLeftALoop );
InstallTrueMethod( IsLoop, IsRightALoop );
InstallTrueMethod( IsLoop, IsMiddleALoop );
InstallTrueMethod( IsLoop, IsOsbornLoop );
InstallTrueMethod( IsLoop, IsLeftBolLoop );
InstallTrueMethod( IsLoop, IsRightBolLoop );

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.

nagygp commented 6 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. :-)

fingolfin commented 6 years ago

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.

fingolfin commented 6 years ago

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.

nagygp commented 6 years ago

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??

olexandr-konovalov commented 6 years ago

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.

fingolfin commented 5 years ago

@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

nagygp commented 5 years ago

@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?

olexandr-konovalov commented 5 years ago

Thanks - please let me know when you will publish a new release then!

olexandr-konovalov commented 5 years ago

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.

nagygp commented 5 years ago

@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.

olexandr-konovalov commented 5 years ago

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=====
olexandr-konovalov commented 5 years ago

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!