lmntal / slim

slim LMNtal implementation
Other
18 stars 5 forks source link

膜に関するバグ #334

Open tuesdayjz opened 6 months ago

tuesdayjz commented 6 months ago
struct_1@@
{app([L1,L2],M)}, eval(M,R)
    :- {app([M,L2],R)}, eval(L1,M).
struct_2@@
{app([M,L2],R)}, eval(M,L1)
    :- {app([L1,M],R)}, eval(L2,M).
copy_1@@
{$p[L]}, m(L,[R11,R2]), eval(R11,R1)
    :- {$p[R2]}, {$p[L]}, eval(L,R1).
copy_2@@
{$p[L]}, m(L,[R1,R22]), eval(R22,R2)
    :- {$p[R1]}, {$p[L]}, eval(L,R2).
beta@@
eval(M2,L2), {app([M1,M2],R1)}, {$p[M1,M11|*Z], M11=[]}
    :- eval(M1,R1), $p[M1,L2|*Z].
value@@
{$q, {$p[M1|*X]}}, eval(M1,R1)
    :- {$q, {$p[M1|*X]}}, eval(R1,M1).

{
    system_ruleset. '$callback'(zerostep).
    L=eval(L0), {u(L1,L0)} :- L=eval(L1).
}.

% (\x.xx)(\x.xx)
coarity=[R], eval(M,R), {app([L1,L2],M)},
    {{app([L11,L12],L1)}, m(EL1,[L11,L12]), EL1=[]},
    {{app([L21,L22],L2)}, m(EL2,[L21,L22]), EL2=[]}.