2ecbc84233
switch pnf tests to sugared terms
2025-04-05 22:55:20 +02:00
78c83cc481
add failing test (failed to find morphism instance)
2025-04-03 15:57:26 +02:00
a9967f8183
fix tests
2025-04-03 15:40:42 +02:00
8c170baad3
morphism instance: fix apply subst
2025-04-03 15:39:25 +02:00
6731f7fdea
MorphismType: strip_halo() add strip(), and dont skip struct/enum if members dont match
2025-04-03 15:38:32 +02:00
f5fc2979c7
SugaredMorphismType::Struct add src/dst repr
2025-04-03 15:37:23 +02:00
ebaa1350ac
unification sugared: check Seq-/Enum-/Struct- Representations for subtype
2025-04-03 14:33:29 +02:00
7f96b66324
subtype unification: check seq-/struct-/enum-repr type
2025-04-02 23:12:25 +02:00
ce0103c04f
find_morphism_path(): always advance with direct morph, even if complex decomposition from goal exists
2025-04-02 23:11:40 +02:00
72705e824e
morphism type: add apply_subst()
2025-04-02 20:11:03 +02:00
6fa46ae45d
desugar: add missing seq/enum cases
2025-04-02 20:10:23 +02:00
68627f140e
add strip_halo()
2025-04-02 13:58:58 +02:00
c5fef299d8
wip. rewrite path search & unification for Sugared Terms
...
deprecates the old term struct
2025-04-01 18:21:27 +02:00
d445e27293
add get_interface_type()
2025-03-25 16:31:04 +01:00
cae616b7ae
add substitution trait
2025-03-24 14:06:16 +01:00
bda36b4856
type dict: get_typename_create
2025-03-24 10:11:16 +01:00
a730b48c49
add SugaredStructMember & SugaredVariantEnum
2025-03-23 15:01:18 +01:00
e59d8baf0f
morphism base into separate file
2025-03-21 16:26:12 +01:00
89811cedd3
move shortest path into separate file
2025-03-21 16:13:54 +01:00
3eaca0dc37
work on unification
...
- add more unification tests
- rewrite subtype unification of ladders to work from bottom up
2025-03-15 11:33:48 +01:00
dc6626833d
add failing unification testcase
2025-03-14 17:46:59 +01:00
fe73c47504
find_morphism_path(): param-normalize halo
2025-03-14 17:44:27 +01:00
2c288dbff3
fix tests
...
- in subtype unification: correctly propagate error
- in case of subtype between two ladders, check that the matching sub-ladders end at the same bottom rung (to exclude trait-types from sub-types)
2025-03-12 16:38:39 +01:00
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