Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added consistency check for the reference manual #538

Merged
merged 5 commits into from
Mar 16, 2016

Conversation

olexandr-konovalov
Copy link
Member

This test checks that ManSections are of the right type. Run it in doc/ref directory with

../../bin/gap.sh -r -A testconsistency.g

and it will return the output of the form

./../../lib/function.g:132 : NameFunction uses Func but must be Oper
./../../lib/function.g:189 : NumberArgumentsFunction uses Func but must be Oper
./../../lib/function.g:223 : NamesLocalVariablesFunction uses Func but must be Oper
./../../lib/function.g:84 : FunctionsFamily uses Var but must be Fam
...
./../../lib/ratfun.gd:1459 : HeuristicCancelPolynomials is unbound 
./../../lib/padics.gd:237 : PurePadicNumberFamily uses Oper but must be Func
./padics.xml:54 : PadicNumber uses Func but must be Oper
./meataxe.xml:419 : MTX.InducedActionMatrix is unbound 
./meataxe.xml:420 : MTX.InducedActionMatrixNB is unbound 
./../../lib/tom.gd:646 : TableOfMarksFamily uses Var but must be Fam
./../../lib/tom.gd:1506 : CyclicExtensionsTom uses Oper but must be Attr
./../../lib/tom.gd:1892 : IsTableOfMarksWithGens uses Func but must be Filt
./../../lib/ctbl.gd:335 : NearlyCharacterTablesFamily uses Var but must be Fam
./../../lib/ctbl.gd:1108 : IsAlmostSimple uses Prop but must be Oper
./../../lib/ctbl.gd:1112 : IsMonomial uses Prop but must be Oper
./../../lib/ctbl.gd:1113 : IsNilpotent uses Prop but must be Oper
./../../lib/ctbl.gd:1114 : IsPerfect uses Prop but must be Oper
./../../lib/ctbl.gd:1115 : IsSimple uses Prop but must be Oper
./../../lib/ctbl.gd:1116 : IsSolvable uses Prop but must be Oper
./../../lib/ctbl.gd:1117 : IsSporadicSimple uses Prop but must be Oper
./../../lib/ctbl.gd:1118 : IsSupersolvable uses Prop but must be Oper
./../../lib/ctbl.gd:1656 : InfoText uses Meth but must be Attr
./../../lib/ctbl.gd:2449 : DecompositionMatrix uses Oper but must be Attr
./../../lib/ctbl.gd:3802 : CharacterTableIsoclinic uses Oper but must be Attr
./../../lib/ctblfuns.gd:572 : Characteristic uses Func but must be Attr
./../../lib/ctblfuns.gd:597 : ComplexConjugate uses Func but must be Attr
./../../lib/ctblfuns.gd:598 : GaloisCyc uses Func but must be Oper
./../../lib/ctblfuns.gd:599 : Permuted uses Func but must be Oper
./../../lib/ctblfuns.gd:627 : Order uses Func but must be Attr
./../../lib/ctblmaps.gd:583 : FusionConjugacyClassesOp uses Oper but must be Attr
./../../lib/ctblmono.gd:605 : TestMonomial uses Oper but must be Attr
./../../lib/ctblmono.gd:607 : TestMonomial uses Oper but must be Attr
./../../lib/ctblmono.gd:760 : TestRelativelySM uses Oper but must be Attr
./../../lib/ctblmono.gd:762 : TestRelativelySM uses Oper but must be Attr
./obsolete.xml:190 : InfoObsolete uses Var but must be InfoClass
./create.xml:979 : ExtRepOfObj uses Func but must be Oper
./create.xml:980 : ObjByExtRep uses Func but must be Oper
Selected 3674 ManSections of the following types:
Attr - 681
Fam - 3
Filt - 301
Func - 1367
InfoClass - 19
Meth - 49
Oper - 938
Prop - 261
Var - 55
363 errors detected 

@fingolfin
Copy link
Member

Seems useful. Perhaps also add a make target and document that?

@frankluebeck
Copy link
Member

Interesting check.

I would say that <Meth ... entries should be considered as correct (that is, messages ... uses Meth but must be ... should not occur.

Some of the examples shown above seem to come from lib/overload.g. For example, IsSimple is indeed declared as operation. But the installed methods (for groups, modules and character tables) are all properties: IsSimpleGroup, IsSimpleCharacterTable, and so on; and similarly for other properties and attributes.

Maybe one could get rid of IsSimpleGroup, IsSimpleCharacterTable and so on (or make the documented ones synonym to IsSimple) by just using

DeclareProperty("IsSimple", IsGroup);
DeclareProperty("IsSimple", IsOrdinaryTable);
...

and as a byproduct the documentation becomes correct?

@olexandr-konovalov
Copy link
Member Author

I've allowed Meth to appear in elements suggested to be one of Oper, Attr and Prop in 993aaa4 and fixed more than 2/3 of reported inconsistencies in 9532c3b. What is left now fits the space below in full. Some of the things that left are either unclear or require discussion or may raise questions whether they are implemented in the optimal way or should be converted from functions to operations or to attributes etc.

./../../lib/float.gd:260 : NewFloat uses Oper but must be Constructor
./../../lib/list.gd:526 : IsDuplicateFreeList uses Prop but must be Filt
./../../lib/matrix.gd:269 : Determinant uses Attr but must be Oper
./../../lib/matrix.gd:125 : DiagonalOfMat uses Oper but must be Func
./../../lib/vecmat.gd:407 : ImmutableMatrix uses Func but must be Oper
./../../lib/matint.gd:341 : BaseIntersectionIntMats uses Attr but must be Oper
./../../lib/matint.gd:368 : ComplementIntMat uses Attr but must be Oper
./../../lib/matint.gd:198 : DiagonalizeIntMat uses Oper but must be Func
./../../lib/matint.gd:236 : NormalFormIntMat uses Oper but must be Func
./../../lib/matint.gd:525 : DeterminantIntMat uses Oper but must be Func
./../../lib/relation.gd:69 : IsBinaryRelation uses Filt but must be Prop
./../../lib/magma.gd:670 : Centralizer uses Attr but must be Oper
./../../lib/grp.gd:3353 : GrowthFunctionOfGroup uses Oper but must be Attr
./../../lib/grp.gd:3354 : GrowthFunctionOfGroup uses Oper but must be Attr
./../../lib/csetgrp.gd:211 : DoubleCosets uses Oper but must be Func
./../../lib/grp.gd:3129 : PRump uses Func but must be Oper
./../../lib/grp.gd:2927 : IsPSolvable uses Func but must be Oper
./../../lib/grp.gd:2910 : IsPNilpotent uses Func but must be Oper
./../../lib/grp.gd:4267 : HasAbelianFactorGroup uses Oper but must be Func
./../../lib/grp.gd:4302 : HasElementaryAbelianFactorGroup uses Oper but must be Func
./../../lib/coll.gd:3228 : CanComputeSize uses Func but must be Filt
./../../lib/grppclat.gd:71 : InducedAutomorphism uses Oper but must be Func
./../../lib/oprt.gd:1240 : Orbit uses Oper but must be Func
./../../lib/oprt.gd:1278 : Orbits uses Oper but must be Attr
./../../lib/oprt.gd:1303 : OrbitsDomain uses Oper but must be Attr
./../../lib/oprt.gd:1354 : OrbitLength uses Oper but must be Func
./../../lib/oprt.gd:1375 : OrbitLengths uses Oper but must be Attr
./../../lib/oprt.gd:1397 : OrbitLengthsDomain uses Oper but must be Attr
./../../lib/oprt.gd:1428 : OrbitStabilizer uses Oper but must be Func
./../../lib/oprt.gd:1032 : SparseActionHomomorphism uses Oper but must be Func
./../../lib/oprt.gd:1034 : SortedSparseActionHomomorphism uses Oper but must be Func
./../../lib/oprt.gd:1928 : Cycle uses Oper but must be Func
./../../lib/oprt.gd:1968 : CycleLength uses Oper but must be Func
./../../lib/oprt.gd:1948 : Cycles uses Oper but must be Func
./../../lib/oprt.gd:1989 : CycleLengths uses Oper but must be Func
./../../lib/oprt.gd:1693 : IsTransitive uses Oper but must be Prop
./../../lib/oprt.gd:1514 : Transitivity uses Oper but must be Attr
./../../lib/oprt.gd:1841 : RankAction uses Oper but must be Attr
./../../lib/oprt.gd:1777 : IsSemiRegular uses Oper but must be Prop
./../../lib/oprt.gd:1804 : IsRegular uses Oper but must be Prop
./../../lib/oprt.gd:1667 : Earns uses Oper but must be Attr
./../../lib/oprt.gd:1728 : IsPrimitive uses Oper but must be Prop
./../../lib/oprt.gd:1549 : Blocks uses Oper but must be Func
./../../lib/oprt.gd:1551 : Blocks uses Attr but must be Func
./../../lib/oprt.gd:1593 : MaximalBlocks uses Oper but must be Func
./../../lib/oprt.gd:1595 : MaximalBlocks uses Attr but must be Func
./../../lib/oprt.gd:1631 : RepresentativesMinimalBlocks uses Oper but must be Func
./../../lib/oprt.gd:1634 : RepresentativesMinimalBlocks uses Attr but must be Func
./../../lib/oprt.gd:1145 : ExternalSet uses Oper but must be Attr
./../../lib/oprt.gd:1196 : ExternalSubset uses Oper but must be Func
./../../lib/oprt.gd:1218 : ExternalOrbit uses Oper but must be Func
./../../lib/oprt.gd:1450 : ExternalOrbits uses Oper but must be Attr
./../../lib/oprt.gd:1476 : ExternalOrbitsStabilizers uses Oper but must be Attr
./permutat.xml:130 : AsPermutation uses Oper but must be Attr
./../../lib/grppc.gd:289 : CanEasilyComputePcgs uses Func but must be Filt
./../../lib/pcgs.gd:978 : PcElementByExponents uses Oper but must be Func
./../../lib/pcgs.gd:1009 : LinearCombinationPcgs uses Oper but must be Func
./../../lib/grpfp.gd:224 : IsFpGroup uses Func but must be Filt
./../../lib/sgpres.gd:170 : AugmentedCosetTableInWholeGroup uses Oper but must be Func
./../../lib/grp.gd:4030 : IsomorphismFpGroupByGenerators uses Attr but must be Func
./../../lib/grp.gd:4031 : IsomorphismFpGroupByGeneratorsNC uses Attr but must be Oper
./../../lib/tietze.gd:103 : TietzeWordAbstractWord uses Func but must be Oper
./../../lib/gprd.gd:101 : SubdirectProduct uses Oper but must be Func
./../../lib/semigrp.gd:19 : IsSemigroup uses Prop but must be Filt
./../../lib/monoid.gd:20 : IsMonoid uses Prop but must be Filt
./semigrp.xml:127 : IsInverseMonoid uses Prop but must be Filt
./reesmat.xml:266 : IsReesMatrixSubsemigroup uses Prop but must be Filt
./reesmat.xml:267 : IsReesZeroMatrixSubsemigroup uses Prop but must be Filt
./trans.xml:729 : DegreeOfTransformation uses Attr but must be Func
./trans.xml:831 : MovedPoints uses Oper but must be Attr
./trans.xml:832 : MovedPoints uses Oper but must be Attr
./trans.xml:1009 : FlatKernelOfTransformation uses Func but must be Attr
./trans.xml:1257 : CycleTransformationInt uses Attr but must be Oper
./trans.xml:1310 : TrimTransformation uses Func but must be Oper
./trans.xml:1440 : IsTransformationSemigroup uses Prop but must be Filt
./trans.xml:1441 : IsTransformationMonoid uses Prop but must be Filt
./trans.xml:1618 : AntiIsomorphismTransformationSemigroup uses Oper but must be Attr
./pperm.xml:481 : DegreeOfPartialPerm uses Attr but must be Func
./pperm.xml:502 : CodegreeOfPartialPerm uses Attr but must be Func
./pperm.xml:522 : RankOfPartialPerm uses Attr but must be Func
./pperm.xml:567 : ImageOfPartialPermCollection uses Oper but must be Attr
./../../lib/ffe.gd:171 : DefaultField uses Meth but must be Func
./../../lib/ffe.gd:172 : DefaultRing uses Meth but must be Func
./../../lib/alglie.gd:434 : AdjointAssociativeAlgebra uses Attr but must be Oper
./../../lib/alglie.gd:794 : FindSl2 uses Oper but must be Func
./../../lib/lierep.gd:808 : HighestWeightModule uses Func but must be Oper
./../../lib/ratfun.gd:1376 : Discriminant uses Oper but must be Attr
./meataxe.xml:419 : MTX.InducedActionMatrix is unbound 
./meataxe.xml:420 : MTX.InducedActionMatrixNB is unbound 
./../../lib/tom.gd:1506 : CyclicExtensionsTom uses Oper but must be Attr
./../../lib/ctbl.gd:1108 : IsAlmostSimple uses Prop but must be Oper
./../../lib/ctbl.gd:1112 : IsMonomial uses Prop but must be Oper
./../../lib/ctbl.gd:1113 : IsNilpotent uses Prop but must be Oper
./../../lib/ctbl.gd:1114 : IsPerfect uses Prop but must be Oper
./../../lib/ctbl.gd:1115 : IsSimple uses Prop but must be Oper
./../../lib/ctbl.gd:1116 : IsSolvable uses Prop but must be Oper
./../../lib/ctbl.gd:1117 : IsSporadicSimple uses Prop but must be Oper
./../../lib/ctbl.gd:1118 : IsSupersolvable uses Prop but must be Oper
./../../lib/ctbl.gd:2449 : DecompositionMatrix uses Oper but must be Attr
./../../lib/ctbl.gd:3802 : CharacterTableIsoclinic uses Oper but must be Attr
./../../lib/ctblmaps.gd:583 : FusionConjugacyClassesOp uses Oper but must be Attr
./../../lib/ctblmono.gd:605 : TestMonomial uses Oper but must be Attr
./../../lib/ctblmono.gd:607 : TestMonomial uses Oper but must be Attr
./../../lib/ctblmono.gd:760 : TestRelativelySM uses Oper but must be Attr
./../../lib/ctblmono.gd:762 : TestRelativelySM uses Oper but must be Attr
Selected 3674 ManSections of the following types:
Attr - 756
Fam - 8
Filt - 348
Func - 1319
InfoClass - 21
Meth - 71
Oper - 880
Prop - 225
Var - 46
105 errors detected

@olexandr-konovalov
Copy link
Member Author

In addition to doc/ref/testcoverage.g which lists ManSections having no examples, and to this check, there are further suggestions to check consistency of the manual:

  • Look for Ref elements referring to the wrong type of the object, for example, using <Ref Func="name"/> instead of <Ref Oper="name"/>.
  • Look for discrepancies between the actual and documented number of arguments (not comprehensive, but could try to at least to catch some obvious discrepancies).
  • Look for orphaned ManSections, e.g. when there is <#GAPDoc Label="name"> in the code without corresponding <#Include Label="name"> elsewhere. A script could rewrite all such labels to e.g.<#GAPDoc Label="name" Unused="true">` to indicate that.

@olexandr-konovalov olexandr-konovalov force-pushed the manual-consistency branch 2 times, most recently from fcf942c to 7a5efac Compare January 31, 2016 13:27
@olexandr-konovalov
Copy link
Member Author

I've pushed the next version which also looks for Ref elements referring to the wrong type of the object, for example, using <Ref Func="name"/> instead of <Ref Oper="name"/>. There are 2650 cases like this, so I've counted them as warnings and suppressed their output by default.

However, there are five genuine errors - see the log below. For example, when the Ref elements uses Func:=Orbits without label, it is resolved to Section 41.4 "Orbits", and it's not clear whether that was an original intention of the writer. If it was, then "Func" should be replaced by "Sect", otherwise a label should be used. The output in this case suggests which labels are available (the next version may try to also check for Chapters, Sections and Subsections with the same name).

Found 7373 Ref elements including 7329 within the Reference manual
./trans.xml:294 : no match (wrong type or missing label?) for Func:=Permutation
  Suggestions: 
Use Func with Label:="for a group, an action domain, etc." (for Arg:="g, Omega[, gens, acts][, act]")
Use Func with Label:="for an external set" (for Arg:="g, xset")
./pperm.xml:294 : no match (wrong type or missing label?) for Func:=Permutation
  Suggestions: 
Use Func with Label:="for a group, an action domain, etc." (for Arg:="g, Omega[, gens, acts][, act]")
Use Func with Label:="for an external set" (for Arg:="g, xset")
./../../lib/oprt.gd:479 : no match (wrong type or missing label?) for Func:=Orbits
  Suggestions: 
Use Oper with Label:="operation" (for Arg:="G, seeds[, gens, acts][, act]")
Use Attr with Label:="attribute" (for Arg:="xset")
./../../lib/oprt.gd:495 : no match (wrong type or missing label?) for Func:=Orbits
  Suggestions: 
Use Oper with Label:="operation" (for Arg:="G, seeds[, gens, acts][, act]")
Use Attr with Label:="attribute" (for Arg:="xset")
./foa.xml:196 : no match (wrong type or missing label?) for Attr:=Orbits
  Suggestions: 
Use Oper with Label:="operation" (for Arg:="G, seeds[, gens, acts][, act]")
Use Attr with Label:="attribute" (for Arg:="xset")
...
Selected 6113 Ref elements referring to ManSections 
Found 5 errors and 2650 warnings in Ref elements 
To show warnings, use CheckManSectionTypes(doc,true); 

@olexandr-konovalov olexandr-konovalov added topic: documentation Issues and PRs related to documentation topic: tests issues or PRs related to tests do not merge PRs which are not yet ready to be merged (e.g. submitted for discussion, or test results) labels Jan 31, 2016
@olexandr-konovalov olexandr-konovalov changed the title Added consistency check for the reference manual Added consistency check for the reference manual (WIP) Jan 31, 2016
@olexandr-konovalov olexandr-konovalov removed the do not merge PRs which are not yet ready to be merged (e.g. submitted for discussion, or test results) label Mar 11, 2016
Alexander Konovalov added 5 commits March 11, 2016 21:31
This test checks that ManSections are of the right type.
If the 2nd optional argument is true, warnings will be displayed in case of a type mismatch.
testcoverage.g filename is misleading since that script looked
for ManSections having no examples, and had nothing in common
with code coverage. Now testconsistency.g should perform all
kinds of manual health checks. At the moment, it checks types
in ManSections and Ref elements and find ManSections without
examples.
@olexandr-konovalov
Copy link
Member Author

This now should be ready for merge. I've added make check-manuals target which checks for wrong types in ManSection and Ref elements and also reports ManSections having no examples. As usually, it produces a report in dev/log. Documentation is not there yet, but if this will be merged, I will make a reminded on this in PR #506. This is how the report looks like:

****************************************************************
*** Looking for ManSections having no examples 
****************************************************************
...
./types.xml:637 : DataType
./../../lib/cyclotom.g:114 : IsInt
./../../lib/cyclotom.g:150 : IsPosInt
./../../lib/integer.gd:635 : IsEvenInt
./../../lib/integer.gd:652 : IsOddInt
...
****************************************************************
*** Doc coverage report 
****************************************************************
2810 mansections 
1289 with examples 
1521 without examples 
****************************************************************
*** Checking types in ManSections 
****************************************************************
./debug.xml:387 : time is unbound 
./../../lib/float.gd:260 : NewFloat uses Oper instead of Constructor
./../../lib/list.gd:526 : IsDuplicateFreeList uses Prop instead of Filt
./../../lib/matrix.gd:269 : Determinant uses Attr instead of Oper
./../../lib/matrix.gd:125 : DiagonalOfMat uses Oper instead of Func
./../../lib/vecmat.gd:407 : ImmutableMatrix uses Func instead of Oper
./../../lib/matint.gd:341 : BaseIntersectionIntMats uses Attr instead of Oper
./../../lib/matint.gd:368 : ComplementIntMat uses Attr instead of Oper
./../../lib/matint.gd:198 : DiagonalizeIntMat uses Oper instead of Func
./../../lib/matint.gd:236 : NormalFormIntMat uses Oper instead of Func
./../../lib/matint.gd:525 : DeterminantIntMat uses Oper instead of Func
./../../lib/relation.gd:69 : IsBinaryRelation uses Filt instead of Prop
./../../lib/magma.gd:670 : Centralizer uses Attr instead of Oper
./../../lib/grp.gd:3353 : GrowthFunctionOfGroup uses Oper instead of Attr
./../../lib/grp.gd:3354 : GrowthFunctionOfGroup uses Oper instead of Attr
./../../lib/csetgrp.gd:211 : DoubleCosets uses Oper instead of Func
./../../lib/grp.gd:3129 : PRump uses Func instead of Oper
./../../lib/grp.gd:2927 : IsPSolvable uses Func instead of Oper
./../../lib/grp.gd:2910 : IsPNilpotent uses Func instead of Oper
./../../lib/grp.gd:4267 : HasAbelianFactorGroup uses Oper instead of Func
./../../lib/grp.gd:
4310 : HasElementaryAbelianFactorGroup uses Oper instead of Func
./../../lib/coll.gd:3228 : CanComputeSize uses Func instead of Filt
./../../lib/grppclat.gd:71 : InducedAutomorphism uses Oper instead of Func
./../../lib/oprt.gd:1242 : Orbit uses Oper instead of Func
./../../lib/oprt.gd:1280 : Orbits uses Oper instead of Attr
./../../lib/oprt.gd:1305 : OrbitsDomain uses Oper instead of Attr
./../../lib/oprt.gd:1356 : OrbitLength uses Oper instead of Func
./../../lib/oprt.gd:1377 : OrbitLengths uses Oper instead of Attr
./../../lib/oprt.gd:1399 : OrbitLengthsDomain uses Oper instead of Attr
./../../lib/oprt.gd:1430 : OrbitStabilizer uses Oper instead of Func
./../../lib/oprt.gd:1034 : SparseActionHomomorphism uses Oper instead of Func
./../../lib/oprt.gd:
1036 : SortedSparseActionHomomorphism uses Oper instead of Func
./../../lib/oprt.gd:1930 : Cycle uses Oper instead of Func
./../../lib/oprt.gd:1970 : CycleLength uses Oper instead of Func
./../../lib/oprt.gd:1950 : Cycles uses Oper instead of Func
./../../lib/oprt.gd:1991 : CycleLengths uses Oper instead of Func
./../../lib/oprt.gd:1695 : IsTransitive uses Oper instead of Prop
./../../lib/oprt.gd:1516 : Transitivity uses Oper instead of Attr
./../../lib/oprt.gd:1843 : RankAction uses Oper instead of Attr
./../../lib/oprt.gd:1779 : IsSemiRegular uses Oper instead of Prop
./../../lib/oprt.gd:1806 : IsRegular uses Oper instead of Prop
./../../lib/oprt.gd:1669 : Earns uses Oper instead of Attr
./../../lib/oprt.gd:1730 : IsPrimitive uses Oper instead of Prop
./../../lib/oprt.gd:1551 : Blocks uses Oper instead of Func
./../../lib/oprt.gd:1553 : Blocks uses Attr instead of Func
./../../lib/oprt.gd:1595 : MaximalBlocks uses Oper instead of Func
./../../lib/oprt.gd:1597 : MaximalBlocks uses Attr instead of Func
./../../lib/oprt.gd:
1633 : RepresentativesMinimalBlocks uses Oper instead of Func
./../../lib/oprt.gd:
1636 : RepresentativesMinimalBlocks uses Attr instead of Func
./../../lib/oprt.gd:1147 : ExternalSet uses Oper instead of Attr
./../../lib/oprt.gd:1198 : ExternalSubset uses Oper instead of Func
./../../lib/oprt.gd:1220 : ExternalOrbit uses Oper instead of Func
./../../lib/oprt.gd:1452 : ExternalOrbits uses Oper instead of Attr
./../../lib/oprt.gd:1478 : ExternalOrbitsStabilizers uses Oper instead of Attr
./permutat.xml:130 : AsPermutation uses Oper instead of Attr
./../../lib/grppc.gd:289 : CanEasilyComputePcgs uses Func instead of Filt
./../../lib/pcgs.gd:978 : PcElementByExponents uses Oper instead of Func
./../../lib/pcgs.gd:1009 : LinearCombinationPcgs uses Oper instead of Func
./../../lib/grpfp.gd:224 : IsFpGroup uses Func instead of Filt
./../../lib/sgpres.gd:
170 : AugmentedCosetTableInWholeGroup uses Oper instead of Func
./../../lib/grp.gd:
4030 : IsomorphismFpGroupByGenerators uses Attr instead of Func
./../../lib/grp.gd:
4031 : IsomorphismFpGroupByGeneratorsNC uses Attr instead of Oper
./../../lib/tietze.gd:103 : TietzeWordAbstractWord uses Func instead of Oper
./../../lib/gprd.gd:101 : SubdirectProduct uses Oper instead of Func
./../../lib/semigrp.gd:19 : IsSemigroup uses Prop instead of Filt
./../../lib/monoid.gd:20 : IsMonoid uses Prop instead of Filt
./semigrp.xml:127 : IsInverseMonoid uses Prop instead of Filt
./reesmat.xml:266 : IsReesMatrixSubsemigroup uses Prop instead of Filt
./reesmat.xml:267 : IsReesZeroMatrixSubsemigroup uses Prop instead of Filt
./trans.xml:729 : DegreeOfTransformation uses Attr instead of Func
./trans.xml:831 : MovedPoints uses Oper instead of Attr
./trans.xml:832 : MovedPoints uses Oper instead of Attr
./trans.xml:1009 : FlatKernelOfTransformation uses Func instead of Attr
./trans.xml:1257 : CycleTransformationInt uses Attr instead of Oper
./trans.xml:1310 : TrimTransformation uses Func instead of Oper
./trans.xml:1440 : IsTransformationSemigroup uses Prop instead of Filt
./trans.xml:1441 : IsTransformationMonoid uses Prop instead of Filt
./trans.xml:
1618 : AntiIsomorphismTransformationSemigroup uses Oper instead of Attr
./pperm.xml:481 : DegreeOfPartialPerm uses Attr instead of Func
./pperm.xml:502 : CodegreeOfPartialPerm uses Attr instead of Func
./pperm.xml:522 : RankOfPartialPerm uses Attr instead of Func
./pperm.xml:567 : ImageOfPartialPermCollection uses Oper instead of Attr
./../../lib/ffe.gd:171 : DefaultField uses Meth instead of Func
./../../lib/ffe.gd:172 : DefaultRing uses Meth instead of Func
./../../lib/alglie.gd:
434 : AdjointAssociativeAlgebra uses Attr instead of Oper
./../../lib/alglie.gd:794 : FindSl2 uses Oper instead of Func
./../../lib/lierep.gd:808 : HighestWeightModule uses Func instead of Oper
./../../lib/ratfun.gd:1376 : Discriminant uses Oper instead of Attr
./meataxe.xml:419 : MTX.InducedActionMatrix is unbound 
./meataxe.xml:420 : MTX.InducedActionMatrixNB is unbound 
./../../lib/tom.gd:1506 : CyclicExtensionsTom uses Oper instead of Attr
./../../lib/ctbl.gd:1108 : IsAlmostSimple uses Prop instead of Oper
./../../lib/ctbl.gd:1112 : IsMonomial uses Prop instead of Oper
./../../lib/ctbl.gd:1113 : IsNilpotent uses Prop instead of Oper
./../../lib/ctbl.gd:1114 : IsPerfect uses Prop instead of Oper
./../../lib/ctbl.gd:1115 : IsSimple uses Prop instead of Oper
./../../lib/ctbl.gd:1116 : IsSolvable uses Prop instead of Oper
./../../lib/ctbl.gd:1117 : IsSporadicSimple uses Prop instead of Oper
./../../lib/ctbl.gd:1118 : IsSupersolvable uses Prop instead of Oper
./../../lib/ctbl.gd:2449 : DecompositionMatrix uses Oper instead of Attr
./../../lib/ctbl.gd:3802 : CharacterTableIsoclinic uses Oper instead of Attr
./../../lib/ctblmaps.gd:
583 : FusionConjugacyClassesOp uses Oper instead of Attr
./../../lib/ctblmono.gd:605 : TestMonomial uses Oper instead of Attr
./../../lib/ctblmono.gd:607 : TestMonomial uses Oper instead of Attr
./../../lib/ctblmono.gd:760 : TestRelativelySM uses Oper instead of Attr
./../../lib/ctblmono.gd:762 : TestRelativelySM uses Oper instead of Attr
****************************************************************
*** Checking types in cross-references 
****************************************************************
Found 7381 Ref elements including 7337 within the Reference manual
./trans.xml:
294 : no match (wrong type or missing label?) for Func:=Permutation
  Suggestions: 
Use Func with Label:="for a group, an action domain, etc." (for Arg:="g, Omega\
[, gens, acts][, act]")
Use Func with Label:="for an external set" (for Arg:="g, xset")
./pperm.xml:
294 : no match (wrong type or missing label?) for Func:=Permutation
  Suggestions: 
Use Func with Label:="for a group, an action domain, etc." (for Arg:="g, Omega\
[, gens, acts][, act]")
Use Func with Label:="for an external set" (for Arg:="g, xset")
./../../lib/oprt.gd:
479 : no match (wrong type or missing label?) for Func:=Orbits
  Suggestions: 
Use Oper with Label:="operation" (for Arg:="G, seeds[, gens, acts][, act]")
Use Attr with Label:="attribute" (for Arg:="xset")
./../../lib/oprt.gd:
495 : no match (wrong type or missing label?) for Func:=Orbits
  Suggestions: 
Use Oper with Label:="operation" (for Arg:="G, seeds[, gens, acts][, act]")
Use Attr with Label:="attribute" (for Arg:="xset")
./foa.xml:196 : no match (wrong type or missing label?) for Func:=Orbits
  Suggestions: 
Use Oper with Label:="operation" (for Arg:="G, seeds[, gens, acts][, act]")
Use Attr with Label:="attribute" (for Arg:="xset")
****************************************************************
Selected 3675 ManSections of the following types:
Attr - 756
Fam - 8
Filt - 348
Func - 1320
InfoClass - 21
Meth - 71
Oper - 880
Prop - 225
Var - 46
Found 106 errors in ManSection types 
Selected 6122 Ref elements referring to ManSections 
Found 5 errors and 2681 warnings in Ref elements 
To show warnings, use CheckManSectionTypes(doc,true); 
****************************************************************

james-d-mitchell added a commit to james-d-mitchell/gap that referenced this pull request Mar 14, 2016
This commit fixes some of the inconsistency in the manual pointed out in
Issue gap-system#538.
james-d-mitchell added a commit to james-d-mitchell/gap that referenced this pull request Mar 14, 2016
This commit fixes some of the inconsistency in the manual pointed out in
Issue gap-system#538.
james-d-mitchell added a commit to james-d-mitchell/gap that referenced this pull request Mar 15, 2016
This commit fixes some of the inconsistency in the manual pointed out in
Issue gap-system#538.
james-d-mitchell added a commit to james-d-mitchell/gap that referenced this pull request Mar 15, 2016
This commit fixes some of the inconsistency in the manual pointed out in
Issue gap-system#538.
markuspf added a commit that referenced this pull request Mar 16, 2016
Added consistency check for the reference manual (WIP)
@markuspf markuspf merged commit d2b0380 into gap-system:stable-4.8 Mar 16, 2016
@markuspf markuspf changed the title Added consistency check for the reference manual (WIP) Added consistency check for the reference manual Mar 16, 2016
@olexandr-konovalov
Copy link
Member Author

Just to note: I've now checked stable-4.8 branch. Initially we had 363 errors, and now after all cleanups the following remains:

  • 86 errors in ManSection types
  • 3 errors in Ref elements

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: documentation Issues and PRs related to documentation topic: tests issues or PRs related to tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants