ASPL User Guide v 1.00
© 2025 Bassem W. Jamaleddine


19. 1
   Differential Group Operators and Differential Group Variables

 

The following are the differential set operators

f@   d@   g@

display the group difference in the differential variable x

      g@  x       where x is a set variable with historical

display the elements difference in the differential variable x

      f@  x       where x is a set variable with historical

display the subgroups difference in the differential variable x

      d@  x

toggle differentialallarc to 1 to get the difference between the variable and all its instances

      differentialallarc  1

toggle differentialallarc to 0 to get the difference between the variable and its last instance

      differentialallarc  0

list the differential variable x and its historical archived instances

      @  x

display symbol table in sorted order

      v  sorted

labinated group difference where ks is different

      ,g@`ks~  x

labinated group difference where ks is different and push result on the stack

      g@,`ks~  x

labinated elements difference where ks is different and push result on the stack

      f@,`ks~  x

labinated subgroups difference where ks is different and push result on the stack

      d@,`ks~  x

display group difference for two differential variables

      g@  x  y       where x and y are set variables with historical

Differential Group Operators and Differential Group Variables

●  Differential Group Operators and Differential Group Variables

If a set variable has historical data saved in its corresponding archived names, then you can use the differential operators: f@, g@, and d@, to display the difference between the set variable and its archived data. The g@, f@, and d@, denote the group differential operator, the element differential operator, and the subgroups differential operator respectively.

The differential operator is really a pure symmetric difference.

In ASPL, the symmetric difference operation between two or many groups
excludes any intersecting element in the groups, and is termed:
pure symmetric difference.

The pure symmetric difference between groups includes any subgroup or element
that appears exactly in one and only one group.

A differential group variable is a variable that has a differential operator applied to it. We may refer to a differential group variable simply as the differential variable. Any ASPL set variable that have been archived is a differential variable. Often the differential operators are followed by a single differential variable, but it is possible to follow them with multiple differential variables.

 

■ Ticking the Differential Operators with a Predicate

The differential operators: g@, f@, and g@, can be catenated with the tick operator (saying such that) followed by the predicate. The predicate is an additional condition to filter subgroups or elements based on their attributes.

The set operators can be ticked with a conditional predicate, hence adding a conditional match based on the attributes of the element or the subgroup. Ticking a set operator is done by catenating the grave symbol followed by a symbol, and this is read as "such that" the predicate is satisfied.

You can list the predicates that a set operator can be ticked (or catenated) with, by either typing at the ASPL prompt tickfor followed by the set operator, or by running the asplsymbols command at the shell prompt. For example, to list the possible predicates that the g& can takes, at the ASPL prompt we type:

aspl> tickfor g@

or at the shell prompt:

asplsymbols -ticksymbol 'g@'

the following is displayed on your terminal:
   setop  |suchthat    |phrase                                                                                  
   =======|============|==========================================================================================
1  g@     |g@`_        |gets the subgroups and the elements differential                                         
2  g@     |g@`c=       |gets the subgroups and the elements differential such that they have the same checksum   
3  g@     |g@`c~       |gets the subgroups and the elements differential such that they have different checksums 
4  g@     |g@`ks=      |gets the subgroups and the elements differential such that they have the same ksum       
5  g@     |g@`ks~      |gets the subgroups and the elements differential such that they have different ksums     

asplsymbols -ticksymbol 'f@'

the following are the possible ticked predicate for f@
   setop  |suchthat    |phrase                                                                   
   =======|============|=========================================================================
1  f@     |f@`_        |gets the elements differential                                          
2  f@     |f@`c=       |gets the elements differential such that they have the same checksum    
3  f@     |f@`c~       |gets the elements differential such that they have different checksums  
4  f@     |f@`ks=      |gets the elements differential such that they have the same ksum        
5  f@     |f@`ks~      |gets the elements differential such that they have different ksums      

asplsymbols -ticksymbol 'd@'

the following are the possible ticked predicate for d@
   setop  |suchthat    |phrase                                                                  
   =======|============|=========================================================================
1  d@     |d@`_        |gets the subgroups differential                                         
2  d@     |d@`c=       |gets the subgroups differential such that they have the same checksum   
3  d@     |d@`c~       |gets the subgroups differential such that they have different checksums 
4  d@     |d@`ks=      |gets the subgroups differential such that they have the same ksum       
5  d@     |d@`ks~      |gets the subgroups differential such that they have different ksums      
The program asplsymbols provides many options to look into ASPL symbols. For instance, the following command display all setops along their tick phrases:

aspl> asplsymbols -tickphrase setops

When ticking the differential operator it is advised to labinate the operation
with the comma operator, either by preceding the operator directly with the
comma, or by following it directly with the comma.
For example, to labinate g@`ks~ on the left ,g@`ks~, and to labinate it on
the right g@,`ks~
By labinating the operator on the right, the resulting anonymous group of the
operation is pushed on the answer stack.



Sometimes we do not labinate the set operator on purpose. For example,
consider the case when we want to find the common element following an
operation (a ticked conditional symmetric difference, or a group union).
Even though information is lost (by not labinating) as the name of subgroups
and elements may collide, however this will report to us the least common
denominator of names being subject to the operation. Consider the case
when we monitor the changes in a directory using the script monitordir.aspl



An example is shown in the following terminal.
viewme

 -TC- Display. 19.1.1   [DGO: Differential Group Operators]
run for UG-DGO_RANDBIT-Sample-links.html