CoPaR merge requestshttps://git8.cs.fau.de/software/copar//merge_requests20200921T11:58:19Zhttps://git8.cs.fau.de/software/copar//merge_requests/34polynomial: Sort edge labels before printing20200921T11:58:19ZHansPeter Deifelpolynomial: Sort edge labels before printingEdge labels contain the indices into the current product, and since we're
walking through factors in from left to right, we also want those indices to
appear in the correct order.
This bug doesn't appear when printing the parsed encodin...Edge labels contain the indices into the current product, and since we're
walking through factors in from left to right, we also want those indices to
appear in the correct order.
This bug doesn't appear when printing the parsed encoding directly, since edge
labels are usually sorted after parsing. But after our new minimization work,
this will not be a valid assumption anymore.Bastian KauschkeBastian Kauschkehttps://git8.cs.fau.de/software/copar//merge_requests/33minimize20200925T08:37:57ZBastian Kauschkeminimizeimplements the `minimize` command.implements the `minimize` command.HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/32update primitive to >= 0.7.1.020200831T09:18:54ZBastian Kauschkeupdate primitive to >= 0.7.1.0Also updates the resolver to lts14.27, lts15 uses `base4.13` which removes `fail` in favor of `MonadFail` which is not yet implement for `MonadParsec`, even in the newest version.
fixes #12Also updates the resolver to lts14.27, lts15 uses `base4.13` which removes `fail` in favor of `MonadFail` which is not yet implement for `MonadParsec`, even in the newest version.
fixes #12HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/31fix `stack test flag copar:RELEASE`20200805T10:09:40ZBastian Kauschkefix `stack test flag copar:RELEASE`fixes #11 unblocks !30fixes #11 unblocks !30HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/30Test release flag in ci20200805T11:04:10ZHansPeter DeifelTest release flag in ciAlso, use the binaries built *with* the release flag as artifacts, so people can
download the fastest version available.
**Warning**: Don't merge, unless #11 is fixed on master. Otherwise artifacts won't be builtAlso, use the binaries built *with* the release flag as artifacts, so people can
download the fastest version available.
**Warning**: Don't merge, unless #11 is fixed on master. Otherwise artifacts won't be builthttps://git8.cs.fau.de/software/copar//merge_requests/29implement coalgebra printing20200730T15:28:55ZBastian Kauschkeimplement coalgebra printingcloses #9closes #9HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/28replace Printable with FunctorDescription20200623T14:36:17ZBastian Kauschkereplace Printable with FunctorDescriptioncloses #10closes #10HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/27Use Z in zigzag20200603T07:56:22ZThorsten WißmannUse Z in zigzagSince issue !4 is solved, we can now use Z again.Since issue !4 is solved, we can now use Z again.https://git8.cs.fau.de/software/copar//merge_requests/26reuse FunctorDescription20200603T15:40:17ZBastian Kauschkereuse FunctorDescriptionHansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/25Remove PrettyPrint20200526T14:06:11ZBastian KauschkeRemove PrettyPrint`PrettyPrint` has been made obsolete by `Printable`.
This MR removes it and updates `SortsSpec` to use `SomeFunctor`.`PrettyPrint` has been made obsolete by `Printable`.
This MR removes it and updates `SortsSpec` to use `SomeFunctor`.HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/24printParseableFunctor: omit unnecessary braces20200520T09:49:49ZBastian KauschkeprintParseableFunctor: omit unnecessary bracesHansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/23Implement a parsable functorexpression printer20200518T09:54:15ZBastian KauschkeImplement a parsable functorexpression printerimplements #8
I currently insert braces everywhere, meaning that `printParseableFunctor . parseFunctor = id` should hold,
`parseFunctor . printParseableFunctor = id` most certainly does not.
Example output:
```
{n, f}xPX > {n, ...implements #8
I currently insert braces everywhere, meaning that `printParseableFunctor . parseFunctor = id` should hold,
`parseFunctor . printParseableFunctor = id` most certainly does not.
Example output:
```
{n, f}xPX > {n, f}x(PX)
D({f,n}xPX) > D({f, n}x(PX))
D({f,n}xP(DX)^{a, b, c}+({f, n}xX + (Z, min)^({f ,n})))
> D({f, n}x(P(DX))^{a, b, c} + ({f, n}xX + ((Z, min)^({f, n}))))
```HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/22reenable GroupValued Int parsing20200513T15:23:24ZBastian Kauschkereenable GroupValued Int parsingDon't try to parse `Z^?` as a polynomial functor with a single constant set by checking if `Z` is followed by `^`,
in which case this `Z` is later parsed and accepted as a `GroupValued Int`.
closes #4Don't try to parse `Z^?` as a polynomial functor with a single constant set by checking if `Z` is followed by `^`,
in which case this `Z` is later parsed and accepted as a `GroupValued Int`.
closes #4HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/21Allow names starting with digits20200513T07:49:38ZBastian KauschkeAllow names starting with digitscloses #5closes #5HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/20custom impl for `debug printfunctor`20200506T16:38:01ZBastian Kauschkecustom impl for `debug printfunctor`implements #7
This still does not support all functors, so this is mostly for early feedback.
Currently supported examples:
```
copar debug printfunctor "D({f,n}xPX)" nofunctortransforms
Distribution D'0
└ '0: Polynomi...implements #7
This still does not support all functors, so this is mostly for early feedback.
Currently supported examples:
```
copar debug printfunctor "D({f,n}xPX)" nofunctortransforms
Distribution D'0
└ '0: Polynomial {f, n}x'1
└ '1: Powerset P'2
└ '2: Variable X
copar debug printfunctor "D({f,n}xPX^{a, b, c}+({f, n}xX))" nofunctortransforms
Distribution D'0
└ '0: Polynomial {f, n}x'1^{a, b, c} + '2
├ '1: Powerset P'3
│ └ '3: Variable X
└ '2: Polynomial {f, n}x'4
└ '4: Variable X
copar debug printfunctor "{f,n}xP(D({f,n}xPX^{a, b, c}+({f, n}xX)))+X" nofunctortransforms
Polynomial {f, n}x'0 + '1
├ '0: Powerset P'2
│ └ '2: Distribution D'3
│ └ '3: Polynomial {f, n}x'4^{a, b, c} + '5
│ ├ '4: Powerset P'6
│ │ └ '6: Variable X
│ └ '5: Polynomial {f, n}x'7
│ └ '7: Variable X
└ '1: Variable X
```HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/19Add functor implementation example20200420T12:06:53ZBastian KauschkeAdd functor implementation exampleAdds an implementation of the cross product `(AxB)` as an example.Adds an implementation of the cross product `(AxB)` as an example.HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/18add missing space to "defined twice" error20200417T15:23:40ZBastian Kauschkeadd missing space to "defined twice" errorHansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/17[WIP]: remove Polynomial::Product, add Pair functor20200419T16:02:05ZBastian Kauschke[WIP]: remove Polynomial::Product, add Pair functorAn exercise. `pairp` is probably still faulty, as `examples/dfa` fails with
```
examples/dfa:16:6:

16  {f,n}xX^{a,b}
 ^
unexpected 'x'
expecting '#', '+', newline, or space
```An exercise. `pairp` is probably still faulty, as `examples/dfa` fails with
```
examples/dfa:16:6:

16  {f,n}xX^{a,b}
 ^
unexpected 'x'
expecting '#', '+', newline, or space
```HansPeter DeifelHansPeter Deifelhttps://git8.cs.fau.de/software/copar//merge_requests/16fix typo20200403T13:42:29ZBastian Kauschkefix typohttps://git8.cs.fau.de/software/copar//merge_requests/15WIP: Specialize20200224T16:10:57ZHansPeter DeifelWIP: SpecializeSee what happens if we let GHC specialize the algorithm for specific functorsSee what happens if we let GHC specialize the algorithm for specific functorsThorsten WißmannThorsten Wißmann