Suspended var swaps in core.logic.nominal

2023-11-11 Thread Moe Aboulkheir
Afternoon, I'm new to core.logic, and was working through the αKanren paper with core.logic.nominal. On page 4, there is an example which translates to: *(l/run* [q] (n/fresh [a b](l/fresh [x y] (l/== (n/tie a (n/tie a x)) (n/tie a (n/tie

Re: Suspended var swaps in core.logic.nominal

2023-11-11 Thread Moe Aboulkheir
According to the wiki: *In core.logic.nominal, we implement suspensions as constraints. During swapping of a and b, whenever we encounter a variable x, we replace it with a fresh variable x' and add the suspension constraint swap [a b] x' x. This swap constraint is executed under one of two con