- Its not performed in the goal to head unification
- Its not performed in (=)/2 buit-in
- It is performed in unify_with_occurs_check/2 built-in
You wrote:
Yet C&M say that this test is only performed when run
thus almost never performed because it is too expensive.
But for soundness you have to perform it sometimes!
So what is the solution? The solution is simple:
- Its not performed in the goal to head unification
- Its not performed in (=)/2 buit-in
- It is performed in unify_with_occurs_check/2 built-in
The ISO core standard requires both (=)/2 and
unify_with_occurs_check/2. You need unify_with_occurs_check/2
when you want an occurs check, which is need
for example in rewriting or type inference
to get correct results.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 489 |
Nodes: | 16 (2 / 14) |
Uptime: | 52:17:07 |
Calls: | 9,671 |
Calls today: | 2 |
Files: | 13,719 |
Messages: | 6,170,574 |