Skip to content
Snippets Groups Projects
Cycle_Pattern.mp 1.91 KiB
/* Model of Cycle Pattern
 
Purpose:

Description:

Cycle_ISP Model for Systems Journal Article
 Available at https://www.mdpi.com/2079-8954/6/2/18
 created 2018-03-10 by K.Giammarco 

The model below describes a cycle in terms of a 
series of one or more steps, each step either 
moving the system "forward" or "backward" as the 
process unfolds.  "Forward" and "backward" are 
generic terms that may be substituted with synonyms 
such as "up" and "down," "in" and "out", "over" 
and "under", "increase" and "decrease", etc., or 
discinyms (discipline-specific synonyms) as they 
may appear in the preferred domain taxonomy.

References:

Search terms: cycle pattern behavior; ENSURE condition; SAY statement; isomorphism

Instructions: Run for Scopes 2 and 3. (Scope 1 generates zero traces because
of the ENSURE constraint on line 29.)
	Scope 1: 0 traces in less than 1 sec.
	Scope 2: 40 traces in less than 1 sec.
	Scope 3: 2952 traces in approx. 2.9 sec.

==========================================================*/

SCHEMA Cycle_ISP_v2

ROOT Cycle:   	(+ Initial_condition 
			  		(+ ( Step_forward | Step_backward ) +)
				   End_condition +);

ENSURE #( Step_forward | Step_backward ) > 1;


                   
/*Check for Positive Reinforcement Template */
IF EXISTS DISJ $a:  Step_forward, $b: Step_forward  
			$a PRECEDES $b THEN 
				SAY("Positive Reinforcement Detected"); FI;

/*Check for Negative Reinforcement Template */
IF EXISTS DISJ $a:  Step_backward, $b: Step_backward  
			$a PRECEDES $b THEN 
				SAY("Negative Reinforcement Detected"); FI;

/*Check for Oscillation Template */
IF EXISTS  $a:  Step_forward, $b: Step_backward  
			$a PRECEDES $b  OR
			$b PRECEDES $a 	THEN 
				SAY("Oscillation Detected"); FI;

/*Note Lifecycle Completion */
COORDINATE $a: End_condition
	DO ADD SAY("Lifecycle Complete") PRECEDES $a; OD;

/*Check for Recycle Template */
IF #Initial_condition > 1 THEN 
				SAY("Recycle Detected"); FI;