33 lines
867 B
Text
33 lines
867 B
Text
inductive Vector (α : Type u) : Nat → Type u
|
||
| nil : Vector α 0
|
||
| cons : α → Vector α n → Vector α (n+1)
|
||
|
||
infix:67 " :: " => Vector.cons
|
||
|
||
inductive Ty where
|
||
| int
|
||
| bool
|
||
| fn (a r : Ty)
|
||
|
||
inductive HasType : Fin n → Vector Ty n → Ty → Type where
|
||
| stop : HasType 0 (ty :: ctx) ty
|
||
| pop : HasType k ctx ty → HasType k.succ (u :: ctx) ty
|
||
--^ $/lean/plainTermGoal
|
||
|
||
inductive Foo : HasType k ctx ty → Prop
|
||
--^ $/lean/plainTermGoal
|
||
|
||
def foo : HasType k ctx ty → Prop
|
||
--^ $/lean/plainTermGoal
|
||
| _ => True
|
||
|
||
structure Ex where
|
||
aux : HasType k ctx ty
|
||
--^ $/lean/plainTermGoal
|
||
boo : HasType k ctx ty → Prop := fun _ => True
|
||
--^ $/lean/plainTermGoal
|
||
|
||
variable (x : HasType k ctx ty)
|
||
--^ $/lean/plainTermGoal
|
||
|
||
#check x
|