19e29759d2
rewrite enum_morphisms & find_morphism_path
...
- introduce `MorphismInstantiation` which instantiates a
morphism-template using a type-substitution and a halo type.
- find_morphism_path returns list of `MorphismInstatiation`.
2025-02-15 18:39:48 +01:00
b0ebf49d03
pretty format: use different colors for variables
2025-02-15 18:39:48 +01:00
62a80fcd2f
morphism base: store vec of seq-types
2025-02-15 18:39:48 +01:00
75aaf096eb
fix tests
2025-02-15 18:39:48 +01:00
804c688f4c
pretty: output escape character for \0 and \n
2025-02-15 18:39:48 +01:00
2a8f7e0759
steiner tree: eliminate identity loops
2025-02-15 18:39:47 +01:00
32ca645778
add Send+Sync trait bound to TypeDict
2025-02-15 18:39:47 +01:00
b869c5f59f
fix find_morphism_path
...
* also apply substitution from src-type match
* get this substitution as result from `enum_morphisms_with_subtyping`
2025-02-15 18:39:47 +01:00
bc1941d1bc
check if term is empty
2025-02-15 18:39:47 +01:00
27a0ca5e56
add Debug for Bimap & BimapTypeDict
2025-02-15 18:39:47 +01:00
a144521566
make TypeDict a trait & BimapTypeDict an impl
2025-02-15 18:39:47 +01:00
d795ba45e9
add steiner tree solver based on shortest path
2025-02-15 18:39:47 +01:00
8e6885197a
initial implementation of solver for steiner trees
2025-02-15 18:39:47 +01:00
81e87f111a
morphism base: find shortest path instead of just some path
2025-02-15 18:39:47 +01:00
802480d089
fix returned halo type in find_morphism_with_subtyping()
2025-02-15 18:39:46 +01:00
a0f71b1223
turn Morphism into trait and add find_morphism() function
2025-02-15 18:39:46 +01:00
2ddd4c4a61
add test for find_morphism_path()
2025-02-15 18:39:46 +01:00
e962dfb41a
initial MorphismBase with DFS to find morphism paths
2025-02-15 18:39:46 +01:00
b502b62479
unification: reject non-identity loops & add test cases
2025-02-15 18:35:38 +01:00
f05ef07589
subtype unification
2025-02-15 18:32:34 +01:00
e17a1a9462
add subtype unification
2025-02-09 16:58:58 +01:00
e53edd23b9
unification: remove unreachable pattern
2025-02-09 13:13:56 +01:00
3c5d7111bc
Merge branch 'fix-pnf' into dev
2025-02-09 12:42:40 +01:00
a9a35aed1b
rewrite param_normalize()
2025-02-09 12:42:24 +01:00
4a6a35a897
pnf: add test for collapsing first application argument
2025-02-09 12:42:23 +01:00
4aa62d4813
Merge branch 'topic-sugar' into dev
2025-02-09 12:40:11 +01:00
c6bad6046a
add sugared terms & pretty printing
2025-02-09 12:38:07 +01:00
c03db48fd2
TypeID: add Copy trait
2025-02-09 12:38:04 +01:00
a4837038e6
Merge branch 'topic-parameter-normal-form' into dev
2024-08-05 00:11:12 +02:00
658134d56a
readme: add syntax description and roadmap
2024-05-01 17:44:42 +02:00
02d8815acd
add param_normalize() to get Parameter-Normal-Form (PNF)
2024-05-01 15:10:29 +02:00
d7502e6af8
add gitignore
2023-12-02 17:03:27 +01:00
0fb3f6e212
parser test: also test variable-ids
2023-11-11 16:26:58 +01:00
bd21a602f3
unification
2023-11-11 16:26:30 +01:00
5919b7df1f
wip unification
2023-10-31 16:26:54 +01:00
74177d1d30
substitutions
2023-10-30 17:22:00 +01:00
aacafb318a
README: minor improvements
2023-10-03 05:11:56 +02:00
f45593cfd5
lnf: remove unnecessary mut
2023-10-03 03:35:29 +02:00
45f49378fa
is_syntactic_subtype(): remove option in Err variant
2023-10-03 03:34:55 +02:00
29d1acd681
implement unparse()
2023-10-03 03:30:38 +02:00
167da369af
improve README
2023-10-03 01:42:05 +02:00
3b944d15c8
add more subtype test-cases & fix normalize in case of normalizing sub-ladders
2023-10-02 19:16:20 +02:00
ccd60fc7bf
implement subtype checks
2023-10-02 18:58:39 +02:00
3014213aa7
add more complex normalization test & fix normalization of application arguments
2023-10-02 18:57:49 +02:00
7b22bdc170
implement ladder normalization
2023-10-02 18:48:04 +02:00
61c06d5d03
fix warnings
2023-10-02 15:15:58 +02:00
c96218e318
README: add small code example
2023-10-02 15:09:59 +02:00
c7585f353a
make decoration comment style consistent
2023-10-02 15:07:42 +02:00
e60c60cbff
parser: remove FromStr & always improve parse() function
2023-10-02 15:05:25 +02:00
2d3b234e6e
add curry/decurry
2023-10-02 14:54:47 +02:00