Hunter Monroe
62c3e56247
doc: Bold "Diaconescu's theorem" ( #3086 )
2023-12-17 19:10:35 +00:00
Scott Morrison
8475ec7e36
fix: reference implementation ByteArray.copySlice ( #2967 )
...
Fixes reference implementation of `ByteArray.copySlice`, as reported
https://github.com/leanprover/lean4/issues/2966 .
Adds tests.
---------
Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>
2023-12-16 20:26:16 +00:00
Scott Morrison
c656e71eb8
chore: make List.all and List.any short-circuit ( #2972 )
...
Changes the implementation of `List.all` and `List.any` so they
short-circuit. The implementations are tail-recursive.
This replaces https://github.com/leanprover/std4/pull/392 , which was
going to do this with `@[csimp]`.
2023-12-11 23:48:15 +00:00
Mario Carneiro
178ab8ef2e
fix: Option.getD eagerly evaluates dflt ( #3043 )
...
Reported [on
Zulip](https://leanprover.zulipchat.com/#narrow/stream/348111-std4/topic/Panics.20in.20Std.2EHashMap.2Efind!/near/406872395 ).
The `dflt` argument of `Option.getD` is not evaluated lazily, as the
documentation says, because even after `macro_inline` the expression
```lean
match opt, dflt with
| some x, _ => x
| none, e => e
```
still has the semantics of evaluating `dflt` when `opt` is `some x`.
2023-12-11 10:07:30 +00:00
Eric Wieser
c474dff38c
doc: document constructors of TransparencyMode ( #3037 )
...
Taken from
https://github.com/leanprover-community/lean4-metaprogramming-book/blob/master/md/main/04_metam.md#transparency
I can never remember which way around `reducible` and `default` go, and
this avoids me needing to leave the editor to find out.
2023-12-07 17:04:40 +00:00
Kyle Miller
bcbcf50442
feat: string gaps for continuing string literals across multiple lines ( #2821 )
...
Implements "gaps" in string literals. These are escape sequences of the
form `"\" newline whitespace+` that have the interpretation of an empty
string. For example,
```
"this is \
a string"
```
is equivalent to `"this is a string"`. These are modeled after string
continuations in
[Rust](https://doc.rust-lang.org/beta/reference/tokens.html#string-literals ).
Implements RFC #2838
2023-12-07 08:17:00 +00:00
Joachim Breitner
34264a4b1d
doc: Improve docstrings around Array.mk,.data,.toList ( #2771 )
...
following a discussion at
<https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Understanding.20the.20docstring.20for.20docs.23Array.2Edata/near/398705430 >
---------
Co-authored-by: Mario Carneiro <di.gama@gmail.com>
2023-11-29 08:49:13 +00:00
Joachim Breitner
37362658ab
fix: eq_refl tactic’s name is eqRefl
...
Previously, it has `name := refl`, which looked confusing in
[the
docs](https://leanprover-community.github.io/mathlib4_docs/Init/Tactics.html#Lean.Parser.Tactic.refl ),
as there is no `refl` tactic,
2023-11-21 18:59:22 +01:00
Adrien Champion
66aa2c46a8
doc: mention dite in ite docstring ( #2924 )
...
Some beginners have trouble finding the `if h : c then t else e`
(`dite`) version of `ite`. This augments `ite`'s docstring to mention
the dependent version.
2023-11-21 15:59:35 +01:00
Leni Aniva
ab36ed477e
feat: allow trailing comma in tuples, lists, and tactics ( #2643 )
2023-11-17 13:31:41 +01:00
tydeu
171837216a
feat: IO.FS.Handle.lock/tryLock/unlock
2023-11-15 19:31:08 -05:00
tydeu
19c81a19ea
feat: IO.FS.Handle.rewind/truncate
2023-11-15 19:31:08 -05:00
Sebastian Ullrich
2f35651308
perf: leak environments not freed before process exit
2023-11-14 17:33:04 +01:00
Sebastian Ullrich
62dc8d7308
feat: Runtime.markMultiThreaded/Persistent
2023-11-14 17:33:04 +01:00
Sebastian Ullrich
dbe1c7f459
fix: make ^ a right action, add NatPow and HomogeneousPow
2023-11-12 16:57:51 +11:00
Scott Morrison
f3c3a1b62d
feat: find Decidable instances via unification ( #2816 )
...
Because `Decidable` carries data,
when writing `@[simp]` lemmas which include a `Decidable` instance on the LHS,
it is best to use `{_ : Decidable p}` rather than `[Decidable p]`
so that non-canonical instances can be found via unification rather than
typeclass search.
(Previously this behaviour was often being hidden by the default `decide :=
true` in `simp`.)
2023-11-12 00:47:13 +00:00
Marcus Rossel
5189578a48
doc: fix typo in Array.Mem docstring ( #2856 )
2023-11-10 11:16:32 +00:00
Siddharth Bhat
145a4952e5
feat: add internal flag lean_has_llvm_backend
2023-11-02 23:21:47 +01:00
Mauricio Collares
cfe5a5f188
chore: change simp default to decide := false ( #2722 )
2023-11-02 10:06:38 +11:00
Parth Shastri
642bc5d8f3
fix: replace DecidableEq with BEq/LawfulBEq in List mem theorems ( #2041 )
2023-10-30 14:03:16 +11:00
Joachim Breitner
f74ae5f9c0
feat: Array.mem: Avoid DecidableEq, set up decreasing_trivial ( #2774 )
...
The notation `a ∈ as` for Arrays was previously only defined with
`DecidableEq` on the elements, for (apparently) no good reason. This
drops this requirements (by using `a ∈ as.data`), and simplifies a bunch
of proofs by simply lifting the corresponding proof from lists.
Also, `sizeOf_lt_of_mem` was defined, but not set up to be picked up by
`decreasing_trivial` in the same way that the corresponding List lemma
was set up, so this adds the tactic setup.
The definition for `a ∈ as` is intentionally not defeq to `a ∈ as.data`
so that the termination tactics for Arrays don’t spuriously apply when
recursing through lists.
2023-10-30 13:47:30 +11:00
Leonardo de Moura
175a6ab606
refactor: add Init/MetaTypes to workaround bootstrapping issues
...
Motivation: we could not set `simp` configuration options at `WFTactics.lean`
2023-10-29 09:38:23 -07:00
Leonardo de Moura
1abd5cc665
chore: add simp option unfoldPartialApp
...
It is not being used yet, but we need to add it before solving issue #2042 .
Reason: bootstrapping.
2023-10-29 09:12:21 -07:00
Leonardo de Moura
b00c13a00e
chore: remove "paper cut" when using Fin USize.size ( #2724 )
2023-10-24 21:06:35 +11:00
Leonardo de Moura
50d0aced7f
feat: add auxiliary lemma for simp
2023-10-23 06:19:19 -07:00
Leonardo de Moura
52f1000955
chore: update doc, add support for modn
2023-10-20 19:07:48 -07:00
Leonardo de Moura
9d02e0ee6f
chore: remove unnecessary % operations at Fin.mod and Fin.div
...
We now have the missing proofs `Nat.mod_le` and `Nat.div_le_self` in
core.
See:
https://github.com/leanprover/std4/pull/286#discussion_r1359807875
2023-10-20 19:07:48 -07:00
Leonardo de Moura
419100d42b
feat: add Simp.Config.ground for simplifying nested ground terms
...
This is an experimental new feature. We need more bells and whistles,
and `cbv` tactic for improving its performance.
2023-10-19 13:59:17 -07:00
tydeu
99b78bcc23
fix: stdin := .null in IO.Process.output
2023-10-12 08:55:26 +02:00
Scott Morrison
57e23917b6
fix: implementation of Array.anyMUnsafe
...
move test
2023-10-11 11:20:45 +02:00
Scott Morrison
97f5ad7804
chore: change trustCompiler axiom to True ( #2662 )
2023-10-11 06:59:03 +00:00
Scott Morrison
833e778cd5
chore: add axiom for tracking use of reduceBool / reduceNat ( #2654 )
2023-10-11 01:47:59 +00:00
int-y1
ce4ae37c19
chore: fix more typos in comments
2023-10-08 14:37:34 -07:00
Sebastian Ullrich
dc60150b5a
chore: update domain
2023-09-20 15:13:27 -07:00
Joachim Breitner
b2d668c340
perf: Use flat ByteArrays in Trie ( #2529 )
2023-09-20 13:22:37 +02:00
Sebastian Ullrich
3e755dc0e1
fix: enforce linebreak between calc steps
2023-09-18 05:39:41 -04:00
Scott Morrison
c318d5817d
feat: allow configuring occs in rw
2023-09-13 12:03:18 -07:00
Marcus Rossel
84bf315ac8
doc: fix comment for Unit
2023-09-05 07:52:06 +01:00
Mario Carneiro
ea60ac1443
doc: fix mid priority doc comment
2023-08-21 13:19:43 +02:00
Joachim Breitner
6b429fed8f
doc: fix markup in IO.RealWorld ( #2430 )
...
so that
<https://leanprover-community.github.io/mathlib4_docs/Init/System/IO.html#IO.RealWorld >
looks good.
2023-08-17 11:55:03 -07:00
Scott Morrison
f1412ddb45
feat: enable failIfUnchanged by default in simp
2023-08-16 10:14:23 -07:00
tydeu
736af918f5
doc: IO.Process.getPID tweak + IO.FS.Mode
2023-08-14 18:42:04 +02:00
Scott Morrison
61fea57e73
feat: add failIfUnchanged flag to simp
2023-08-13 09:49:25 -07:00
Junyan Xu
2aeeed13cf
fix: generalize Prod.lexAccessible to match Lean 3 ( #2388 )
...
* fix: generalize Prod.lexAccessible to match Lean 3
* fix
* fix
2023-08-09 08:54:53 -07:00
Marcus Rossel
8af25455ae
doc: fix comment for Nat.sub
2023-08-09 08:54:24 -07:00
tydeu
c79c7c89b3
feat: IO.Process.getPID & IO.FS.Mode.writeNew
2023-08-08 16:23:43 -04:00
Siddharth
b9ec36d089
chore: get rid of all inline C annotations for LLVM ( #2363 )
2023-07-30 10:39:40 +02:00
Mario Carneiro
776bff1948
fix: repeat conv should not auto-close the goal
2023-07-27 18:15:35 -04:00
Bulhwi Cha
3b6bc4a87d
style: remove unnecessary space characters
2023-07-23 16:11:11 +02:00
Mario Carneiro
dd313c6894
feat: add IO.FS.rename
2023-07-22 23:21:32 +02:00