lean4-htt/tests
Leonardo de Moura 729047b5a2 feat: auto bound implicit at constructors
@Kha This commit adds auto bound implicits to constructors.
I was excited until I tried to define the `Bigstep` type again without
`autoBoundImplicitLocal`, and found small typos.
Example, I had
```
  | ifTrue  : eval σ₁ b = true  → Bigstep (c₁, σ₁) σ₂ t → Bigstep (cond b c₁ c₂, σ₁) σ₂ (t₁ + 1)
```
where `t₁` should be `t`, but the declaration was accepted. I am
wondering whether Isabelle performs some kind of sanity checking,
and/or enforces rules such as: auto-bound implicits may only be
introduced by hypotheses.
Note that this is not an issue for definitions, because the body of
the definition will probably not type check when we have this kind of
typo in the header.
Anyway, I am putting the experiment in this branch for now.
That being said, the `Bigstep` declaration is way nicer with
`autoBoundImplicitLocal`s.

Another option is to add a new option `ctorAutoBoundImplicitLocal`
that is false by default, and activates auto implicit locals for
constructors when set to true.
2021-02-02 10:18:21 -08:00
..
bench chore: remove remaining #lang lean4 in tests 2021-01-27 14:45:31 +01:00
compiler fix: allow bigger ctor objects 2021-01-29 18:23:38 -08:00
elabissues chore: move pp_options.cpp to Lean 2021-01-27 14:16:12 +01:00
ir
lean feat: auto bound implicit at constructors 2021-02-02 10:18:21 -08:00
leanpkg feat: incremental progress notification while compiling dependencies 2021-01-19 19:06:01 +01:00
playground fix: allow bigger ctor objects 2021-01-29 18:23:38 -08:00
plugin chore: fix test 2021-01-27 15:04:59 +01:00
simpperf feat: add simp benchmark 2020-12-31 15:46:56 -08:00
.gitignore chore: move bin/ and .oleans into build directory 2020-05-14 14:47:54 +02:00
common.sh test: ignore \r when diffing 2020-09-15 09:32:00 -07:00