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