| -- | |
| -- Test1 | |
| inductive T1 : Nat -- Error, resultant type is not a sort | |
| -- Test2 | |
| mutual | |
| inductive T1 : Prop | |
| inductive T2 : Type -- Error resulting universe mismatch | |
| end | |
| -- Test3 | |
| universe u v | |
| mutual | |
| inductive T1 (x : Nat) : Type u | |
| inductive T2 (x : Nat) : Nat → Type v -- Error resulting universe mismatch | |
| end | |
| -- Test4 | |
| mutual | |
| inductive T1 (b : Bool) (x : Nat) : Type | |
| inductive T2 (b : Bool) (x : Bool) : Type -- Type mismatch at 'x' | |
| end | |
| -- Test5 | |
| mutual | |
| inductive T1 (b : Bool) (x : Nat) : Type | |
| inductive T2 (x : Bool) : Type -- number of parameters mismatch | |
| end | |
| -- Test6 | |
| mutual | |
| inductive T1 (b : Bool) (x : Nat) : Type | |
| inductive T2 (b : Bool) {x : Nat} : Type -- binder annotation mismatch at 'x' | |
| end | |
| -- Test7 | |
| mutual | |
| inductive T1.{w1} (b : Bool) (x : Nat) : Type | |
| inductive T2.{w2} (b : Bool) (x : Nat) : Type -- universe parameter mismatch | |
| end | |
| -- Test8 | |
| namespace Boo | |
| def T1.bla := 10 | |
| inductive T1 : Type | |
| | bla : T1 -- Boo.T1.bla has already been defined | |
| def T1 := 20 | |
| inductive T1 : Type -- Boo.T1 has already been defined | |
| | bla : T1 | |
| end Boo | |
| -- Test9 | |
| partial inductive T1 : Type -- invalid use of partial | |
| noncomputable inductive T1 : Type -- invalid use of noncomputable | |
| @[inline] inductive T1' : Type -- declaration is not a definition | |
| private inductive T1 : Type | |
| | private mk : T1 -- invalid private constructor in private inductive type | |
| -- Test10 | |
| mutual | |
| inductive T1 : Type | |
| unsafe inductive T2 : Type | |
| end | |
| -- Test11 | |
| inductive T1 : Nat → Type | |
| | z1 : T1 0 | |
| | z2 -- constructor resulting type must be specified in inductive family declaration | |
| -- Test12 | |
| inductive T1 : Nat → Type | |
| | z1 : T1 -- unexpected constructor resulting type | |
| inductive T1 : Nat → Type | |
| | z1 : Nat -- unexpected constructor resulting type | |
| -- Test13 | |
| inductive A (α : Type u) (β : Type v) | |
| | nil | |
| | protected cons : α → β → A α β → A α β | |
| open A | |
| #check cons -- unknown `cons`, it is protected |