17 lines
643 B
Text
17 lines
643 B
Text
/- Ensure that non-fixed indices don't get mistakenly promoted to parameter
|
|
See issue `https://github.com/leanprover/lean4/issues/3458`
|
|
-/
|
|
|
|
set_option autoImplicit false
|
|
universe u v w
|
|
|
|
structure ISignature (I : Type u) : Type (max u v + 1) where
|
|
symbols : I → Type v
|
|
indices : {i : I} → symbols i → List I
|
|
|
|
inductive All {I : Type u} (P : I → Type v) : List I → Type (max u v) where
|
|
| nil : All P []
|
|
| cons {x xs}: P x → All P xs → All P (x :: xs)
|
|
|
|
inductive Iμ {I : Type u} (ζ : ISignature.{u,v} I) : I → Type (max u v) where
|
|
| mk : (i : I) → (s : ζ.symbols i) → All (Iμ ζ) (ζ.indices s) → Iμ ζ i
|