Skip to content

Catlab 0.17 / Julia 1.12 compatibility across rewriting, incremental, and schedules - #95

Open
sdwfrost wants to merge 3 commits into
AlgebraicJulia:mainfrom
epirecipes:fix/catlab-017-support
Open

Catlab 0.17 / Julia 1.12 compatibility across rewriting, incremental, and schedules#95
sdwfrost wants to merge 3 commits into
AlgebraicJulia:mainfrom
epirecipes:fix/catlab-017-support

Conversation

@sdwfrost

Copy link
Copy Markdown

Summary

Restores AlgebraicRewriting.jl compatibility with Catlab 0.17 (and Julia 1.12). The package currently won't load or run its test suite against Catlab 0.17 due to a mix of schedule-interpretation, attr-aware DPO rewriting, and Julia 1.12 name-resolution issues.

Changes

Three logical commits:

  1. fix: infer cat in schedule interpretation — thread infer_acset_cat into the schedule evaluator so Catlab 0.17's WithModel dispatch resolves.
  2. fix: support attr-aware DPO rewriting in Catlab 0.17 — update Rewrite.Utils for the new implicit-attr binding semantics introduced in Catlab 0.17 so attribute-carrying rules still rewrite correctly.
  3. fix: restore Catlab 0.17 compatibility across rewriting and incremental
    • Qualify Base.collect at the call sites that became ambiguous under Julia 1.12 now that Catlab also re-exports collect.
    • Reconstruct attrtype FinDomFunction components inside pushout_complement using the raw copaired data when an interface attrvar is unreferenced by any attribute edge; match the prototype's domain shape so the rebuilt component passes Catlab 0.17 ACSetTransformation validation.
    • Thread Catlab imports through the incremental / categorical-algebra modules so the 0.17 layout resolves under explicit using.
    • Adjust demos and tests to the qualified Base.collect form.

Testing

AlgebraicRewriting.jl full test suite passes locally against Julia 1.12.5 + Catlab 0.17.5 + the two companion Catlab PRs (AlgebraicJulia/Catlab.jl#999 and AlgebraicJulia/Catlab.jl#1000):

  • StructuredCospans 6/6, CSets 6/6, FinSets 6/6, PartialMap 0/0, Constraints 11/11,
  • DPO 27/27, CoNeg 1/1, SPO 8/8, SqPO 8/8, PBPO 21/21, Inplace 2/2,
  • Incremental 19/19, Schedules: Poly 10/10, Schedules: Eval 4/4.

Context

Part of a 4-PR stack bringing the AlgebraicJulia downstream stack current on Catlab 0.17:

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

Simon Frost and others added 3 commits April 16, 2026 08:17
Recover the ambient category when schedule interpretation callers omit it so AlgebraicABMs schedule evaluation keeps working with current Catlab APIs.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Handle implicit attribute bindings and reconstruct attrtype components directly during pushout-complement checks so attr-aware rewriting still works with Catlab 0.17.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Qualify Base.collect at call sites that became ambiguous under Julia
  1.12 now that Catlab also re-exports collect.
- Reconstruct attrtype FinDomFunction components in pushout_complement
  using the raw copaired data when an interface attrvar is unreferenced
  by any attribute edge. Use the prototype domain shape so the rebuilt
  component matches Catlab 0.17 ACSetTransformation validation.
- Thread Catlab imports through incremental and categorical-algebra
  modules so the 0.17 layout resolves under explicit using.
- Adjust demos and tests to the qualified Base.collect form.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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