### Generating
[
Type atoms
Entity used-atom-set
Funcon initialise-generating
Funcon fresh-atom
Funcon use-atom-not-in
]
Meta-variables
T <: values
Built-in Type
atoms
*/
Entity
< _ , used-atom-set(_:set(atoms)) > ---> < _ , used-atom-set(_:set(atoms)) >
Built-in Funcon
initialise-generating(_:=>T) : =>T
*/
Funcon
fresh-atom : =>atoms
*/
Rule
element-not-in(atoms, SA) ~> A
-----------------------------------------------
< fresh-atom , used-atom-set(SA) >
---> < A , used-atom-set(set-insert(A, SA)) >
Funcon
use-atom-not-in(_:sets(atoms)) : =>atoms
*/
Rule
element-not-in(atoms, SA) ~> A
--------------------------------------------------------
< use-atom-not-in(SA:sets(atoms)) , used-atom-set(SA′) >
---> < A , used-atom-set(set-insert(A, SA′)) >
/*
`atoms` is the type of values used as distinguishable tags. Notation for individual atoms is not provided.