DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 33856 (0x8440) Types: TextFile Names: »V«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
with Text_Io; package Expertsystem is type Reference is private; Nullreference : constant Expertsystem.Reference; subtype Classname is String (1 .. 10); subtype Objectname is String (1 .. 10); subtype Rulename is String (1 .. 15); subtype Contextname is String (1 .. 10); subtype Strategyname is String (1 .. 5); subtype Ruleid is Natural range 0 .. 30; subtype Contextid is Natural range 0 .. 8; type Strategy is (Lex, Mea, Lru, First); subtype Restrict_Strategy is Strategy range Lru .. First; Classsize : constant Positive := 200; Any : constant := 0; procedure Put (Aninteger : Integer); procedure Put (Achar : Character) renames Text_Io.Put; procedure Get (Achar : out Character) renames Text_Io.Get; procedure Put (Astring : String) renames Text_Io.Put; procedure Put_Line (Astring : String) renames Text_Io.Put_Line; package Collection is Max_Collection_Size : constant Natural := 200; subtype Collection_Index is Natural range 0 .. Max_Collection_Size; type Object (Size : Collection_Index := 20) is private; function Defaultname (Aref : Expertsystem.Reference) return Objectname; generic with function Predicate (Aref : Reference) return Boolean; function Restrict (Thecollection : Collection.Object; Quantity : Natural := Any) return Collection.Object; generic with function Predicate (Aref : Expertsystem.Reference) return Boolean; function Findone (Thecollection : Collection.Object) return Expertsystem.Reference; generic with function Predicate (Aref : Expertsystem.Reference) return Boolean; function Notexist (Thecollection : Collection.Object) return Boolean; generic with function Predicate (Aref : Expertsystem.Reference) return Boolean; function Exist (Thecollection : Collection.Object) return Boolean; generic with function Predicate (Thebest : Expertsystem.Reference; Anyother : Expertsystem.Reference) return Boolean; function Themost (Thecollection : Collection.Object) return Expertsystem.Reference; function Cardinality (Thecollection : Collection.Object) return Natural; function Isnull (Thecollection : Collection.Object) return Boolean; function Isnotnull (Thecollection : Collection.Object) return Boolean; function Isnull (Aref : Expertsystem.Reference) return Boolean; function Isnotnull (Aref : Expertsystem.Reference) return Boolean; procedure Add (Thecollection : in out Collection.Object; Aref : in Expertsystem.Reference); procedure Remove (Thecollection : in out Collection.Object; Aref : in Expertsystem.Reference); procedure Update (Thecollection : in out Collection.Object; Aref : in Expertsystem.Reference); procedure Update (Thecollection : in out Collection.Object; Aref : in Expertsystem.Reference; Withdate : in Long_Integer); procedure Updateall (Thecollection : in out Collection.Object); procedure Clear (Thecollection : in out Collection.Object); function Union (Collection1 : Collection.Object; Collection2 : Collection.Object) return Collection.Object; function "+" (Collection1 : Collection.Object; Collection2 : Collection.Object) return Collection.Object renames Union; function Intersection (Collection1 : Collection.Object; Collection2 : Collection.Object) return Collection.Object; function "*" (Collection1 : Collection.Object; Collection2 : Collection.Object) return Collection.Object renames Intersection; function Difference (Collection1 : Collection.Object; Collection2 : Collection.Object) return Collection.Object; function "-" (Collection1 : Collection.Object; Collection2 : Collection.Object) return Collection.Object renames Difference; function Member (Thecollection : Collection.Object; Aref : Expertsystem.Reference) return Boolean; function Isinclude (Collection1 : Collection.Object; Collection2 : Collection.Object) return Boolean; function "<" (Collection1 : Collection.Object; Collection2 : Collection.Object) return Boolean renames Isinclude; function "<=" (Collection1 : Collection.Object; Collection2 : Collection.Object) return Boolean renames Isinclude; function ">" (Collection1 : Collection.Object; Collection2 : Collection.Object) return Boolean; function ">=" (Collection1 : Collection.Object; Collection2 : Collection.Object) return Boolean renames ">"; function Asobject (Aref : Expertsystem.Reference) return Collection.Object; function Get (Thecollection : Collection.Object; Number : Positive := 1) return Expertsystem.Reference; function Get (Thecollection : Collection.Object; Frompos : Positive := 1; Topos : Positive) return Collection.Object; function First (Thecollection : Collection.Object) return Expertsystem.Reference; function Rest (Thecollection : Collection.Object) return Collection.Object; generic with procedure Action (Aref : Expertsystem.Reference); procedure Forall (Thecollection : Collection.Object); generic with function "<" (Refone, Reftwo : Expertsystem.Reference) return Boolean; procedure Sort (Thecollection : in out Collection.Object); Badclass : exception; package Iterator is Illegalaccess : exception; type Iter is private; function Open (Thecollection : Collection.Object) return Iter; function Get (Thecollection : Collection.Object; I : Iter) return Expertsystem.Reference; function Next (Thecollection : Collection.Object; I : Iter) return Iter; function Atend (Thecollection : Collection.Object; I : Iter) return Boolean; private type Iter is range Natural'First .. Natural'Last; end Iterator; private type Collarray is array (Collection_Index range <>) of Expertsystem.Reference; type Object (Size : Collection_Index := 20) is record Cells : Collarray (1 .. Size); Count : Natural := 0; Unity : Positive := 1; end record; end Collection; package Classidentity is function Unknownclassname (Aref : Expertsystem.Reference) return Classname; function Unknownobjectname (Aref : Expertsystem.Reference) return Objectname; end Classidentity; generic type Element is private; Surname : in Classname := "NONAME "; Taille : in Positive := Classsize; with function Refname (Aref : Expertsystem.Reference) return Objectname is Collection.Defaultname; package Classbehavior is function Allocate (Initvalue : Element) return Expertsystem.Reference; procedure Allocate (Initvalue : Element); procedure Dispose (Aref : Expertsystem.Reference); procedure Clear; procedure Mask (Aref : Expertsystem.Reference); procedure Maskall; procedure Unmask (Aref : Expertsystem.Reference); procedure Unmaskall; function Instances return Collection.Object; function Allinstances return Collection.Object; function Cardinality return Natural; function Name return Classname; function Name (Aref : Expertsystem.Reference) return Objectname; function Get (Aref : Expertsystem.Reference) return Element; procedure Set (Aref : Expertsystem.Reference; Withvalue : Element); Badclass, Badreference, Classfull : exception; end Classbehavior; package Tuple is Max_Tuple_Size : constant Natural := 40; subtype Tuple_Index is Natural range 0 .. Max_Tuple_Size; type Object (Size : Tuple_Index := 20) is private; function Cardinality (Thetuple : Tuple.Object) return Natural; function Isnull (Thetuple : Tuple.Object) return Boolean; function Isnotnull (Thetuple : Tuple.Object) return Boolean; generic with procedure Action (Aref : Expertsystem.Reference); procedure Forall (Thetuple : Tuple.Object); function First (Thetuple : Tuple.Object) return Expertsystem.Reference; function Second (Thetuple : Tuple.Object) return Expertsystem.Reference; function Third (Thetuple : Tuple.Object) return Expertsystem.Reference; function Fourth (Thetuple : Tuple.Object) return Expertsystem.Reference; function Fifth (Thetuple : Tuple.Object) return Expertsystem.Reference; function Sixth (Thetuple : Tuple.Object) return Expertsystem.Reference; function Seventh (Thetuple : Tuple.Object) return Expertsystem.Reference; function Eighth (Thetuple : Tuple.Object) return Expertsystem.Reference; function Ninth (Thetuple : Tuple.Object) return Expertsystem.Reference; function Tenth (Thetuple : Tuple.Object) return Expertsystem.Reference; function Get (Thetuple : Tuple.Object; Item : Positive := 1) return Expertsystem.Reference; procedure Add (Thetuple : in out Tuple.Object; Aref : Expertsystem.Reference); procedure Merge (Thetuple : in out Tuple.Object; R1 : Expertsystem.Reference := Nullreference; R2 : Expertsystem.Reference := Nullreference; R3 : Expertsystem.Reference := Nullreference; R4 : Expertsystem.Reference := Nullreference; R5 : Expertsystem.Reference := Nullreference; R6 : Expertsystem.Reference := Nullreference; R7 : Expertsystem.Reference := Nullreference; R8 : Expertsystem.Reference := Nullreference; R9 : Expertsystem.Reference := Nullreference; R10 : Expertsystem.Reference := Nullreference); function Asobject (Aref : Expertsystem.Reference) return Tuple.Object; generic with function "<" (Refone, Reftwo : Expertsystem.Reference) return Boolean; procedure Sort (Thetuple : in out Tuple.Object); private type Collarray is array (Tuple_Index range <>) of Expertsystem.Reference; type Object (Size : Tuple_Index := 20) is record Cells : Collarray (1 .. Size); Count : Natural := 0; Unity : Positive := 1; end record; end Tuple; package Tuplecollection is Max_Tuple_Collection_Size : constant Natural := 1000; subtype Tuple_Collection_Index is Natural range 0 .. Max_Tuple_Collection_Size; type Object (Size : Tuple_Collection_Index := 20) is private; function Cardinality (Thetuplecollection : Tuplecollection.Object) return Natural; function Isnull (Thetuplecollection : Tuplecollection.Object) return Boolean; function Isnotnull (Thetuplecollection : Tuplecollection.Object) return Boolean; generic with function Match (R1 : Expertsystem.Reference) return Boolean; function Join1 (C1 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2 : Expertsystem.Reference) return Boolean; function Join2 (C1, C2 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2, R3 : Expertsystem.Reference) return Boolean; function Join3 (C1, C2, C3 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2, R3, R4 : Expertsystem.Reference) return Boolean; function Join4 (C1, C2, C3, C4 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2, R3, R4, R5 : Expertsystem.Reference) return Boolean; function Join5 (C1, C2, C3, C4, C5 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2, R3, R4, R5, R6 : Expertsystem.Reference) return Boolean; function Join6 (C1, C2, C3, C4, C5, C6 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2, R3, R4, R5, R6, R7 : Expertsystem.Reference) return Boolean; function Join7 (C1, C2, C3, C4, C5, C6, C7 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2, R3, R4, R5, R6, R7, R8 : Expertsystem.Reference) return Boolean; function Join8 (C1, C2, C3, C4, C5, C6, C7, C8 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2, R3, R4, R5, R6, R7, R8, R9 : Expertsystem.Reference) return Boolean; function Join9 (C1, C2, C3, C4, C5, C6, C7, C8, C9 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Match (R1, R2, R3, R4, R5, R6, R7, R8, R9, R10 : Expertsystem.Reference) return Boolean; function Join10 (C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 : Collection.Object; Quantity : Natural := 1) return Tuplecollection.Object; generic with function Predicate (Thebest : Tuple.Object; Anyother : Tuple.Object) return Boolean; function Themost (Thetuplecollection : Tuplecollection.Object) return Tuple.Object; generic with function Predicate (T : Tuple.Object) return Boolean; function Restrict (Thetuplecollection : Tuplecollection.Object; Quantity : Natural := Any) return Tuplecollection.Object; generic with function Predicate (T : Tuple.Object) return Boolean; function Findone (Thetuplecollection : Tuplecollection.Object) return Tuple.Object; function Get (Thetuplecollection : Tuplecollection.Object; Number : Positive := 1) return Tuple.Object; function First (Thetuplecollection : Tuplecollection.Object) return Tuple.Object; function Get (Thetuplecollection : Tuplecollection.Object; Frompos : Positive := 1; Topos : Positive) return Tuplecollection.Object; generic with procedure Action (Atuple : Tuple.Object); procedure Forall (Thetuplecollection : Tuplecollection.Object); package Iterator is Illegalaccess : exception; type Iter is private; function Open (Thetuplecollection : Tuplecollection.Object) return Iter; function Get (Thetuplecollection : Tuplecollection.Object; I : Iter) return Tuple.Object; function Next (Thetuplecollection : Tuplecollection.Object; I : Iter) return Iter; function Atend (Thetuplecollection : Tuplecollection.Object; I : Iter) return Boolean; private type Iter is range Natural'First .. Natural'Last; end Iterator; private type Collarray is array (Tuple_Collection_Index range <>) of Expertsystem.Reference; type Object (Size : Tuple_Collection_Index := 20) is record Cells : Collarray (1 .. Size); Count : Natural := 0; Unity : Positive := 1; end record; end Tuplecollection; package Rulemanager is function Ismasked (Context : Contextname; Rule : Ruleid) return Boolean; function Ismasked (Context : Contextid; Rule : Ruleid) return Boolean; procedure Mask (Context : Contextname; Rule : Ruleid); procedure Unmask (Context : Contextname; Rule : Ruleid); Badcontext, Badrule : exception; end Rulemanager; package Debugger is type Debuggingmode is (Text, Graphic); type Itemdebugged is (Contextentered, Strategyused, Conflictsetstarted, Conflictsetfinished, Conditionevalued, Choosedrule, Choosedaction, Rulefacts, Actionfact, Newstep, Failed, Completly); type Itemset is array (Positive range <>) of Itemdebugged; procedure Sendcontextentered (Name : Contextname; Number : Contextid); procedure Sendstrategyused (Name : Strategyname); procedure Sendconflictsetstarted; procedure Sendconflictsetfinished; procedure Sendconditionevalued (Name : Rulename; Number : Natural; Result : Boolean; Facts : Tuplecollection.Object); procedure Sendchoosedrule (Number : Natural; Fact : Tuple.Object); procedure Sendchoosedaction (Name : Rulename; Number : Natural; Fact : Tuple.Object); procedure Sendnewstep; procedure Sendfailed; function Isdebugged (What : Itemdebugged) return Boolean; procedure Setdebugon (Item : Itemdebugged); procedure Setdebugon (Item : Itemset); procedure Setdebugoff (Item : Itemdebugged); procedure Setdebugoff (Item : Itemset); procedure Resetdebug (Mode : Debuggingmode); procedure Refreshdebug; procedure Sendrulesnames (Contextnumber : Contextid; Ctxname : Contextname; Name_1, Name_2, Name_3, Name_4, Name_5, Name_6, Name_7, Name_8, Name_9, Name_10, Name_11, Name_12, Name_13, Name_14, Name_15, Name_16, Name_17, Name_18, Name_19, Name_20, Name_21, Name_22, Name_23, Name_24, Name_25, Name_26, Name_27, Name_28, Name_29, Name_30 : Rulename); end Debugger; package Nothing is procedure To_Do; function To_Give return Tuplecollection.Object; procedure To_Do (T : Tuple.Object); end Nothing; generic Context_Name : in Contextname := " UNNAMED "; Resolution : in Strategy := Lex; Name_1 : in Rulename := "Rule number 01"; with function Condition_1 return Tuplecollection.Object; with procedure Action_1 (T : Tuple.Object); Name_2 : in Rulename := "Rule number 02"; with function Condition_2 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_2 (T : Tuple.Object) is Nothing.To_Do; Name_3 : in Rulename := "Rule number 03"; with function Condition_3 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_3 (T : Tuple.Object) is Nothing.To_Do; Name_4 : in Rulename := "Rule number 04"; with function Condition_4 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_4 (T : Tuple.Object) is Nothing.To_Do; Name_5 : in Rulename := "Rule number 05"; with function Condition_5 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_5 (T : Tuple.Object) is Nothing.To_Do; Name_6 : in Rulename := "Rule number 06"; with function Condition_6 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_6 (T : Tuple.Object) is Nothing.To_Do; Name_7 : in Rulename := "Rule number 07"; with function Condition_7 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_7 (T : Tuple.Object) is Nothing.To_Do; Name_8 : in Rulename := "Rule number 08"; with function Condition_8 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_8 (T : Tuple.Object) is Nothing.To_Do; Name_9 : in Rulename := "Rule number 09"; with function Condition_9 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_9 (T : Tuple.Object) is Nothing.To_Do; Name_10 : in Rulename := "Rule number 10"; with function Condition_10 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_10 (T : Tuple.Object) is Nothing.To_Do; Name_11 : in Rulename := "Rule number 11"; with function Condition_11 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_11 (T : Tuple.Object) is Nothing.To_Do; Name_12 : in Rulename := "Rule number 12"; with function Condition_12 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_12 (T : Tuple.Object) is Nothing.To_Do; Name_13 : in Rulename := "Rule number 13"; with function Condition_13 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_13 (T : Tuple.Object) is Nothing.To_Do; Name_14 : in Rulename := "Rule number 14"; with function Condition_14 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_14 (T : Tuple.Object) is Nothing.To_Do; Name_15 : in Rulename := "Rule number 15"; with function Condition_15 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_15 (T : Tuple.Object) is Nothing.To_Do; Name_16 : in Rulename := "Rule number 16"; with function Condition_16 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_16 (T : Tuple.Object) is Nothing.To_Do; Name_17 : in Rulename := "Rule number 17"; with function Condition_17 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_17 (T : Tuple.Object) is Nothing.To_Do; Name_18 : in Rulename := "Rule number 18"; with function Condition_18 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_18 (T : Tuple.Object) is Nothing.To_Do; Name_19 : in Rulename := "Rule number 19"; with function Condition_19 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_19 (T : Tuple.Object) is Nothing.To_Do; Name_20 : in Rulename := "Rule number 20"; with function Condition_20 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_20 (T : Tuple.Object) is Nothing.To_Do; Name_21 : in Rulename := "Rule number 21"; with function Condition_21 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_21 (T : Tuple.Object) is Nothing.To_Do; Name_22 : in Rulename := "Rule number 22"; with function Condition_22 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_22 (T : Tuple.Object) is Nothing.To_Do; Name_23 : in Rulename := "Rule number 23"; with function Condition_23 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_23 (T : Tuple.Object) is Nothing.To_Do; Name_24 : in Rulename := "Rule number 24"; with function Condition_24 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_24 (T : Tuple.Object) is Nothing.To_Do; Name_25 : in Rulename := "Rule number 25"; with function Condition_25 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_25 (T : Tuple.Object) is Nothing.To_Do; Name_26 : in Rulename := "Rule number 26"; with function Condition_26 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_26 (T : Tuple.Object) is Nothing.To_Do; Name_27 : in Rulename := "Rule number 27"; with function Condition_27 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_27 (T : Tuple.Object) is Nothing.To_Do; Name_28 : in Rulename := "Rule number 28"; with function Condition_28 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_28 (T : Tuple.Object) is Nothing.To_Do; Name_29 : in Rulename := "Rule number 29"; with function Condition_29 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_29 (T : Tuple.Object) is Nothing.To_Do; Name_30 : in Rulename := "Rule number 30"; with function Condition_30 return Tuplecollection.Object is Nothing.To_Give; with procedure Action_30 (T : Tuple.Object) is Nothing.To_Do; Used_Rules : Positive := 30; package Engine is function Inference (Step : Natural := 1) return Boolean; end Engine; generic Context_Name : in Contextname := " UNNAMED "; Resolution : in Restrict_Strategy := First; Name_1 : in Rulename := "Rule number 01"; with function Condition_1 return Boolean; with procedure Action_1; Name_2 : in Rulename := "Rule number 02"; with function Condition_2 return Boolean is False; with procedure Action_2 is Nothing.To_Do; Name_3 : in Rulename := "Rule number 03"; with function Condition_3 return Boolean is False; with procedure Action_3 is Nothing.To_Do; Name_4 : in Rulename := "Rule number 04"; with function Condition_4 return Boolean is False; with procedure Action_4 is Nothing.To_Do; Name_5 : in Rulename := "Rule number 05"; with function Condition_5 return Boolean is False; with procedure Action_5 is Nothing.To_Do; Name_6 : in Rulename := "Rule number 06"; with function Condition_6 return Boolean is False; with procedure Action_6 is Nothing.To_Do; Name_7 : in Rulename := "Rule number 07"; with function Condition_7 return Boolean is False; with procedure Action_7 is Nothing.To_Do; Name_8 : in Rulename := "Rule number 08"; with function Condition_8 return Boolean is False; with procedure Action_8 is Nothing.To_Do; Name_9 : in Rulename := "Rule number 09"; with function Condition_9 return Boolean is False; with procedure Action_9 is Nothing.To_Do; Name_10 : in Rulename := "Rule number 10"; with function Condition_10 return Boolean is False; with procedure Action_10 is Nothing.To_Do; Name_11 : in Rulename := "Rule number 11"; with function Condition_11 return Boolean is False; with procedure Action_11 is Nothing.To_Do; Name_12 : in Rulename := "Rule number 12"; with function Condition_12 return Boolean is False; with procedure Action_12 is Nothing.To_Do; Name_13 : in Rulename := "Rule number 13"; with function Condition_13 return Boolean is False; with procedure Action_13 is Nothing.To_Do; Name_14 : in Rulename := "Rule number 14"; with function Condition_14 return Boolean is False; with procedure Action_14 is Nothing.To_Do; Name_15 : in Rulename := "Rule number 15"; with function Condition_15 return Boolean is False; with procedure Action_15 is Nothing.To_Do; Name_16 : in Rulename := "Rule number 16"; with function Condition_16 return Boolean is False; with procedure Action_16 is Nothing.To_Do; Name_17 : in Rulename := "Rule number 17"; with function Condition_17 return Boolean is False; with procedure Action_17 is Nothing.To_Do; Name_18 : in Rulename := "Rule number 18"; with function Condition_18 return Boolean is False; with procedure Action_18 is Nothing.To_Do; Name_19 : in Rulename := "Rule number 19"; with function Condition_19 return Boolean is False; with procedure Action_19 is Nothing.To_Do; Name_20 : in Rulename := "Rule number 20"; with function Condition_20 return Boolean is False; with procedure Action_20 is Nothing.To_Do; Name_21 : in Rulename := "Rule number 21"; with function Condition_21 return Boolean is False; with procedure Action_21 is Nothing.To_Do; Name_22 : in Rulename := "Rule number 22"; with function Condition_22 return Boolean is False; with procedure Action_22 is Nothing.To_Do; Name_23 : in Rulename := "Rule number 23"; with function Condition_23 return Boolean is False; with procedure Action_23 is Nothing.To_Do; Name_24 : in Rulename := "Rule number 24"; with function Condition_24 return Boolean is False; with procedure Action_24 is Nothing.To_Do; Name_25 : in Rulename := "Rule number 25"; with function Condition_25 return Boolean is False; with procedure Action_25 is Nothing.To_Do; Name_26 : in Rulename := "Rule number 26"; with function Condition_26 return Boolean is False; with procedure Action_26 is Nothing.To_Do; Name_27 : in Rulename := "Rule number 27"; with function Condition_27 return Boolean is False; with procedure Action_27 is Nothing.To_Do; Name_28 : in Rulename := "Rule number 28"; with function Condition_28 return Boolean is False; with procedure Action_28 is Nothing.To_Do; Name_29 : in Rulename := "Rule number 29"; with function Condition_29 return Boolean is False; with procedure Action_29 is Nothing.To_Do; Name_30 : in Rulename := "Rule number 30"; with function Condition_30 return Boolean is False; with procedure Action_30 is Nothing.To_Do; Used_Rules : Positive := 30; package Motor is function Inference (Step : Natural := 1) return Boolean; end Motor; package Terminal is procedure Atxy (X : Natural; Y : Natural); procedure Clear; end Terminal; private subtype Ido is Natural; subtype Idc is Natural; type Reference is record Idobject : Ido; Idclass : Idc; Date : Long_Integer; end record; Nullreference : constant Expertsystem.Reference := (1, 0, 0); end Expertsystem;