#32027 closed enhancement (fixed)

Orlik-Solomon invariant algebra

Reported by: tkarn Owned by:
Priority: major Milestone: sage-9.5
Component: combinatorics Keywords: gsoc2021 invariant orlik-solomon 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:

Status badges

Description (last modified by tkarn)

Implement a subclass of FiniteDimensionalInvariantModule specifically for the Orlik-Solomon algebra of a matroid, given an action on the groundset.

C.f. the related implementation for the Orlik-Terao algebra #32293 (which is not a dependency for this ticket).

Change History (23)

comment:1 Changed 14 months ago by tkarn

  • Component changed from PLEASE CHANGE to combinatorics
  • Type changed from PLEASE CHANGE to enhancement

comment:2 Changed 13 months ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5

comment:3 Changed 13 months ago by tkarn

  • Branch set to u/tkarn/os-invariants-32027
  • Commit set to 9bd35c340bca083af585668a6564c19562151572

Last 10 new commits:

372d407Add example of symmetric functions with monomial basis
4230c46Fix _mul_ to assume that both are in same parent
9914403Edit exposition in symmetric function example
c5f68e6Add exposition in examples
7863dc8Reviewer changes for invariant modules.
1be9d6fUpdate input documentation
051a45bAdd _test_invariant for TestSuite
9b1bb9aInitial commit
abe0b40Add tests
9bd35c3Add some tests, fix some tests, break some tests

comment:4 Changed 13 months ago by git

  • Commit changed from 9bd35c340bca083af585668a6564c19562151572 to 5eb896d2163d30d40f5c360721ca93d55a991899

Branch pushed to git repo; I updated commit sha1. New commits:

5eb896dFix 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 git

  • Commit changed from 5eb896d2163d30d40f5c360721ca93d55a991899 to 3487e96d7462d2d37def870b285e6fd715554233

Branch pushed to git repo; I updated commit sha1. New commits:

3487e96Clean up unneccessary actions, fix multiplication

comment:6 Changed 13 months ago by tkarn

  • Dependencies changed from #31987 #31939 to #31987 #31939 #32145

comment:7 Changed 13 months ago by git

  • Commit changed from 3487e96d7462d2d37def870b285e6fd715554233 to 3436ce83491745a0177ff12a780ae10eb115ae6c

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

3436ce8Add invariant option to Orlik-Solomon and to matroids

comment:8 Changed 13 months ago by tkarn

  • Description modified (diff)

comment:9 Changed 13 months ago by tscrim

  • Branch changed from u/tkarn/os-invariants-32027 to u/tscrim/os_invariants-32027
  • Commit changed from 3436ce83491745a0177ff12a780ae10eb115ae6c to d6ff85bffdc390c9a38378935d4c8749510beb25

New commits:

e2491e2Merge branch 'u/tkarn/os-invariants-32027' of git://trac.sagemath.org/sage into u/tkarn/os-invariants-32027
d6ff85bReworking implementation to use OS algebra as ambient.

comment:10 Changed 13 months ago by git

  • Commit changed from d6ff85bffdc390c9a38378935d4c8749510beb25 to 5df91337c9780c1ec312ba42fc1287cbae2c71be

Branch pushed to git repo; I updated commit sha1. New commits:

5df9133Initial review. Bug hunt is needed.

comment:11 Changed 13 months ago by git

  • Commit changed from 5df91337c9780c1ec312ba42fc1287cbae2c71be to f1f1d96029ad1a7fd136838bca45d803305f2207

Branch pushed to git repo; I updated commit sha1. New commits:

f1f1d96Adding an additional test for the vertex action. Agrees with known results.

comment:12 Changed 13 months ago by tkarn

  • Status changed from new to needs_review

Reviewer changes look good to me.

comment:13 Changed 13 months ago by tkarn

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 degree-by-degree 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 tscrim

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 tscrim

-        - 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 tkarn

  • Status changed from needs_review to needs_work

comment:17 Changed 12 months ago by tkarn

  • Branch changed from u/tscrim/os_invariants-32027 to u/tkarn/os_invariants-32027
  • Commit changed from f1f1d96029ad1a7fd136838bca45d803305f2207 to dc7ee4417daa8bcaa0daf9abce1b9700411cd471
  • Status changed from needs_work to needs_review

New commits:

5fec89eAdd invariant option to Orlik-Solomon and to matroids
12689fbAdd reviewer changes to local branch
1d1a9e0Add note and fix minor typo
c6d3b87Fix PEP8 issues
dc7ee44Optimize computation of OS invariant via degree-by-degree computation. Fix PEP8 issues

comment:18 Changed 12 months ago by tscrim

  • 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 git

  • Commit changed from dc7ee4417daa8bcaa0daf9abce1b9700411cd471 to c12c5120b3432cbb2ec6d543dfd35c0b235a6b17

Branch pushed to git repo; I updated commit sha1. New commits:

c12c512Fix pyflakes issues

comment:20 Changed 12 months ago by tkarn

  • Status changed from needs_review to positive_review

comment:21 Changed 12 months ago by git

  • 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:

4006b40Add kwargs to hyperplane OS

comment:22 Changed 12 months ago by tkarn

  • Status changed from needs_review to positive_review

comment:23 Changed 12 months ago by vbraun

  • Branch changed from u/tkarn/os_invariants-32027 to 4006b40c80ee5a9228c2056a019307db035f2b43
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.