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__