Commit graph

33954 commits

Author SHA1 Message Date
Leonardo de Moura
fb9b093cf9 chore: update example 2022-07-13 15:15:00 -07:00
Leonardo de Moura
94df25e99b chore: update example 2022-07-13 15:13:31 -07:00
Leonardo de Moura
cce2d3500e test: for issue #1301
closes #1301
2022-07-13 06:05:12 -07:00
larsk21
123fd801cb doc: linter utils 2022-07-13 10:35:37 +02:00
larsk21
9980123291 fix: check if variables are used first 2022-07-13 10:35:37 +02:00
larsk21
70aff92f8f fix: short-circuit ignore functions in unused variables linter 2022-07-13 10:35:37 +02:00
larsk21
9fcae6ffe9 fix: replace constant with opaque 2022-07-13 10:35:37 +02:00
larsk21
15f9c0585a fix: consider macro expansions in unused variables linter 2022-07-13 10:35:37 +02:00
larsk21
ced8df3e86 fix: references of variables with equal ranges 2022-07-13 10:35:37 +02:00
Leonardo de Moura
d0222990d0 chore: update stage0 2022-07-12 18:40:33 -07:00
Leonardo de Moura
b6860968ff fix: catch exception at elabMutualDef
closes #1301
2022-07-12 18:39:30 -07:00
Leonardo de Moura
fdef55339f fix: use binop% for elaborating ^
closes #1298
2022-07-12 18:20:02 -07:00
Leonardo de Moura
95f3f6b811 chore: update stage0 2022-07-12 18:14:29 -07:00
Leonardo de Moura
5e333191a2 feat: improve binop% and binrel% elaboration functions
Add support for operators that may not have homogeneous instances for
all types. For example, we have `HPow Nat Nat Nat` and `HPow Int Nat Int`,
but we don't have `HPow Int Int Int`.
2022-07-12 18:12:20 -07:00
Leonardo de Moura
a0e459999b chore: cleanup 2022-07-12 17:36:04 -07:00
Leonardo de Moura
d1f0db7072 fix: resumePostponed backtracking
Note that test for issue #1200 broke.
The bug fixed by this commit was allowing the example to be elaborated
correctly :(
Initially, the type of the discriminant is not available, and
`.none (α:=α)` can only be elaborated when the expected type is of the
form `C ...`. Lean then tries to elaborate the alternatives, learn
that the discriminant should be `Option ?m`, and fails because the
patterns still have metavariables after elaboration. Before the bug
fix, `resumePostpone` was **not** restoring the metavariable context,
and the assingnment would stay there. With this information, Lean
can now elaborate `.none (α:=α)`.
Although the bug had a positive impact in this case, it produced
incorrect behavior in other examples.
The fixed example looks reasonable. Thus, we will not reopen
issue #1200
2022-07-12 16:52:45 -07:00
Leonardo de Moura
ca4bd67746 chore: cleanup 2022-07-12 16:42:31 -07:00
Leonardo de Moura
b8ed579289 fix: fixes #1300 2022-07-12 14:08:47 -07:00
Leonardo de Moura
1235832314 feat: add runPendingTacticsAt (e : Expr) 2022-07-12 14:07:55 -07:00
Leonardo de Moura
e03e0bd254 refactor: split syntheticMVars into a map and todo-stack 2022-07-12 13:07:36 -07:00
Leonardo de Moura
64dbbb50f8 chore: cleanup 2022-07-12 09:26:00 -07:00
tydeu
e498ff1aa8 doc: add glossary of Lake terminology to README
also added missing doc on `LeanLibConifg.srcDir`
2022-07-12 01:43:50 -04:00
tydeu
68b81ca065 refactor: intro Lake.Env & add it to Workspace
also `LakeConfig` -> `LoadConfig`
2022-07-11 23:06:19 -04:00
Leonardo de Moura
309f8d6bf9 fix: implicit arguments must be processed with at least default transparency
see #1299
2022-07-11 19:11:46 -07:00
Leonardo de Moura
5bd1f7bba1 fix: special support for higher order output parameters at isDefEqArgs
closes #1299
2022-07-11 19:05:24 -07:00
Leonardo de Moura
4d81c609cc chore: cleanup 2022-07-11 18:52:55 -07:00
Leonardo de Moura
3fd2250799 feat: add higherOrderOutParam to ParamInfo
Helper info for #1299
2022-07-11 18:52:01 -07:00
Leonardo de Moura
709f22c8e4 feat: add field dependsOnHigherOrderOutParam to ParamInfo
See issue #1299
2022-07-11 17:49:49 -07:00
Leonardo de Moura
591c53b3e9 chore: update stage0 2022-07-11 17:24:36 -07:00
Leonardo de Moura
f657aed798 feat: store outParam positions 2022-07-11 17:21:31 -07:00
Leonardo de Moura
0b1fde64ee chore: update stage0 2022-07-11 16:46:02 -07:00
Leonardo de Moura
dfc88ef99f chore: use a[i] 2022-07-11 16:44:52 -07:00
Leonardo de Moura
af1e670270 chore: fix typo 2022-07-11 15:46:54 -07:00
Gabriel Ebner
7e380bf236 chore: update stage0 2022-07-11 14:19:41 -07:00
Gabriel Ebner
a8cab84735 refactor: use computed fields for Expr 2022-07-11 14:19:41 -07:00
Gabriel Ebner
eba400543d refactor: use computed fields for Name 2022-07-11 14:19:41 -07:00
Gabriel Ebner
3176943750 refactor: use computed fields for Level 2022-07-11 14:19:41 -07:00
Gabriel Ebner
e0104b94e5 chore: update stage0 2022-07-11 14:19:41 -07:00
Gabriel Ebner
23113501f4 chore: prepare for Name refactoring 2022-07-11 14:19:41 -07:00
Gabriel Ebner
c100f45b77 feat: add simp lemmas and instances for LawfulBEq 2022-07-11 14:19:41 -07:00
tydeu
2e38df619c fix: Glob.forEachModuleIn
closes leanprover/lake#102
2022-07-11 15:45:50 -04:00
Gabriel Ebner
86ccba8c87 chore: update release notes 2022-07-11 12:26:53 -07:00
Gabriel Ebner
a7e8a82e89 chore: require @[computedField] attribute 2022-07-11 12:26:53 -07:00
Gabriel Ebner
6fe3e36804 feat: support extern computed fields 2022-07-11 12:26:53 -07:00
Gabriel Ebner
243439a75c feat: support modifiers in computed fields 2022-07-11 12:26:53 -07:00
Gabriel Ebner
3a55228be0 chore: prepare for bootstrapping 2022-07-11 12:26:53 -07:00
Gabriel Ebner
b1eb022027 feat: computed fields 2022-07-11 12:26:53 -07:00
Gabriel Ebner
b48061ed23 feat: expose lower level compile function 2022-07-11 12:26:53 -07:00
Gabriel Ebner
18a299f576 feat: allow implementedBy on constructors and casesOn 2022-07-11 12:26:53 -07:00
Gabriel Ebner
5024c15a7a feat: add getConstInfoDefn 2022-07-11 12:26:53 -07:00