-
Notifications
You must be signed in to change notification settings - Fork 69
Expand file tree
/
Copy pathManual.lean
More file actions
1205 lines (1092 loc) · 23.3 KB
/
Copy pathManual.lean
File metadata and controls
1205 lines (1092 loc) · 23.3 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
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/-
Copyright (c) 2024 Lean FRO LLC. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Author: David Thrane Christiansen
-/
import VersoManual
import Manual.Intro
import Manual.Elaboration
import Manual.Types
import Manual.SourceFiles
import Manual.Attributes
import Manual.Defs
import Manual.Classes
import Manual.Axioms
import Manual.Terms
import Manual.ErrorExplanations
import Manual.Tactics
import Manual.Simp
import Manual.Grind
import Manual.BasicTypes
import Manual.Iterators
import Manual.BasicProps
import Manual.NotationsMacros
import Manual.IO
import Manual.Interaction
import Manual.Monads
import Manual.BuildTools
import Manual.Releases
import Manual.Namespaces
import Manual.Runtime
import Manual.SupportedPlatforms
import Manual.VCGen
open Verso.Genre Manual
open Verso.Genre.Manual.InlineLean
set_option pp.rawOnError true
set_option maxRecDepth 1024
#doc (Manual) "The Lean Language Reference" =>
%%%
tag := "lean-language-reference"
shortContextTitle := "Lean Reference"
%%%
This is the _Lean Language Reference_.
It is intended to be a comprehensive, precise description of Lean: a reference work in which Lean users can look up detailed information, rather than a tutorial intended for new users.
For other documentation, please refer to the [Lean documentation overview](https://lean-lang.org/documentation/).
This manual covers Lean version {versionString}[].
Lean is an *interactive theorem prover* based on dependent type theory, designed for use both in cutting-edge mathematics and in software verification.
Lean's core type theory is expressive enough to capture very complicated mathematical objects, but simple enough to admit independent implementations, reducing the risk of bugs that affect soundness.
The core type theory is implemented in a minimal {tech}[kernel] that does nothing other than check proof terms.
This core theory and kernel are supported by advanced automation, realized in {ref "tactics"}[an expressive tactic language].
Each tactic produces a term in the core type theory that is checked by the kernel, so bugs in tactics do not threaten the soundness of Lean as a whole.
Along with many other parts of Lean, the tactic language is user-extensible, so it can be built up to meet the needs of a given formalization project.
Tactics are written in Lean itself, and can be used immediately upon definition; rebuilding the prover or loading external modules is not required.
Lean is also a pure *functional programming language*, with features such as a run-time system based on reference counting that can efficiently work with packed array structures, multi-threading, and monadic {name}`IO`.
As befits a programming language, Lean is primarily implemented in itself, including the language server, build tool, {tech (key := "Lean elaborator") -normalize}[elaborator], and tactic system.
This very book is written in [Verso](https://github.com/leanprover/verso), a documentation authoring tool written in Lean.
Familiarity with Lean's programming features is valuable even for users whose primary interest is in writing proofs, because Lean programs are used to implement new tactics and proof automation.
Thus, this reference manual does not draw a barrier between the two aspects, but rather describes them together so they can shed light on one another.
{include 0 Manual.Intro}
{include 0 Manual.Elaboration}
{include 0 Manual.Interaction}
{include 0 Manual.Types}
{include 0 Manual.SourceFiles}
{include 0 Manual.Namespaces}
{include 0 Manual.Defs}
{include 0 Manual.Axioms}
{include 0 Manual.Attributes}
{include 0 Manual.Classes}
{include 0 Manual.Coercions}
{include 0 Manual.Runtime}
{include 0 Manual.Terms}
{include 0 Manual.Tactics}
{include 0 Manual.Simp}
{include 0 Manual.Grind}
{include 0 Manual.VCGen}
{include 0 Manual.Monads}
{include 0 Manual.BasicProps}
{include 0 Manual.BasicTypes}
{include 0 Manual.IO}
# Dynamic Typing
%%%
draft := true
%%%
{docstring TypeName}
{docstring Dynamic}
{docstring Dynamic.mk +allowMissing}
{docstring Dynamic.get?}
{include 0 Manual.Iterators}
# Standard Library
%%%
tag := "standard-library"
draft := true
%%%
:::planned 109
Overview of the standard library, including types from the prelude and those that require imports.
:::
{include 0 Manual.NotationsMacros}
{include 0 Manual.BuildTools}
{include 0 Manual.ValidatingProofs}
{include 0 Manual.ErrorExplanations}
{include 0 Manual.Releases}
{include 0 Manual.SupportedPlatforms}
# Index
%%%
number := false
file := some "the-index"
%%%
{theIndex}
# Progress
%%%
number := false
draft := true
file := some "the-index"
%%%
::::::draft
:::progress
```namespace
ByteArray
ByteArray.Iterator
ByteSlice
List
Int
IntCast
Empty
PEmpty
Function
Ord
Ordering
Functor
Applicative
Monad
Pure
Bind
Seq
SeqLeft
SeqRight
MonadState
MonadStateOf
StateT
StateM
MonadReader
MonadReaderOf
ReaderT
ReaderM
MonadExcept
MonadExceptOf
ExceptT
Except
MonadFunctor
MonadFunctorT
MonadControl
MonadControlT
MonadLift
MonadLiftT
OptionT
StateRefT'
StateCpsT
ExceptCpsT
LawfulFunctor
LawfulApplicative
LawfulMonad
LawfulBEq
ReflBEq
EquivBEq
LawfulHashable
Id
Thunk
ForM
ForIn
ForInStep
ForIn'
EStateM
EStateM.Result
EStateM.Backtrackable
String
Substring
String.Slice
String.Slice.Pos
String.Pattern
String.Pos.Raw
String.Pos
String.ValidPos
String.Iterator
Char
Nat
Lean.Elab.Tactic
Array
Subarray
IO
IO.FS
System
System.FilePath
IO.Process
IO.FS.Stream
ST
IO.Error
IO.FS.Stream.Buffer
IO.FS.Handle
IO.Process.SpawnArgs
IO.Process.Output
IO.Process.Child
IO.Process.StdioConfig
IO.Process.Stdio
IO.Ref
ST.Ref
IO.FS.Metadata
IO.FS.DirEntry
EIO
BaseIO
IO.FileRight
IO.AccessRight
IO.FS.Stream
Task
Task.Priority
IO.Promise
Std.Mutex
Std.Channel
Std.Channel.Sync
Std.CloseableChannel
Std.Condvar
Std.Format
Unit
PUnit
Bool
Decidable
System.Platform
PLift
ULift
Subtype
Option
List
List.IsSuffix
List.IsPrefix
List.IsInfix
List.Perm
List.Pairwise
List.Nodup
List.Lex
USize
UInt8
UInt16
UInt32
UInt64
ISize
Int8
Int16
Int32
Int64
Fin
Option
List
Prod
PProd
MProd
Sum
PSum
Sigma
Subtype
Repr
Thunk
_root_
BitVec
Float
Float32
Empty
Quotient
Quot
Setoid
Squash
Subsingleton
WellFoundedRelation
Equivalence
HasEquiv
Lake
Lake.RecBuildM
Lake.FetchM
Lake.ScriptM
MonadEval
True
False
And
Or
Not
Iff
Exists
Eq
HEq
Max
Min
Std.Do
Std.Do.PredTrans
Std.Do.SVal
Std.HashMap
Std.ExtHashMap
Std.DHashMap
Std.ExtDHashMap
Std.HashSet
Std.ExtHashSet
Std.TreeMap
Std.DTreeMap
Std.TreeSet
Std.Iterators
Std.Iterators.Iter
Std.Iterators.Iter.Equiv
Std.Iterators.Iter.TerminationMeasures
Std.Iterators.IterM
Std.Iterators.IterM.Equiv
Std.Iterators.IterM.TerminationMeasures
Std.Iterators.Iterator
Std.Iterators.IteratorAccess
Std.Iterators.IteratorLoop
Std.Iterators.IteratorLoopPartial
Std.Iterators.Finite
Std.Iterators.Productive
Std.Iterators.PostconditionT
Std.Iterators.HetT
Std.PRange
Std.PRange.UpwardEnumerable
Std.Rco
Std.Rcc
Std.Rci
Std.Roo
Std.Roc
Std.Roi
Std.Rio
Std.Ric
Std.Rii
```
```exceptions
Std.HashMap.all
Std.HashMap.equiv_emptyWithCapacity_iff_isEmpty.match_1_1
Std.HashMap.noConfusionType.withCtor
Std.HashMap.noConfusionType.withCtorType
Std.HashMap.«term_~m_»
```
```exceptions
Std.DHashMap.equiv_emptyWithCapacity_iff_isEmpty.match_1_1
Std.DHashMap.insertMany_ind.match_1_1
Std.DHashMap.isSetoid
Std.DHashMap.«term_~m_»
```
```exceptions
Std.ExtHashMap.noConfusionType.withCtor
Std.ExtHashMap.noConfusionType.withCtorType
```
```exceptions
Bool.toLBool
Bool.atLeastTwo
Bool.«term_^^_»
```
```exceptions
Decidable.or_not_self
```
```exceptions
Sum.repr
```
```exceptions
String.revFindAux String.extract.go₂ String.substrEq.loop String.casesOn
String.offsetOfPosAux String.extract.go₁ String.mapAux String.firstDiffPos.loop String.utf8SetAux String.revPosOfAux String.replace.loop
String.rec String.recOn String.posOfAux String.splitAux String.foldrAux
String.splitOnAux String.intercalate.go String.anyAux String.findAux
String.utf8GetAux? String.foldlAux String.utf8GetAux
String.utf8PrevAux String.noConfusionType String.noConfusion
String.utf8ByteSize.go String.validateUTF8.loop
String.crlfToLf.go
String.fromUTF8.loop
String.one_le_csize
String.mangle
```
```exceptions
String.codepointPosToUtf16Pos
String.codepointPosToUtf16PosFrom
String.codepointPosToUtf8PosFrom
String.fromExpr?
String.reduceBinPred
String.reduceBoolPred
String.toFileMap
String.utf16Length
String.utf16PosToCodepointPos
String.utf16PosToCodepointPosFrom
```
```exceptions
Substring.commonPrefix.loop
Substring.commonSuffix.loop
Substring.splitOn.loop
Substring.takeRightWhileAux
Substring.takeWhileAux
```
```exceptions
String.Pos.Raw.ctorIdx
String.Pos.Raw.extract.go₁
String.Pos.Raw.extract.go₂
String.Pos.Raw.mk.noConfusion
String.Pos.Raw.utf8GetAux
String.Pos.Raw.utf8GetAux?
String.Pos.Raw.utf8PrevAux
String.Pos.Raw.utf8SetAux
```
```exceptions
String.Slice.ctorIdx
String.Slice.hash
String.Slice.instDecidableEqPos.decEq
String.Slice.instInhabitedByteIterator.default
String.Slice.instInhabitedPosIterator.default
String.Slice.instInhabitedRevPosIterator.default
String.Slice.instInhabitedRevSplitIterator.default
String.Slice.instInhabitedSplitInclusiveIterator.default
String.Slice.instInhabitedSplitIterator.default
String.Slice.lines.lineMap
String.Slice.mk.noConfusion
```
```exceptions
String.Slice.Pos.ctorIdx
String.Slice.Pos.mk.noConfusion
String.Slice.Pos.prevAux
String.Slice.Pos.prevAux.go
```
```exceptions
String.ValidPos.ctorIdx
String.ValidPos.mk.noConfusion
```
```exceptions
Char.ofNatAux
Char.quoteCore
Char.quoteCore.smallCharToHex
Char.notLTTrans
Char.notLTTotal
Char.notLTAntisymm
Char.repr
```
```exceptions
Char.fromExpr?
Char.reduceBinPred
Char.reduceBoolPred
Char.reduceUnary
```
```exceptions
BitVec.fromExpr?
BitVec.negOverflow
BitVec.reduceBin
BitVec.reduceBinPred
BitVec.reduceBoolPred
BitVec.reduceExtend
BitVec.reduceGetBit
BitVec.reduceShift
BitVec.reduceShiftShift
BitVec.reduceShiftWithBitVecLit
BitVec.reduceUnary
```
```exceptions
ByteArray.ctorIdx
ByteArray.findFinIdx?.loop
ByteArray.findIdx?.loop
ByteArray.foldlM.loop
ByteArray.foldlMUnsafe
ByteArray.foldlMUnsafe.fold
ByteArray.forIn.loop
ByteArray.forInUnsafe
ByteArray.forInUnsafe.loop
ByteArray.hash
ByteArray.instBEq.beq
ByteArray.instInhabitedIterator.default
ByteArray.mk.noConfusion
ByteArray.mkIterator
ByteArray.toList.loop
ByteArray.utf8Decode?.go
ByteArray.utf8DecodeChar?.assemble₁
ByteArray.utf8DecodeChar?.assemble₂
ByteArray.utf8DecodeChar?.assemble₂Unchecked
ByteArray.utf8DecodeChar?.assemble₃
ByteArray.utf8DecodeChar?.assemble₃Unchecked
ByteArray.utf8DecodeChar?.assemble₄
ByteArray.utf8DecodeChar?.assemble₄Unchecked
ByteArray.utf8DecodeChar?.isInvalidContinuationByte
ByteArray.utf8DecodeChar?.parseFirstByte
```
```exceptions
Quot.indep
Quot.lcInv
```
```exceptions
String.Pos.isValid.go
```
```exceptions
String.sluggify
```
```exceptions
Ordering.ofNat
Ordering.toCtorIdx
```
```exceptions
Ord.arrayOrd
```
```exceptions
Nat.applyEqLemma
Nat.applySimprocConst
Nat.div.go
Nat.fromExpr?
Nat.imax
Nat.lt_wfRel
Nat.modCore.go
Nat.reduceBin
Nat.reduceBinPred
Nat.reduceBoolPred
Nat.reduceLTLE
Nat.reduceNatEqExpr
Nat.reduceUnary
Nat.toDigitsCore
Nat.toLevel
```
```exceptions
Nat.anyM.loop
Nat.nextPowerOfTwo.go
Nat.foldRevM.loop
Nat.foldM.loop
Nat.foldTR.loop
Nat.recAux
Nat.allTR.loop
Nat.allM.loop
Nat.anyTR.loop
Nat.anyM.loop
Nat.toSuperDigitsAux
Nat.casesAuxOn
Nat.forM.loop
Nat.repeatTR.loop
Nat.forRevM.loop
Nat.toSubDigitsAux
```
```exceptions
Nat.one_pos
Nat.not_lt_of_lt
Nat.sub_lt_self
Nat.lt_or_gt
Nat.pow_le_pow_left
Nat.not_lt_of_gt
Nat.le_or_le
Nat.le_or_ge
Nat.pred_lt'
Nat.pow_le_pow_right
Nat.lt_iff_le_and_not_ge
Nat.mul_pred_right
Nat.mul_pred_left
Nat.prod_dvd_and_dvd_of_dvd_prod
Nat.lt_iff_le_and_not_ge
Nat.mul_pred_right
```
```exceptions
Nat.binductionOn
Nat.le.rec
Nat.le.recOn
Nat.le.casesOn
Nat.le.below
Nat.le.below.step
Nat.le.below.rec
Nat.le.below.recOn
Nat.le.below.refl
Nat.le.below.casesOn
```
```exceptions
EStateM.dummySave
EStateM.dummyRestore
```
```exceptions
BitVec.rotateLeftAux
BitVec.rotateRightAux
BitVec.unexpandBitVecOfNat
BitVec.unexpandBitVecOfNatLt
```
```exceptions
Id.hasBind
```
```exceptions
Array.get?_size
Array.forIn'.loop
Array.mapM.map
Array.findIdx?.loop
Array.get_extract_loop_lt
Array.foldrM_eq_foldrM_data
Array.get?_push
Array.appendList_data
Array.insertAt.loop
Array.reverse.loop
Array.foldrM_eq_reverse_foldlM_data
Array.isPrefixOfAux
Array.takeWhile.go
Array.isPrefixOfAux
Array.size_eq_length_data
Array.qpartition.loop
Array.insertionSort.swapLoop
Array.foldl_data_eq_bind
Array.foldl_toList_eq_bind
Array.foldrMUnsafe
Array.get_swap_left
Array.get_extract_loop_ge_aux
Array.data_swap
Array.get_extract_loop_lt_aux
Array.get?_swap
Array.get_swap'
Array.mapM_eq_mapM_data
Array.anyM.loop
Array.getElem_eq_data_getElem
Array.get_swap_right
Array.get_extract_loop_ge
Array.foldrM.fold
Array.foldlM.loop
Array.take.loop
Array.mapMUnsafe
Array.binSearchAux
Array.eq_push_pop_back_of_size_ne_zero
Array.get?_push_eq
Array.append_data
Array.indexOfAux
Array.reverse_toList
Array.ofFn.go
Array.get?_eq_data_get?
Array.filterMap_data
Array.empty_data
Array.foldrMUnsafe.fold
Array.toListImpl
Array.filter_data
Array.get_swap_of_ne
Array.get_append_right
Array.getElem?_eq_toList_getElem?
Array.foldl_eq_foldl_data
Array.sequenceMap.loop
Array.toList_eq
Array.findSomeRevM?.find
Array.data_range
Array.forIn'Unsafe.loop
Array.foldlM_eq_foldlM_data
Array.getElem_eq_toList_getElem
Array.getElem_mem_data
Array.get_extract
Array.extract.loop
Array.foldlMUnsafe.fold
Array.data_set
Array.forIn'Unsafe
Array.mapMUnsafe.map
Array.mapM'.go
Array.pop_data
Array.appendCore.loop
Array.get?_len_le
Array.back_push
Array.all_def
Array.get_push_lt
Array.foldl_data_eq_map
Array.get?_eq_toList_get?
Array.isEqvAux
Array.getElem?_mem
Array.getElem_fin_eq_toList_get
Array.getElem?_eq_data_get?
Array.foldr_eq_foldr_data
Array.data_length
Array.get_push
Array.push_data
Array.toArray_data
Array.get_append_left
Array.insertionSort.traverse
Array.getElem_fin_eq_data_get
Array.toListLitAux
Array.map_data
Array.get?_push_lt
Array.get_extract_aux
Array.foldlMUnsafe
Array.qsort.sort
Array.any_def
Array.anyMUnsafe
Array.data_toArray
Array.mem_data
Array.get_swap
Array.mapFinIdxM.map
Array.data_pop
Array.anyMUnsafe.any
Array.mkArray0
Array.mkArray1
Array.mkArray2
Array.mkArray3
Array.mkArray4
Array.mkArray5
Array.mkArray6
Array.mkArray7
Array.mkArray8
Array.mkEmpty
Array.get_push_eq
Array.appendCore
Array.modifyMUnsafe
Array.mapSepElems
Array.mapSepElemsM
Array.toArrayLit
Array.getSepElems
Array.zipWithAux
Array.casesOn
Array.rec
Array.recOn
Array.noConfusion
Array.noConfusionType
Array.tacticArray_get_dec
Array.back_eq_back?
Array.mkArray_data
Array.getLit
Array.zipWithAll.go
Array.shrink.loop
Array.idxOfAux
Array.firstM.go
Array.get!Internal
Array.getInternal
Array.findFinIdx?.loop
Array.insertIdx.loop
```
```exceptions
Array.qpartition
```
```exceptions
Option.toLOption
```
```exceptions
Subarray.forInUnsafe.loop
Subarray.as
Subarray.casesOn
Subarray.recOn
Subarray.rec
Subarray.noConfusion
Subarray.noConfusionType
Subarray.forInUnsafe
Subarray.findSomeRevM?.find
```
```exceptions
Lean.Elab.Tactic.evalUnfold.go
Lean.Elab.Tactic.dsimpLocation.go
Lean.Elab.Tactic.withCollectingNewGoalsFrom.go
Lean.Elab.Tactic.evalRunTac.unsafe_impl_1
Lean.Elab.Tactic.evalRunTac.unsafe_1
Lean.Elab.Tactic.evalTactic.handleEx
Lean.Elab.Tactic.simpLocation.go
Lean.Elab.Tactic.instToSnapshotTreeTacticParsedSnapshot.go
Lean.Elab.Tactic.dsimpLocation'.go
Lean.Elab.Tactic.withRWRulesSeq.go
Lean.Elab.Tactic.runTermElab.go
Lean.Elab.Tactic.getMainGoal.loop
Lean.Elab.Tactic.elabSimpArgs.isSimproc?
Lean.Elab.Tactic.elabSimpArgs.resolveSimpIdTheorem?
Lean.Elab.Tactic.tactic.dbg_cache
Lean.Elab.Tactic.tactic.simp.trace
Lean.Elab.Tactic.liftMetaTacticAux
```
```exceptions
Int.add_of_le
Int.fromExpr?
Int.reduceBin
Int.reduceBinIntNatOp
Int.reduceBinPred
Int.reduceBoolPred
Int.reduceNatCore
Int.reduceUnary
```
```exceptions
Int8.fromExpr
Int16.fromExpr
Int32.fromExpr
Int64.fromExpr
ISize.fromExpr
UInt8.fromExpr
UInt16.fromExpr
UInt32.fromExpr
UInt64.fromExpr
USize.fromExpr
```
```exceptions
System.Platform.getIsEmscripten
System.Platform.getIsOSX
System.Platform.getIsWindows
System.Platform.getNumBits
System.Platform.getTarget
```
```exceptions
Prod.repr
Prod.rprod
Prod.lex
Prod.Lex
```
```exceptions
Std.Iterators.Iter.instForIn'
Std.Iterators.Iter.step_filter
Std.Iterators.Iter.val_step_filter
```
```exceptions
Std.Iterators.IterM.instForIn'
Std.Iterators.IterM.toListRev.go
```
```exceptions
Lean.Elab.Tactic.elabSetOption
Lean.Elab.Tactic.evalSeq1
Lean.Elab.Tactic.evalSimp
Lean.Elab.Tactic.evalSpecialize
Lean.Elab.Tactic.evalTacticAt
Lean.Elab.Tactic.evalSimpAll
Lean.Elab.Tactic.evalIntro.introStep
Lean.Elab.Tactic.evalDone
Lean.Elab.Tactic.evalRevert
Lean.Elab.Tactic.evalRight
Lean.Elab.Tactic.evalUnfold
Lean.Elab.Tactic.evalConstructor
Lean.Elab.Tactic.evalTacticCDot
Lean.Elab.Tactic.evalTraceMessage
Lean.Elab.Tactic.evalClear
Lean.Elab.Tactic.evalIntroMatch
Lean.Elab.Tactic.evalInduction
Lean.Elab.Tactic.evalApply
Lean.Elab.Tactic.evalUnknown
Lean.Elab.Tactic.evalRefl
Lean.Elab.Tactic.evalTactic.throwExs
Lean.Elab.Tactic.evalDSimp
Lean.Elab.Tactic.evalSepTactics.goEven
Lean.Elab.Tactic.evalAllGoals
Lean.Elab.Tactic.evalSplit
Lean.Elab.Tactic.evalInjection
Lean.Elab.Tactic.evalParen
Lean.Elab.Tactic.evalFocus
Lean.Elab.Tactic.evalLeft
Lean.Elab.Tactic.evalRotateRight
Lean.Elab.Tactic.evalWithReducible
Lean.Elab.Tactic.evalTactic.expandEval
Lean.Elab.Tactic.evalTraceState
Lean.Elab.Tactic.evalCase'
Lean.Elab.Tactic.evalSepTactics.goOdd
Lean.Elab.Tactic.evalWithReducibleAndInstances
Lean.Elab.Tactic.evalTacticSeqBracketed
Lean.Elab.Tactic.evalTactic.eval
Lean.Elab.Tactic.evalAlt
Lean.Elab.Tactic.evalGeneralize
Lean.Elab.Tactic.evalRewriteSeq
Lean.Elab.Tactic.evalSleep
Lean.Elab.Tactic.evalDSimpTrace
Lean.Elab.Tactic.evalReplace
Lean.Elab.Tactic.evalOpen
Lean.Elab.Tactic.evalAssumption
Lean.Elab.Tactic.evalSepTactics
Lean.Elab.Tactic.evalWithUnfoldingAll
Lean.Elab.Tactic.evalMatch
Lean.Elab.Tactic.evalRepeat1'
Lean.Elab.Tactic.evalFailIfSuccess
Lean.Elab.Tactic.evalRename
Lean.Elab.Tactic.evalFirst.loop
Lean.Elab.Tactic.evalSimpTrace
Lean.Elab.Tactic.evalFirst
Lean.Elab.Tactic.evalSubstVars
Lean.Elab.Tactic.evalRunTac
Lean.Elab.Tactic.evalSymmSaturate
Lean.Elab.Tactic.evalWithAnnotateState
Lean.Elab.Tactic.evalTacticAtRaw
Lean.Elab.Tactic.evalDbgTrace
Lean.Elab.Tactic.evalSubst
Lean.Elab.Tactic.evalNativeDecide
Lean.Elab.Tactic.evalCalc
Lean.Elab.Tactic.evalCase
Lean.Elab.Tactic.evalRepeat'
Lean.Elab.Tactic.evalRefine
Lean.Elab.Tactic.evalContradiction
Lean.Elab.Tactic.evalSymm
Lean.Elab.Tactic.evalInjections
Lean.Elab.Tactic.evalExact
Lean.Elab.Tactic.evalRotateLeft
Lean.Elab.Tactic.evalFail
Lean.Elab.Tactic.evalTactic
Lean.Elab.Tactic.evalSimpAllTrace
Lean.Elab.Tactic.evalRefine'
Lean.Elab.Tactic.evalChoice
Lean.Elab.Tactic.evalInduction.checkTargets
Lean.Elab.Tactic.evalIntro
Lean.Elab.Tactic.evalAnyGoals
Lean.Elab.Tactic.evalCases
Lean.Elab.Tactic.evalDelta
Lean.Elab.Tactic.evalDecide
Lean.Elab.Tactic.evalChoiceAux
Lean.Elab.Tactic.evalTacticSeq
Lean.Elab.Tactic.evalCheckpoint
Lean.Elab.Tactic.evalRenameInaccessibles
Lean.Elab.Tactic.evalIntros
Lean.Elab.Tactic.evalApplyLikeTactic
Lean.Elab.Tactic.evalSkip
Lean.Elab.Tactic.evalCalc.throwFailed
Lean.Elab.Tactic.evalSubstEqs
Lean.Elab.Tactic.evalTacticSeq1Indented
```
```exceptions
IO.Error.fopenErrorToString
IO.Error.mkAlreadyExists
IO.Error.mkAlreadyExistsFile
IO.Error.mkEofError
IO.Error.mkHardwareFault
IO.Error.mkIllegalOperation
IO.Error.mkInappropriateType
IO.Error.mkInappropriateTypeFile
IO.Error.mkInterrupted
IO.Error.mkInvalidArgument
IO.Error.mkInvalidArgumentFile
IO.Error.mkNoFileOrDirectory
IO.Error.mkNoSuchThing
IO.Error.mkNoSuchThingFile
IO.Error.mkOtherError
IO.Error.mkPermissionDenied
IO.Error.mkPermissionDeniedFile
IO.Error.mkProtocolError
IO.Error.mkResourceBusy
IO.Error.mkResourceExhausted
IO.Error.mkResourceExhaustedFile
IO.Error.mkResourceVanished