53dbb7fc33
add tests for subtype-unify & find_morphism_path
...
- these tests fail and uncover a bug in the subtype unification algorithm where a trait-relationship is treated as subtype relationship which is not wanted
- further cleanup morphism path test cases
2025-03-12 15:10:58 +01:00
8c6c7e4c00
wip
2025-03-10 18:20:00 +01:00
911411791a
fix path search & unification
...
add more path search tests
2025-03-09 13:26:51 +01:00
ee75d23755
term strip(): flatten ladders
2025-03-06 23:35:29 +01:00
893d09255d
wip subtype unification
2025-03-06 14:01:57 +01:00
a6a6677920
fix unification test
2025-02-25 22:57:50 +01:00
c60d55adba
subtype unification: dont allow trait types as subtypes
2025-02-25 22:57:25 +01:00
85f1e6384f
add common_halo
2025-02-25 22:57:18 +01:00
c28120f09c
steiner tree (?)
2025-02-25 22:54:57 +01:00
4e89eeda91
reactivate find_morphism()
2025-02-25 22:54:18 +01:00
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