Opened 14 months ago
Closed 12 months ago
#32027 closed enhancement (fixed)
OrlikSolomon invariant algebra
Reported by:  tkarn  Owned by:  

Priority:  major  Milestone:  sage9.5 
Component:  combinatorics  Keywords:  gsoc2021 invariant orliksolomon matroid 
Cc:  tscrim, tkarn  Merged in:  
Authors:  Trevor K. Karn  Reviewers:  Travis Scrimshaw 
Report Upstream:  N/A  Work issues:  
Branch:  4006b40 (Commits, GitHub, GitLab)  Commit:  4006b40c80ee5a9228c2056a019307db035f2b43 
Dependencies:  #31987 #31939 #32145  Stopgaps: 
Description (last modified by )
Implement a subclass of FiniteDimensionalInvariantModule
specifically for the OrlikSolomon algebra of a matroid, given an action on the groundset.
C.f. the related implementation for the OrlikTerao algebra #32293 (which is not a dependency for this ticket).
Change History (23)
comment:1 Changed 14 months ago by
 Component changed from PLEASE CHANGE to combinatorics
 Type changed from PLEASE CHANGE to enhancement
comment:2 Changed 13 months ago by
 Milestone changed from sage9.4 to sage9.5
comment:3 Changed 13 months ago by
 Branch set to u/tkarn/osinvariants32027
 Commit set to 9bd35c340bca083af585668a6564c19562151572
comment:4 Changed 13 months ago by
 Commit changed from 9bd35c340bca083af585668a6564c19562151572 to 5eb896d2163d30d40f5c360721ca93d55a991899
Branch pushed to git repo; I updated commit sha1. New commits:
5eb896d  Fix mathematical error in tests and type error by adding Representation (mirroring the .invariant_module method of categories.FiniteDimensionalModuleWithBasis)

comment:5 Changed 13 months ago by
 Commit changed from 5eb896d2163d30d40f5c360721ca93d55a991899 to 3487e96d7462d2d37def870b285e6fd715554233
Branch pushed to git repo; I updated commit sha1. New commits:
3487e96  Clean up unneccessary actions, fix multiplication

comment:6 Changed 13 months ago by
 Dependencies changed from #31987 #31939 to #31987 #31939 #32145
comment:7 Changed 13 months ago by
 Commit changed from 3487e96d7462d2d37def870b285e6fd715554233 to 3436ce83491745a0177ff12a780ae10eb115ae6c
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
3436ce8  Add invariant option to OrlikSolomon and to matroids

comment:8 Changed 13 months ago by
 Description modified (diff)
comment:9 Changed 13 months ago by
 Branch changed from u/tkarn/osinvariants32027 to u/tscrim/os_invariants32027
 Commit changed from 3436ce83491745a0177ff12a780ae10eb115ae6c to d6ff85bffdc390c9a38378935d4c8749510beb25
comment:10 Changed 13 months ago by
 Commit changed from d6ff85bffdc390c9a38378935d4c8749510beb25 to 5df91337c9780c1ec312ba42fc1287cbae2c71be
Branch pushed to git repo; I updated commit sha1. New commits:
5df9133  Initial review. Bug hunt is needed.

comment:11 Changed 13 months ago by
 Commit changed from 5df91337c9780c1ec312ba42fc1287cbae2c71be to f1f1d96029ad1a7fd136838bca45d803305f2207
Branch pushed to git repo; I updated commit sha1. New commits:
f1f1d96  Adding an additional test for the vertex action. Agrees with known results.

comment:12 Changed 13 months ago by
 Status changed from new to needs_review
Reviewer changes look good to me.
comment:13 Changed 13 months ago by
It occurred to me that we can speed this up for large examples by computing the annihilator_basis
of each individual homogeneous component and forming a submodule from those since we know that the group action preserves degree when the group acts by ring automorphisms.
Preliminary testing indicates that the code as currently written performs better on small examples (groundset size < 5) and the computation degreebydegree performs better when the groundset is bigger.
Should this optimization be implemented? If so in this ticket, or in another?
comment:14 Changed 13 months ago by
I would do the optimization here since it would give more reason for having this subclass. Also I would always just do it in each degree since the small examples will be relatively fast (I would be surprised if they showed up in a tight loop).
comment:15 Changed 13 months ago by
  optional parameter ``invariant``  (optional, default: None) either  a semigroup ``G`` whose ``__call__`` acts on the groundset, or pair  ``(G, action)`` where ``G`` is a semigroup and ``action``  is a function ``action(g,e)`` which takes a pair of a group  element and a grounset element and returns the groundset  element which is the result of ``e`` acted upon by ``g`` +  ``invariant``  (optional) either a semigroup ``G`` such + that ``g(e)`` defines the action of a group element ``g`` + on the groundset element ``e`` or pair ``(G, action)``, + where ``action(g, e)`` returns the action of ``g`` on ``e``
comment:16 Changed 12 months ago by
 Status changed from needs_review to needs_work
comment:17 Changed 12 months ago by
 Branch changed from u/tscrim/os_invariants32027 to u/tkarn/os_invariants32027
 Commit changed from f1f1d96029ad1a7fd136838bca45d803305f2207 to dc7ee4417daa8bcaa0daf9abce1b9700411cd471
 Status changed from needs_work to needs_review
comment:18 Changed 12 months ago by
 Reviewers set to Travis Scrimshaw
Just take care of the pyflakes warnings:
import operator
self._side = side = kwargs.pop('side', 'left') +self._side = kwargs.pop('side', 'left')
and then this is a positive review.
comment:19 Changed 12 months ago by
 Commit changed from dc7ee4417daa8bcaa0daf9abce1b9700411cd471 to c12c5120b3432cbb2ec6d543dfd35c0b235a6b17
Branch pushed to git repo; I updated commit sha1. New commits:
c12c512  Fix pyflakes issues

comment:20 Changed 12 months ago by
 Status changed from needs_review to positive_review
comment:21 Changed 12 months ago by
 Commit changed from c12c5120b3432cbb2ec6d543dfd35c0b235a6b17 to 4006b40c80ee5a9228c2056a019307db035f2b43
 Status changed from positive_review to needs_review
Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:
4006b40  Add kwargs to hyperplane OS

comment:22 Changed 12 months ago by
 Status changed from needs_review to positive_review
comment:23 Changed 12 months ago by
 Branch changed from u/tkarn/os_invariants32027 to 4006b40c80ee5a9228c2056a019307db035f2b43
 Resolution set to fixed
 Status changed from positive_review to closed
Last 10 new commits:
Add example of symmetric functions with monomial basis
Fix _mul_ to assume that both are in same parent
Edit exposition in symmetric function example
Add exposition in examples
Reviewer changes for invariant modules.
Update input documentation
Add _test_invariant for TestSuite
Initial commit
Add tests
Add some tests, fix some tests, break some tests