diff --git a/lib/methwhy.g b/lib/methwhy.g index 04469dd9d5e..2e4bd8cb23f 100644 --- a/lib/methwhy.g +++ b/lib/methwhy.g @@ -273,7 +273,7 @@ end); ## ## Displays information about the filters that may be ## implied by filter. They are given by their names. -## ShowImpliedFilters first displays the names of all filters +## first displays the names of all filters ## that are unconditionally implied by filter. It then displays ## implications that require further filters to be present (indicating ## by + the required further filters). @@ -281,18 +281,13 @@ end); ## gap> ShowImpliedFilters(IsNilpotentGroup); ## Implies: ## IsSupersolvableGroup -## HasIsSupersolvableGroup ## IsSolvableGroup -## HasIsSolvableGroup ## IsNilpotentByFinite -## HasIsNilpotentByFinite ## ## ## May imply with: ## +IsFinitelyGeneratedGroup -## +HasIsFinitelyGeneratedGroup ## IsPolycyclicGroup -## HasIsPolycyclicGroup ## ## ]]> ## @@ -300,7 +295,9 @@ end); ## <#/GAPDoc> ## BIND_GLOBAL("ShowImpliedFilters",function(filter) -local flags, implied, f, extra_implications, implication, name, diff_reqs, diff_impls; + local flags, implied, f, extra_implications, implication, name, diff_reqs, + diff_impls, reduced; + flags:=FLAGS_FILTER(filter); implied := WITH_IMPS_FLAGS(flags); atomic readonly IMPLICATIONS_SIMPLE do @@ -322,9 +319,13 @@ local flags, implied, f, extra_implications, implication, name, diff_reqs, diff_ implied := SUB_FLAGS(implied, flags); fi; + reduced:= trues -> Filtered( trues, + i -> not ( INFO_FILTERS[i] in FNUM_TPRS + and FLAG1_FILTER( FILTERS[i] ) in trues ) ); + if SIZE_FLAGS(implied) > 0 then Print("Implies:\n"); - for name in NamesFilter(implied) do + for name in NamesFilter( reduced( TRUES_FLAGS( implied ) ) ) do Print(" ",name,"\n"); od; fi; @@ -332,10 +333,10 @@ local flags, implied, f, extra_implications, implication, name, diff_reqs, diff_ if Length(extra_implications) > 0 then Print("\n\nMay imply with:\n"); for implication in extra_implications do - for name in NamesFilter(implication[1]) do + for name in NamesFilter( reduced( TRUES_FLAGS( implication[1] ) ) ) do Print("+",name,"\n"); od; - for name in NamesFilter(implication[2]) do + for name in NamesFilter( reduced( TRUES_FLAGS( implication[2] ) ) ) do Print(" ",name,"\n"); od; Print("\n"); @@ -393,7 +394,7 @@ BIND_GLOBAL("PageSource", function ( fun, nr... ) f := Filename(List(GAPInfo.RootPaths, Directory), f); fi; if f = fail and fun in OPERATIONS then - # for operations we show the location(s) of their operation + # for operations we show the location(s) of their declararion locs := GET_DECLARATION_LOCATIONS(fun); if n > Length(locs) then Print("Operation ", NameFunction(fun), " has only ",