Esempio n. 1
0
 def pack(self, comb_class: Tiling) -> StrategyPack:
     try:
         return InsertionEncodingVerificationStrategy().pack(comb_class)
     except StrategyDoesNotApply:
         pass
     if self.no_factors:
         raise InvalidOperationError("Cannot get a simpler specification")
     if (
         any(isinstance(ass, ComponentAssumption) for ass in comb_class.assumptions)
         and len(comb_class.find_factors()) == 1
     ):
         raise InvalidOperationError(
             "Can't find generating function with component assumption."
         )
     return StrategyPack(
         initial_strats=[FactorFactory()],
         inferral_strats=[],
         expansion_strats=[],
         ver_strats=[
             BasicVerificationStrategy(),
             OneByOneVerificationStrategy(),
             InsertionEncodingVerificationStrategy(),
             MonotoneTreeVerificationStrategy(no_factors=True),
             LocalVerificationStrategy(no_factors=True),
         ],
         name="factor pack",
     )
Esempio n. 2
0
 def verified(self, comb_class: Tiling) -> bool:
     return (
         not self.no_factors or len(comb_class.find_factors()) == 1
     ) and MonotoneTreeEnumeration(comb_class).verified()
Esempio n. 3
0
 def verified(self, comb_class: Tiling) -> bool:
     return (
         comb_class.dimensions != (1, 1)
         and (not self.no_factors or len(comb_class.find_factors()) == 1)
         and LocalEnumeration(comb_class).verified()
     )
Esempio n. 4
0
 def verified(self, tiling: Tiling) -> bool:
     return (not self.no_factors or len(tiling.find_factors())
             == 1) and MonotoneTreeEnumeration(tiling).verified()
Esempio n. 5
0
 def verified(self, tiling: Tiling) -> bool:
     return (tiling.dimensions != (1, 1)
             and (not self.no_factors or len(tiling.find_factors()) == 1)
             and LocalEnumeration(tiling).verified())