AlgebraicJulia / GATlab.jl

GATlab: a computer algebra system based on generalized algebraic theories (GATs)
https://algebraicjulia.github.io/GATlab.jl/
MIT License
23 stars 2 forks source link

Gatlab next #81

Closed olynch closed 11 months ago

codecov[bot] commented 11 months ago

Codecov Report

Patch coverage: 95.75% and project coverage change: +30.48% :tada:

Comparison is base (5673714) 65.55% compared to head (1c95a57) 96.04%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #81 +/- ## =========================================== + Coverage 65.55% 96.04% +30.48% =========================================== Files 41 22 -19 Lines 1385 1088 -297 =========================================== + Hits 908 1045 +137 + Misses 477 43 -434 ``` | [Files Changed](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia) | Coverage Δ | | |---|---|---| | [src/Gatlab.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL0dhdGxhYi5qbA==) | `100.00% <ø> (ø)` | | | [src/models/module.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL21vZGVscy9tb2R1bGUuamw=) | `100.00% <ø> (ø)` | | | [src/stdlib/models/module.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL3N0ZGxpYi9tb2RlbHMvbW9kdWxlLmps) | `100.00% <ø> (ø)` | | | [src/stdlib/module.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL3N0ZGxpYi9tb2R1bGUuamw=) | `100.00% <ø> (ø)` | | | [src/stdlib/theories/module.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL3N0ZGxpYi90aGVvcmllcy9tb2R1bGUuamw=) | `100.00% <ø> (ø)` | | | [src/syntax/module.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL3N5bnRheC9tb2R1bGUuamw=) | `100.00% <ø> (ø)` | | | [src/util/Eithers.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL3V0aWwvRWl0aGVycy5qbA==) | `0.00% <0.00%> (ø)` | | | [src/util/module.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL3V0aWwvbW9kdWxlLmps) | `100.00% <ø> (ø)` | | | [src/models/SymbolicModels.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL21vZGVscy9TeW1ib2xpY01vZGVscy5qbA==) | `91.30% <85.71%> (-8.70%)` | :arrow_down: | | [src/stdlib/models/ScopeTrees.jl](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia#diff-c3JjL3N0ZGxpYi9tb2RlbHMvU2NvcGVUcmVlcy5qbA==) | `90.74% <90.74%> (ø)` | | | ... and [12 more](https://app.codecov.io/gh/AlgebraicJulia/Gatlab.jl/pull/81?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=AlgebraicJulia) | |

:umbrella: View full report in Codecov by Sentry.

:loudspeaker: Have feedback on the report? Share it here.

jpfairbanks commented 11 months ago

I see that the sciml integration got cut in this PR. What is the plan there?

olynch commented 11 months ago

I see that the sciml integration got cut in this PR. What is the plan there?

Even though it was in a package extension, it got loaded for the tests, which made our tests run 5x slower. I think that it should just be in a separate package.

jpfairbanks commented 11 months ago

I get that testing against MTK brings in a lot of dependencies, but we could still do the @lens construction to make the ODE and then interpret it directly (by using substitution of numbers for variables and evaluation of the primitive functions) and do our own Euler's method as an example of using the package for the docs.

I tried to uncomment out the following from the Theories.Algebra module


# @theory ThAb <: ThMonoid begin
#   using ThGroup
#   using ThCMonoid
# end

# @theory ThRing <: ThSet begin
#   using ThAb: ⋅ as +, i as -, e as zero
#   using ThMonoid: ⋅ as *, e as one
#   a * (b + c) == (a * b) + (a * c) ⊣ [a,b,c]
# end

# @theory ThCRing <: ThRing begin
#   a * b == b * a ⊣ [a,b]
# end

# @theory ThRig <: ThSet begin
#   using ThCMonoid: ⋅ as +, e as zero
#   using ThMonoid: ⋅ as *, e as one
#   a * (b + c) == (a * b) + (a * c) ⊣ [a,b,c]
# end

# @theory ThCRig <: ThRig begin
#   a * b == b * a ⊣ [a,b]
# end

# @theory ThElementary <: ThCRing begin
#   sin(x) ⊣ [x]
#   cos(x) ⊣ [x]
#   tan(x) ⊣ [x]
#   exp(x) ⊣ [x]
#   sigmoid(x) ⊣ [x]
# end

but it looks like the using thing is broken. Is there an updated version of the using syntax?

olynch commented 11 months ago

I get that testing against MTK brings in a lot of dependencies, but we could still do the @lens construction to make the ODE and then interpret it directly (by using substitution of numbers for variables and evaluation of the primitive functions) and do our own Euler's method as an example of using the package for the docs.

Yeah, we should definitely do this. Gotta love the 5 line Euler's method in Julia.