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

Assumption tilings #353

Draft
wants to merge 48 commits into
base: develop
Choose a base branch
from
Draft

Assumption tilings #353

wants to merge 48 commits into from

Conversation

enadeau
Copy link
Member

@enadeau enadeau commented Sep 22, 2021

Mega PR for tiling assumption

christianbean and others added 30 commits August 25, 2021 12:18
* fix test that use expand_verified

* Make the forward tiling map a class

* add documentation

* add a map_row and map_column method

* update row map

* fixing stuff I'm not sure I understand

* remove dead stuff

* good way to get preimage for grinding counter

* Revert "fixing stuff I'm not sure I understand"

This reverts commit 5688454.

* remove some sum/skew import that no longer make sense

* add remove requirements on tiling

* fix a sort assumption not existing function

* fix assumption map update

* New tiling init map (#350)

* Make the forward tiling map a class

* add documentation

* add a map_row and map_column method

* remove print

* cleaning after discussion with Christian

* import sorting
* make is_identity param optional in map

* add compose function for map

* add __eq__ to map

* make map hashable

* make the tracking assumption use the cell map

* move map outside of algo

* adding test for non-crossing map

Also using it in the init check of tracking assumption

* improve map string

* fix map is_identity
* fix some test for new assumption

* shell of new ParameterCounter and PreimageCounter

* making Tiling class work with the new param counter

* probably fixed the html display

* some doc and cleaning to preimage counter and param counter

* fix tiling test to use new param counter

* map can compute the preimage

* add tilings contain method

* implement preimage method on PreimageCounter

* bunch of dunder method for PreimageCounter

* clear assumption file

* assumptions -> parameters in the main file

* fix factor algorithm

* fix row col algo

* fix req placement

* fix tilings tests

* fix enumeration algorithm

* fix counter

* fix tilescope

* ignore all broken file for mypy

* fix guess obstruction test

* fix algorithm test

* xfail all broken test

* fix some flake8

* ignore some flake8 error

* fix small typo
* test for obs and req insertion on tiling with preimage

* fix bug with req insertion on preimage
* typing rcs algo

* introducing the cell map class

* use the CellMap class in row col sep algorithm

* add map_tiling method

* allow crossing map for preimage counter

* map preimage counter

* make param counter iterable

* implement map parameters

* map inverse method and to_row_col_map

- reverse -> inverse
- implement inverse for cell map
- implement conversion to row_col_map for CellMap

* simplify projection computation

* move param mapping stuff to the map class

* fix the strategy

* small cleaning

* filter contradictory ob when mapping tiling

* non map point obs when mapping tiling

* cleaner map tiling method

* Only mapping requirements that make sense
* update row col map test with new param

* infer empty row and col on preimage based on underlying

* map parameter properly

* activate row col strategy test
* deleting comp fusion, and hopefully tests now "work"

* remove DS_Store file

Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>
* updated pp to use multiplex and rowcolmap

* update forced obs/reqs to use multiplex map

* update mapped assumption to use parameters

* add a domain method to CellMap and RowColMap

* handling special case of the empty perm tiling

* fix map parameters to apply childs forward map

* adding a couple tests

* no need to redefine domain on row col map now

* add multiplex map test, only init once while placing

* enabling test for pp strategy

* assumption -> parameter in a couple of places

* add a multiplex map class

* use already_minimized_obs for point placements

* fix tests to not stretch obs into already empty cells in line with updated multiplex map

* smarter pre-image gp that only create good gp

* fix mypy and pylint

* include forced ob when placing point

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

* fix parameter counter repr

* fix extra_parameter with include empty

* handle extra_param when include empty is emtpy

* sort the param when adding parameters

* avoid duplicate parameter on tiling

* fix sanity_check test to use new assumptions

* reactivate sanity check test

* reactivating a bunch of test that are actually passing
* using initialiser only once for preimages

* refactored with smaller method

* remove todo

Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>
* assumption -> parameter in req insertion

* assumption -> parameter in inferral

* remove magic VScode import

* activate requirement insertion sanity check

* activate inferral strategies test

* should be applying row col map

* add back inferral fixture

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

* fix the initializer

* remove prints
* added a restricted_by and map_gps method to maps

* added active region to preimages and parameters, and updated factor code

* convert factoring sanity check

* activate factor strategy tests

* closer to right, but still wrong - needs more thinking.

* reducible factorization is broken with params

* get rid of sub_tiling method

* map param properly

* activate mypy and interleaving not supported

* restricted_by -> restriction

Co-authored-by: Émile Nadeau <nadeau.emile@gmail.com>
* make the row_map and col_map public via property

* use displayer class to build tiling string

* special symbol for empty tiling

* move html code to display algorithm

* fix pylint

* special case extra obs and req for the empty case.
* overwriting/deleting old fusion

* fix factor bug

* outline for fusing preimages

* general fusion now just a test file to be removed later

* add a first crack at a fusable method

* add the remove identity preimage strategy

* _row_map -> row_map

* mypy for fusion

* Revert "mypy for fusion"

This reverts commit cda5218.

* fix argument name to match parent class

* remove empty preimages from parameter counter

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

* careful when copy pasting!!!

* one less local variable
* Implementing the strategies to do req insertion on preimages

* using disjoint union strategies on parameters

* adding parameter strategies to tracked packs, added a verification stra for params

* fix a bug in mapping the sub param to the right factor

* restrict the fusion to something reasonable

* ignore_parent for disjoint strategy on param

* fix mypy and friends

* better str for param strategy

* ignore parent on remove identity preimage

* simplify and fix the json

* on/off tests

Co-authored-by: Christian Bean <christianbean@ru.is>
* some counting fixes

* remove identity preimage counting

* ensure preimages map to unique child in factor

* fix remove_parameters typing

* fusion account for requirements

* fix a bug in fusion counting

* RemoveParamReq factory and add identity constructor

* add remove req factory to strategy packs

* row -> col

* fixing sort for preimage counters

* counting av1234 by making fused preimage appear at most once in a parameter

* remove test- it was false :)

* fix parameter disjoint strategy

* jays alt fusion, left/right param determined only by preimage of maps

* row -> col

* Revert "row -> col"

This reverts commit 97e3695.

* Revert "jays alt fusion, left/right param determined only by preimage of maps"

This reverts commit fcf3b20.

* mypy and pylint

* json method for remove req factory

* add some typing

* some typing

* test for fusion strat

* limit fusion to normal fusion

* clean test_assumption so we can reactivate it

* reactivate some tests

* remove unused imports

* skip a test instead of xfailing

* remove comented code

* apply child forward map in extra parameters of fusion

Co-authored-by: Christian Bean <christianbean@ru.is>
enadeau and others added 18 commits November 18, 2021 10:39
* not account for extra when deciding side of param

* some test for the new fusion

* jays alt fusion, left/right param determined only by preimage of maps

* row -> col

* clean jay fusion criteria

* sort import

* pylint

Co-authored-by: Christian Bean <christianbean@ru.is>
* handle positive fusion with new param

* prevent fusion when out of bound

* isort
* Change the remove req factory

Only return rules where there is one identity preimage to remove on the
child.

* test that we get hennings weird 123 tree

* isort

* add conditions needed to find component tree verification

* Revert "add conditions needed to find component tree verification"

This reverts commit 2b07fb8.

* making the test more consistent

* remove unused import

Co-authored-by: Christian Bean <christianbean@ru.is>
When we compare the tiling with its unfused fused version we do not
look at parameters
We now also try to remove requirement which maps to a requirement on the
parent but are not the full preimage of the requirement
* fix the add parameter strategy

* update init

* assumption_insertion -> parameter_insertion

* add mypy back in

* fixing test import
* updating rearrange to work with parameters

* update tests, and fix small issues

* rearrange_assumption -> rearrange_parameter

* forgot to add the changed file names!!

* revert adding rowcolmap, param, preim to init due to circular import
* tidy up insertion, and target size two obs for insertions

* fix a test

* assumptions -> parameters

* need to special remove req, yuk

* add remove req to packs

* compare lhs to preim in disjoint param
* only try to map params if they dont become empty

* add a test for the fixes
* only fuse if param in region is exactly fuse param

* pylint fix
* only verify things without parameters (except points)

* adding tests for our successful trees (with xfail for now)

* start tests

* some more tests

* having to specify packs to make universes smaller

* skipping the domino :(
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