Warning, /frameworks/syntax-highlighting/autotests/reference/test.vpr.ref is written in an unsupported language. File is not indexed.
0001 <Keyword>import </Keyword><String>"foo.tdf"</String><br/> 0002 <Keyword>import </Keyword><String>"foo.txt"</String><br/> 0003 <Keyword>import </Keyword><String>"foo.txt"</String><br/> 0004 <Normal></Normal><br/> 0005 <Keyword>domain</Keyword><Normal> </Normal><Declaration>Foo[T]</Declaration><Normal> </Normal><Operator>{</Operator><br/> 0006 <Normal> </Normal><Keyword>axiom</Keyword><Normal> </Normal><Declaration>named</Declaration><Normal> </Normal><Operator>{</Operator><Normal> </Normal><Keyword>forall</Keyword><Normal> x: </Normal><DataType>Int</DataType><Normal>:: </Normal><TriggerZone>{</TriggerZone><Italic>lookup(x)</Italic><TriggerZone>}</TriggerZone><Normal> len(lookup(x)) == foobar(x) </Normal><Operator>}</Operator><br/> 0007 <Normal> </Normal><Keyword>axiom</Keyword><Normal> </Normal><Operator>{</Operator><Normal> </Normal><Keyword>forall</Keyword><Normal> x: </Normal><DataType>Int</DataType><Normal> :: </Normal><TriggerZone>{</TriggerZone><Italic>lookup(x)</Italic><TriggerZone>}</TriggerZone><Normal> </Normal><TriggerZone>{</TriggerZone><Italic>len(lookup(x))</Italic><TriggerZone>}</TriggerZone><Normal> len(lookup(x)) == foobar(x) </Normal><Operator>}</Operator><Normal> </Normal><Comment>// anonymous</Comment><br/> 0008 <Operator>}</Operator><br/> 0009 <Normal></Normal><br/> 0010 <Comment>// this is a comment</Comment><br/> 0011 <Normal></Normal><br/> 0012 <Comment>/* This is also</Comment><br/> 0013 <Comment> * another multi-line comment</Comment><br/> 0014 <Comment> * With a string "string" and</Comment><br/> 0015 <Comment> * an import "foo.bar" inside */</Comment><br/> 0016 <Normal></Normal><br/> 0017 <Comment>// Any copyright is dedicated to the Public Domain.</Comment><br/> 0018 <Comment>// http://creativecommons.org/publicdomain/zero/1.0/</Comment><br/> 0019 <Normal></Normal><br/> 0020 <Keyword>import </Keyword><String>"empty.sil"</String><br/> 0021 <Normal></Normal><br/> 0022 <Keyword>method</Keyword><Normal> </Normal><Declaration>test1</Declaration><Normal>(xs: </Normal><DataType>Seq</DataType><Normal>[</Normal><DataType>Ref</DataType><Normal>]) </Normal><Operator>{</Operator><br/> 0023 <Normal> </Normal><Keyword>inhale</Keyword><Normal> </Normal><Keyword>forall</Keyword><Normal> i: </Normal><DataType>Int</DataType><Normal> :: 0 <= i && i < |xs| ==> xs[i]</Normal><Field>.f</Field><Normal> != </Normal><DecVal>0</DecVal><br/> 0024 <Operator>}</Operator><br/> 0025 <Normal></Normal><br/> 0026 <Keyword>function</Keyword><Normal> </Normal><Declaration>$</Declaration><Normal>(n: </Normal><DataType>Ref</DataType><Normal>, m: </Normal><DataType>Ref</DataType><Normal>): Node</Normal><br/> 0027 <Normal></Normal><br/> 0028 <Keyword>domain</Keyword><Normal> </Normal><Declaration>Foo[T]</Declaration><Normal> </Normal><Operator>{</Operator><br/> 0029 <Normal> </Normal><Keyword>function</Keyword><Normal> </Normal><Declaration>enc</Declaration><Normal>(arg: T): Foo[T]</Normal><br/> 0030 <Normal> </Normal><Keyword>function</Keyword><Normal> </Normal><Declaration>dec</Declaration><Normal>(arg: Foo[T]): T</Normal><br/> 0031 <Normal></Normal><br/> 0032 <Normal> </Normal><Keyword>axiom</Keyword><Normal> </Normal><Declaration>ax_Dec</Declaration><Normal> </Normal><Operator>{</Operator><br/> 0033 <Normal> </Normal><Keyword>forall</Keyword><Normal> arg: T ::</Normal><br/> 0034 <Normal> dec( enc(arg) ) == arg</Normal><br/> 0035 <Normal> </Normal><Operator>}</Operator><br/> 0036 <Normal></Normal><br/> 0037 <Normal> </Normal><Keyword>axiom</Keyword><Normal> </Normal><Declaration>ax_Enc</Declaration><Normal> </Normal><Operator>{</Operator><br/> 0038 <Normal> </Normal><Keyword>forall</Keyword><Normal> arg: Foo[T] ::</Normal><br/> 0039 <Normal> </Normal><TriggerZone>{</TriggerZone><Normal> </Normal><Italic>enc(</Italic><Normal> </Normal><Italic>dec(arg)</Italic><Normal> </Normal><Italic>),</Italic><Normal> </Normal><Italic>foo(bar,</Italic><Normal> </Normal><Italic>i)</Italic><Normal> </Normal><TriggerZone>}</TriggerZone><br/> 0040 <Normal> </Normal><TriggerZone>{</TriggerZone><Normal> </Normal><Italic>dec(arg)</Italic><Normal> </Normal><TriggerZone>}</TriggerZone><br/> 0041 <Normal> enc( dec(arg) ) == arg</Normal><br/> 0042 <Normal> </Normal><Operator>}</Operator><br/> 0043 <Operator>}</Operator><br/> 0044 <Normal></Normal><br/> 0045 <Keyword>function</Keyword><Normal> </Normal><Declaration>myFunc</Declaration><Normal>(arg: </Normal><DataType>Int</DataType><Normal>): </Normal><DataType>Int</DataType><br/> 0046 <Normal> </Normal><Keyword>requires</Keyword><Normal> </Normal><Constant>true</Constant><Normal> || </Normal><Constant>false</Constant><br/> 0047 <Normal> </Normal><Keyword>ensures</Keyword><Normal> arg <= </Normal><DecVal>0</DecVal><Normal> ==> </Normal><Keyword>result</Keyword><Normal> == -</Normal><DecVal>1</DecVal><br/> 0048 <Normal> </Normal><Keyword>ensures</Keyword><Normal> arg > </Normal><DecVal>0</DecVal><Normal> ==> </Normal><Keyword>result</Keyword><Normal> == arg</Normal><br/> 0049 <Operator>{</Operator><br/> 0050 <Normal> arg > </Normal><DecVal>0</DecVal><Normal> ? arg : myFunc(arg - </Normal><DecVal>1</DecVal><Normal>)</Normal><br/> 0051 <Operator>}</Operator><br/> 0052 <Normal></Normal><br/> 0053 <Keyword>field</Keyword><Normal> </Normal><Declaration>value</Declaration><Normal>: </Normal><DataType>Int</DataType><br/> 0054 <Keyword>field</Keyword><Normal> </Normal><Declaration>next</Declaration><Normal>: </Normal><DataType>Ref</DataType><br/> 0055 <Normal></Normal><br/> 0056 <Keyword>predicate</Keyword><Normal> </Normal><Declaration>list</Declaration><Normal>(xs: </Normal><DataType>Ref</DataType><Normal>) </Normal><Operator>{</Operator><br/> 0057 <Normal> </Normal><Keyword>acc</Keyword><Normal>(xs</Normal><Field>.value</Field><Normal>) && </Normal><Keyword>acc</Keyword><Normal>(xs</Normal><Field>.next</Field><Normal>)</Normal><br/> 0058 <Normal> && ( list(xs</Normal><Field>.next</Field><Normal>) )</Normal><br/> 0059 <Operator>}</Operator><br/> 0060 <Normal></Normal><br/> 0061 <Keyword>define</Keyword><Normal> </Normal><Declaration>myPureMacro</Declaration><Normal>(abc) abc</Normal><br/> 0062 <Normal></Normal><br/> 0063 <Keyword>define</Keyword><Normal> </Normal><Declaration>myStmtMacro</Declaration><Normal>(abc) </Normal><Operator>{</Operator><br/> 0064 <Normal> </Normal><Keyword>inhale</Keyword><Normal> abc</Normal><br/> 0065 <Normal> </Normal><Keyword>exhale</Keyword><Normal> abc</Normal><br/> 0066 <Operator>}</Operator><br/> 0067 <Normal></Normal><br/> 0068 <Keyword>method</Keyword><Normal> </Normal><Declaration>smokeTest</Declaration><Normal>() </Normal><Operator>{</Operator><br/> 0069 <Normal></Normal><br/> 0070 <Normal> </Normal><Keyword>inhale</Keyword><Normal> </Normal><Constant>false</Constant><Normal>; </Normal><Keyword>exhale</Keyword><Normal> </Normal><Constant>false</Constant><br/> 0071 <Normal> </Normal><Keyword>assume</Keyword><Normal> </Normal><Constant>false</Constant><Normal>; </Normal><Keyword>assert</Keyword><Normal> </Normal><Constant>false</Constant><br/> 0072 <Normal></Normal><br/> 0073 <Normal> </Normal><Comment>//magic wands</Comment><br/> 0074 <Normal> </Normal><Keyword>var</Keyword><Normal> s: </Normal><DataType>Set</DataType><Normal>[</Normal><DataType>Int</DataType><Normal>]</Normal><br/> 0075 <Normal> </Normal><Keyword>assert</Keyword><Normal> s </Normal><Operator>setminus</Operator><Normal> s != s</Normal><br/> 0076 <Normal></Normal><br/> 0077 <Operator>}</Operator><br/> 0078 <Normal></Normal><br/> 0079 <Comment>//:: special comment</Comment><br/> 0080 <Comment>/*</Comment><br/> 0081 <Comment> gfdgfd</Comment><br/> 0082 <Comment>*/</Comment><br/> 0083 <Normal></Normal><br/> 0084 <Keyword>method</Keyword><Normal> </Normal><Declaration>testHighlights</Declaration><Normal>() </Normal><Keyword>returns</Keyword><Normal> ( res: </Normal><DataType>Set</DataType><Normal>[</Normal><DataType>Seq</DataType><Normal>[</Normal><DataType>Multiset</DataType><Normal>[Foo[</Normal><DataType>Int</DataType><Normal>]]]] )</Normal><br/> 0085 <Normal> </Normal><Keyword>requires</Keyword><Normal> </Normal><Constant>true</Constant><br/> 0086 <Normal> </Normal><Keyword>ensures</Keyword><Normal> </Normal><Constant>false</Constant><br/> 0087 <Operator>{</Operator><br/> 0088 <Normal> </Normal><Keyword>var</Keyword><Normal> a: </Normal><DataType>Int</DataType><Normal>; </Normal><Keyword>var</Keyword><Normal> b: </Normal><DataType>Bool</DataType><Normal>; </Normal><Keyword>var</Keyword><Normal> c: </Normal><DataType>Ref</DataType><Normal>; </Normal><Keyword>var</Keyword><Normal> d: </Normal><DataType>Rational</DataType><Normal>; </Normal><Keyword>var</Keyword><Normal> e: </Normal><DataType>Perm</DataType><br/> 0089 <Normal> </Normal><Keyword>var</Keyword><Normal> x: </Normal><DataType>Seq</DataType><Normal>[</Normal><DataType>Int</DataType><Normal>]; </Normal><Keyword>var</Keyword><Normal> y: </Normal><DataType>Set</DataType><Normal>[</Normal><DataType>Int</DataType><Normal>]; </Normal><Keyword>var</Keyword><Normal> z: </Normal><DataType>Multiset</DataType><Normal>[</Normal><DataType>Int</DataType><Normal>]</Normal><br/> 0090 <Normal> </Normal><Keyword>var</Keyword><Normal> t1: </Normal><DataType>Set</DataType><Normal>[</Normal><DataType>Int</DataType><Normal>] := </Normal><DataType>Set</DataType><Normal>(a, </Normal><DecVal>1</DecVal><Normal>, </Normal><DecVal>2</DecVal><Normal>)</Normal><br/> 0091 <Normal> </Normal><Keyword>var</Keyword><Normal> t2: </Normal><DataType>Seq</DataType><Normal>[</Normal><DataType>Int</DataType><Normal>] := </Normal><DataType>Seq</DataType><Normal>(a, a, a)</Normal><br/> 0092 <Normal> </Normal><Keyword>var</Keyword><Normal> t3: </Normal><DataType>Multiset</DataType><Normal>[</Normal><DataType>Int</DataType><Normal>] := </Normal><DataType>Multiset</DataType><Normal>(a, a, </Normal><DecVal>0</DecVal><Normal>, </Normal><DecVal>0</DecVal><Normal>, </Normal><DecVal>0</DecVal><Normal>)</Normal><br/> 0093 <Normal></Normal><br/> 0094 <Normal> </Normal><Keyword>assert</Keyword><Normal> myFunc(</Normal><DecVal>331</DecVal><Normal>) > -</Normal><DecVal>2</DecVal><br/> 0095 <Normal></Normal><br/> 0096 <Normal> myStmtMacro( myFunc(</Normal><DecVal>331</DecVal><Normal>) == -</Normal><DecVal>331</DecVal><Normal> )</Normal><br/> 0097 <Normal></Normal><br/> 0098 <Normal> </Normal><ControlFlow>while</ControlFlow><Normal> ( </Normal><Constant>true</Constant><Normal> )</Normal><br/> 0099 <Normal> </Normal><Keyword>invariant</Keyword><Normal> </Normal><Constant>true</Constant><br/> 0100 <Normal> </Normal><Operator>{</Operator><br/> 0101 <Normal> </Normal><Keyword>var</Keyword><Normal> aa: </Normal><DataType>Ref</DataType><br/> 0102 <Normal> aa := </Normal><Constant>null</Constant><br/> 0103 <Normal> </Normal><Keyword>var</Keyword><Normal> bb: </Normal><DataType>Int</DataType><br/> 0104 <Normal> bb := </Normal><DecVal>33</DecVal><br/> 0105 <Normal> </Normal><Operator>}</Operator><br/> 0106 <Normal></Normal><br/> 0107 <Normal> </Normal><ControlFlow>if</ControlFlow><Normal> ( </Normal><Constant>true</Constant><Normal> ) </Normal><Operator>{</Operator><br/> 0108 <Normal> </Normal><Keyword>assert</Keyword><Normal> </Normal><Constant>true</Constant><br/> 0109 <Normal> </Normal><Operator>}</Operator><Normal> </Normal><ControlFlow>elseif</ControlFlow><Normal> ( </Normal><Constant>false</Constant><Normal> ) </Normal><Operator>{</Operator><br/> 0110 <Normal> </Normal><Keyword>assert</Keyword><Normal> </Normal><Constant>false</Constant><br/> 0111 <Normal> </Normal><Operator>}</Operator><Normal> </Normal><ControlFlow>else</ControlFlow><Normal> </Normal><Operator>{</Operator><br/> 0112 <Normal> </Normal><Keyword>assert</Keyword><Normal> </Normal><Constant>true</Constant><br/> 0113 <Normal> </Normal><Operator>}</Operator><br/> 0114 <Normal></Normal><br/> 0115 <Normal> </Normal><Comment>//forperm r: Ref :: true</Comment><br/> 0116 <Normal> </Normal><Comment>//exists</Comment><br/> 0117 <Normal> </Normal><Comment>//forall</Comment><br/> 0118 <Normal> </Normal><Keyword>assert</Keyword><Normal> ! </Normal><Constant>false</Constant><br/> 0119 <Normal> </Normal><Keyword>assert</Keyword><Normal> </Normal><DecVal>0</DecVal><Normal> +</Normal><DecVal>321</DecVal><Normal> - </Normal><DecVal>0</DecVal><Normal> -</Normal><DecVal>321</DecVal><Normal> == </Normal><DecVal>0</DecVal><br/> 0120 <Operator>}</Operator><br/> 0121 <Normal></Normal><br/> 0122 <Keyword>field</Keyword><Normal> </Normal><Declaration>f</Declaration><Normal>:</Normal><DataType>Int</DataType><br/> 0123 <Normal></Normal><br/> 0124 <Keyword>method</Keyword><Normal> </Normal><Declaration>test02</Declaration><Normal>(x: </Normal><DataType>Ref</DataType><Normal>)</Normal><br/> 0125 <Normal> </Normal><Keyword>requires</Keyword><Normal> </Normal><Keyword>acc</Keyword><Normal>(x</Normal><Field>.f</Field><Normal>, </Normal><Keyword>write</Keyword><Normal>)</Normal><br/> 0126 <Normal> </Normal><Keyword>ensures</Keyword><Normal> </Normal><Keyword>acc</Keyword><Normal>(x</Normal><Field>.f</Field><Normal>, </Normal><Keyword>write</Keyword><Normal>)</Normal><br/> 0127 <Operator>{</Operator><br/> 0128 <Normal> </Normal><Keyword>define</Keyword><Normal> </Normal><Declaration>A</Declaration><Normal> </Normal><Constant>true</Constant><br/> 0129 <Normal> </Normal><Keyword>define</Keyword><Normal> </Normal><Declaration>B</Declaration><Normal> </Normal><Keyword>acc</Keyword><Normal>(x</Normal><Field>.f</Field><Normal>, </Normal><Keyword>write</Keyword><Normal>)</Normal><br/> 0130 <Normal></Normal><br/> 0131 <Normal> </Normal><Keyword>package</Keyword><Normal> A --* B</Normal><br/> 0132 <Normal> </Normal><Keyword>wand</Keyword><Normal> w := A --* B</Normal><br/> 0133 <Normal></Normal><br/> 0134 <Normal> </Normal><Comment>//apply w</Comment><br/> 0135 <Normal></Normal><br/> 0136 <Normal> </Normal><ControlFlow>label</ControlFlow><Normal> my_lbl</Normal><br/> 0137 <Normal></Normal><br/> 0138 <Normal> </Normal><ControlFlow>goto</ControlFlow><Normal> my_lbl</Normal><br/> 0139 <Normal></Normal><br/> 0140 <Normal> </Normal><Keyword>fresh</Keyword><Normal> x</Normal><br/> 0141 <Normal></Normal><br/> 0142 <Normal> </Normal><Keyword>var</Keyword><Normal> p: </Normal><DataType>Perm</DataType><br/> 0143 <Normal></Normal><br/> 0144 <Normal> </Normal><Keyword>var</Keyword><Normal> r: </Normal><DataType>Ref</DataType><Normal>; r := new (*)</Normal><br/> 0145 <Normal></Normal><br/> 0146 <Normal> </Normal><Keyword>constraining</Keyword><Normal> ( p ) </Normal><Operator>{</Operator><br/> 0147 <Normal> </Normal><Keyword>exhale</Keyword><Normal> </Normal><Keyword>acc</Keyword><Normal>(x</Normal><Field>.f</Field><Normal>, p)</Normal><br/> 0148 <Normal> </Normal><Operator>}</Operator><br/> 0149 <Normal></Normal><br/> 0150 <Normal> </Normal><Keyword>assert</Keyword><Normal> </Normal><DecVal>0</DecVal><Normal> == ( </Normal><Keyword>let</Keyword><Normal> a == (</Normal><DecVal>11</DecVal><Normal> + </Normal><DecVal>22</DecVal><Normal>) </Normal><Keyword>in</Keyword><Normal> a+a )</Normal><br/> 0151 <Operator>}</Operator><br/>