Skip to content

Dual operator design #136

Open
Open
@bvssvni

Description

@bvssvni

A dual operator might be used on 1-avatars in rules:

(X, Z) :- (X, Y), (Y, Z), (X*, X).

This rule is the same as the two following rules:

(X, Z) :- (X, Y), (Y, Z), (C'(X), X).
(C'(X), Z) :- (C'(X), Y), (Y, Z), (X, C'(X)).

The dual operator is possible because X* and X occur twice in the rules.

The 1-avatar is inferred from the possible cases:

X          X*            1-avatar
------------------------------------
a          b'(a)         b
b'(a)      a

b'(a)      c'(b'(a))     c
c'(b'(a))  b'(a)

a          c'(b'(a))     c'(b'(..))
c'(b'(a))  a

a          a             ()

The self duality is excluded by usign + instead of *, e.g. X+.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions