#lang syndicate/actor (require racket/set) (require syndicate/protocol/instance) (require/activate syndicate/reload) (require "protocol.rkt") (require "util.rkt") (actor #:name 'trust-inference (stop-when-reloaded) (during (issuer $who $permission) (assert (permitted who who permission #t))) (during (grant $issuer $grantor $grantee $permission $delegable?) (during (permitted issuer grantor permission #t) (assert (permitted issuer grantee permission delegable?))))) (define (stop-when-duplicate spec) (define id (random-hex-string 16)) (field [duplicate? #f]) (stop-when (rising-edge (duplicate?))) (assert (instance id spec)) (on (asserted (instance $id2 spec)) (when (string