1 :- dynamic parserVersionNum/1, parserVersionStr/1, parseResult/5.
2 :- dynamic module/4.
3 'parserVersionStr'('0.6.2.1').
4 'parseResult'('ok','',0,0,0).
5 :- dynamic channel/2, bindval/3, agent/3.
6 :- dynamic agent_curry/3, symbol/4.
7 :- dynamic dataTypeDef/2, subTypeDef/2, nameType/2.
8 :- dynamic cspTransparent/1.
9 :- dynamic cspPrint/1.
10 :- dynamic pragma/1.
11 :- dynamic comment/2.
12 :- dynamic assertBool/1, assertRef/5, assertTauPrio/6.
13 :- dynamic assertModelCheckExt/4, assertModelCheck/3.
14 :- dynamic assertLtl/4, assertCtl/4.
15 'parserVersionNum'([0,11,1,1]).
16 'parserVersionStr'('CSPM-Frontent-0.11.1.1').
17 'dataTypeDef'('names',['constructor'('lois'),'constructor'('leah'),'constructor'('hugh'),'constructor'('henry')]).
18 'dataTypeDef'('data',['constructor'('Zero'),'constructor'('One')]).
19 'channel'('send','type'('dotTupleType'(['names','data']))).
20 'channel'('rec','type'('dotTupleType'(['names','data']))).
21 'channel'('in','type'('dotTupleType'(['names','names','data']))).
22 'channel'('out','type'('dotTupleType'(['names','data']))).
23 'bindval'('H','closureComp'(['comprehensionGenerator'(_n,'setExp'('rangeEnum'(['hugh','henry'])))],['dotTuple'(['send',_n]),'dotTuple'(['rec',_n])]),'src_span'(35,1,35,43,1004,42)).
24 'bindval'('L','closureComp'(['comprehensionGenerator'(_n2,'setExp'('rangeEnum'(['lois','leah'])))],['dotTuple'(['send',_n2]),'dotTuple'(['rec',_n2])]),'src_span'(37,1,37,41,1048,40)).
25 'bindval'('SendL','prefix'('src_span'(45,9,45,18,1260,9),['in'(_x)],'dotTuple'(['send','lois']),'prefix'('src_span'(45,24,45,36,1275,12),['out'(_x)],'dotTuple'(['in','lois','leah']),'val_of'('SendL','src_span'(45,42,45,47,1293,5)),'src_span'(45,39,45,41,1289,11)),'src_span'(45,21,45,23,1271,29)),'src_span'(45,1,45,47,1252,46)).
26 'bindval'('SendH','prefix'('src_span'(47,9,47,18,1308,9),['in'(_x2)],'dotTuple'(['send','hugh']),'prefix'('src_span'(47,24,47,37,1323,13),['out'(_x2)],'dotTuple'(['in','hugh','henry']),'val_of'('SendH','src_span'(47,43,47,48,1342,5)),'src_span'(47,40,47,42,1338,11)),'src_span'(47,21,47,23,1319,30)),'src_span'(47,1,47,48,1300,47)).
27 'bindval'('RecL','prefix'('src_span'(49,8,49,16,1356,8),['in'(_x3)],'dotTuple'(['out','leah']),'prefix'('src_span'(49,22,49,30,1370,8),['out'(_x3)],'dotTuple'(['rec','leah']),'val_of'('RecL','src_span'(49,36,49,40,1384,4)),'src_span'(49,33,49,35,1380,10)),'src_span'(49,19,49,21,1366,24)),'src_span'(49,1,49,40,1349,39)).
28 'bindval'('RecH','prefix'('src_span'(51,8,51,17,1397,9),['in'(_x4)],'dotTuple'(['out','henry']),'prefix'('src_span'(51,23,51,32,1412,9),['out'(_x4)],'dotTuple'(['rec','henry']),'val_of'('RecH','src_span'(51,38,51,42,1427,4)),'src_span'(51,35,51,37,1423,10)),'src_span'(51,20,51,22,1408,25)),'src_span'(51,1,51,42,1390,41)).
29 'bindval'('Medium','prefix'('src_span'(53,10,53,12,1442,2),['in'(_s),'in'(_t),'in'(_x5)],'in','prefix'('src_span'(53,22,53,25,1454,3),['out'(_t),'out'(_x5)],'out','val_of'('Medium','src_span'(53,33,53,39,1465,6)),'src_span'(53,30,53,32,1461,12)),'src_span'(53,19,53,21,1450,23)),'src_span'(53,1,53,39,1433,38)).
30 'bindval'('System1','\x5c\'('sharing'('closure'(['out']),'sharing'('closure'(['in']),'|||'('val_of'('SendL','src_span'(55,14,55,19,1486,5)),'val_of'('SendH','src_span'(55,24,55,29,1496,5)),'src_span_operator'('no_loc_info_available','src_span'(55,20,55,23,1492,3))),'val_of'('Medium','src_span'(55,42,55,48,1514,6)),'src_span'(55,31,55,41,1503,10)),'|||'('val_of'('RecL','src_span'(56,25,56,29,1546,4)),'val_of'('RecH','src_span'(56,34,56,38,1555,4)),'src_span_operator'('no_loc_info_available','src_span'(56,30,56,33,1551,3))),'src_span'(56,13,56,24,1534,11)),'closure'(['in','out']),'src_span_operator'('no_loc_info_available','src_span'(56,40,56,41,1561,1))),'src_span'(55,1,56,51,1473,99)).
31 'agent_curry'('LAbs'([_h],[_P]),'\x5c\'('sharing'(_h,_P,'builtin_call'('CHAOS'('src_span'(60,21,60,29,1656,8),_h)),'src_span'(60,16,60,21,1651,5)),_h,'src_span_operator'('no_loc_info_available','src_span'(60,30,60,31,1665,1))),'no_loc_info_available').
32 'assertModelCheckExt'('True','agent_call_curry'('LAbs',[['val_of'('H','src_span'(64,17,64,18,1749,1))],['val_of'('System1','src_span'(64,20,64,27,1752,7))]]),'Deterministic','F').
33 'bindval'('Medium2','[]'('prefix'('src_span'(73,11,73,18,1995,7),['in'(_t2),'in'(_x6)],'dotTuple'(['in','lois']),'prefix'('src_span'(73,26,73,29,2010,3),['out'(_t2),'out'(_x6)],'out','val_of'('Medium2','src_span'(73,37,73,44,2021,7)),'src_span'(73,34,73,36,2017,13)),'src_span'(73,23,73,25,2006,24)),'prefix'('src_span'(74,13,74,20,2041,7),['in'(_t3),'in'(_x7)],'dotTuple'(['in','hugh']),'agent_call'('src_span'(74,28,74,36,2056,8),'Medium2\x27\',[_t3,_x7]),'src_span'(74,25,74,27,2052,19)),'src_span_operator'('no_loc_info_available','src_span'(74,10,74,12,2038,2))),'src_span'(73,1,74,41,1985,84)).
34 'agent'('Medium2\x27\'(_t4,_x8),'[]'('prefix'('src_span'(76,17,76,24,2087,7),['in'(_t_quote),'in'(_x_quote)],'dotTuple'(['in','lois']),'prefix'('src_span'(76,34,76,37,2104,3),['out'(_t_quote),'out'(_x_quote)],'out','val_of'('Medium2','src_span'(76,47,76,54,2117,7)),'src_span'(76,44,76,46,2113,14)),'src_span'(76,31,76,33,2100,27)),'prefix'('src_span'(77,19,77,24,2143,5),['out'(_x8)],'dotTuple'(['out',_t4]),'val_of'('Medium2','src_span'(77,30,77,37,2154,7)),'src_span'(77,27,77,29,2150,13)),'src_span_operator'('no_loc_info_available','src_span'(77,16,77,18,2140,2))),'no_loc_info_available').
35 'bindval'('System2','\x5c\'('sharing'('closure'(['out']),'sharing'('closure'(['in']),'|||'('val_of'('SendL','src_span'(79,14,79,19,2176,5)),'val_of'('SendH','src_span'(79,24,79,29,2186,5)),'src_span_operator'('no_loc_info_available','src_span'(79,20,79,23,2182,3))),'val_of'('Medium2','src_span'(79,42,79,49,2204,7)),'src_span'(79,31,79,41,2193,10)),'|||'('val_of'('RecL','src_span'(80,25,80,29,2237,4)),'val_of'('RecH','src_span'(80,34,80,38,2246,4)),'src_span_operator'('no_loc_info_available','src_span'(80,30,80,33,2242,3))),'src_span'(80,13,80,24,2225,11)),'closure'(['in','out']),'src_span_operator'('no_loc_info_available','src_span'(80,40,80,41,2252,1))),'src_span'(79,1,80,51,2163,100)).
36 'assertModelCheckExt'('False','agent_call_curry'('LAbs',[['val_of'('H','src_span'(84,13,84,14,2319,1))],['val_of'('System2','src_span'(84,16,84,23,2322,7))]]),'Deterministic','F').
37 'agent'('BN'(_N,_s2,_left,_right),'[]'('&'('<'('#'(_s2),_N),'prefix'('src_span'(89,29,89,33,2479,4),['in'(_x9)],_left,'agent_call'('src_span'(89,39,89,41,2489,2),'BN',[_N,'^'(_s2,'listExp'('rangeEnum'([_x9]))),_left,_right]),'src_span'(89,36,89,38,2485,28))),'&'('>'('#'(_s2),'int'(0)),'prefix'('src_span'(90,29,90,34,2540,5),['out'('agent_call'('src_span'(90,35,90,39,2546,4),'head',[_s2]))],_right,'agent_call'('src_span'(90,46,90,48,2557,2),'BN',[_N,'agent_call'('src_span'(90,51,90,55,2562,4),'tail',[_s2]),_left,_right]),'src_span'(90,43,90,45,2553,36))),'src_span_operator'('no_loc_info_available','src_span'(90,19,90,21,2530,2))),'no_loc_info_available').
38 'assertRef'('True','agent_call'('src_span'(92,12,92,14,2594,2),'BN',['int'(3),'listExp'('rangeEnum'([])),'dotTuple'(['send','hugh']),'dotTuple'(['rec','henry'])]),'Trace','agent_call_curry'('LAbs',[['val_of'('L','src_span'(92,50,92,51,2632,1))],['val_of'('System2','src_span'(92,53,92,60,2635,7))]]),'src_span'(92,1,92,61,2583,60)).
39 'assertRef'('False','agent_call'('src_span'(97,8,97,10,2786,2),'BN',['int'(3),'listExp'('rangeEnum'([])),'dotTuple'(['send','lois']),'dotTuple'(['rec','leah'])]),'Failure','agent_call_curry'('LAbs',[['val_of'('H','src_span'(97,45,97,46,2823,1))],['val_of'('System2','src_span'(97,48,97,55,2826,7))]]),'src_span'(97,1,97,56,2779,55)).
40 'channel'('ok','type'('dotUnitType')).
41 'channel'('ref','type'('dotUnitType')).
42 'bindval'('SendH3','prefix'('src_span'(107,10,107,19,3020,9),['in'(_x71)],'dotTuple'(['send','hugh']),'prefix'('src_span'(107,25,107,38,3035,13),['out'(_x71)],'dotTuple'(['in','hugh','henry']),'agent_call'('src_span'(107,44,107,51,3054,7),'SendH3\x27\',[_x71]),'src_span'(107,41,107,43,3050,16)),'src_span'(107,22,107,24,3031,35)),'src_span'(107,1,107,54,3011,53)).
43 'agent'('SendH3\x27\'(_x72),'[]'('prefix'('src_span'(109,14,109,16,3079,2),[],'ok','val_of'('SendH3','src_span'(109,20,109,26,3085,6)),'src_span'(109,17,109,19,3081,12)),'prefix'('src_span'(110,16,110,19,3107,3),[],'ref','prefix'('src_span'(110,23,110,36,3114,13),['out'(_x72)],'dotTuple'(['in','hugh','henry']),'agent_call'('src_span'(110,42,110,49,3133,7),'SendH3\x27\',[_x72]),'src_span'(110,39,110,41,3129,16)),'src_span'(110,20,110,22,3110,36)),'src_span_operator'('no_loc_info_available','src_span'(110,13,110,15,3104,2))),'no_loc_info_available').
44 'bindval'('Medium3','[]'('prefix'('src_span'(112,11,112,18,3156,7),['in'(_t5),'in'(_x74)],'dotTuple'(['in','lois']),'prefix'('src_span'(112,26,112,29,3171,3),['out'(_t5),'out'(_x74)],'out','val_of'('Medium3','src_span'(112,37,112,44,3182,7)),'src_span'(112,34,112,36,3178,13)),'src_span'(112,23,112,25,3167,24)),'prefix'('src_span'(113,13,113,20,3202,7),['in'(_t6),'in'(_x76)],'dotTuple'(['in','hugh']),'agent_call'('src_span'(113,28,113,36,3217,8),'Medium3\x27\',[_t6,_x76]),'src_span'(113,25,113,27,3213,19)),'src_span_operator'('no_loc_info_available','src_span'(113,10,113,12,3199,2))),'src_span'(112,1,113,41,3146,84)).
45 'agent'('Medium3\x27\'(_t7,_x78),'[]'('prefix'('src_span'(115,17,115,24,3248,7),['in'(_t_quote2),'in'(_x_quote2)],'dotTuple'(['in','lois']),'prefix'('src_span'(115,34,115,37,3265,3),[],'ref','prefix'('src_span'(115,41,115,44,3272,3),['out'(_t_quote2),'out'(_x_quote2)],'out','val_of'('Medium3','src_span'(115,54,115,61,3285,7)),'src_span'(115,51,115,53,3281,14)),'src_span'(115,38,115,40,3268,27)),'src_span'(115,31,115,33,3261,34)),'prefix'('src_span'(116,19,116,24,3311,5),['out'(_x78)],'dotTuple'(['out',_t7]),'prefix'('src_span'(116,30,116,32,3322,2),[],'ok','val_of'('Medium3','src_span'(116,37,116,44,3329,7)),'src_span'(116,33,116,36,3324,14)),'src_span'(116,27,116,29,3318,20)),'src_span_operator'('no_loc_info_available','src_span'(116,16,116,18,3308,2))),'no_loc_info_available').
46 'bindval'('System3','\x5c\'('sharing'('closure'(['out']),'sharing'('closure'(['in','ok','ref']),'|||'('val_of'('SendL','src_span'(118,14,118,19,3351,5)),'val_of'('SendH3','src_span'(118,24,118,30,3361,6)),'src_span_operator'('no_loc_info_available','src_span'(118,20,118,23,3357,3))),'val_of'('Medium3','src_span'(118,50,118,57,3387,7)),'src_span'(118,32,118,49,3369,17)),'|||'('val_of'('RecL','src_span'(119,25,119,29,3420,4)),'val_of'('RecH','src_span'(119,34,119,38,3429,4)),'src_span_operator'('no_loc_info_available','src_span'(119,30,119,33,3425,3))),'src_span'(119,13,119,24,3408,11)),'closure'(['in','out','ok','ref']),'src_span_operator'('no_loc_info_available','src_span'(119,40,119,41,3435,1))),'src_span'(118,1,119,58,3338,115)).
47 'assertModelCheckExt'('False','agent_call_curry'('LAbs',[['val_of'('H','src_span'(123,14,123,15,3495,1))],['val_of'('System3','src_span'(123,17,123,24,3498,7))]]),'Deterministic','F').
48 'assertRef'('False','agent_call'('src_span'(127,8,127,10,3580,2),'BN',['int'(3),'listExp'('rangeEnum'([])),'dotTuple'(['send','hugh']),'dotTuple'(['rec','henry'])]),'Trace','agent_call_curry'('LAbs',[['val_of'('L','src_span'(127,46,127,47,3618,1))],['val_of'('System3','src_span'(127,49,127,56,3621,7))]]),'src_span'(127,1,127,57,3573,56)).
49 'assertRef'('False','agent_call'('src_span'(131,8,131,10,3673,2),'BN',['int'(3),'listExp'('rangeEnum'([])),'dotTuple'(['send','lois']),'dotTuple'(['rec','leah'])]),'Failure','agent_call_curry'('LAbs',[['val_of'('H','src_span'(131,45,131,46,3710,1))],['val_of'('System3','src_span'(131,48,131,55,3713,7))]]),'src_span'(131,1,131,56,3666,55)).
50 'bindval'('SendL4','prefix'('src_span'(143,10,143,19,4178,9),['in'(_x81)],'dotTuple'(['send','lois']),'prefix'('src_span'(143,25,143,37,4193,12),['out'(_x81)],'dotTuple'(['in','lois','leah']),'prefix'('src_span'(143,43,143,51,4211,8),['in'(_x82)],'dotTuple'(['out','lois']),'val_of'('SendL4','src_span'(143,57,143,63,4225,6)),'src_span'(143,54,143,56,4221,12)),'src_span'(143,40,143,42,4207,26)),'src_span'(143,22,143,24,4189,44)),'src_span'(143,1,143,63,4169,62)).
51 'bindval'('SendH4','prefix'('src_span'(145,10,145,19,4242,9),['in'(_x83)],'dotTuple'(['send','hugh']),'prefix'('src_span'(145,25,145,38,4257,13),['out'(_x83)],'dotTuple'(['in','hugh','henry']),'prefix'('src_span'(145,44,145,52,4276,8),['in'(_x84)],'dotTuple'(['out','hugh']),'val_of'('SendH4','src_span'(145,58,145,64,4290,6)),'src_span'(145,55,145,57,4286,12)),'src_span'(145,41,145,43,4272,26)),'src_span'(145,22,145,24,4253,45)),'src_span'(145,1,145,64,4233,63)).
52 'bindval'('RecL4','prefix'('src_span'(147,9,147,17,4306,8),['in'(_x85)],'dotTuple'(['out','leah']),'prefix'('src_span'(147,23,147,31,4320,8),['out'(_x85)],'dotTuple'(['rec','leah']),'prefix'('src_span'(147,37,147,54,4334,17),[],'dotTuple'(['in','leah','lois','Zero']),'val_of'('RecL4','src_span'(147,58,147,63,4355,5)),'src_span'(147,55,147,57,4351,26)),'src_span'(147,34,147,36,4330,32)),'src_span'(147,20,147,22,4316,46)),'src_span'(147,1,147,63,4298,62)).
53 'bindval'('RecH4','prefix'('src_span'(149,9,149,18,4370,9),['in'(_x86)],'dotTuple'(['out','henry']),'prefix'('src_span'(149,24,149,33,4385,9),['out'(_x86)],'dotTuple'(['rec','henry']),'prefix'('src_span'(149,39,149,57,4400,18),[],'dotTuple'(['in','henry','hugh','Zero']),'val_of'('RecH4','src_span'(149,61,149,66,4422,5)),'src_span'(149,58,149,60,4418,27)),'src_span'(149,36,149,38,4396,33)),'src_span'(149,21,149,23,4381,48)),'src_span'(149,1,149,66,4362,65)).
54 'bindval'('System4','\x5c\'('sharing'('closure'(['in','out']),'|||'('|||'('|||'('val_of'('SendL4','src_span'(152,13,152,19,4442,6)),'val_of'('SendH4','src_span'(152,24,152,30,4453,6)),'src_span_operator'('no_loc_info_available','src_span'(152,20,152,23,4449,3))),'val_of'('RecL4','src_span'(152,35,152,40,4464,5)),'src_span_operator'('no_loc_info_available','src_span'(152,31,152,34,4460,3))),'val_of'('RecH4','src_span'(152,45,152,50,4474,5)),'src_span_operator'('no_loc_info_available','src_span'(152,41,152,44,4470,3))),'val_of'('Medium','src_span'(153,29,153,35,4510,6)),'src_span'(153,14,153,28,4495,14)),'closure'(['in','out']),'src_span_operator'('no_loc_info_available','src_span'(153,36,153,37,4517,1))),'src_span'(152,1,153,47,4430,98)).
55 'assertModelCheckExt'('False','agent_call_curry'('LAbs',[['val_of'('H','src_span'(158,13,158,14,4571,1))],['val_of'('System4','src_span'(158,16,158,23,4574,7))]]),'Deterministic','F').
56 'assertRef'('False','agent_call'('src_span'(162,8,162,10,4654,2),'BN',['int'(1),'listExp'('rangeEnum'([])),'dotTuple'(['send','hugh']),'dotTuple'(['rec','henry'])]),'Failure','agent_call_curry'('LAbs',[['val_of'('L','src_span'(162,46,162,47,4692,1))],['val_of'('System4','src_span'(162,49,162,56,4695,7))]]),'src_span'(162,1,162,57,4647,56)).
57 'assertRef'('False','agent_call'('src_span'(163,8,163,10,4711,2),'BN',['int'(1),'listExp'('rangeEnum'([])),'dotTuple'(['send','lois']),'dotTuple'(['rec','leah'])]),'Failure','agent_call_curry'('LAbs',[['val_of'('H','src_span'(163,45,163,46,4748,1))],['val_of'('System4','src_span'(163,48,163,55,4751,7))]]),'src_span'(163,1,163,56,4704,55)).
58 'assertModelCheckExt'('False','sharing'('val_of'('H','src_span'(181,17,181,18,5360,1)),'val_of'('System4','src_span'(181,8,181,15,5351,7)),'stop'('src_span'(181,20,181,24,5363,4)),'src_span'(181,15,181,20,5358,5)),'Deterministic','FD').
59 'assertRef'('False','sharing'('val_of'('H','src_span'(182,17,182,18,5406,1)),'val_of'('System4','src_span'(182,8,182,15,5397,7)),'stop'('src_span'(182,20,182,24,5409,4)),'src_span'(182,15,182,20,5404,5)),'Failure','agent_call_curry'('LAbs',[['val_of'('H','src_span'(182,34,182,35,5423,1))],['val_of'('System4','src_span'(182,37,182,44,5426,7))]]),'src_span'(182,1,182,45,5390,44)).
60 'comment'('lineComment'('-- commsec.csp'),'src_position'(1,1,0,14)).
61 'comment'('lineComment'('-- illustrating the use of abstraction and determinism for checking'),'src_position'(3,1,16,67)).
62 'comment'('lineComment'('-- information-flow security properties'),'src_position'(4,1,84,39)).
63 'comment'('lineComment'('-- This file is only slightly adapted from the TCS version, so in particular'),'src_position'(6,1,125,76)).
64 'comment'('lineComment'('-- goes more deeply into this example than Section 6.5 of UCS.'),'src_position'(7,1,202,62)).
65 'comment'('lineComment'('-- See Example 12.4.1 in TCS'),'src_position'(8,1,265,28)).
66 'comment'('lineComment'('-- Bill Roscoe'),'src_position'(10,1,295,14)).
67 'comment'('lineComment'('-- We have two low-clearance, and two high-clearance, users'),'src_position'(12,1,311,59)).
68 'comment'('lineComment'('-- who send each other messages (a data type of size 2 being enough'),'src_position'(16,1,417,67)).
69 'comment'('lineComment'('-- by the arguments in chapter 17 on data independence)'),'src_position'(17,1,485,55)).
70 'comment'('lineComment'('-- In this example Hugh always sends messages to Henry, and Lois to Leah,'),'src_position'(21,1,570,73)).
71 'comment'('lineComment'('-- so we only need one name field on the messages transacted with the users'),'src_position'(22,1,644,75)).
72 'comment'('lineComment'('-- (the name identifies who is communicating, the other party being implicit)'),'src_position'(23,1,720,77)).
73 'comment'('lineComment'('-- The input to the communication medium carries sender and address fields'),'src_position'(27,1,830,74)).
74 'comment'('lineComment'('-- The sets of high and low level actions'),'src_position'(33,1,961,41)).
75 'comment'('lineComment'('---*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-'),'src_position'(39,1,1090,77)).
76 'comment'('lineComment'('-- Version 1'),'src_position'(41,1,1169,12)).
77 'comment'('lineComment'('-- A naive version in which the two channels share a common medium:'),'src_position'(43,1,1183,67)).
78 'comment'('lineComment'('-- Lazy abstraction (defined over the stable failures model)'),'src_position'(58,1,1574,60)).
79 'comment'('lineComment'('-- The insecurity of this version is demonstrated by the check'),'src_position'(62,1,1669,62)).
80 'comment'('lineComment'('--=#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#='),'src_position'(66,1,1783,77)).
81 'comment'('lineComment'('-- Version 2'),'src_position'(68,1,1862,12)).
82 'comment'('lineComment'('-- Security is attained in this version at the expense of throwing away'),'src_position'(70,1,1876,71)).
83 'comment'('lineComment'('-- messages between Hugh and Henry:'),'src_position'(71,1,1948,35)).
84 'comment'('lineComment'('-- security is demonstrated by the check'),'src_position'(82,1,2265,40)).
85 'comment'('lineComment'('-- but the inadequacy of this implementation to high-level users is'),'src_position'(86,1,2353,67)).
86 'comment'('lineComment'('-- demonstrated by the check'),'src_position'(87,1,2421,28)).
87 'comment'('lineComment'('-- showing that the high view loses messages (note this is only a trace'),'src_position'(94,1,2646,71)).
88 'comment'('lineComment'('-- check) even though the low-level view is highly reliable'),'src_position'(95,1,2718,59)).
89 'comment'('lineComment'('--/%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%//%/'),'src_position'(99,1,2837,77)).
90 'comment'('lineComment'('-- Version 3:'),'src_position'(101,1,2916,13)).
91 'comment'('lineComment'('-- This version makes the process SendH re-send lost messages:'),'src_position'(103,1,2931,62)).
92 'comment'('lineComment'('-- This retains security:'),'src_position'(121,1,3455,25)).
93 'comment'('lineComment'('-- while improving the high-level utility:'),'src_position'(125,1,3529,42)).
94 'comment'('lineComment'('-- without changing the low view'),'src_position'(129,1,3632,32)).
95 'comment'('lineComment'('--/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\/^\x5c\'),'src_position'(133,1,3724,77)).
96 'comment'('lineComment'('-- Even in version 3 the high users can be blocked by the low ones:'),'src_position'(135,1,3803,67)).
97 'comment'('lineComment'('-- the process LAbs(L)(System3) is nondeterministic'),'src_position'(136,1,3871,51)).
98 'comment'('lineComment'('-- This can be avoided by using more flow control, implemented here as'),'src_position'(138,1,3924,70)).
99 'comment'('lineComment'('-- back-messages from Henry\x27\s process to Hugh\x27\s, and from Leah\x27\s to'),'src_position'(139,1,3995,67)).
100 'comment'('lineComment'('-- Lois\x27\s. The content of these back messages are irrelevant; they are'),'src_position'(140,1,4063,71)).
101 'comment'('lineComment'('-- just acknowledgement packets.'),'src_position'(141,1,4135,32)).
102 'comment'('lineComment'('-- Not only is this secure'),'src_position'(156,1,4531,26)).
103 'comment'('lineComment'('-- But both views are now deterministic:'),'src_position'(160,1,4605,40)).
104 'comment'('lineComment'('--!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!!*!'),'src_position'(165,1,4761,77)).
105 'comment'('lineComment'('-- PLEASE NOTE'),'src_position'(167,1,4840,14)).
106 'comment'('lineComment'('-- Many of the above checks are based (for reasons discussed in the'),'src_position'(169,1,4856,67)).
107 'comment'('lineComment'('-- text) on failures determinism checking of processes which can actually'),'src_position'(170,1,4924,73)).
108 'comment'('lineComment'('-- diverge in the representations given in this file. With such checks,'),'src_position'(171,1,4998,72)).
109 'comment'('lineComment'('-- at the time of writing, it is possible that no answer will be found by FDR.'),'src_position'(172,1,5071,78)).
110 'comment'('lineComment'('-- See Section 8.7 for a discussion of this. One way around this is to'),'src_position'(173,1,5150,71)).
111 'comment'('lineComment'('-- perform the pair of checks:'),'src_position'(174,1,5222,30)).
112 'comment'('lineComment'('-- assert P[|H|]STOP :[deterministic [FD]]'),'src_position'(176,1,5254,42)).
113 'comment'('lineComment'('-- assert P[|H|]STOP [F= LAbs(H)(P)'),'src_position'(177,1,5297,35)).
114 'comment'('lineComment'('-- as in'),'src_position'(179,1,5334,8)).
115 'symbol'('names','names','src_span'(14,10,14,15,381,5),'Datatype').
116 'symbol'('lois','lois','src_span'(14,18,14,22,389,4),'Constructor of Datatype').
117 'symbol'('leah','leah','src_span'(14,25,14,29,396,4),'Constructor of Datatype').
118 'symbol'('hugh','hugh','src_span'(14,32,14,36,403,4),'Constructor of Datatype').
119 'symbol'('henry','henry','src_span'(14,39,14,44,410,5),'Constructor of Datatype').
120 'symbol'('data','data','src_span'(19,10,19,14,551,4),'Datatype').
121 'symbol'('Zero','Zero','src_span'(19,17,19,21,558,4),'Constructor of Datatype').
122 'symbol'('One','One','src_span'(19,24,19,27,565,3),'Constructor of Datatype').
123 'symbol'('send','send','src_span'(25,9,25,13,807,4),'Channel').
124 'symbol'('rec','rec','src_span'(25,15,25,18,813,3),'Channel').
125 'symbol'('in','in','src_span'(29,9,29,11,914,2),'Channel').
126 'symbol'('out','out','src_span'(31,9,31,12,944,3),'Channel').
127 'symbol'('H','H','src_span'(35,1,35,2,1004,1),'Ident (Groundrep.)').
128 'symbol'('n','n','src_span'(35,23,35,24,1026,1),'Ident (Prolog Variable)').
129 'symbol'('L','L','src_span'(37,1,37,2,1048,1),'Ident (Groundrep.)').
130 'symbol'('n2','n','src_span'(37,22,37,23,1069,1),'Ident (Prolog Variable)').
131 'symbol'('SendL','SendL','src_span'(45,1,45,6,1252,5),'Ident (Groundrep.)').
132 'symbol'('x','x','src_span'(45,19,45,20,1270,1),'Ident (Prolog Variable)').
133 'symbol'('SendH','SendH','src_span'(47,1,47,6,1300,5),'Ident (Groundrep.)').
134 'symbol'('x2','x','src_span'(47,19,47,20,1318,1),'Ident (Prolog Variable)').
135 'symbol'('RecL','RecL','src_span'(49,1,49,5,1349,4),'Ident (Groundrep.)').
136 'symbol'('x3','x','src_span'(49,17,49,18,1365,1),'Ident (Prolog Variable)').
137 'symbol'('RecH','RecH','src_span'(51,1,51,5,1390,4),'Ident (Groundrep.)').
138 'symbol'('x4','x','src_span'(51,18,51,19,1407,1),'Ident (Prolog Variable)').
139 'symbol'('Medium','Medium','src_span'(53,1,53,7,1433,6),'Ident (Groundrep.)').
140 'symbol'('s','s','src_span'(53,13,53,14,1445,1),'Ident (Prolog Variable)').
141 'symbol'('t','t','src_span'(53,15,53,16,1447,1),'Ident (Prolog Variable)').
142 'symbol'('x5','x','src_span'(53,17,53,18,1449,1),'Ident (Prolog Variable)').
143 'symbol'('System1','System1','src_span'(55,1,55,8,1473,7),'Ident (Groundrep.)').
144 'symbol'('LAbs','LAbs','src_span'(60,1,60,5,1636,4),'Funktion or Process').
145 'symbol'('h','h','src_span'(60,6,60,7,1641,1),'Ident (Prolog Variable)').
146 'symbol'('P','P','src_span'(60,9,60,10,1644,1),'Ident (Prolog Variable)').
147 'symbol'('Medium2','Medium2','src_span'(73,1,73,8,1985,7),'Ident (Groundrep.)').
148 'symbol'('t2','t','src_span'(73,19,73,20,2003,1),'Ident (Prolog Variable)').
149 'symbol'('x6','x','src_span'(73,21,73,22,2005,1),'Ident (Prolog Variable)').
150 'symbol'('t3','t','src_span'(74,21,74,22,2049,1),'Ident (Prolog Variable)').
151 'symbol'('x7','x','src_span'(74,23,74,24,2051,1),'Ident (Prolog Variable)').
152 'symbol'('Medium2\x27\','Medium2\x27\','src_span'(76,1,76,9,2071,8),'Funktion or Process').
153 'symbol'('t4','t','src_span'(76,10,76,11,2080,1),'Ident (Prolog Variable)').
154 'symbol'('x8','x','src_span'(76,12,76,13,2082,1),'Ident (Prolog Variable)').
155 'symbol'('t\x27\','t\x27\','src_span'(76,25,76,27,2095,2),'Ident (Prolog Variable)').
156 'symbol'('x\x27\','x\x27\','src_span'(76,28,76,30,2098,2),'Ident (Prolog Variable)').
157 'symbol'('System2','System2','src_span'(79,1,79,8,2163,7),'Ident (Groundrep.)').
158 'symbol'('BN','BN','src_span'(89,1,89,3,2451,2),'Funktion or Process').
159 'symbol'('N','N','src_span'(89,4,89,5,2454,1),'Ident (Prolog Variable)').
160 'symbol'('s2','s','src_span'(89,6,89,7,2456,1),'Ident (Prolog Variable)').
161 'symbol'('left','left','src_span'(89,8,89,12,2458,4),'Ident (Prolog Variable)').
162 'symbol'('right','right','src_span'(89,13,89,18,2463,5),'Ident (Prolog Variable)').
163 'symbol'('x9','x','src_span'(89,34,89,35,2484,1),'Ident (Prolog Variable)').
164 'symbol'('head','head','src_span'(90,35,90,39,2546,4),'BuiltIn primitive').
165 'symbol'('tail','tail','src_span'(90,51,90,55,2562,4),'BuiltIn primitive').
166 'symbol'('ok','ok','src_span'(105,9,105,11,3003,2),'Channel').
167 'symbol'('ref','ref','src_span'(105,12,105,15,3006,3),'Channel').
168 'symbol'('SendH3','SendH3','src_span'(107,1,107,7,3011,6),'Ident (Groundrep.)').
169 'symbol'('x71','x','src_span'(107,20,107,21,3030,1),'Ident (Prolog Variable)').
170 'symbol'('SendH3\x27\','SendH3\x27\','src_span'(109,1,109,8,3066,7),'Funktion or Process').
171 'symbol'('x72','x','src_span'(109,9,109,10,3074,1),'Ident (Prolog Variable)').
172 'symbol'('Medium3','Medium3','src_span'(112,1,112,8,3146,7),'Ident (Groundrep.)').
173 'symbol'('t5','t','src_span'(112,19,112,20,3164,1),'Ident (Prolog Variable)').
174 'symbol'('x74','x','src_span'(112,21,112,22,3166,1),'Ident (Prolog Variable)').
175 'symbol'('t6','t','src_span'(113,21,113,22,3210,1),'Ident (Prolog Variable)').
176 'symbol'('x76','x','src_span'(113,23,113,24,3212,1),'Ident (Prolog Variable)').
177 'symbol'('Medium3\x27\','Medium3\x27\','src_span'(115,1,115,9,3232,8),'Funktion or Process').
178 'symbol'('t7','t','src_span'(115,10,115,11,3241,1),'Ident (Prolog Variable)').
179 'symbol'('x78','x','src_span'(115,12,115,13,3243,1),'Ident (Prolog Variable)').
180 'symbol'('t\x27\2','t\x27\','src_span'(115,25,115,27,3256,2),'Ident (Prolog Variable)').
181 'symbol'('x\x27\2','x\x27\','src_span'(115,28,115,30,3259,2),'Ident (Prolog Variable)').
182 'symbol'('System3','System3','src_span'(118,1,118,8,3338,7),'Ident (Groundrep.)').
183 'symbol'('SendL4','SendL4','src_span'(143,1,143,7,4169,6),'Ident (Groundrep.)').
184 'symbol'('x81','x','src_span'(143,20,143,21,4188,1),'Ident (Prolog Variable)').
185 'symbol'('x82','x','src_span'(143,52,143,53,4220,1),'Ident (Prolog Variable)').
186 'symbol'('SendH4','SendH4','src_span'(145,1,145,7,4233,6),'Ident (Groundrep.)').
187 'symbol'('x83','x','src_span'(145,20,145,21,4252,1),'Ident (Prolog Variable)').
188 'symbol'('x84','x','src_span'(145,53,145,54,4285,1),'Ident (Prolog Variable)').
189 'symbol'('RecL4','RecL4','src_span'(147,1,147,6,4298,5),'Ident (Groundrep.)').
190 'symbol'('x85','x','src_span'(147,18,147,19,4315,1),'Ident (Prolog Variable)').
191 'symbol'('RecH4','RecH4','src_span'(149,1,149,6,4362,5),'Ident (Groundrep.)').
192 'symbol'('x86','x','src_span'(149,19,149,20,4380,1),'Ident (Prolog Variable)').
193 'symbol'('System4','System4','src_span'(152,1,152,8,4430,7),'Ident (Groundrep.)').