lean4-htt/tests/lean/inductive1.lean.expected.out
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

30 lines
1.8 KiB
Text

inductive1.lean:4:15-4:18: error: invalid inductive type, resultant type is not a sort
inductive1.lean:12:0-12:19: error: invalid mutually inductive types, resulting universe mismatch, given
Type
expected type
Prop
inductive1.lean:22:0-22:37: error: invalid mutually inductive types, resulting universe mismatch, given
Type v
expected type
Type u
inductive1.lean:31:0-31:41: error: invalid mutually inductive types, parameter 'x' has type
Bool
but is expected to have type
Nat
inductive1.lean:40:0-40:30: error: invalid inductive type, number of parameters mismatch in mutually inductive datatypes
inductive1.lean:49:0-49:40: error: invalid mutually inductive types, binder annotation mismatch at parameter 'x'
inductive1.lean:59:0-59:45: error: invalid inductive type, universe parameters mismatch in mutually inductive datatypes
inductive1.lean:69:2-69:5: error: 'Boo.T1.bla' has already been declared
inductive1.lean:73:10-73:12: error: 'Boo.T1' has already been declared
inductive1.lean:80:0-80:27: error: invalid use of 'partial' in inductive declaration
inductive1.lean:81:0-81:33: error: invalid use of 'noncomputable' in inductive declaration
inductive1.lean:82:0-82:29: error: invalid use of attributes in inductive declaration
inductive1.lean:85:0-85:17: error: invalid 'private' constructor in a 'private' inductive datatype
inductive1.lean:93:7-93:26: error: invalid inductive type, cannot mix unsafe and safe declarations in a mutually inductive datatypes
inductive1.lean:100:0-100:4: error: constructor resulting type must be specified in inductive family declaration
inductive1.lean:105:7-105:9: error: type expected
failed to synthesize instance
CoeSort (Nat → Type) ?m
inductive1.lean:108:0-108:10: error: unexpected constructor resulting type
Nat
inductive1.lean:118:7-118:11: error: unknown identifier 'cons'