Skip to content

add assumption reversible when assumption covers whole tiling #463

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

Merged
merged 1 commit into from
May 10, 2022

Conversation

christianbean
Copy link
Member

this partially addresses issue #455

@christianbean christianbean merged commit 8683ea8 into develop May 10, 2022
@christianbean christianbean deleted the remove-assumptions branch May 10, 2022 15:41
jaypantone added a commit that referenced this pull request Mar 13, 2025
* f (#413)

* skip test with database that is to slow (#415)

* point jumping strategy (#412)

* point jumping strategy

* pylint and flake

* extra param method for counting

* skip test with database that is to slow

Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>
Co-authored-by: Jay Pantone <jay.pantone@gmail.com>

* requirement and row and col placements strategy pack (#414)

* requirement and row and col placements strategy pack

* f

* skip test with database that is to slow

Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>
Co-authored-by: Jay Pantone <jay.pantone@gmail.com>

* limit the size of obs in minimal obs call (#418)

* limit the size of obs in minimal obs call

* if no obs, can't infer obs

* make tracked also adds tracking int factor method (#419)

* Deflation (#416)

* resurrecting old deflation strategy

* Add get equation method in the easy case

* add test for json/repr methods

* remove the skew/sum indec condition

* unused import

* stop reinitialising tilings in the from dict method (#424)

* add empty cell obs during placement (#423)

* add empty cell obs during placement

* CHANGELOG.md

* update partial placement test

* updating black version

* black formatting

* make tracked works with deflation and every other future tracked strategy (#425)

* Selective symmetries (#420)

* a selective symmetry factory

* replace symmetries with this new class, default to all syms

* no basis given = all syms

* mypy

* changelog

Co-authored-by: Jay Pantone <jay.pantone@gmail.com>
Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>

* monotone sliding (#417)

* an alternative sliding strategy based on a fusion argument

* add encoding tests

* if a column, then rotate -> slide -> rotate back"

Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>

* a targeted cell insertion strategy (#421)

* a targeted cell insertion strategy

* test the encoding

* remove double import

* circular import

* Update requirement_insertion.py

* disable import order warning

* actually also need to make the import comply to isort

* allow a list as input to strategy

Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>

* No Root Cell verification (#422)

* Actually adding the files this time

* Pleasing black

* tidying up

* update string method, test

* mypy

* formal step test

* Revert "formal step test"

This reverts commit fd41137.

* formal step test

Co-authored-by: Christian Bean <christianbean@ru.is>

* Point corroboration (#426)

* a point corroboration factory

* change to insert into any pair of cells which can not be mutually positive

* mypy

* remove positive corroboration from bijection packs

* remove unused import

* README.rst

* removing strategy from bijections test, and increasing timeout on forest test

* work from every sym (#427)

* allows swapping points or assumptions alone (#429)

* allows swapping points or assumptions alone

* fixing tests

* add flags

* adding init flags (#430)

* adding init flags

* remove test for fused tiling when unfusable

* the cell reduction strategy (#428)

* the cell reduction strategy

* manually change local basis to monotone in non finite cells, forbid if ob touches row and col

* Improving initialiser (#432)

* add a timer to init to catch slow initialising

* add a heuristic to avoid large products

* change pattern placement to factor sooner

* an actual solution? Pick the product smarter.

* tidying up

* tidy up cleaned obs to reduce size of product

* ignore 1x1s and monotone cells (#433)

* Point corroboration (#434)

* point corrob

* cleaning

* tidying code

* remove point in bijections

* test reqs separately (#437)

* test reqs separately

* not

* allow reqs, and more careful point in between (#436)

* allow reqs, and more careful point in between

* pylint

* api.combopal -> api.permpal

* make not implemented reverse constructor for interleaving factor (#441)

* make not implemented reverse constructor for interleaving factor

* update black version

* subobstruction insertion factory and pack (#442)

* kitchen_sinkify (#435)

* creates kitchen_sinkify function

* don't add short obs or obs inferral if the arguments passed are 0

* fixes CHANGELOG

* adds DB verified and req corrob

* tell pylint to go think about it more

* add test of kitchen sinkify pack json

Co-authored-by: Christian Bean <christianbean@ru.is>

* New collect_before decorator for some test.

Now that we do strategic garbage collection in some of our code some
test where timing out because the gc.collect() call where taking to
long. I introduced a new decorator to collect before those test to avoid
triggering out the timeout.

* Updating component assumptions (#443)

* use cell decomposition for uniting cells in factor

* add component verification and add it to packs

* ignore component assumptions in rearrange

* more selective when verifying tilings with components

* flipping sum and skew in symmetry strategies

* if sum fusion, no skew assumption in region and vice versa

* checking assumptions in comp fusion fusable check

* not implemented counting for positive or empty fusion

* ensure make_tracked adds component strategies

* smarter is_component method to impove DetectComponentsStrategy

* get_minimum_value changed for comp ass since can have fewer components than points

* CHANGELOG.md

* allow comp in monotone and insertion verified

* component -> point assumption strategy

* verification test packs allow comps in insenc and monotone

* dont change type of assumption (#445)

* fix from dict (#446)

* fix from dict

* fix to_jsonable

* ass.__class__ (#447)

* only deflate/reduce when component assumptions touching cell are 1x1 (#448)

* allow fusing when any assumption covers entire fuse region (#449)

* add backward map to FactorWithInterleavingStrategy (#450)

* remove AddInterleavingAssumptionsFactory (#451)

* remove AddInterleavingAssumptionsFactory

* allow untracked interleaving

* self.

* make sure to check both cells are monotone (#457)

* pointing strategy, unfusion strategy, disjoint fusion strategy, a dummy strategy, and allowing directionless pp (#453)

* pointing strategy, a dummy strategy, and allowing directionless pp

* add json encoding test

* mypy and pylint

* CHANGELOG.md

* unfusion strategy

* factory

* the disjoint fusion strategy

* changelog and add to kitchen sink

* added counting code

* implement counting with params for unfusion and pointing

* pointing subtracts already placed cells

* reversible if parent has all the assumptions for interleaving (#456)

* reversible if parent has all the assumptions for interleaving

* unused import

* small bugs in interleaving factors (#458)

* fix the param when generating objects

* remove empty cells when mapping assumption in interleaving factors

* remove outdated todo

* count component behave like disjoint in shift algo (#460)

* removing the disjoint fusion strategy (#459)

* remove the remove_strategy defined on css (#461)

* add assumption reversible when assumption covers whole tiling (#463)

* a strategy for placing points of assumptions (#462)

* a strategy for placing points of assumptions

* make sure to do this on point tracking assumptions

* a factory for placing into rows and cols that are fusable (#464)

* a factory for placing into rows and cols that are fusable.

* __str__

* test encoding

* adds to kitchen sink

Co-authored-by: Jay Pantone <jay.pantone@gmail.com>

* Remove assumptions (#465)

* add assumption reversible when assumption covers whole tiling

* check the assumptions being added

* add a test for is reversible on assumption insertion

* fix json and repr encoding of interleaving factor strategy (#469)

* fix json and repr encoding

* remove dead code

* a requirement pointing strategy (#466)

* a requirement pointing strategy

* allow for directionless placement of gp into all cells, so divide by N

* only point at reqs on tilings

* add remove constructor (#470)

* add remove constructor

* fix equation

* remove unused import

* remove print

* add flags to unfusion and pointing strategies (#471)

* All at once obstruction inferral (#467)

* first draft, mostly copying SubclassVerification.compute_subclasses

* remove prints and tidy

* update test

* Obs inf early yield (#472)

* adds yield_non_minimal flag to obs inf

* adds typing and sets to True

Co-authored-by: jaypantone <jay.pantone@gmail.com>

* full-tiling assumptions do not count against the max_assumptions cap (#474)

* full-tiling assumptions do not count against the max_assumptions cap

* changelog

* more flags for pointing (#475)

* adds flags to PointingStrategy and AssumptionPointingStrategy; also adds RequirementPointingStrategy to kitchen sink

* fixes reprs, from_dicts, to_jsonables

* fixes from_dict bugs from max_cell argument

* Bug fixes

* better __str__s

* adds flag to allow factorable requirement insertions, default = False (#473)

* adds flag to allow factorable requirement insertions, default = False

* changelog and default set to True

* Small bug (#480)

* small bug in initialiser

* add a test

* adds default option (#481)

* makes an option for whether full tiling assumptions count against cap (#482)

* one by one looks up permpal (#483)

* one by one looks up permpal

* remove cached property

* more detailed error messages

* reverse fusion uses divide by k (#484)

* reverse fusion uses divide by k

* mypy

* forbid fusing if assumption not entirely on left or right (#485)

* stop expanding av(012), and return invalid op for comp ver (#487)

* stop expanding av(012), and return invalid op for comp ver

* remove outdated test

* flake

Co-authored-by: Jay Pantone <jay.pantone@gmail.com>

* change error to logging check (#489)

* change error to logging check

* Update test_reverse_fusion.py

* need to pass is empty to fusion is equiv now (#491)

* ensure obs are minimised in point placements (#494)

* ensure obs are minimised in point placements

* changelog

* Work in process getting rid of the new warnings (#497)

* Work in process getting rid of the new warnings

* Updating black version in the pre-commit file

* fixing pylint

* Fixing typing errors

* Still fixing typing issues

* No more typing today, thank you

* A few more typing issues taken care of

* A bit of linting

* Pylint is now happy

* Mypy is now happy

* Quick fix for typing error of array

* better exception message for point jumping (#498)

* Fix and upgrade Github Actions (#500)

* "pypy3" -> "pypy3.8"

* change default from cpython 3.8 to 3.10 and add pypy3.9

* add quotes

* add more quotes

* MOAR QUOTES

* oops too many quotes

* Sliding bug (#501)

* add consecutive value condition for sliding

* tidy up

* add quotes and set new CSS version in setup.py (#502)

* check in decomp func of sliding (#503)

* check in decomp func of sliding

* changelog

* a new pack (#486)

* a new pack

* add json encoding test

* Trackedclassdb (#431)

* a first draft of a tracked classdb

* make default for guided and limited searcher

* adds flags to PointingStrategy and AssumptionPointingStrategy; also adds RequirementPointingStrategy to kitchen sink

* fixes reprs, from_dicts, to_jsonables

* fixes from_dict bugs from max_cell argument

* Bug fixes

* lots of improvements to trackedclassdb

* mypy

* mypy

* mypy

* black

* css now takes classdb flag

* use classqueue flag

* fixes the fact that assumption types were completely ignored

* adds one test

* removes some comments

* ignore pylint error

Co-authored-by: Jay Pantone <jay.pantone@gmail.com>

* one by one uses permpal for counting etc (#499)

* one by one uses permpal for counting etc

* fixed small bug getting rational gfs

* changelog

* only storing 1x1 specs without ass and reqs

* ensure not over correcting for reqs

* simplfy req correction line

* eqs print F_Av(basis)

* fix k0 / k_0 typo in 1x1 eqs (#505)

* fixes bug in sanity checking new 1x1 verification (#506)

* fixes bug in sanity checking new 1x1 verification

* reuse variable

* make local verification basis aware (#507)

* implement positive reverse fusion counting (#509)

* implement positive reverse fusion counting

* If left only and right is positive, then add one to every left parameter

* tidy up tests

* make one-based (#512)

* remove unnecessary error (#514)

* a test for duplicated mapped params in complement (#510)

* a test for duplicated mapped params in complement

* skip test for incr with assumption

* fix misc bugs in kitchen sink strategies (#517)

* a strategy for forcing assumptions to be empty (#513)

* a strategy for forcing assumptions to be empty

* add relax assumption factory to kitchen sink

* tidy up kitchen sink method

---------

Co-authored-by: jaypantone <jay.pantone@gmail.com>

* remove break (#518)

* remove break

* changelog

* adds kitchen sink levels (#519)

* adds kitchen sink levels

* change log and tes

* Shift from spec (#520)

* the shift fix discussed on 16/05/23

* changelog

* fix imports

* sets allow_factorable_insertions default to False (#521)

* prepare v4.0.0

* Create dependabot.yml

* Update dependabot.yml

* Update test.yml

fix substitution of css version with develop branch

* Update test.yml

* Update test.yml

* Update setup.py

* Update test.yml

* removes db verification everywhere (#524)

* removes db verification everywhere

* updare sympy req

* debugging

* debugging

* test version updates (#525)

* test version updates

* fix

* ignore our problems so they go away

* tox mypy

* update

* pylint fixes

* Update CHANGELOG.md

---------

Co-authored-by: jaypantone <jay.pantone@gmail.com>
Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>
Co-authored-by: Henning Ulfarsson <henningu@ru.is>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants