github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library@v0.2.0/StandardLibrary/StandardLibrary.go (about) 1 // Package StandardLibrary 2 // Dafny module StandardLibrary compiled into Go 3 4 package StandardLibrary 5 6 import ( 7 os "os" 8 9 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 10 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 11 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 12 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 13 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 14 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 15 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 16 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 17 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 18 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 19 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 20 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 21 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 22 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 23 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 24 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 25 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 26 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 27 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 28 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 29 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 30 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 31 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 32 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 33 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 34 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 35 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 36 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 37 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 38 ) 39 40 var _ = os.Args 41 var _ _dafny.Dummy__ 42 var _ m__System.Dummy__ 43 var _ m_Wrappers.Dummy__ 44 var _ m_Relations.Dummy__ 45 var _ m_Seq_MergeSort.Dummy__ 46 var _ m__Math.Dummy__ 47 var _ m_Seq.Dummy__ 48 var _ m_BoundedInts.Dummy__ 49 var _ m__Unicode.Dummy__ 50 var _ m_Functions.Dummy__ 51 var _ m_Utf8EncodingForm.Dummy__ 52 var _ m_Utf16EncodingForm.Dummy__ 53 var _ m_UnicodeStrings.Dummy__ 54 var _ m_FileIO.Dummy__ 55 var _ m_GeneralInternals.Dummy__ 56 var _ m_MulInternalsNonlinear.Dummy__ 57 var _ m_MulInternals.Dummy__ 58 var _ m_Mul.Dummy__ 59 var _ m_ModInternalsNonlinear.Dummy__ 60 var _ m_DivInternalsNonlinear.Dummy__ 61 var _ m_ModInternals.Dummy__ 62 var _ m_DivInternals.Dummy__ 63 var _ m_DivMod.Dummy__ 64 var _ m_Power.Dummy__ 65 var _ m_Logarithm.Dummy__ 66 var _ m_StandardLibraryInterop.Dummy__ 67 var _ m_StandardLibrary_UInt.Dummy__ 68 var _ m_StandardLibrary_Sequence.Dummy__ 69 var _ m_StandardLibrary_String.Dummy__ 70 71 type Dummy__ struct{} 72 73 // Definition of class Default__ 74 type Default__ struct { 75 dummy byte 76 } 77 78 func New_Default___() *Default__ { 79 _this := Default__{} 80 81 return &_this 82 } 83 84 type CompanionStruct_Default___ struct { 85 } 86 87 var Companion_Default___ = CompanionStruct_Default___{} 88 89 func (_this *Default__) Equals(other *Default__) bool { 90 return _this == other 91 } 92 93 func (_this *Default__) EqualsGeneric(x interface{}) bool { 94 other, ok := x.(*Default__) 95 return ok && _this.Equals(other) 96 } 97 98 func (*Default__) String() string { 99 return "StandardLibrary.Default__" 100 } 101 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 102 return [](*_dafny.TraitID){} 103 } 104 105 var _ _dafny.TraitOffspring = &Default__{} 106 107 func (_static *CompanionStruct_Default___) Join(ss _dafny.Sequence, joiner _dafny.Sequence) _dafny.Sequence { 108 var _0___accumulator _dafny.Sequence = _dafny.SeqOf() 109 _ = _0___accumulator 110 goto TAIL_CALL_START 111 TAIL_CALL_START: 112 if (_dafny.IntOfUint32((ss).Cardinality())).Cmp(_dafny.One) == 0 { 113 return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, (ss).Select(0).(_dafny.Sequence)) 114 } else { 115 _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.Companion_Sequence_.Concatenate((ss).Select(0).(_dafny.Sequence), joiner)) 116 var _in0 _dafny.Sequence = (ss).Drop(1) 117 _ = _in0 118 var _in1 _dafny.Sequence = joiner 119 _ = _in1 120 ss = _in0 121 joiner = _in1 122 goto TAIL_CALL_START 123 } 124 } 125 func (_static *CompanionStruct_Default___) Split(s _dafny.Sequence, delim interface{}) _dafny.Sequence { 126 var _0___accumulator _dafny.Sequence = _dafny.SeqOf() 127 _ = _0___accumulator 128 goto TAIL_CALL_START 129 TAIL_CALL_START: 130 var _1_i m_Wrappers.Option = Companion_Default___.FindIndexMatching(s, delim, _dafny.Zero) 131 _ = _1_i 132 if (_1_i).Is_Some() { 133 _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((s).Take(((_1_i).Dtor_value().(_dafny.Int)).Uint32()))) 134 var _in0 _dafny.Sequence = (s).Drop((((_1_i).Dtor_value().(_dafny.Int)).Plus(_dafny.One)).Uint32()) 135 _ = _in0 136 var _in1 interface{} = delim 137 _ = _in1 138 s = _in0 139 delim = _in1 140 goto TAIL_CALL_START 141 } else { 142 return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf(s)) 143 } 144 } 145 func (_static *CompanionStruct_Default___) SplitOnce(s _dafny.Sequence, delim interface{}) _dafny.Tuple { 146 var _0_i m_Wrappers.Option = Companion_Default___.FindIndexMatching(s, delim, _dafny.Zero) 147 _ = _0_i 148 return _dafny.TupleOf((s).Take(((_0_i).Dtor_value().(_dafny.Int)).Uint32()), (s).Drop((((_0_i).Dtor_value().(_dafny.Int)).Plus(_dafny.One)).Uint32())) 149 } 150 func (_static *CompanionStruct_Default___) SplitOnce_q(s _dafny.Sequence, delim interface{}) m_Wrappers.Option { 151 var _0_valueOrError0 m_Wrappers.Option = Companion_Default___.FindIndexMatching(s, delim, _dafny.Zero) 152 _ = _0_valueOrError0 153 if (_0_valueOrError0).IsFailure() { 154 return (_0_valueOrError0).PropagateFailure() 155 } else { 156 var _1_i _dafny.Int = (_0_valueOrError0).Extract().(_dafny.Int) 157 _ = _1_i 158 return m_Wrappers.Companion_Option_.Create_Some_(_dafny.TupleOf((s).Take((_1_i).Uint32()), (s).Drop(((_1_i).Plus(_dafny.One)).Uint32()))) 159 } 160 } 161 func (_static *CompanionStruct_Default___) FindIndexMatching(s _dafny.Sequence, c interface{}, i _dafny.Int) m_Wrappers.Option { 162 return Companion_Default___.FindIndex(s, func(coer17 func(interface{}) bool) func(interface{}) bool { 163 return func(arg18 interface{}) bool { 164 return coer17(arg18) 165 } 166 }((func(_0_c interface{}) func(interface{}) bool { 167 return func(_1_x interface{}) bool { 168 return _dafny.AreEqual(_1_x, _0_c) 169 } 170 })(c)), i) 171 } 172 func (_static *CompanionStruct_Default___) FindIndex(s _dafny.Sequence, f func(interface{}) bool, i _dafny.Int) m_Wrappers.Option { 173 goto TAIL_CALL_START 174 TAIL_CALL_START: 175 if (i).Cmp(_dafny.IntOfUint32((s).Cardinality())) == 0 { 176 return m_Wrappers.Companion_Option_.Create_None_() 177 } else if (f)((s).Select((i).Uint32()).(interface{})) { 178 return m_Wrappers.Companion_Option_.Create_Some_(i) 179 } else { 180 var _in0 _dafny.Sequence = s 181 _ = _in0 182 var _in1 func(interface{}) bool = f 183 _ = _in1 184 var _in2 _dafny.Int = (i).Plus(_dafny.One) 185 _ = _in2 186 s = _in0 187 f = _in1 188 i = _in2 189 goto TAIL_CALL_START 190 } 191 } 192 func (_static *CompanionStruct_Default___) Filter(s _dafny.Sequence, f func(interface{}) bool) _dafny.Sequence { 193 var _0___accumulator _dafny.Sequence = _dafny.SeqOf() 194 _ = _0___accumulator 195 goto TAIL_CALL_START 196 TAIL_CALL_START: 197 if (_dafny.IntOfUint32((s).Cardinality())).Sign() == 0 { 198 return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) 199 } else if (f)((s).Select(0).(interface{})) { 200 _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf((s).Select(0).(interface{}))) 201 var _in0 _dafny.Sequence = (s).Drop(1) 202 _ = _in0 203 var _in1 func(interface{}) bool = f 204 _ = _in1 205 s = _in0 206 f = _in1 207 goto TAIL_CALL_START 208 } else { 209 var _in2 _dafny.Sequence = (s).Drop(1) 210 _ = _in2 211 var _in3 func(interface{}) bool = f 212 _ = _in3 213 s = _in2 214 f = _in3 215 goto TAIL_CALL_START 216 } 217 } 218 func (_static *CompanionStruct_Default___) Min(a _dafny.Int, b _dafny.Int) _dafny.Int { 219 if (a).Cmp(b) < 0 { 220 return a 221 } else { 222 return b 223 } 224 } 225 func (_static *CompanionStruct_Default___) Fill(value interface{}, n _dafny.Int) _dafny.Sequence { 226 return _dafny.SeqCreate((n).Uint32(), func(coer18 func(_dafny.Int) interface{}) func(_dafny.Int) interface{} { 227 return func(arg19 _dafny.Int) interface{} { 228 return coer18(arg19) 229 } 230 }((func(_0_value interface{}) func(_dafny.Int) interface{} { 231 return func(_1___v0 _dafny.Int) interface{} { 232 return _0_value 233 } 234 })(value))) 235 } 236 func (_static *CompanionStruct_Default___) SeqToArray(s _dafny.Sequence) _dafny.Array { 237 var a _dafny.Array = _dafny.NewArrayWithValue(nil, _dafny.IntOf(0)) 238 _ = a 239 var _len0_0 _dafny.Int = _dafny.IntOfUint32((s).Cardinality()) 240 _ = _len0_0 241 var _nw0 _dafny.Array 242 _ = _nw0 243 if _len0_0.Cmp(_dafny.Zero) == 0 { 244 _nw0 = _dafny.NewArray(_len0_0) 245 } else { 246 var _init0 func(_dafny.Int) interface{} = (func(_0_s _dafny.Sequence) func(_dafny.Int) interface{} { 247 return func(_1_i _dafny.Int) interface{} { 248 return (_0_s).Select((_1_i).Uint32()).(interface{}) 249 } 250 })(s) 251 _ = _init0 252 var _element0_0 = _init0(_dafny.Zero) 253 _ = _element0_0 254 _nw0 = _dafny.NewArrayFromExample(_element0_0, nil, _len0_0) 255 (_nw0).ArraySet1(_element0_0, 0) 256 var _nativeLen0_0 = (_len0_0).Int() 257 _ = _nativeLen0_0 258 for _i0_0 := 1; _i0_0 < _nativeLen0_0; _i0_0++ { 259 (_nw0).ArraySet1(_init0(_dafny.IntOf(_i0_0)), _i0_0) 260 } 261 } 262 a = _nw0 263 return a 264 } 265 func (_static *CompanionStruct_Default___) LexicographicLessOrEqual(a _dafny.Sequence, b _dafny.Sequence, less func(interface{}, interface{}) bool) bool { 266 return _dafny.Quantifier(_dafny.IntegerRange(_dafny.Zero, (_dafny.IntOfUint32((a).Cardinality())).Plus(_dafny.One)), false, func(_exists_var_0 _dafny.Int) bool { 267 var _0_k _dafny.Int 268 _0_k = interface{}(_exists_var_0).(_dafny.Int) 269 return (((_0_k).Sign() != -1) && ((_0_k).Cmp(_dafny.IntOfUint32((a).Cardinality())) <= 0)) && (Companion_Default___.LexicographicLessOrEqualAux(a, b, func(coer19 func(interface{}, interface{}) bool) func(interface{}, interface{}) bool { 270 return func(arg20 interface{}, arg21 interface{}) bool { 271 return coer19(arg20, arg21) 272 } 273 }(less), _0_k)) 274 }) 275 } 276 func (_static *CompanionStruct_Default___) LexicographicLessOrEqualAux(a _dafny.Sequence, b _dafny.Sequence, less func(interface{}, interface{}) bool, lengthOfCommonPrefix _dafny.Int) bool { 277 return (((lengthOfCommonPrefix).Cmp(_dafny.IntOfUint32((b).Cardinality())) <= 0) && (_dafny.Quantifier(_dafny.IntegerRange(_dafny.Zero, lengthOfCommonPrefix), true, func(_forall_var_0 _dafny.Int) bool { 278 var _0_i _dafny.Int 279 _0_i = interface{}(_forall_var_0).(_dafny.Int) 280 return !(((_0_i).Sign() != -1) && ((_0_i).Cmp(lengthOfCommonPrefix) < 0)) || (_dafny.AreEqual((a).Select((_0_i).Uint32()).(interface{}), (b).Select((_0_i).Uint32()).(interface{}))) 281 }))) && (((lengthOfCommonPrefix).Cmp(_dafny.IntOfUint32((a).Cardinality())) == 0) || (((lengthOfCommonPrefix).Cmp(_dafny.IntOfUint32((b).Cardinality())) < 0) && ((less)((a).Select((lengthOfCommonPrefix).Uint32()).(interface{}), (b).Select((lengthOfCommonPrefix).Uint32()).(interface{}))))) 282 } 283 func (_static *CompanionStruct_Default___) SetToOrderedSequence(s _dafny.Set, less func(interface{}, interface{}) bool) _dafny.Sequence { 284 var _0___accumulator _dafny.Sequence = _dafny.SeqOf() 285 _ = _0___accumulator 286 goto TAIL_CALL_START 287 TAIL_CALL_START: 288 var _pat_let_tv0 = s 289 _ = _pat_let_tv0 290 var _pat_let_tv1 = less 291 _ = _pat_let_tv1 292 if (s).Equals(_dafny.SetOf()) { 293 return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf()) 294 } else { 295 return func(_let_dummy_0 int) _dafny.Sequence { 296 var _1_a _dafny.Sequence = _dafny.EmptySeq 297 _ = _1_a 298 { 299 for _iter1 := _dafny.Iterate((s).Elements()); ; { 300 _assign_such_that_0, _ok1 := _iter1() 301 if !_ok1 { 302 break 303 } 304 _1_a = interface{}(_assign_such_that_0).(_dafny.Sequence) 305 if ((s).Contains(_1_a)) && (Companion_Default___.IsMinimum(_1_a, s, func(coer20 func(interface{}, interface{}) bool) func(interface{}, interface{}) bool { 306 return func(arg22 interface{}, arg23 interface{}) bool { 307 return coer20(arg22, arg23) 308 } 309 }(less))) { 310 goto L_ASSIGN_SUCH_THAT_0 311 } 312 } 313 panic("assign-such-that search produced no value") 314 goto L_ASSIGN_SUCH_THAT_0 315 } 316 L_ASSIGN_SUCH_THAT_0: 317 return _dafny.Companion_Sequence_.Concatenate(_dafny.SeqOf(_1_a), Companion_Default___.SetToOrderedSequence((_pat_let_tv0).Difference(_dafny.SetOf(_1_a)), _pat_let_tv1)) 318 }(0) 319 } 320 } 321 func (_static *CompanionStruct_Default___) IsMinimum(a _dafny.Sequence, s _dafny.Set, less func(interface{}, interface{}) bool) bool { 322 return ((s).Contains(a)) && (_dafny.Quantifier((s).Elements(), true, func(_forall_var_0 _dafny.Sequence) bool { 323 var _0_z _dafny.Sequence 324 _0_z = interface{}(_forall_var_0).(_dafny.Sequence) 325 return !((s).Contains(_0_z)) || (Companion_Default___.LexicographicLessOrEqual(a, _0_z, func(coer21 func(interface{}, interface{}) bool) func(interface{}, interface{}) bool { 326 return func(arg24 interface{}, arg25 interface{}) bool { 327 return coer21(arg24, arg25) 328 } 329 }(less))) 330 })) 331 } 332 333 // End of class Default__