Repository navigation
Expand file tree
/
Copy pathLeanExe.lean
More file actions
340 lines (340 loc) · 12 KB
/
Copy pathLeanExe.lean
File metadata and controls
340 lines (340 loc) · 12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
import LeanExe.Attr
import LeanExe.Common
import LeanExe.Compiler.Command
import LeanExe.Compiler.Scalar
import LeanExe.Dialect.Build
import LeanExe.Dialect.Float32
import LeanExe.Dialect.InsertErase
import LeanExe.Dialect.Loop
import LeanExe.Dialect.RepeatWhile
import LeanExe.Encoding
import LeanExe.Encoding.Completeness.Basic
import LeanExe.Encoding.Completeness.Instructions
import LeanExe.Encoding.Completeness.Modules
import LeanExe.Encoding.Completeness.Writes
import LeanExe.Encoding.Containers
import LeanExe.Encoding.Correctness
import LeanExe.Encoding.Decode
import LeanExe.Encoding.DecodeCorrect.Basic
import LeanExe.Encoding.DecodeCorrect.Instructions
import LeanExe.Encoding.DecodeCorrect.Modules
import LeanExe.Encoding.DecodeCorrect.Types
import LeanExe.Encoding.Domain
import LeanExe.Encoding.Instructions
import LeanExe.Encoding.Modules
import LeanExe.Encoding.RoundTrip
import LeanExe.Encoding.Spec.Instructions
import LeanExe.Encoding.Spec.Modules
import LeanExe.Encoding.Spec.Types
import LeanExe.Encoding.Spec.Validity
import LeanExe.Encoding.Spec.Values
import LeanExe.Encoding.Types
import LeanExe.Encoding.Values
import LeanExe.IR.Append
import LeanExe.IR.ArrayLiteral
import LeanExe.IR.ArrayLoop
import LeanExe.IR.Build
import LeanExe.IR.BuildRecord
import LeanExe.IR.Call
import LeanExe.IR.Combinators
import LeanExe.IR.Copy
import LeanExe.IR.Correct
import LeanExe.IR.Denote
import LeanExe.IR.DenoteStmt
import LeanExe.IR.Expr
import LeanExe.IR.Fold
import LeanExe.IR.Function
import LeanExe.IR.Hint
import LeanExe.IR.ListFold
import LeanExe.IR.Live
import LeanExe.IR.Loop
import LeanExe.IR.Read
import LeanExe.IR.Record
import LeanExe.IR.RecordRead
import LeanExe.IR.Recursion
import LeanExe.IR.Release
import LeanExe.IR.RepeatWhile
import LeanExe.IR.Run
import LeanExe.IR.Stmt
import LeanExe.IR.TailLoop
import LeanExe.IR.Words
import LeanExe.Pipeline.Allocation
import LeanExe.Pipeline.Budget
import LeanExe.Pipeline.FileBytes
import LeanExe.Pipeline.FlatRecords
import LeanExe.Pipeline.Implements
import LeanExe.Pipeline.Records
import LeanExe.Pipeline.RecordSlots
import LeanExe.Pipeline.ReleaseTree
import LeanExe.Pipeline.Runtime
import LeanExe.Pipeline.RuntimeSpec
import LeanExe.Pipeline.Slotted
import LeanExe.ProofKit.Allocation
import LeanExe.ProofKit.Array
import LeanExe.ProofKit.ArrayPrefix
import LeanExe.ProofKit.AsinRemainder
import LeanExe.ProofKit.Bessel
import LeanExe.ProofKit.BesselAsym
import LeanExe.ProofKit.BesselChain
import LeanExe.ProofKit.BesselConstants
import LeanExe.ProofKit.BesselEnergy
import LeanExe.ProofKit.BesselFd0a
import LeanExe.ProofKit.BesselFd0b
import LeanExe.ProofKit.BesselFd1a
import LeanExe.ProofKit.BesselFd1b
import LeanExe.ProofKit.BesselLarge0
import LeanExe.ProofKit.BesselLarge1
import LeanExe.ProofKit.BesselModulus
import LeanExe.ProofKit.BesselPQ
import LeanExe.ProofKit.BesselRatio
import LeanExe.ProofKit.BesselSeg0
import LeanExe.ProofKit.BesselSeg1
import LeanExe.ProofKit.BesselStart
import LeanExe.ProofKit.BorrowedKept
import LeanExe.ProofKit.CallRemainder
import LeanExe.ProofKit.EntireSeries
import LeanExe.ProofKit.EulerGamma
import LeanExe.ProofKit.ExpTinyError
import LeanExe.ProofKit.F32Add
import LeanExe.ProofKit.F32AddFinite
import LeanExe.ProofKit.F32Bits
import LeanExe.ProofKit.F32Compare
import LeanExe.ProofKit.F32Convert
import LeanExe.ProofKit.F32Decoded
import LeanExe.ProofKit.F32Div
import LeanExe.ProofKit.F32DivCore
import LeanExe.ProofKit.F32Encoding
import LeanExe.ProofKit.F32Mul
import LeanExe.ProofKit.F32MulFinite
import LeanExe.ProofKit.F32Nearest
import LeanExe.ProofKit.F32Normalize
import LeanExe.ProofKit.F32Packing
import LeanExe.ProofKit.F32RationalNormalize
import LeanExe.ProofKit.F32RationalScale
import LeanExe.ProofKit.F32RoundDyadic
import LeanExe.ProofKit.F32RoundFinish
import LeanExe.ProofKit.F32RoundRational
import LeanExe.ProofKit.F32RoundScaled
import LeanExe.ProofKit.F32Sign
import LeanExe.ProofKit.F32Source
import LeanExe.ProofKit.F32Sqrt
import LeanExe.ProofKit.F32SqrtCore
import LeanExe.ProofKit.F32SqrtFinite
import LeanExe.ProofKit.F32Sub
import LeanExe.ProofKit.F32TruncSat
import LeanExe.ProofKit.F64Absolute
import LeanExe.ProofKit.F64Add
import LeanExe.ProofKit.F64AddBounds
import LeanExe.ProofKit.F64AddEnclosure
import LeanExe.ProofKit.F64AddFinite
import LeanExe.ProofKit.F64AddNearest
import LeanExe.ProofKit.F64Adjacent
import LeanExe.ProofKit.F64AdjacentSigned
import LeanExe.ProofKit.F64Admissibility
import LeanExe.ProofKit.F64AffineUpdate
import LeanExe.ProofKit.F64Approx
import LeanExe.ProofKit.F64ApproxStages
import LeanExe.ProofKit.F64ArithmeticBounds
import LeanExe.ProofKit.F64BinadeWord
import LeanExe.ProofKit.F64Bits
import LeanExe.ProofKit.F64Bounds
import LeanExe.ProofKit.F64Compare
import LeanExe.ProofKit.F64Compose
import LeanExe.ProofKit.F64ConservativeReference
import LeanExe.ProofKit.F64ConservativeUpdate
import LeanExe.ProofKit.F64Convert
import LeanExe.ProofKit.F64Decoded
import LeanExe.ProofKit.F64Div
import LeanExe.ProofKit.F64DivApprox
import LeanExe.ProofKit.F64DivBounds
import LeanExe.ProofKit.F64DivCore
import LeanExe.ProofKit.F64DivEnclosure
import LeanExe.ProofKit.F64DyadicBounds
import LeanExe.ProofKit.F64Enclosure
import LeanExe.ProofKit.F64Encoding
import LeanExe.ProofKit.F64ErrorPropagation
import LeanExe.ProofKit.F64ErrorTrack
import LeanExe.ProofKit.F64Exact
import LeanExe.ProofKit.F64ExactProduct
import LeanExe.ProofKit.F64ExponentBounds
import LeanExe.ProofKit.F64FullStep
import LeanExe.ProofKit.F64Grid
import LeanExe.ProofKit.F64GridExact
import LeanExe.ProofKit.F64HalfUlp
import LeanExe.ProofKit.F64Halving
import LeanExe.ProofKit.F64HighWord
import LeanExe.ProofKit.F64Horner
import LeanExe.ProofKit.F64InternalEnergy
import LeanExe.ProofKit.F64Magnitude
import LeanExe.ProofKit.F64MagnitudeEnclosure
import LeanExe.ProofKit.F64MagnitudeGaps
import LeanExe.ProofKit.F64Mul
import LeanExe.ProofKit.F64MulBounds
import LeanExe.ProofKit.F64MulEnclosure
import LeanExe.ProofKit.F64MulFinite
import LeanExe.ProofKit.F64Near
import LeanExe.ProofKit.F64NearReal
import LeanExe.ProofKit.F64NearestBand
import LeanExe.ProofKit.F64NearestBinade
import LeanExe.ProofKit.F64NearestDiv
import LeanExe.ProofKit.F64NearestEven
import LeanExe.ProofKit.F64NearestHalf
import LeanExe.ProofKit.F64NearestHalve
import LeanExe.ProofKit.F64NearestNonnegative
import LeanExe.ProofKit.F64NearestRelative
import LeanExe.ProofKit.F64NearestScale
import LeanExe.ProofKit.F64NearestStep
import LeanExe.ProofKit.F64NearestSteps
import LeanExe.ProofKit.F64NearestSum
import LeanExe.ProofKit.F64NegateOps
import LeanExe.ProofKit.F64Normalize
import LeanExe.ProofKit.F64NormalizeModel
import LeanExe.ProofKit.F64NormalizeTiny
import LeanExe.ProofKit.F64NormalizedMagnitude
import LeanExe.ProofKit.F64Order
import LeanExe.ProofKit.F64OrderComplete
import LeanExe.ProofKit.F64Outward
import LeanExe.ProofKit.F64OutwardAccepted
import LeanExe.ProofKit.F64OutwardSpec
import LeanExe.ProofKit.F64PackRelative
import LeanExe.ProofKit.F64Packing
import LeanExe.ProofKit.F64PackingFinite
import LeanExe.ProofKit.F64PackingModel
import LeanExe.ProofKit.F64PositiveArithmetic
import LeanExe.ProofKit.F64PositiveOrder
import LeanExe.ProofKit.F64PositiveRounding
import LeanExe.ProofKit.F64PositiveSpacing
import LeanExe.ProofKit.F64PowerScale
import LeanExe.ProofKit.F64QuotientResidual
import LeanExe.ProofKit.F64RationalBounds
import LeanExe.ProofKit.F64RationalNormalize
import LeanExe.ProofKit.F64RationalScale
import LeanExe.ProofKit.F64RelError
import LeanExe.ProofKit.F64RelativeStep
import LeanExe.ProofKit.F64RelativeStepLow
import LeanExe.ProofKit.F64RelativeStepWide
import LeanExe.ProofKit.F64RelativeSteps
import LeanExe.ProofKit.F64RoundDouble
import LeanExe.ProofKit.F64RoundDyadic
import LeanExe.ProofKit.F64RoundFinish
import LeanExe.ProofKit.F64RoundNearest
import LeanExe.ProofKit.F64RoundRational
import LeanExe.ProofKit.F64RoundScaled
import LeanExe.ProofKit.F64RoundedStep
import LeanExe.ProofKit.F64RounderEnclosure
import LeanExe.ProofKit.F64RoundingResidual
import LeanExe.ProofKit.F64RoundingScale
import LeanExe.ProofKit.F64RusanovResidual
import LeanExe.ProofKit.F64Saturate
import LeanExe.ProofKit.F64SelfStep
import LeanExe.ProofKit.F64Sign
import LeanExe.ProofKit.F64SignedNearestSum
import LeanExe.ProofKit.F64SignedRounding
import LeanExe.ProofKit.F64Source
import LeanExe.ProofKit.F64Sqrt
import LeanExe.ProofKit.F64SqrtBounds
import LeanExe.ProofKit.F64SqrtComposition
import LeanExe.ProofKit.F64SqrtCore
import LeanExe.ProofKit.F64SqrtEnclosure
import LeanExe.ProofKit.F64SqrtFinite
import LeanExe.ProofKit.F64SqrtHalf
import LeanExe.ProofKit.F64SqrtRounding
import LeanExe.ProofKit.F64StageBounds
import LeanExe.ProofKit.F64Sterbenz
import LeanExe.ProofKit.F64StrictOrder
import LeanExe.ProofKit.F64Sub
import LeanExe.ProofKit.F64SymmetricFaces
import LeanExe.ProofKit.F64TopMul
import LeanExe.ProofKit.F64TopPack
import LeanExe.ProofKit.F64TopTwoSum
import LeanExe.ProofKit.F64TwoSteps
import LeanExe.ProofKit.F64TwoSum
import LeanExe.ProofKit.F64UnitStep
import LeanExe.ProofKit.F64UpperWord
import LeanExe.ProofKit.F64ValueExact
import LeanExe.ProofKit.F64WithinSelf
import LeanExe.ProofKit.F64WithinZero
import LeanExe.ProofKit.FixedArrayAllocate
import LeanExe.ProofKit.FixedArrayAllocateNone
import LeanExe.ProofKit.FixedArrayAllocator
import LeanExe.ProofKit.FixedArrayAllocatorBase
import LeanExe.ProofKit.FixedArrayBump
import LeanExe.ProofKit.FixedArrayBumpInstall
import LeanExe.ProofKit.FixedArrayBumpPrefix
import LeanExe.ProofKit.FixedArrayFold
import LeanExe.ProofKit.FixedArrayHeader
import LeanExe.ProofKit.FixedArrayHeaderExec
import LeanExe.ProofKit.FixedArrayResult
import LeanExe.ProofKit.FixedArrayReuse
import LeanExe.ProofKit.FixedArraySearchFit
import LeanExe.ProofKit.FixedArraySearchFrame
import LeanExe.ProofKit.FixedArraySearchNone
import LeanExe.ProofKit.FixedArraySearchRead
import LeanExe.ProofKit.Float64
import LeanExe.ProofKit.FloatCommon
import LeanExe.ProofKit.FloatRationalRounding
import LeanExe.ProofKit.FloatRounding
import LeanExe.ProofKit.FloatShift
import LeanExe.ProofKit.FloatSqrtRounding
import LeanExe.ProofKit.Frame
import LeanExe.ProofKit.FreeListMemory
import LeanExe.ProofKit.GammaBasic
import LeanExe.ProofKit.GammaBelowT0
import LeanExe.ProofKit.GammaConvex
import LeanExe.ProofKit.GammaDD
import LeanExe.ProofKit.GammaDDCover
import LeanExe.ProofKit.GammaFits
import LeanExe.ProofKit.GammaFitsX
import LeanExe.ProofKit.GammaModels
import LeanExe.ProofKit.GammaReflect
import LeanExe.ProofKit.GammaRel
import LeanExe.ProofKit.GammaRoot
import LeanExe.ProofKit.GammaScaled
import LeanExe.ProofKit.GammaStirling
import LeanExe.ProofKit.GammaSubnormal
import LeanExe.ProofKit.GammaSubnormalA
import LeanExe.ProofKit.GammaSubnormalB
import LeanExe.ProofKit.GammaSubnormalBase
import LeanExe.ProofKit.GammaSubnormalC
import LeanExe.ProofKit.GammaThresholds
import LeanExe.ProofKit.LogRatioRemainder
import LeanExe.ProofKit.Memory
import LeanExe.ProofKit.MemoryEnsure
import LeanExe.ProofKit.MemoryFrame
import LeanExe.ProofKit.MemoryGrowth
import LeanExe.ProofKit.PolyBound
import LeanExe.ProofKit.PolyCalc
import LeanExe.ProofKit.PolyCalculus
import LeanExe.ProofKit.PolyChecks
import LeanExe.ProofKit.QuantizedInt32
import LeanExe.ProofKit.RatExpLog
import LeanExe.ProofKit.RealAffineError
import LeanExe.ProofKit.RealErf
import LeanExe.ProofKit.RealErfScaled
import LeanExe.ProofKit.RealExpError
import LeanExe.ProofKit.RealFiniteVolumeBalance
import LeanExe.ProofKit.RealHalfSumError
import LeanExe.ProofKit.RealProductError
import LeanExe.ProofKit.RealRoundedError
import LeanExe.ProofKit.RealRusanovError
import LeanExe.ProofKit.RealSqrtError
import LeanExe.ProofKit.Signed32
import LeanExe.ProofKit.TaylorCheck
import LeanExe.ProofKit.TaylorModel
import LeanExe.ProofKit.TaylorRemainder
import LeanExe.Runtime.Defs
import LeanExe.Runtime.FreeList
import LeanExe.Runtime.Tree
import LeanExe.TalosCompat
import LeanExe.TalosPrelude
import LeanExe.WGSL.Build
import LeanExe.WGSL.Kernel
import LeanExe.WGSL.Pair
import LeanExe.WGSL.Parse
import LeanExe.WGSL.Print
import LeanExe.WGSL.RoundTrip
import LeanExe.WGSL.Semantics
import LeanExe.WGSL.Syntax
import LeanExe.WGSL.Translate
import LeanExe.WGSL.TranslateStmt
import LeanExe.Wasi